profile image

L o a d i n g . . .

 

 

[스터디 그룹] 혼자 공부하는 프로그래밍 | Facebook

프로그래밍에 관심 있는 분들이 모여있습니다.

www.facebook.com

 

방학 더주세요
 


이번주는 프로세스의 동기화와 교착상태에 대해 알아보았다.
 

프로세스 동기화

- 프로세스들 사이의 수행 시기를 맞추어 실행순서를 제어하고 동시에 접근해서는 안되는 자원에는 하나의 프로세스만 접근할 수 있도록 상호배제 하는것
 

공유자원과 임계구역

- 공유자원: 동시에 실행되는 프로세스들의 자원 (전역변수, 파일 등)
- 임계구역: 동시에 실행하면 문제가 발생하는 자원에 접근하는 코드영역
 
 


 임계구역은 두 개 이상의 프로세스가 동시에 실행되면 안되는 여역이지만, 잘못된 실행으로 인해 여러 프로세스가 동시 다발적으로 임계구역의 코드를 실행하는 경우가 있다. 이를 레이스컨디션이라고 한다.

 

레이스컨디션이 발생하지 않도록 운영체제는 세 가지 원칙 하에 프로세스 자원을 관리한다.

- 상호 배제(mutual exclusion): 한 프로세스가 임계 구역에 진입했다면 다른 프로세스는 임계 구역에 들어올 수 없다.

- 진행(progress): 임계 구역에 어떤 프로세스도 진입하지 않았다면 임계 구역에 진입하고자 하는 프로세스는 들어갈 수 있어야 한다.

- 유한 대기(bounded waiting): 한 프로세스가 임계 구역에 진입하고 싶다면 그 프로세스는 언젠가는 임계 구역에 들어올 수 있어야 한다. (임계구역에 들어오기위해 무한정 대기해서는 안된다.)

 

 


기본미션

뮤텍스락: 하나의 공유자원에 접근하는 프로세스를 상정한 방식

세마포: 공유 자원이 여러개 있는 상황에서 Stop/Go 신호를 이용해 각 공유자원에 접근이 가능한 방식

 

뮤텍스락과 세마포에 대한 설명으로 옳지 않은 것을 고르세요.

4. 반드시 바쁜대기를 해야한다(X) => 반드시 바쁜 대기를 할 필요가 없고 대기상태로 접어들게 할 수도 있다.

반응형
복사했습니다!