잠금없는 무 순서 읽기-쓰기 안전성

클레어

x86 32/64 비트 아키텍처

정렬 된 주소 아래에 데이터 조각이 있고 두 개의 개별 CPU에서 동시에 읽기와 쓰기를 수행하지만 그 순서는 신경 쓰지 않습니다. 자물쇠와 울타리없이하는 것이 안전합니까?

특히 EAX에서 111 ... 000과 같은 경우가 아니라 다음 지침을 동시에 수행합니까?

MOV DWORD PTR [addr], 0xffffffff

MOV DWORD PTR [addr], 0

MOV EAX, DWORD PTR [addr]

어디서 addr == 4n.

그렇지 않다면 정렬되지 않은 것은 addr어떻습니까?

또한 64 비트로 전환하는 것은 어떻습니까?

Kerrek SB

Intel 매뉴얼, Volume 3, 8.1.1 ( "보장 된 원자 연산") :

Intel486 프로세서 (및 이후 최신 프로세서)는 다음 기본 메모리 작업이 항상 원자 적으로 수행되도록 보장합니다.

  • 바이트 읽기 또는 쓰기
  • 16 비트 경계에 정렬 된 단어 읽기 또는 쓰기
  • 32 비트 경계에 정렬 된 더블 워드 읽기 또는 쓰기

펜티엄 프로세서 (및 이후 최신 프로세서)는 다음과 같은 추가 메모리 작업이 항상 원자 적으로 수행되도록 보장합니다.

  • 64 비트 경계에 정렬 된 쿼드 워드 읽기 또는 쓰기
  • 32 비트 데이터 버스에 맞는 캐시되지 않은 메모리 위치에 대한 16 비트 액세스

P6 제품군 프로세서 (및 이후 최신 프로세서)는 다음과 같은 추가 메모리 작업이 항상 원자 적으로 수행되도록 보장합니다.

  • 캐시 라인에 맞는 캐시 된 메모리에 대한 정렬되지 않은 16 비트, 32 비트 및 64 비트 액세스

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

데비안에 읽기 / 쓰기 잠금 문서 설치

분류에서Dev

C에서 읽기-쓰기 잠금의 스레드 안전 파괴

분류에서Dev

CPython C 확장 유형에서 속성 읽기 / 쓰기 전에 잠금 획득

분류에서Dev

Lisp에서 해제하지 않고 읽기-쓰기 잠금을 잡는 방법은 무엇입니까?

분류에서Dev

커널에서 읽기 쓰기 잠금을 사용하는 교착 상태

분류에서Dev

6502가 쓰기 전에 스택에서 읽는 이유는 무엇입니까?

분류에서Dev

Java에서 잠금은 비 휘발성 위치에 대한 읽기 및 쓰기의 올바른 순서를 보장합니까?

분류에서Dev

'잠금'슬라이더가없는 읽기 전용 SD 카드 우회

분류에서Dev

잠금없이 여러 스레드에서 파일에 쓰기

분류에서Dev

이미 읽기 전용으로 마운트 된 읽기-쓰기 모드에서 장치를 다시 마운트하는 방법은 무엇입니까?

분류에서Dev

XmlDocument에서 무시되는 읽기 전용 속성

분류에서Dev

Realm에서 병렬 읽기 및 쓰기로 인한 일관성없는 결과

분류에서Dev

파생 클래스에서 읽기 전용 속성을 쓰기 가능하게 만드는 방법은 무엇입니까?

분류에서Dev

잠금없이 bool 속성을 읽는 동안 스레드 안전성

분류에서Dev

잠금 개체가 읽기 전용이어야하는 이유는 무엇입니까?

분류에서Dev

NHibernate 낮잠에서 역 및 읽기 전용 속성은 무엇을합니까?

분류에서Dev

주입 된 클래스의 메서드에 대한 읽기 / 쓰기 잠금

분류에서Dev

배치 파일-USB를 읽기 / 쓰기에서 읽기 전용으로 또는 그 반대로 전환

분류에서Dev

기존 쓰기 데이터베이스에서 CQRS에서 읽기 데이터를 생성하는 방법은 무엇입니까?

분류에서Dev

읽기 전용 트랜잭션에서 INSERT를 실행할 수 없습니다-Laravel 읽기 / 쓰기

분류에서Dev

아주 가끔 메모리에 쓰는 경우에도 읽기 전에 항상 잠금이 필요합니까?

분류에서Dev

