3 신뢰도 (Reliability) 작업의결과를얼마나정확하고믿을수있는가의요인 4 이용가능도 (Availability) 시스템의전체운영시간중에서실제가동하여사용중인시간의비율 ( 오류없이작동된시간의비율 ) (2) 다중프로그래밍에서의시간 (Time) 대기시간 기다림 A 작업 B 작업 A 작업 B 작업 A 작업 요청시간응답시간실행시간 반환시간 1 응답시간 (Response time) : A작업이처음실행되기까지걸린시간으로반응시간이라고도한다. 2 대기시간 (Waiting time) : A작업을 CPU가실행하지않은시간들을합한시간 3 실행시간 (Running time) : CPU가작업을처리하는시간을합한시간 4 반환시간 (Turn around time) : 실행시간과대기시간을모두합한시간으로작업이완료될때까지걸린시간 (3) Bench Mark Program 컴퓨터시스템이나 CPU, 운영체제등의전반적인성능을측정, 비교하는프로그램을말한다. 운영체제의성능을평가한다면실제처리할작업의환경을가상적으로구축하고가상데이터를입력하여작업의처리량, 반환시간, 신뢰성등을비교평가하게된다. 프로세스개념 (1) 프로세스의정의 1 CPU에의해서현재실행되고있는프로그램 2 PCB( 프로세스제어블록 ) 의존재로서명시되는것 3 프로세서가할당되는개체로서디스패치가가능한단위 4 지정된결과를얻기위한일련의계통적동작 5 목적또는결과에따라발생되는사건들의과정 6 비동기적행위를일으키는주체 8
www.edugosi.co.kr 7 프로시저가활동중인것 8 실행중인프로시저의제어궤적 9 CPU가할당되는실체 운영체제가관리하는최소단위작업 (2) 프로세스상태전이도 (3) 주요프로세스상태 1 준비 (Read) 상태 : 실행하기위해준비하고있는상태 2 실행 (Run) 상태 : 프로세스가 CPU를차지하고있는상태 3 대기 (Block) 상태 : 처리속도가느린 I/O( 입출력 ) 작업중인상태 (4) 용어정리 1 Dispatch : 준비상태에서대기하고있는프로세스중하나가 CPU를할당받아실행상태로변하는시점 2 time run out : 자신에할당된시간만큼 CPU를사용하고준비상태로변하는시점 3 I/O 요구 : 프로세스가 CPU를사용중에 I/O 행위가필요하여대기 ( 보류 ) 상태로이동하는시점 4 Wake up : I/O( 입출력 ) 작업이완료되어준비상태로이동하는시점 5 Spool : 입출력 (I/O) 장치와의속도차를극복하기위한장치로대부분하드디스크가중재 6 Buffering : CPU와입출력장치와의속도차이를줄이기위해메모리가중재 7 Spooling : 출력할데이터를직접프린터에보내지않고디스크에모아두었다가나중에한꺼번에출력함으로써프린터장치공유및프린터처리속도를보완한기법 8 Channel : 입출력만을담당하는소형컴퓨터로간단한명령구조와레지스터, 입출력장치와통신하기위한간단한장치로구성 9
중앙처리장치 (CPU) 스케줄링 (1) 프로세스스케줄링 (process scheduling) 의목적 프로세스스케줄링은 CPU나자원을효과적이며생산성있게사용하기위한소프트웨어적계획이다. 1 모든프로세스들에게공정하게배정해야한다. 2 단위시간당가능한최대의처리가될수있도록해야한다. 3 처리응답시간이신속해야한다. 4 같은종류의작업은거의같은시간과비용으로실행될수있어야한다. 5 오버헤드를최소화해야한다. 6 시스템내의자원이사용하지않는시간이없도록유지해야한다. 7 응답시간과자원의활용간의적절한균형이유지되도록해야한다. 8 프로세스가무한정기다리게하는것을피해야한다. 9 프로세스의상태를파악하여우선순위를부여한다. 10 중요자원을차지하고있는프로세스에게우선권을주어야한다. 11 문제로인해불안하지않은프로세스에게서비스를많이제공하도록한다. 12 부하가많은경우에체증이갑자기발생하지않도록조절해야한다. (2) 성능평가기준 1 CPU 이용률 : CPU를쉬지않고몇퍼센트 ( 범위 40% ~ 90%) 를이용하는가의기준 2 처리능력 (Throughput) : 단위시간당처리할수있는 CPU의작업량 3 대기시간 (Waiting time) : 준비상태에서대기하는시간 4 응답시간 (Response time, 반응시간 ) : 입력에대해처음반응하는시간 5 반환시간 (Turn around time) : 작업을지시하고그결과가되돌아오는시간 (3) 바람직한프로세스스케줄링정책 1 CPU 이용률을늘린다. ( ) 2 처리율을늘린다. ( ) 3 대기시간을줄인다. ( ) 4 응답시간을줄인다. ( ) 5 반환시간을줄인다. ( ) 6 오버헤드를줄인다. ( ) (4) 비선점 (Non Preemptive) 형방식과선점 (Preemptive) 형방식 1 비선점형방식 : CPU를점유하고있을때에는다른프로세스가현재실행중인프로세스를중단시킬수없으며실행이완료될때까지 CPU를독점하는방식으로이방식에는 FIFO, SJF, HRN, 우선순위, 기한부스케줄링방식등이있다. 비선점형방식들은모든프로세스를관리하는데공정하다. 우선순위가높은작업들이중간에입 10
www.edugosi.co.kr 력되어도영향을받지않고정해진시간을모두사용하므로응답시간을예측하기어렵다. 2 선점형방식 : 하나의프로세스가 CPU 를점유하고있을때에는다른프로세스가현 재사용중인프로세스를중단시키고 CPU 를차지할수있는방식으로이방식에는 RR( 라운드로빈 ), SRT 등이있다. 선점형방식들은높은우선순위의프로세스들이 긴급을요할때유용하다. 또한대화식시분할시스템에서도선점형은빠른응답시 간을유지하는데매우중요하다. 이러한이유에서응답시간을예측하기가비선점형 보다용이하다. 3 비교 비선점형 선점형 프로세스가한번할당되면빼앗을수없다. 일괄처리방식에적당하다. 대화형시스템에부적당하다. FIFO, SJF, HRN, 우선순위, 기한부 프로세스를빼앗을수있다. 시간분할처리방식에적당하다. 대화형시스템에적당하다. RR, SRT, 다단계피드백큐 (5) 비선점형 - FIFO(FCFS) 1 알고리즘이가장간단하고구현하기쉽다. 2 작업이짧은작업이나중요한작업을오래동안기다리게할수있다. 3 평균반환시간이길다. (6) 비선점형 - SJF 1 작업이끝나기까지의실행시간추정치가가장작은작업을먼저실행시키는방식 2 FIFO 보다평균대기시간이작지만긴작업의경우 FIFO 기법보다더크고예측이 더욱어렵다. 3 실행시간이많은작업일경우에무한연기현상이발생될수있다. 4 무한연기현상을방지하기위해 Aging( 에이징 ) 기법을사용하여해결한다. 에이징 (Aging) 기법 무한연기현상이란어떠한시스템이든지자원할당스케줄링및 CPU 스케줄링결 정에의해서특정프로세스가무한정기다리는현상을말한다. 이를해결하기위해 서자원이할당되기를오랜시간동안기다린프로세스에대하여기다린시간에비 례하는높은우선순위를부여하여가까운시간안에자원이할당되도록하는기법을 에이징 (Aging) 기법이라고한다. (7) 비선점형 - HRN 우선순위 = 대기시간 + 서비스시간 ( 서비스시간 = 실행시간의추정치 ) 서비스시간 11
(8) 비선점형 - 기한부 (deadline) 1 작업이주어진특별한시간이나만료시간안에완료되도록하는기법이다. 2 프로세스들이마감시간내에처리되지않으면폐기되거나처음부터다시실행해야한다. 3 기한부스케줄링에필요한집약적자원관리는많은오버헤드를일으킬수있다. 4 동시에다수의기한부작업이수행되면스케줄링은매우어려워진다. 5 사용자는그작업에필요한자원에관한정확한정보를시스템에제시하여야한다. (9) 선점형 - 라운드로빈 (RR : Round-Robin) 1 시간할당량이크면비선점의 FIFO 와동일하다. 2 시간할당량이작으면문맥교환수가증가한다. 3 시간할당량이작으면오버헤드가커지게된다. 4 적절한응답시간을보장해주는대화식사용자에게효과적 5 동일한시간을사용하는시분할시스템에효과적 (10) 선점형 - SRT 1 작업이끝나기까지 남아있는 실행시간의추정치가가장작은프로세스를먼저실 행하는방식 2 서비스받은시간을기록해야하기때문에오버헤드증가 3 평균대기시간과대기시간의분산 ( 편차의제곱 ) 도크다. 4 임계치 (threshold value) 를사용 비선점방식인 SJF 와선점방식인 SRT 의비교 SJF 1 해당작업이실행되면작업을중단할수없는비선점 (non-preemptive) 기법 2 작업이끝나기까지의실행시간추정치가가장작은작업을먼저실행시키는방식 3 시분할시스템에적용하기어렵다. SRT 1 해당작업이실행되면작업을중단할수있는선점 (preemptive) 기법 2 작업이끝나기까지의남아있는실행시간의추정치가가장작은프로세스를먼저실행하는방식 3 시분할시스템에유리하다. (11) 선점형 - 다단계피드백큐 (MFQ : Multi level Feedback Queue) 1 선점형방식이다. 2 짧은작업이나입출력위주의작업에우선권을부여하기위해개발된방식이다. 3 큐 ( 대기리스트 ) 가여러개이며우선순위가있다. 4 각큐마다시간할당량 (quantum) 이존재하며낮은큐일수록시간할당량은커진다. 12
www.edugosi.co.kr 5 각각의큐들은종속적으로연결되어있다. 6 CPU 를시간할당량만큼사용한프로세스는낮은큐로이동된다. 7 맨마지막단계의큐는 RR( 라운드로빈 ) 를사용한다. (12) 혼합형 - 다단계큐 (MQ : Multilevel Queue) 1 선점형, 비선점형방식이다. 2 대기리스트 ( 큐 ) 를특성별로여러개를갖는다. 3 대기리스트에우선순위가있다. 4 대기리스트마다독립적인스케줄링을갖는다. 5 대기리스트간에프로세스가이동이안된다. 6 우선순위가가장높은큐에서는비선점형으로사용된다. 병행프로세스 ( 프로세스통신 ) (1) 임계구역 (Critical Section, 위험지구 ) 정의 다중프로그래밍기법에서두개이상의프로세스가운영될때서로공유하게자원 (CPU, 메모리, 디스크, I/O 장치,...) 등을말한다. 프로세스간의통신을할수있는매개변수역할을할수도있다. (2) 임계구역의원칙 1 두개이상의프로세스가동시에사용할수없다. 2 순서를지키면서신속하게사용한다. 3 하나의프로세스가독점하게해서는안된다. 4 사용중에중단, 무한반복되어서도안된다. (3) 상호배제 (Mutual Exclusion) 임계구역 ( 공유자원 ) 을어느시점에서단지한개의프로세스만이사용할수있도록하며, 다른프로세스가현재사용중인임계구역 ( 공유자원 ) 에대하여접근하려고할때이를금지하는행위를상호배제라고한다. (4) 데커 (Dekker) 공유데이터 ( 임계구역 ) 을두개의프로세스가한번씩번갈아가면서접근할수있도록하는방식으로 엄격한교대 라고도한다. 이방법은두개의프로세스중에하나의프 13