Abstract View of System Components

Similar documents
Microsoft PowerPoint - o6.pptx

Microsoft PowerPoint - o6.pptx

10주차.key

intro

untitled

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

6주차.key

Lab 3. 실습문제 (Single linked list)_해답.hwp

리눅스 프로세스 관리

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

JVM 메모리구조

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - o6.pptx

Chapter #01 Subject

Chap06(Interprocess Communication).PDF

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

Microsoft PowerPoint - StallingsOS6e-Chap06.ppt [호환 모드]

Microsoft Word - FunctionCall

강의10

1장. 유닉스 시스템 프로그래밍 개요

Microsoft PowerPoint - StallingsOS6e-Chap05.pptx

chap 5: Trees

Synchronization

Operating System Lab 2

282서비스업관리-마트


자식농사웹완

chungo_story_2013.pdf

*중1부

2

Çѱ¹ÀÇ ¼º°øº¥Ã³µµÅ¥

...._



전반부-pdf

표1.4출력

003-p.ps

<4D F736F F F696E74202D20312E20B0E6C1A6C0FCB8C15F3136B3E2C7CFB9DDB1E25F325FC6ED28C0BA292E >

_

12월월간보고서내지편집3

중앙도서관소식지겨울내지33

에너지포커스 2007년 가을호


01_당선자공약_서울

인권문예대회_작품집4-2




목차

A°ø¸ðÀü ³»Áö1-¼öÁ¤

±¹³»°æÁ¦ º¹»ç1

¿¡³ÊÁö ÀÚ¿ø-Âü°í ³»Áö.PDF

전반부-pdf

뉴스레터6호

Microsoft PowerPoint 하반기 크레딧 전망_V3.pptx

50차 본문 최종

양성내지b72뼈訪?303逞

³»Áöc03âš

fsb9¿ù³»ÁöÃÖÁ¾Ãâ

¾ç¼º-¾÷¹«Æí¶÷-³»¿ëÃà¼Ò4

전도대회자료집


< DBAB4B9ABC3BB5FBAB9B9ABB0FCB8AEB8C5B4BABEF32D33B1C72E706466>

표1~4

<3344C7C1B8B0C6C320BFE4BEE02D E706466>

µ¶ÀÏÅëÀÏÁý1~2Æíq36£02Ð


PowerPoint 프레젠테이션

API 매뉴얼

Abstract View of System Components

슬라이드 1

<4D F736F F D20C3A520BCD2B0B32DC0CCB7B2B0C5B8E9B3AAB6FBBFD6B0E1C8A5C7DFBEEE322E646F63>

금오공대 컴퓨터공학전공 강의자료

PowerPoint Presentation

C# Programming Guide - Types

Microsoft Word - ASG AT90CAN128 모듈.doc

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

No Slide Title

Microsoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600

슬라이드 1

Microsoft PowerPoint - 11_Thread

Infinity(∞) Strategy

Lab 4. 실습문제 (Circular singly linked list)_해답.hwp

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

13_3+4(완)

UI TASK & KEY EVENT


C 언어 프로그래밊 과제 풀이

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

Microsoft PowerPoint APUE(Intro).ppt

PowerPoint 프레젠테이션

2007_2_project4

Microsoft PowerPoint - 8ÀÏ°_Æ÷ÀÎÅÍ.ppt

좀비프로세스 2

HW5 Exercise 1 (60pts) M interpreter with a simple type system M. M. M.., M (simple type system). M, M. M., M.

ABC 11장

09´ëÇк°¼Ò°³-¼�¿ïÄ·2

9월뉴스수정-1

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

Transcription:

운영체제실습 - Synchronization - Real-Time Computing and Communications Lab. Hanyang University jtlim@rtcc.hanyang.ac.kr dhchoi@rtcc.hanyang.ac.kr beespjh@gmail.com

Introduction 조교소개 이름 : 임정택 Tel : 010-4780 - 9294 E-Mail : jtlim@rtcc.hanyang.ac.kr 이름 : 최대호 Tel : 010-9872 - 9353 E-Mail : dhchoi@rtcc.hanyang.ac.kr 이름 : 박준형 Tel : 010-2859 - 6858 E-Mail : beespjh@gmail.com 실습관련질문시제목을아래의양식에맞춰서메일을보내주세요 ex> [ 운영체제 ] 학번 _ 이름 2 2

