[CsStudy05] Process Synchronization

hk·2022년 6월 15일
0

study-CSOS

목록 보기
1/2
post-thumbnail

Computer Science Group Study
WED 15 June 2022


Process Synchronization 프로세스 동기화

여러 프로세스들이 동시에 데이터에 접근하는 상황에서 어떤 순서로 데이터에 접근하느냐에 따라 결과 값이 달라질 수 있는 상황(Race Condition 경쟁상태)을 막고 공유데이터의 불일치 문제를 예방하고 일관성을 유지하기 위해서는 협력 프로세스 간의 실행 순서를 정해주는 메커니즘인 Process Synchronization(프로세스 동기화)가 필요하다.

데이터의 일관성이란?

한 순간 하나의 데이터의 값이 여러개일 수도 있게 된다. 하나의 변수에 대한 값이 제각각일 수 있게 된다.

Example 예시

  1. 커널모드로 수행 중 인터럽트가 발생하는 경우
  2. 프로세스가 시스템 콜을 호출해서 커널 모드로 수행 중인데 Context switch가 발생하는 경우
  3. 멀티 프로세서에서 공유 메모리 내의 커널 데이터에 접근하는 경우

Critical Section 임계구역

코드 상에서 Race condition이 발생할 수 있는 특정 부분을 말한다.

  1. Mutual Exclusion (상호 배타) : 한 프로세스가 임계구역에서 실행 중이라면 다른 프로세스들은 그들 자신의 임계구역에서 실행될 수 없다.
  2. Progress (진행) : 임계구역에 들어간 프로세스가 없는 상태에서 들어가려는 프로세스가 여러개 있다면 어느 것이 들어갈 지 적절히 결정되어야 한다. 임계구역 해결을 위해 코드 실행을 멈추지 않는 것.
  3. Bounded Waiting (유한 대기) : 이미 임계구역 코드 실행에 들어간 프로세스 외 나머지 프로세스를 위해 이미 실행한 프로세스에 대한 제한을 두는 것.

출처:
http://www.kocw.or.kr/home/cview.do?cid=5c3c30382c7bbcf6
경성대학교 양희재 교수님 OS 수업

https://rebro.kr/176
https://galid1.tistory.com/479
https://en.wikipedia.org/wiki/Dining_philosophers_problem

https://dudumandu0321.tistory.com/7
추천포스팅1 - 수업 내용 디테일한 필기 꼼꼼히 잘 읽어볼 것

https://velog.io/@codemcd/운영체제OS-8.-프로세스-동기화-1
추천포스팅2 - 위 내용을 자바 코드로 구현, 주말에 따라해보자

profile
cloud master가 될 거야! (not 석사)

0개의 댓글