목록CS/알고리즘 (1)
코딩하는 오징어
Lock Free 알고리즘(Non-Blocking 알고리즘)
병렬 알고리즘과 관련해서 최근의 연구 결과를 보면 대부분이 Non-Blocking 알고리즘, 즉 여러 스레드가 동작하는 환경에서 데이터의 안정성을 보장하는 방법으로 락을 사용하는 대신 저수준의 하드웨어에서 제공하는 compare-and-swap 혹은 compare-and-set (이후 CAS연산이라고 하겠다.)등의 명령을 사용하는 알고리즘을 다루고 있다. Non-Blocking 알고리즘은 운영체제나 JVM에서 프로세스나 스레드를 스케줄링 하거나 가비지 컬렉션 작업, 그리고 락이나 기타 병렬 자료 구조를 구현하는 부분에서 많이 사용되고 있다. 다음과 같은 순서로 글을 써내려가겠다. 락 기반 알고리즘의 단점 병렬 연산을 위한 하드웨어 지원 JVM에서의 CAS 연산 지원 Non-Blocking 알고리즘 락 기..
CS/알고리즘
2020. 4. 21. 23:58