Presentation is loading. Please wait.

Presentation is loading. Please wait.

Real-Time Computing and Communications Lab., Hanyang University Real-Time Computing and Communications Lab., Hanyang University.

Similar presentations


Presentation on theme: "Real-Time Computing and Communications Lab., Hanyang University Real-Time Computing and Communications Lab., Hanyang University."— Presentation transcript:

1 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Operating System 13 주차 - Process Synchronization (2)- Real-Time Computing and Communications Lab. Hanyang University yjuly0708@hanyang.ac.kr rooterby@gmail.com

2 2 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 2 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Contents  Process Synchronization  Bounded-Buffer Problem  The Dining-Philosophers problem  Quiz #1

3 3 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 3 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Process Synchronization  데이터의 일관성을 위해 shared data 에 대한 동시 접근을 제어하는 것  일관성을 유지하기 위해서는 관련된 프로세스들이 순차적으로 실행되 는 보장하는 방법이 요구됨

4 4 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 4 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr The Critical-Section Problem  N 개의 프로세스들은 서로 shared data 를 사용하기 위해 경쟁한다.  shared data 에 접근하는 코드 부분을 critical section 이라고 한다.  critical section 은 한번에 하나의 프로세스만 접근 가능하다.

5 5 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 5 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr The Critical-Section Problem  시스템은 동시에 두 개의 프로세스가 critical section 코드 부분을 수 행하지 않게 해야 함.  각각의 프로세스들은 동기화를 위해 사용하기 위한 변수를 공유한다.  General process P i  entry section : critical section 에 들어가기 위한 요청을 수행  exit section : critical section 의 수 행이 끝난 후 출구 부분  remainder section : 코드의 나머 지 부분

6 6 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 6 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Semaphore  Mutex 와 같이 critical section 에 대한 접근을 제한하는 키 로 활용됨  integer variable S 를 가지며, 2 개의 atomic operation 을 통해 접근 제어가 수행됨  P(S) : wait function  V(S) : signal function

7 7 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 7 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Semaphore functions  Header file : semaphore.h  Semaphore 초기화  int sem_init(sem_t *sem, int pshared, unsigned int value);  sem : 초기화할 semaphore 객체  pshared : 0 이 아니면 프로세스들 간에 semaphore 를 공유. 0 이면 프로세스 내부 에서만 semaphore 를 사용  value : semaphore 초기값  Semaphore value 감소  int sem_wait(sem_t *sem);  int sem_trywait(sem_t *sem);  sem_wait : semaphore 값이 0 보다 크면 프로세스는 semaphore 를 얻은 뒤 감소 시키고 즉시 리턴값을 반환한다. semaphore 값이 0 이면 0 보다 커지거나 signal 이 발생할 때까지 대기한다.  sem_trywait : sem_wait 과 기본적으로 같지만, 즉시 semaphore 를 감소시키고 리 턴값을 반환한다는 점이 다르다.

8 8 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 8 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Semaphore functions  Semaphore value 증가  int sem_post(sem_t *sem);  Semaphore value 저장  int sem_getvalue(sem_t *sem, int *sval);  sval 이 가리키는 위치에 sem 의 현재값을 저장  Semaphore 삭제  int sem_destory(sem_t *sem);  semaphore 를 포함해 관련된 resource 를 모두 해제

9 9 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 9 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Bounded-Buffer Problem  임시 저장공간인 Buffer 에 여러 명의 생산자와 소비자들이 접근하는 동기화 문제  Producer-Consumer Problem 이라고도 함  Producer 는 Buffer 에 데이터 하나를 저장하고, Consumer 는 Buffer 의 데이터를 하나 불러온다.

10 10 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 10 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Bounded-Buffer Problem  Variables  Shared data : Binary semaphore 를 통해 데이터에 대한 동기화 를 제어 Mutex : Buffer 에 대한 접근을 통제 ( 초기값 1)  Resource count : Buffer 에 있는 data 의 개수를 표시하기 위해 Integer semaphore 를 사용 S_empty : Buffer 에 저장할 공간이 있는지를 나타내는 semaphore ( 초 기값 n) S_full : Buffer 에 가져올 데이터가 있는지를 나타내는 semaphore ( 초 기값 0)

11 11 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 11 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Bounded-Buffer Problem  Producer 프로세스  Consumer 프로세스

12 12 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 12 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Bounded-Buffer Problem  Example  Program : N 명의 producer 와 consumer 가 BUFFER_SIZE 의 크 기를 가지는 buffer 를 공유하는 프로그램  Shared data : 서로가 공유하는 buffer 와 critical section 인 gitem  Producer : 1 초 간격으로 gitem 을 1 증가시키고 buffer 에 삽입  Consumer : 2 초 간격으로 buffer 의 데이터를 하나 가져옴

13 13 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 13 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Bounded-Buffer Problem  Example

14 14 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 14 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Bounded-Buffer Problem  Example

15 15 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 15 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Bounded-Buffer Problem  Example

16 16 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 16 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Bounded-Buffer Problem  Example 결과

17 17 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 17 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr The Dining Philosopher Problem  여러 프로세스가 동시에 돌아갈 때 교착 상태가 나타나는 원 인을 직관적으로 보여주는 문제  다섯 명의 철학자가 앉아 있고, 철학자의 양 옆에는 젓가락이 하나씩 놓여져 있음  철학자가 식사를 하기 위해서는 양 옆의 2 개의 젓가락을 동시에 들고 있어야 함

18 18 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 18 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr The Dining Philosopher Problem  Possible solutions  Allow at most four philosophers to be sitting simultaneously at the table  Allow a philosopher to pick up her chop sticks only if both chopsticks are available  Use an asymmetric solution: an odd philosophers picks up first her left chopstick and then her right chopstick, whereas an even philosopher picks up her right chopstick and then her left chopstick

19 19 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 19 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Quiz #1  주어진 Skeleton Code 와 Semaphore API 를 이용하여, Dining Philosopher Problem 을 해결해보자.  앞에 나온 해결책들 이외에 Deadlock 을 해결하면서 더 효율적인 알고리즘 이 있다면 그것을 사용해도 된다.  철학자들이 균등하게 식사한다.  각각의 철학자는 HUNGRY, EATING, THINKING 상태를 가진다.  초기 상태는 THINKING 이다.  젓가락을 놓는 순간, THINKING 상태로 돌입한다.  THINKING -> HUNGRY, EATING -> THINKING 의 상태변화는 10~100msec 후 일어난다.

20 20 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 20 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Quiz #1  Skeleton Code>

21 21 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 21 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Quiz #1  Skeleton Code>

22 22 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 22 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Quiz #1  잘못된 알고리즘으로 이 문제를 해결하려고 하면 아래와 같이 Deadlock 이 발생할 수 있습니다.

23 23 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 23 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Quiz #1  Example>  오른쪽 그림은 10 초 동안 동작시킨 모습입니다.  각각의 철학자들은 현재 자신의 상 태를 출력합니다.  최종적으로 주어진 동작시간 동안 식사한 총 횟수를 출력해 줍니다.


Download ppt "Real-Time Computing and Communications Lab., Hanyang University Real-Time Computing and Communications Lab., Hanyang University."

Similar presentations


Ads by Google