티스토리 뷰

[한빛아카데미] 운영체제 책으로 학습한 내용을 정리한 것입니다.

 

* 디스크의 구조

- 보조기억장치로는 자기디스크를 사용하게 되었으며, 자기디스크는 컴퓨터 시스템에서 대용량 보조기억장치뿐만 아니라 온라인 기억장치로도 사용함

(참고) 보조기억장치의 목적 : 방대한 데이터를 영구히 저장하는 것

- 디스크 시스템은 디스크 드라이버, 프로세서, 디스크 제어기로 나눌 수 있음

 1) 디스크 드라이버 : 구동 모터, 액세스 암 이동장치, 입출력 헤드 부분의 기계적인 부분 담당하며, 탐색/기록/판독 등 명령 수행

 2) 프로세서 : 원하는 컴퓨터의 논리적인 상호작용, 즉 원하는 데이터의 위치(디스크 주소)와 버퍼, 판독, 기록 등을 관리

 3) 디스크 제어기 : 디스크 드라이버의 인터페이스 역할로, 프로세서에서 명령을 받아 디스크 드라이버를 동작함

 

[디스크의 종류와 구조]

출처 : https://arainablog.tistory.com/324

 

- 트랙(Track) : 원형 평판 표면에 데이터를 저장할 수 있는 동심원을 가리키며, 자기장의 간섭을 줄이거나 헤드를 정렬하려고 트랙 사이에 일정한 공간을 두어 트랙을 구분함

- 실린더(Cylinder) : 동일한 동심원으로 구성된 모든 트랙, 즉 동일한 위치에 있는 모든 트랙의 집합을 의미하며, 헤드의 움직임 없이 액세스할 수 있는 드라이브의 모든 트랙에 해당됨

- 섹터(Sector) : 트랙을 부채꼴 모양으로 나눈 조각을 의미하며, 데이터 기록이나 전송의 기본 단위로 일반적으로 512Byt의 데이터 영역으로 구성됨 / 고유 번호가 있어 디스크에 저장된 데이터의 위치를 식별할 수 있음

 

* 디스크 액세스 시간

- 회전하는 디스크의 섹터를 액세스 할 수 있는 시간

- 탐색 : 시스템은 헤드를 해당 트랙이나 실린더에 위치시켜 디스크의 원하는 섹터에 액세스

- 탐색 시간 : 탐색하는데 걸리는 시간

- 회전 지연시간 : 헤드가 지정된 트랙에 위치했더라도 원하는 섹터가 입출력 헤드 아래로 회전할 때까지 기다려야 함 

- 전송 시간 : 디스크와 메인 메모리 간의 섹터를 주고받는데 걸리는 시간 

출처 : https://arainablog.tistory.com/324

 

- 이동 디스크의 데이터 액세스 시간 = 탐색 시간 + 회전 지연시간 + 전송 시간

- 고정 디스크의 데이터 액세스 시간 = 회전 지연시간 + 전송 시간

 

* 디스크 스케줄링

- 디스크 스케줄링을 통해 요청을 도착한 순서대로 처리하지 않고, 재정렬함으로써 탐색 시간 최적화, 회전 지연 시간 최적화 및 처리량 향상을 기대할 수 있음

- 스케줄링 평가 기준

 1) 처리량 : 시간당 처리한 서비스 요청 수

 2) 탐색 시간 : 디스크 헤드(암) 이동 시간

 3) 평균 반응 시간 : 요청 후 서비스할 때까지 대기시간

 4) 반응(응답)시간 변화 : 반응시간 예측 정도, 즉 적절한 시간 안에 서비스하여 요청이 무기한 연기되지 않도록 방지함

- 디스크 스케줄링은 탐색 시간 최적화와 회전 지연시간 최적화로 분류할 수 있음

 

* 선입선처리(FCFS, First Come First Served) 스케줄링

- 요청이 도착한 순서에 따라 처리하는 스케줄링

- 프로그래밍하기 쉽고, 어떤 요청도 무기한 연기하지 않고, 본질적으로 공평성을 유지함

