Download presentation
Presentation is loading. Please wait.
Published byRuth Marsh Modified over 9 years ago
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 초 동안 동작시킨 모습입니다. 각각의 철학자들은 현재 자신의 상 태를 출력합니다. 최종적으로 주어진 동작시간 동안 식사한 총 횟수를 출력해 줍니다.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.