운영체제 강의노트 교재 : 운영체제 ( 개정판 ) 출판사 : 한빛미디어 (2010 년 11 월발행 ) 저자 : 구현회 소프트웨어학과원성현교수 1
9 장 입출력시스템과 디스크관리 소프트웨어학과원성현교수 2
1. 입출력시스템 입출력모듈 입출력모듈 입출력채널 (I/O channel) 또는입출력프로세서 프로세서를대신하여입출력모듈이입출력과관련된복잡한일을처리 입출력제어기 (I/O Controller) 또는장치제어기 (Device Controller) 입출력모듈이단순히프로세서의입출력과관련된일을담당 입출력모듈의필요성 프로세서와입출력장치는실행속도가다름 실행속도가다른여러장치에대한조정을하지못하면데이터손실이발생함 입출력장치들은시스템버스에연결되지않고입출력모듈을통해연결됨 입출력장치에따라제어방식과운영방식이다르기때문 소프트웨어학과원성현교수 3
1. 입출력시스템 프로세서 인터럽트 캐시 시스템버스 입출력버스 입출력제어기입출력제어기입출력제어기입출력제어기 메인메모리 네트워크 입출력모듈구성 소프트웨어학과원성현교수 4
1. 입출력시스템 입출력모듈의기능 입출력장치의제어 입출력모듈이외부장치의타이밍과데이터형식, 기계적인세부사항을처리해주기때문에프로세서는단순히파일열기, 파일닫기명령만을이용하여장치제어가능 프로세서와의통신 프로세서로부터수행해야할명령어를전달받고, 관련된메시지를인식하기위한기능제공 명령어해독 데이터교환 상태보고 주소인식 데이터버퍼링 주기억장치또는프로세서와입출력장치의속도차를해결하기위해입출력데이터를위해주기억장치의일부를제공 오류검출 종이걸림, 불량디스크트랙등과같은기계적인결함, 전송중에발생하는전송결함등을해결 전송결함해결을위해가장일반적으로사용하는방법은패러티비트 소프트웨어학과원성현교수 5
1. 입출력시스템 프로세서와입출력장치의속도조절방식 프로그램제어입출력 폴링 (polling) 방식이라고도함 프로세서내부에있는입출력데이터와주소레지스터를입출력모듈과연결한형태로주소레지스터와버스사이에서데이터를직접전송할수있는가장간단한형태 프로세서보다상대적으로느린입출력장치의입출력동작상태를확인하기위해상태비트를주기적으로검사 포트상태레지스터확인 입출력장치미준비 플래그조사 데이터전송 입출력장치준비 소프트웨어학과원성현교수 6
1. 입출력시스템 인터럽트기반입출력 입출력장치가작업을완료한다음에작업과관련된상태와결과를메모리에저장하고, 인터럽트를발생시켜프로세서에통보 프로그램제어입출력방식보다빠름 1 프로세서 장치드라이버입출력초기화 ( 입출력시작 ) 2 입출력제어기 입출력초기화 ( 입출력시작 ) 7 프로세서실행중명령어수행후인터럽트조사 인터럽트수신 ( 인터럽트처리기에게제어전환 ) 5 4 3 입출력준비, 출력완료또는오류 인터럽트처리기가자료처리 ( 인터럽트로부터복귀 ) 6 인터럽트된작업의처리및다시시작 소프트웨어학과원성현교수 7
1. 입출력시스템 DMA(Direct Memory Access) 입출력 프로그램제어입출력과인터럽트기반입출력방식은데이터전송과관리를프로세서가담당 프로세서부담가중 DMA 방식은프로세서가읽기및쓰기정보, 입출력주소및메모리주소, 길이등을 DMA 제어기에주면 DMA 제어기가직접처리 프로세서 DMA 제어기디스크제어기메인메모리 1 Address 버퍼 5 인터럽트종료시 Count Control 4 2 3 버스 소프트웨어학과원성현교수 8
1. 입출력시스템 입출력채널 프로그램제어입출력과 DMA 비교 프로그램제어입출력방식은최소한의하드웨어만으로구현가능하고, 저속장치에적용하기용이 DMA 는데이터전송을담당하는외부제어기가필요하고, 고속장치에적용하기용이 현대컴퓨터시스템에서는입출력채널방식을사용 다른프로세서의도움없이독자적으로입출력동작수행 프로세서 채널경로 제어장치 ( 다중장치 ) 서브시스템 제어장치 메인메모리 채널경로 제어장치 장치장치장치 소프트웨어학과원성현교수 9
2. 자기디스크 자기디스크의물리적구조 디스크외형 디스크팩 소프트웨어학과원성현교수 10
2. 자기디스크 하드디스크구조 플래터 소프트웨어학과원성현교수 11
2. 자기디스크 디스크접근시간 디스크접근시간 (Disk Access Time) 디스크상의원하는위치로접근하는데소요되는시간 Access Time = 탐색시간 (Seek Time) + 회전지연시간 (Rotation al Latency) + 전송시간 (Transfer Time) 탐색시간은원하는데이터가있는실린더 ( 또는트랙 ) 를찾는데소요되는시간 회전지연시간은해당실린더에서원하는섹터를찾는데소요되는시간 전송시간은실제데이터를전송하는데소요되는시간 디스크접근시간을줄이는방법 탐색시간을줄이는방법 회전지연시간을줄이는방법 일반적으로는탐색시간의비중이크기때문에디스크스케줄링알고리즘은헤드의이동거리를줄이는쪽으로발전해왔음 최근회전지연시간을줄이려는노력이생김 소프트웨어학과원성현교수 12
3. 디스크스케줄링 디스크스케줄링전략 선입선처리스케줄링 (FCFS : First Come First Served) 도착한순서대로서비스 단순하게적용할수있는장점은있으나디스크헤드의이동이많아서효율적이지못함 Head Position Sequence : 98 183 37 122 14 124 65 67 0 14 37 53 65 67 98 122 124 183 199 총헤드이동 : 640 소프트웨어학과원성현교수 13
3. 디스크스케줄링 최소탐색시간우선스케줄링 (SSTF : Shortest Seek Time First) 현재의헤드위치에서가장가까운위치로이동하여서비스 효율적인장점은있지만현재헤드의위치에서먼트랙에있는작업은기아 (starvation) 에빠질수있음 현재위치에서가장가까운트랙으로이동하는것이가장효율적이라는보장은없음 Head Position Sequence : 98 183 37 122 14 124 65 67 0 14 37 53 65 67 98 122 124 183 199 총헤드이동 : 236 소프트웨어학과원성현교수 14
3. 디스크스케줄링 스캔스케줄링 (SCAN) 현재디스크헤드의진행방향으로만이동하고끝에다다랐을때방향을바꾸어서비스 엘리베이터알고리즘이라고도함 Head Position Sequence : 98 183 37 122 14 124 65 67 0 14 37 53 65 67 98 122 124 183 199 총헤드이동 : 252 소프트웨어학과원성현교수 15
3. 디스크스케줄링 순환스캔스케줄링 (C-SCAN) 현재디스크헤드의진행방향으로만이동하고끝에다다랐을때다시반대쪽끝으로와서동일한방향으로서비스 Head Position Sequence : 98 183 37 122 14 124 65 67 0 14 37 53 65 67 98 122 124 183 199 총헤드이동 : 183 + α 소프트웨어학과원성현교수 16
3. 디스크스케줄링 룩스케줄링 (LOOK, C-LOOK) 현재디스크헤드의진행방향으로만이동하고더이상의요청이없을때이동방향을바꾸어서비스 룩 (Look) 이란진행방향으로이동하기전요청이있는지없는지를확인하는작업 Head Position Sequence : 98 183 37 122 14 124 65 67 0 14 37 53 65 67 98 122 124 183 199 총헤드이동 : 153 + α 소프트웨어학과원성현교수 17
3. 디스크스케줄링 회전최적화 SSTF 나스캔등전통적인디스크스케줄링알고리즘은디스크헤드의이동을최소화함으로써대기시간과총처리시간을단축시키려고함 현재의디스크시스템은탐색시간 ( 디스크헤드이동시간 ) 이매우빨라져서회전지연시간과엇비슷하게되었으므으로회전지연시간을단축시켜서시간을단축시킬수있음 최소지연시간우선스케줄링 (SLTF : Shortest Latency Time First) 동일한실린더내에서는가장인접한섹터를서비스하여회전지연시간단축 교재 451 쪽 [ 그림 9-20] 참조 최소위치결정시간우선스케줄링 (SPTF : Shortest Positioning Time First) 탐색시간과회전지연시간을모두합해서시간이가장짧은요청에대해먼저서비스 교재 453 쪽 [ 그림 9-22] 참조 소프트웨어학과원성현교수 18
3. 디스크스케줄링 디스크스케줄링알고리즘의선택 일반적으로는 SSTF 알고리즘이가장효율적으로알려져있음 스캔또는 C- 스캔은디스크를많이사용하는, 입출력작업이빈번한시스템에적합 어느알고리즘이든알고리즘의성능은요청되는서비스의형태와요청수에의존 디스크사용빈도가적은경우는알고리즘간의성능차이가거의발생하지않음 이런경우는 FCFS 가가장효율적임 디스크서비스의요청은파일할당방식과도밀접함 연속적인파일할당방식은디스크의인접한공간에서자주입출력이발생하기때문에디스크헤드의이동은적으나공간활용도가낮음 링크파일이나색인파일의경우에는디스크전체에걸쳐파일이수록되기때문에디스크헤드이동거리는길지만디스크공간활용도는효율적임 소프트웨어학과원성현교수 19
4. RAID RAID 계층 RAID(Redundant Array of Independent 또는 Inexpensive Disk) 1987 년 UC 버클리의 Patterson, Gibson, Katz 에의해발표되어논문 A Case for Redundant Arrays of Inexpensive Disks 에서등장한기술로여러개의물리적디스크를하나의논리적디스크로인식하는기술 1~5 단계로제안된자기기억장치의새로운기술과 SLED(Single Large Expensive Disk) 를비교하여설명 그후로여러업체에서제안한 0, 6, 10 수준등이있는데여러디스크를병렬로연결하여사용하는기법으로서접근 (access) 속도와데이터보존신뢰가우수할수록높은등급을받는 5 단계로구분 데이터를여러개의하드디스크에분할저장하여전송속도를향상시키고시스템가동중생길수있는디스크의오류를시스템정지하지않고교체가능 소프트웨어학과원성현교수 20
4. RAID RAID 0 일명 stripping 이라고도불리는데 strip 이라고하는일정한크기의섹터또는물리적블록단위로나누어연속적인배열첨자와대응되도록순환할당 논리적으로연속된 strip 들의집합을 stripe 라고함 데이터를중복저장하지는않으므로특정디스크에서장애가발생하면데이터는손실됨 데이터손실이다소발생해도시스템효율에크게지장을주지않는동영상시스템과같은응용에적합 A E I M B F J N C G K O D H L etc 소프트웨어학과원성현교수 21
4. RAID RAID 1 일명 mirroring 이라고도불리는데 RAID0 과같이기본적으로 stripping 을사용하면서미러디스크 (mirror disk) 를가짐 미러디스크란복사본을말함 읽기동작은동일한내용을가진 2 개의디스크에서병렬처리되므로성능향상 한쪽디스크에서장애가발생해도다른한쪽디스크를사용할수있으므로시스템안정성이향상되지만디스크공간이두배이상필요함 시스템드라이브와같은중요한파일을운영할때적합 A E I M A E I M B F J N B F J N C G K O C G K O D H L etc D H L etc 멀티미디어공학과소프트웨어학과원성현교수 22
4. RAID RAID 2 해밍코드를이용해서패리티비트 (parity bit) 를별도로저장해서오류검증 기본적으로는파일을분할해서분산저장하고, 패리티비트만저장하고있는디스크의정보를통해오류가있는지를확인 최근에는 SCSI 드라이브에도자체적인오류검출능력을갖고있기때문에 RAID2 는보편적으로사용되는계층은아님 A0 B0 C0 D0 A1 B1 C1 D1 A2 B2 C2 D2 A3 B3 C3 D3 ECC/AX ECC/BX ECC/CX ECC/DX ECC/AY ECC/BY ECC/CY ECC/DY ECC/AZ ECC/BZ ECC/CZ ECC/DZ 멀티미디어공학과소프트웨어학과원성현교수 23
4. RAID RAID 3 오류검출과수정을위해별도의드라이브한개를패리티드라이브로사용 내장된오류정정코드정보는오류를감지하는데사용하며, 데이터복구는다른드라이브에기록된정보의 XOR 을계산하여수행 대형레코드가많이사용되는단일사용자시스템과다량의데이터전송이요구되는 CAD 나이미지작업에적절한계층 스트립 0 스트립 1 스트립 2 스트립 3 A0 B0 C0 D0 A1 B1 C1 D1 A2 B2 C2 D2 A3 B3 C3 D3 Parity 생성 A Parity B Parity C Parity D Parity 멀티미디어공학과소프트웨어학과원성현교수 24