읽기 전용 필드에서 동시 읽기 및 공유 객체의 읽기 / 쓰기 필드에 쓰기

분류에서Dev

잠금 기반 프로그램이 올바른 스레드 안전 조각을 구성하지 않는 이유는 무엇입니까?

분류에서Dev

읽기 전용에서 읽기 / 쓰기로 다시 마운트하는 것이 잠재적으로 위험합니까?

분류에서Dev

명령 줄 창에서 읽기 전용 파일 읽기 쓰기 만들기

분류에서Dev

종속성 잠금 플러그인에서 해결 전략을 사용하기 위해 Gradle 분리 구성을 얻는 방법은 무엇입니까?

분류에서Dev

쓰기 후 닫기 전에 파일에서 읽기

분류에서Dev

Objective C의 속성 (자신에 대해서는 읽기 쓰기, 다른 사람에 대해서는 읽기 전용)

분류에서Dev

카산드라 버전 3.11.4의 테이블에서 읽기 수, 쓰기 수를 얻는 JMX mbean은 무엇입니까?

Related 관련 기사

  1. 1

    데비안에 읽기 / 쓰기 잠금 문서 설치

  2. 2

    C에서 읽기-쓰기 잠금의 스레드 안전 파괴

  3. 3

    CPython C 확장 유형에서 속성 읽기 / 쓰기 전에 잠금 획득

  4. 4

    Lisp에서 해제하지 않고 읽기-쓰기 잠금을 잡는 방법은 무엇입니까?

  5. 5

    커널에서 읽기 쓰기 잠금을 사용하는 교착 상태

  6. 6

    6502가 쓰기 전에 스택에서 읽는 이유는 무엇입니까?

  7. 7

    Java에서 잠금은 비 휘발성 위치에 대한 읽기 및 쓰기의 올바른 순서를 보장합니까?

  8. 8

    '잠금'슬라이더가없는 읽기 전용 SD 카드 우회

  9. 9

    잠금없이 여러 스레드에서 파일에 쓰기

  10. 10

    이미 읽기 전용으로 마운트 된 읽기-쓰기 모드에서 장치를 다시 마운트하는 방법은 무엇입니까?

  11. 11

    XmlDocument에서 무시되는 읽기 전용 속성

  12. 12

    Realm에서 병렬 읽기 및 쓰기로 인한 일관성없는 결과

  13. 13

    파생 클래스에서 읽기 전용 속성을 쓰기 가능하게 만드는 방법은 무엇입니까?

  14. 14

    잠금없이 bool 속성을 읽는 동안 스레드 안전성

  15. 15

    잠금 개체가 읽기 전용이어야하는 이유는 무엇입니까?

  16. 16

    NHibernate 낮잠에서 역 및 읽기 전용 속성은 무엇을합니까?

  17. 17

    주입 된 클래스의 메서드에 대한 읽기 / 쓰기 잠금

  18. 18

    배치 파일-USB를 읽기 / 쓰기에서 읽기 전용으로 또는 그 반대로 전환

  19. 19

    기존 쓰기 데이터베이스에서 CQRS에서 읽기 데이터를 생성하는 방법은 무엇입니까?

  20. 20

    읽기 전용 트랜잭션에서 INSERT를 실행할 수 없습니다-Laravel 읽기 / 쓰기

  21. 21

    아주 가끔 메모리에 쓰는 경우에도 읽기 전에 항상 잠금이 필요합니까?

  22. 22

    읽기 전용 필드에서 동시 읽기 및 공유 객체의 읽기 / 쓰기 필드에 쓰기

  23. 23

    잠금 기반 프로그램이 올바른 스레드 안전 조각을 구성하지 않는 이유는 무엇입니까?

  24. 24

    읽기 전용에서 읽기 / 쓰기로 다시 마운트하는 것이 잠재적으로 위험합니까?

  25. 25

    명령 줄 창에서 읽기 전용 파일 읽기 쓰기 만들기

  26. 26

    종속성 잠금 플러그인에서 해결 전략을 사용하기 위해 Gradle 분리 구성을 얻는 방법은 무엇입니까?

  27. 27

    쓰기 후 닫기 전에 파일에서 읽기

  28. 28

    Objective C의 속성 (자신에 대해서는 읽기 쓰기, 다른 사람에 대해서는 읽기 전용)

  29. 29

    카산드라 버전 3.11.4의 테이블에서 읽기 수, 쓰기 수를 얻는 JMX mbean은 무엇입니까?

뜨겁다태그

보관