- 디스크 요청이 흩어질 때는 실행 시간 오버헤드가 적으며, 서비스 지연을 감소시키는 요청을 재정렬하지 않아서 일반적인 임의의 탐색 패턴 결과로 탐색 시간이 증가하면서 처리량이 감소한다는 단점 존재

출처 : https://arainablog.tistory.com/324

 

* 최소 탐색 시간 우선(SSTF, Shortest Seek Time First) 스케줄링

- 디스크 요청을 처리하려고 헤드가 먼 곳까지 이동하기 전에 현재 헤드 위치에 가까운 모든 요구를 먼저 처리하는 방법

- 최소작업을 우선 수행하므로 디스크 요구의 기아 상태가 발생할 수 있음

- 공정성을 보장할 수 없고, 서비스를 무기한 연기할 수 있으며 응답시간의 높은 분산은 대화형 시스템에서는 받아들일 수 없는 단점

출처 : https://arainablog.tistory.com/324

 

* 스캔(SCAN) 스케줄링

- 헤드가 디스크의 한쪽 끝과 다른 끝 사이를 계속해 왕복하면서 한 방향으로만 서비스하고, 디스크 가장자리에 도달하거나 트랙 0에 도달할 때까지 그 방향의 마지막 트랙까지 서비스한 후 그 역방향으로 전환

- 밀도가 높은 쪽의 요청은 상당히 오랜 시간 기다려야 함 -> 대기 시간이 균등하지 않음

출처 : https://arainablog.tistory.com/324

 

* 순환 스캔(C-SCAN, Circular-SCAN) 스케줄링

- 스캔 스케줄링을 변형하여 대기시간을 좀 더 균등하게 처리하는 방법

- 한쪽 끝에 다다르면 역방향 헤드로 이동하는 것이 아닌 다시 처음부터 요청을 처리함

- 동일한 실린더(트랙) 요청이 연속적으로 발생하면 무기한 연기될 수 있음

출처 : https://arainablog.tistory.com/324

 

* F-SCAN 스케줄링 / N-STEP 스케줄링

- 스캔 스케줄링을 변형하여, 요청이 무기한 연기 되는 경우를 방지함

- F-SCAN 스케줄링 : SCAN 방식으로 특정 방향을 훑을 때, 대기 중인 요청들만 처리

- N-STEP 스케줄링 : SCAN 방식으로 큐에서 처음 N개의 요청을 처리하며 한 방향으로 훑는 과정을 완료하면 다음 N개의 요청 처리

 

* 룩(LOOK/C-LOOK) 스케줄링

- 헤드를 각 방향으로 요청에 따르는 거리만큼만 이동하는 원리

- 현재 방향에서 더는 요청이 없다면 헤드의 이동 방향을 바꾸는 방법

출처 : https://arainablog.tistory.com/324

 

* 최소 지연시간 우선(SLTF, Shortest Latency Time First) 스케줄링

- 모든 요청 중 회전 지연시간이 가장 짧은 요청을 먼저 처리함

- 트랙을 일정한 수의 블록으로 나눈 섹터를 토대로 요청들을 섹터 위치에 따라 큐에 넣은 후 가장 ㄱ가까운 섹터 요청을 먼저 처리함

- 고정 헤드에서는 탐색을 하지 않아 탐색 시간이 없음

출처 : https://arainablog.tistory.com/324

 

* 최소 위치 결정 시간 우선(SPTF, Shortest Positioning Time First) 스케줄링

- 가장 짧은 위치 결정 시간, 즉 탐색 시간과 회전 지연시간의 합이 가장 짧은 요청을 다음 서비스 대상으로 선택함

- 처리량이 많고 평균 반응시간은 짧으며, 가장 안쪽과 바깥쪽 실린더 요청이 무기한 연기될 가능성 존재

출처 : https://arainablog.tistory.com/324

 

* 에센바흐 방법(Eschenbach Scheme)

- 헤드는 순환 스캔 스케줄링처럼 진행하지만 요청과 관계없이 트랙이 한바퀴 회전할 동안 요청을 처리하도록 재배열하는 알고리즘

- 1회전 동안 섹터의 많은 레코드를 처리하여 회전 지연시간을 줄일 수 있음

 

* RAID(Redundant Array of Inexpensive/Independent Dists)