실습계획 주차 내용 과제 1주차 실습소개, 환경구성 2주차 시스템콜추가, 과제설명 3주차 시스템콜분석 (fork 분석 ), 과제설명 4주차 스케줄러 5주차 스케줄러 6주차 프로세스통신 7주차 프로세스통신 8주차 중간고사휴강 9주차 Syncronization 10주차 Syncronization 11주차 메모리관리 12주차 메모리관리 13주차 파일시스템 or 디바이스드라이버 14주차 파일시스템 or 디바이스드라이버 15주차 휴강대비 16주차 기말고사휴강 3 3

Contents Process Synchronization Mutex Semaphore 과제 4 4

Process Synchronization 데이터의일관성을위해 shared data 에대한동시접근을제어하는것 일관성을유지하기위해서는관련된프로세스들이순차적으로실행되는보장하는방법이요구됨 5 5

The Critical-Section Problem N 개의프로세스들은서로 shared data 를사용하기위해경쟁한다. shared data 에접근하는코드부분을 critical section 이라고한다. critical section 은한번에하나의프로세스만접근가능하다. 6 6

The Critical-Section Problem 시스템은동시에두개의프로세스가 critical section 코드부분을수행하지않게해야함. 각각의프로세스들은동기화를위해사용하기위한변수를공유한다. General process P i entry section : critical section 에 들어가기위한요청을수행 exit section : critical section 의수 행이끝난후출구부분 remainder section : 코드의나머 지부분 7 7

Mutex Critical section 으로들어가기위한하나의키. 어떤 thread 가키를얻어서 critical section 에진입하면, 다른 thread 는키를얻을때까지기다리게됨. 8 8

Mutex Mutex mechanism 9 9

Mutex functions Header File : pthread.h Mutex 초기화 int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *mutexattr); mutex : 초기화할 mutex 의 pointer mutexattr : mutex 의특성을설정할때사용 ( 사용하지않을경우 NULL) Mutex lock int pthread_mutex_lock(pthread_mutex_t *mutex); Mutex unlock int pthread_mutex_unlock(pthread_mutex_t *mutex); Mutex 제거 int pthread_mutex_destory(pthread_mutex_t *mutex); 사용하고난뒤 mutex 와 resource 해제 모든함수는성공시 0 을 return 10 10

Mutex 11 11

Mutex pthread compile gcc command 에서 -lpthread 옵션을추가 12 12

Semaphore Mutex 와같이 critical section 에대한접근을제한하는키로활용됨 integer variable S 를가지며, 2 개의 atomic operation 을통해접근제어가수행됨 P(S) : wait function V(S) : signal function 13 13

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 를감소시키고리턴값을반환한다는점이다르다. 14 14

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를모두해제 15 15

Semaphore Example 16 16

Semaphore Example 결과 17 17

The Dining Philosopher Problem 여러프로세스가동시에돌아갈때교착상태가나타나는원인을직관적으로보여주는문제 다섯명의철학자가앉아있고, 철학자의양옆에는젓가락이하나씩놓여져있음 최대네명의철학자가동시에식사를할수있다 양쪽젓가락이모두사용가능할때에만젓가락을잡을수있다. 철학자가식사를하기위해서는양옆의 2 개의젓가락을동시에들어야함 18 18

과제 주어진 Skeleton Code 와 Semaphore API 를이용하여, Dining Philosopher Problem 을해결 앞에나온해결책들이외에 Deadlock 을해결하면서더효율적인알고리즘이있다면그것을사용해도무방 철학자들이균등하게식사한다. 각각의철학자는 HUNGRY, EATING, THINKING 상태를가진다. 초기상태는 THINKING 이다. 젓가락을놓는순간, THINKING 상태로돌입한다. THINKING -> HUNGRY, EATING -> THINKING 의상태변화는 10~100msec 후일어난다. 19 19

과제 Skeleton Code> 20 20

과제 Skeleton Code> 21 21

과제 잘못된알고리즘으로이문제를해결하려고하면아래와같이 Deadlock 이발생할수있다. 22 22

과제 Example> 오른쪽그림은 10 초동안동작시킨모습이다. 각각의철학자들은현재자신의상태를출력한다. 최종적으로주어진동작시간동안식사한총횟수를출력해준다. 23 23

과제 Due: 2017/05/16 23:59:59 보고서 과제내용요약 코드작성부분에대한스크린샷과설명 최종결과스크린샷 ( 터미널창에서의결과화면 ) Code 전문은 git 에올려야함 24 24