diff options
| -rw-r--r-- | Documentation/translations/ko_KR/memory-barriers.txt | 94 |
1 files changed, 7 insertions, 87 deletions
diff --git a/Documentation/translations/ko_KR/memory-barriers.txt b/Documentation/translations/ko_KR/memory-barriers.txt index bc0be1d3053f..a7a813258013 100644 --- a/Documentation/translations/ko_KR/memory-barriers.txt +++ b/Documentation/translations/ko_KR/memory-barriers.txt | |||
| @@ -523,11 +523,11 @@ CPU 에게 기대할 수 있는 최소한의 보장사항 몇가지가 있습니 | |||
| 523 | 즉, ACQUIRE 는 최소한의 "취득" 동작처럼, 그리고 RELEASE 는 최소한의 "공개" | 523 | 즉, ACQUIRE 는 최소한의 "취득" 동작처럼, 그리고 RELEASE 는 최소한의 "공개" |
| 524 | 처럼 동작한다는 의미입니다. | 524 | 처럼 동작한다는 의미입니다. |
| 525 | 525 | ||
| 526 | core-api/atomic_ops.rst 에서 설명는 어토믹 오퍼레이션들 중는 완전히 | 526 | atomic_t.txt 에 설명 어토믹 오퍼레이션들 중 완전히 순서잡힌 것들과 |
| 527 | 순서잡힌 것들과 (배리어를 사용하지 않는) 완화된 순서의 것들 외에 ACQUIRE 와 | 527 | (배리어를 사용하지 않는) 완화된 순서의 것들 외에 ACQUIRE 와 RELEASE 부류의 |
| 528 | RELEASE 부류의 것들도 존재합니다. 로드와 스토어를 모두 수행하는 조합된 어토믹 | 528 | 것들도 존재합니다. 로드와 스토어를 모두 수행하는 조합된 어토믹 오퍼레이션에서, |
| 529 | 오퍼레이션에서, ACQUIRE 는 해당 오퍼레이션의 로드 부분에만 적용되고 RELEASE 는 | 529 | ACQUIRE 는 해당 오퍼레이션의 로드 부분에만 적용되고 RELEASE 는 해당 |
| 530 | 해당 오퍼레이션의 스토어 부분에만 적용됩니다. | 530 | 오퍼레이션의 스토어 부분에만 적용됩니다. |
| 531 | 531 | ||
| 532 | 메모리 배리어들은 두 CPU 간, 또는 CPU 와 디바이스 간에 상호작용의 가능성이 있을 | 532 | 메모리 배리어들은 두 CPU 간, 또는 CPU 와 디바이스 간에 상호작용의 가능성이 있을 |
| 533 | 때에만 필요합니다. 만약 어떤 코드에 그런 상호작용이 없을 것이 보장된다면, 해당 | 533 | 때에만 필요합니다. 만약 어떤 코드에 그런 상호작용이 없을 것이 보장된다면, 해당 |
| @@ -1854,8 +1854,7 @@ Mandatory 배리어들은 SMP 시스템에서도 UP 시스템에서도 SMP 효 | |||
| 1854 | 이 코드는 객체의 업데이트된 death 마크가 레퍼런스 카운터 감소 동작 | 1854 | 이 코드는 객체의 업데이트된 death 마크가 레퍼런스 카운터 감소 동작 |
| 1855 | *전에* 보일 것을 보장합니다. | 1855 | *전에* 보일 것을 보장합니다. |
| 1856 | 1856 | ||
| 1857 | 더 많은 정보를 위해선 Documentation/core-api/atomic_ops.rst 문서를 참고하세요. | 1857 | 더 많은 정보를 위해선 Documentation/atomic_{t,bitops}.txt 문서를 |
| 1858 | 어디서 이것들을 사용해야 할지 궁금하다면 "어토믹 오퍼레이션" 서브섹션을 | ||
| 1859 | 참고하세요. | 1858 | 참고하세요. |
| 1860 | 1859 | ||
| 1861 | 1860 | ||
| @@ -2474,86 +2473,7 @@ _않습니다_. | |||
| 2474 | 전체 메모리 배리어를 내포하고 또 일부는 내포하지 않지만, 커널에서 상당히 | 2473 | 전체 메모리 배리어를 내포하고 또 일부는 내포하지 않지만, 커널에서 상당히 |
| 2475 | 의존적으로 사용하는 기능 중 하나입니다. | 2474 | 의존적으로 사용하는 기능 중 하나입니다. |
| 2476 | 2475 | ||
| 2477 | 메모리의 어떤 상태를 수정하고 해당 상태에 대한 (예전의 또는 최신의) 정보를 | 2476 | 더 많은 내용을 위해선 Documentation/atomic_t.txt 를 참고하세요. |
| 2478 | 리턴하는 어토믹 오퍼레이션은 모두 SMP-조건적 범용 메모리 배리어(smp_mb())를 | ||
| 2479 | 실제 오퍼레이션의 앞과 뒤에 내포합니다. 이런 오퍼레이션은 다음의 것들을 | ||
| 2480 | 포함합니다: | ||
| 2481 | |||
| 2482 | xchg(); | ||
| 2483 | atomic_xchg(); atomic_long_xchg(); | ||
| 2484 | atomic_inc_return(); atomic_long_inc_return(); | ||
| 2485 | atomic_dec_return(); atomic_long_dec_return(); | ||
| 2486 | atomic_add_return(); atomic_long_add_return(); | ||
| 2487 | atomic_sub_return(); atomic_long_sub_return(); | ||
| 2488 | atomic_inc_and_test(); atomic_long_inc_and_test(); | ||
| 2489 | atomic_dec_and_test(); atomic_long_dec_and_test(); | ||
| 2490 | atomic_sub_and_test(); atomic_long_sub_and_test(); | ||
| 2491 | atomic_add_negative(); atomic_long_add_negative(); | ||
| 2492 | test_and_set_bit(); | ||
| 2493 | test_and_clear_bit(); | ||
| 2494 | test_and_change_bit(); | ||
| 2495 | |||
| 2496 | /* exchange 조건이 성공할 때 */ | ||
| 2497 | cmpxchg(); | ||
| 2498 | atomic_cmpxchg(); atomic_long_cmpxchg(); | ||
| 2499 | atomic_add_unless(); atomic_long_add_unless(); | ||
| 2500 | |||
| 2501 | 이것들은 메모리 배리어 효과가 필요한 ACQUIRE 부류와 RELEASE 부류 오퍼레이션들을 | ||
| 2502 | 구현할 때, 그리고 객체 해제를 위해 레퍼런스 카운터를 조정할 때, 암묵적 메모리 | ||
| 2503 | 배리어 효과가 필요한 곳 등에 사용됩니다. | ||
| 2504 | |||
| 2505 | |||
| 2506 | 다음의 오퍼레이션들은 메모리 배리어를 내포하지 _않기_ 때문에 문제가 될 수 | ||
| 2507 | 있지만, RELEASE 부류의 오퍼레이션들과 같은 것들을 구현할 때 사용될 수도 | ||
| 2508 | 있습니다: | ||
| 2509 | |||
| 2510 | atomic_set(); | ||
| 2511 | set_bit(); | ||
| 2512 | clear_bit(); | ||
| 2513 | change_bit(); | ||
| 2514 | |||
| 2515 | 이것들을 사용할 때에는 필요하다면 적절한 (예를 들면 smp_mb__before_atomic() | ||
| 2516 | 같은) 메모리 배리어가 명시적으로 함께 사용되어야 합니다. | ||
| 2517 | |||
| 2518 | |||
| 2519 | 아래의 것들도 메모리 배리어를 내포하지 _않기_ 때문에, 일부 환경에서는 (예를 | ||
| 2520 | 들면 smp_mb__before_atomic() 과 같은) 명시적인 메모리 배리어 사용이 필요합니다. | ||
| 2521 | |||
| 2522 | atomic_add(); | ||
| 2523 | atomic_sub(); | ||
| 2524 | atomic_inc(); | ||
| 2525 | atomic_dec(); | ||
| 2526 | |||
| 2527 | 이것들이 통계 생성을 위해 사용된다면, 그리고 통계 데이터 사이에 관계가 존재하지 | ||
| 2528 | 않는다면 메모리 배리어는 필요치 않을 겁니다. | ||
| 2529 | |||
| 2530 | 객체의 수명을 관리하기 위해 레퍼런스 카운팅 목적으로 사용된다면, 레퍼런스 | ||
| 2531 | 카운터는 락으로 보호되는 섹션에서만 조정되거나 호출하는 쪽이 이미 충분한 | ||
| 2532 | 레퍼런스를 잡고 있을 것이기 때문에 메모리 배리어는 아마 필요 없을 겁니다. | ||
| 2533 | |||
| 2534 | 만약 어떤 락을 구성하기 위해 사용된다면, 락 관련 동작은 일반적으로 작업을 특정 | ||
| 2535 | 순서대로 진행해야 하므로 메모리 배리어가 필요할 수 있습니다. | ||
| 2536 | |||
| 2537 | 기본적으로, 각 사용처에서는 메모리 배리어가 필요한지 아닌지 충분히 고려해야 | ||
| 2538 | 합니다. | ||
| 2539 | |||
| 2540 | 아래의 오퍼레이션들은 특별한 락 관련 동작들입니다: | ||
| 2541 | |||
| 2542 | test_and_set_bit_lock(); | ||
| 2543 | clear_bit_unlock(); | ||
| 2544 | __clear_bit_unlock(); | ||
| 2545 | |||
| 2546 | 이것들은 ACQUIRE 류와 RELEASE 류의 오퍼레이션들을 구현합니다. 락 관련 도구를 | ||
| 2547 | 구현할 때에는 이것들을 좀 더 선호하는 편이 나은데, 이것들의 구현은 많은 | ||
| 2548 | 아키텍쳐에서 최적화 될 수 있기 때문입니다. | ||
| 2549 | |||
| 2550 | [!] 이런 상황에 사용할 수 있는 특수한 메모리 배리어 도구들이 있습니다만, 일부 | ||
| 2551 | CPU 에서는 사용되는 어토믹 인스트럭션 자체에 메모리 배리어가 내포되어 있어서 | ||
| 2552 | 어토믹 오퍼레이션과 메모리 배리어를 함께 사용하는 게 불필요한 일이 될 수 | ||
| 2553 | 있는데, 그런 경우에 이 특수 메모리 배리어 도구들은 no-op 이 되어 실질적으로 | ||
| 2554 | 아무일도 하지 않습니다. | ||
| 2555 | |||
| 2556 | 더 많은 내용을 위해선 Documentation/core-api/atomic_ops.rst 를 참고하세요. | ||
| 2557 | 2477 | ||
| 2558 | 2478 | ||
| 2559 | 디바이스 액세스 | 2479 | 디바이스 액세스 |