- 운영체제로, 여러 대의 물리적 디스크를 하나의 논리적 디스크로 인식하는 기술

- 하드디스크 여러 개를 논리적 가상 디스크 하나로 구성하여 대용량 저장장치로 사용할 수 있는 방법

- 데이터를 하드디스크 여러 개에 분할/저장하여 전송속도를 향상시키며, 시스템 가동 중 생길 수 있는 디스크 오류를 시스템을 정지하지 않고도 교체 가능하다는 특징을 가짐

- 현재 RAID 0, RAID 1, RAID 0+1, RAID 5를 제외한 나머지 방법은 거의 사용하지 않음

 

* RAID 0 (스트라이핑)

- 일련의 데이터를 논리적 디스크 배열 하나에 일정한 크기로 나눠서 분산 저장하는 방법

- 대기 중인 다수의 입출력 요구를 병렬적으로 처리해 높은 전송률을 유지할 수 있음

- 스트립(Strip) : 크기가 일정한 섹터 또는 물리적 블록 단위

- 스트라이프(Stripe) : 스트립 하나와 각 배열의 구성 요소가 대응하는 논리적으로 연속적인 스트립의 집합

- 스트라이프가 있지만 데이터를 중복해서 기록하지 않아 장애 발생에 대비한 여분의 저장공간 없음

 -> 안정성을 추구하는 RAID 시스템에 부합하지 않음

- 데이터를 입출력할 때 RAID컨트롤러에서 디스크 여러 개로 나눠서 쓰고 읽어 들임

 -> 중요하지 않은 데이터에서 빠른 데이터 입출력 성능을 요구하는 동영상 편집 등에 적합함

출처 : https://arainablog.tistory.com/324

 

* RAID 1(미러링)

- RAID 0처럼 데이터 스트라이핑을 사용하면서 배열 내의 모든 디스크에 동일한 데이터가 있는 미러 디스크(Mirror Disk)를 가짐

- 논리적 스트립은 별도의 디스크 2개에 대응하는데, 미러링(Mirroring)이라고도 함

- 드라이브에 장애가 발생하거나 데이터에 손실이 발생해도 즉시 두번째 디스크로 액세스할 수 있음

- 전체 용량의 절반을 여분의 데이터를 기록하는데 사용하기 때문에 지원하는 논리적 디스크 공간의 두 배가 필요하여 비용 증가

- 시스템 드라이브와 같은 중요한 파일에 적합함

출처 : https://arainablog.tistory.com/324

 

* RAID 5(블록 인터리브된 분산 패리티 블록)

- 데이터를 여러 디스크에 분산 저장하되, 오류 탐지를 위한 패리티(Parity) 정보를 모든 디스크에 나눠 저장하는 방법

- 패리티 정보를 나눠서 저장하기 때문에 패리티를 담당하는 디스크의 병목 현상을 일으키지 않음

- 병렬 입출력이 가능하기 때문에 기록과 읽기가 동시에 가능하며, 데이터 입출력 성능이 아주 빠르면서도 안전성 또한 높은 편으로 파일 서버 등 입출력이 빈번한 업무에 적합함

- 현재 가장 널리 사용하는 RAID방법

출처 : https://arainablog.tistory.com/324

 

* RAID 0+1

- 스트라이핑 방법과 미러링 방법을 혼합한 형태로 각각의 장점을 살린 시스템

 (참고) RAID 0(스트라이핑) 방법의 장점 : 빠른 속도, RAID 1(미러링) 방법의 장점 : 안정적인 복구 기능

- 미러링은 반드시 디스크 수가 똑같아야 하기 때문에 디스크 2개를 사용하여 스트라이핑하려면 최소 디스크가 4개 필요함

- 하드디스크 4개로 구성된 RAID시스템에서 디스크 4개에서 나눠서 읽어오기 때문에 읽기 속도는 빠르며, 미러링으로 동일한 디스크 복사본을 가지고 있어 디스크에 오류가 발생하면 복구 가능함

- 디스크가 여럿 필요하기 때문에 안정성과 빠른 속도가 모두 필요한 중대형 서버에서 많이 사용함

출처 : https://arainablog.tistory.com/324

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함