Readers Writers 7 200316263 200316269 200316341 7 Readers

  • Slides: 19
Download presentation
운영체제 Readers & Writers 7조 배 영 빈(200316263) 서 준 교(200316269) 조 민 혁(200316341)

운영체제 Readers & Writers 7조 배 영 빈(200316263) 서 준 교(200316269) 조 민 혁(200316341)

건국대학교 소프트웨어 운영체제 7조 “Readers & Writers” l “Readers & Writers”? 자원이 두 가지

건국대학교 소프트웨어 운영체제 7조 “Readers & Writers” l “Readers & Writers”? 자원이 두 가지 유형(읽기, 쓰기)의 접근을 허용하는 상 황 -“기록자(Writers)가 기록할 때는 판독자가 읽어서는 안된다” -“판독자(Readers)가 읽는 중에 기록자에 의해 내용이 변경 되어서는 안된다” 1. Many readers are accessing the file concurrently but no writers are currently accesing the database 2. At most one writer (and no readers) is accessing the database.

건국대학교 소프트웨어 운영체제 7조 “Readers & Writers” l 실제 소스 while(1) { sem_wait(db); /*단독

건국대학교 소프트웨어 운영체제 7조 “Readers & Writers” l 실제 소스 while(1) { sem_wait(db); /*단독 엑세스를 얻음(DB 사용허가)*/ printf("writers update database. writers say : Now readers value = %d₩n", (*rc)); sleep(5); sem_post(db); } /*단독 엑세스 반납(DB 사용반납)*/

건국대학교 소프트웨어 운영체제 7조 “Readers & Writers” l 실행 출력값 Readers 실행시, - 현재

건국대학교 소프트웨어 운영체제 7조 “Readers & Writers” l 실행 출력값 Readers 실행시, - 현재 두 개의 세마포어 mutex, db 의 값 출력 - 현재 rc값 출력 semapore mutex data (value = 1). semapore db data (value = 1). reader add, readers count value = 1 -> 2 1 reader : 1 reader is reading now

건국대학교 소프트웨어 운영체제 7조 “Readers & Writers” l readers 실행 중 writers 실행 실행결과

건국대학교 소프트웨어 운영체제 7조 “Readers & Writers” l readers 실행 중 writers 실행 실행결과 Writers Pointer to shared memory has & been obtained. cslab: ~/os/rw(499)% readers Semapore [1] 3178 db data (value=0) cslab: ~/os/rw(500)% Pointer to shared memory has been obtained. 임계구역에서 DB를data 처리하는 semapore mutex (value과정인 = 1). writers update database. semapore db data (value writers = 1). say : Now readers value = 0 은 출력이 되지 않는다. count value = 0 -> 1 reader add, readers 즉, readers 실행 중일now 때는 writers 가 접근이 불가능하다. 1 reader : 1프로세스가 reader is reading Semapore db data (value=0) DB 세마포어가 0임을 Writers 프로세스에서도 확인가능하다!

건국대학교 소프트웨어 운영체제 7조 “Readers & Writers” l writers 독자실행 실행결과 Writers Pointer to

건국대학교 소프트웨어 운영체제 7조 “Readers & Writers” l writers 독자실행 실행결과 Writers Pointer to shared memory has been obtained. Semapore db data (value=1) writers update database. writers say : Now readers value = 0 Writer 만 독자적으로 실행 했을 시, writers의 db처리 문장이 출력되고, db 세마포어 값도 1임을 확인 할 수 있다.