개발/잡다개발

Synchronization Tools

----___<<<<< 2020. 6. 18. 16:31

 

Critical Section Problem 은 thread들이 공통 변수를 변경하고 파일의 쓰기 작업들을 수행하는 구역에서 한 Thread가 Critical Section에 들어갔을 경우, 다른 Thread들은 해당 구역 접근이 배제되어야 합니다.

 

위의 경우를 해결하기 위해 Peterson's Solution 이 사용됩니다. 2개의 Thread가 있을 때 flag를 사용하여 접근을 배제합니다.

 

Mutext Lock이란 임계구역에 들아가기 전에 lock을 획들하고 나올때는 lock을 반환합니다.

available 변수를 가지고 lock의 가용 여부를 판단합니다.

 

Semaphore(세마포어) 

 

카운팅 세마포어는 프로세스가 임계구역에 들어갈 때 wait값이 감소하고, lock을 반납할 때(signal) 값이 증가합니다. 세마포어가 0이 되면 모든 자원들이 사용되고 있다는 의미입니다.

 

 

 

 

 

 

 

 

참조

[1] - https://m.blog.naver.com/PostView.nhn?blogId=doublebee1&logNo=220350527360&proxyReferer=https:%2F%2Fwww.google.com%2F

[2] - https://hongku.tistory.com/18

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

참조

[1] - https://darkluster.tistory.com/51

 

'개발 > 잡다개발' 카테고리의 다른 글

함수와 메소드의 차이  (0) 2020.06.24
Synchronization Examples  (22) 2020.06.18
CPU Scheduling  (0) 2020.06.18
ICMP  (0) 2020.06.14
TCP UDP  (0) 2020.06.14