본문 바로가기
반응형

세마포어2

세마포어시 우선순위 역전에대해서 알아보자 일단 테스트 화면을 보고 이야기 하도록 하겠습니다. 세마포어에 접근하는 태스크는 TASK1과 TASK3입니다. TASK2는 세마포어와는 상관없이 그냥 b를 출력하게 했습니다. 태스크 우선순위는 TASK1 > TASK2 > TASK3 순으로 되어있습니다. 가장먼저 TASK1이 세마포어 구간에 접근하여 문자 'a'를 5번 출력하였습니다. TASK1이 우선순위가 가장 높기 때문에 아무런 방해없이 작업을 끝내고 시스탬자원을 다음실행준비 태스크(TASK2)에게 넘겨줬습니다. TASK2는 'b'를 한번 출력하고 다음 실행준비 태스크(TASK3)에게 시스탬자원을 넘겨줬습니다. TASK3는 세마포어구간에 들어가서 'c'를 출력하는 동안에 TASK1과 TASK2의 대기 시간이 모두 돌아와 TASK1,2가 실행준비상태에 .. 2010. 1. 25.
세마포어 구현 구현에 앞서 세마포어에 대해서 간단히 알아보겠습니다. 세마포어라는 말은 많이 들어봤지만 확실하게 이해를 하고 있는 사람이 적은거 같아 간단하게 설명합니다. 일정한 작업영역에 있어서 이 작업영역에서 일할수 있는 태스크의 수가 제한되어있는 지역입니다. 예를 들자면 역시 화장실이 가장 적합할꺼같군요 화장실이 1개 있고 안에 소변기가 5개가 있다고 가정합니다. 그럼 이 화장실에는 최대 5명의 사람이 볼일(?)을 볼수가 있습니다. 하지만 6명이되면 어떻게 될까요? 화장실에 먼저 도착한 순서대로 5명이 볼일을보고 있습니다. 이때 6번째 화장실에 도착한 사람의 행동은 어떨까요? 만약에 이미 볼일을 보고 있는 소변기에 같이 볼일을 본다면.. 이 6번째 사람은 세마포어에 대한 개념이 없는 사람일 겁니다. 하지만 5명중에.. 2010. 1. 22.
728x90
반응형