목차
아래 글은 하드 디스크 드라이브(HDD)의 기본 구조와 디스크 스케줄링에 대한 포괄적인 이해를 제공한다. 먼저, HDD의 동작 원리와 주요 구성요소를 설명하며, 이를 바탕으로 디스크 스케줄링의 필요성과 목표를 살펴본다. 다양한 스케줄링 알고리즘의 작동 방식과 각각의 장단점을 분석함으로써, 실제 시스템 환경에서 디스크 입출력 성능을 최적화하는 방법을 학습하게 된다.
참고 자료
https://babytiger.netlify.app/posts/hdd/
https://limkydev.tistory.com/165
1. HDD
1-1. HDD 동작 영상
1-2. HDD 기본 구조
- 플로피 디스크와는 달리 금속(알루미늄 재질)의 원반형 디스크가 드라이브 내에 고정됨
- 디스크는 상당히 민감해서 공기중의 먼지나 습기만으로도 에러를 일으킬 수 있어 청정실에서 조립되며 외부 공기는 필터를 통해서만 들어갈 수 있도록 만들어 진다.
1-3. HDD 주 구성요소 상세 설명
- 플래터
- 실 데이터 저장
- 위 아래 면 모두 사용
- 옆에서 봤을 때 여러 장의 원판이 겹쳐져 있다
- 플래터의 지름은 보통 1.8 ~ 3.5 inch 사이이다.
- 플래터는 항상 한 방향으로만 회전하며, 이 회전 방향은 변하지 않는다. 플래터의 회전은 데이터 접근 시 디스크 헤드가 특정 섹터 위를 지나갈 때 데이터를 읽거나 쓸 수 있게 하는 데 필요하다.
- 트랙
- 각각의 플래터는 마치 운동장과 같이 일정한 동심원 간격으로 트랙이 분할되어 있다.
- 한 트랙의 넓이는 84 나노미터 정도
- 섹터
- 트랙은 또다시 섹터(Sector)로 나뉘어 진다.
- 섹터는 디스크의 최소 저장공간 단위로
- 보통 512 bytes(영문자 약 500자) 크기이다
- 트랙과 섹터별로 고유 번호가 존재하고 이 정해진 번호로 데이터가 기록된 혹은 기록될 부분을 구별한다.
- 부트 섹터
- 0번째 섹터에는 부트 섹터(boot sector) 또는 부트 블록(boot block)이라 불리우고 컴퓨터 부팅시 필요한 중요 데이터들이 저장되어 있다.
- 0번째 섹터(IPL: Initial program Loader)가 문제가 생긴다면 그 디스크는 사용할 수 없다
- 클러스터
- 클러스터는 여러 섹터가 모인 논리적 단위를 뜻한다.
- OS에서 실제 데이터를 저장하는 단위는 섹터가 아닌 클러스터(cluster)를 사용한다.
- 클러스터는 OS별로 달리 표현된다.
- 실린더(Cylinder)
- 회전 축에 동일한 거리에 있는 트랙들
- 이 트랙들을 연결하면 원통형같은 모형이 되기에 실린더라 불린다
- 액추에이터
- 해드가 정확한 트랙 위를 표류 할 수 있게 도와주는 역할
- Actuator가 제어 신호를 받게 되면 Arm을 특정한 위치까지 이동시킨다.
- 스핀들
- 플래터를 돌려주는 장치
- 플래터를 일정한 속도(5,400 RPM to 10,000 RPM)로 회전시켜주는 역할
- HDD가 정상 동작하려면 플래터가 돌아가는 속도가 너무 빠르거나 느리면 안된다
- 스핀들은 모터(moter)와 직접적으로 연결된 축이다.
- 스핀들 모터가 규정된 속도에 도달 되었을 때에야만 HDD의 모든 동작이 기동된다.
- 스핀들 모터의 회전수가 빠르다는 것은 데이터를 읽고 기록하는 속도가 빠르다는 것과 동일하다.
- 헤드
- 데이터를 읽고 쓰는 장치
- 플래터 위 아래를 읽을 수 있도록 플래터 * 2 개의 헤드가 있음
- 보이스코일
- 액추에이터를 움직이게 하는 장치
- 회로케이블
- 암과 헤드를 전자적으로 논리보드와 연결
- 커넥터
- 전원 커넥터 : 하드디스크에 전원 공급
- 데이터 커넥터 : 하드디스크와 컴퓨터 사이의 데이터 전송 단자
2. 디스크 스케줄링?
- 디스크 스케줄링은 다수의 입출력 요청을 효율적으로 처리하기 위해 어떤 순서로 디스크의 읽기/쓰기 작업을 할지 결정하는 과정을 말한다.
- 이 과정을 통해 시스템의 전반적인 성능을 향상시키고, 디스크의 마모를 최소화하며, 사용자나 응용 프로그램의 대기 시간을 줄일 수 있다. 따라서, 운영 체제 설계와 구현에서 중요한 부분을 차지한다.
- 디스크 스케줄링은 컴퓨터 과학에서 운영 체제 영역에 속한다.
- 파일 시스템 관리와 I/O(입출력) 시스템 관리의 일부로 볼 수 있다.
2-1. 디스크 스케줄러의 목표
- 하드 디스크 검색으로 낭비되는 시간을 최소화
- 특정한 프로세스의 입출력 요청의 우선순위를 정함
- 디스크 대역을 실행중인 각 프로세스에 할당
- 정해진 기한까지 요청 처리
2-2. 종류
1) FCFS(First Come First Served)
큐에 가장먼저 요청이 온 순서대로 서비스
장점 : 알고리즘이 다른 기법보다 단순하며, 공평하게 요청을 처리한다.
단점 : 비용이 많이 발생되어, 비효율적
queue : 98, 183, 37, 122, 14, 124, 65, 67
current head starts at : 53
2) SSTF(Shortest Seek Time First)
현재 헤드에서 가장 가까운 트랙의 요청을 먼저 처리
즉 현재 헤드셋을 처리하고, 다음 요청 중에 이동거리가 가장 적은거리에 있는 트랙을 처리
장점 : Seek Time 이 적다. 트랙을 찾는 시간을 최소화 할 수 있고, 처리량을 극대화할 수 있다.
단점 : 안쪽 및 바깥쪽에 있는 요청들은 기아 현상이 발생할 수 있다. 응답 시간 편차가 크다.
queue : 98, 183, 37, 122, 14, 124, 65, 67
current head starts at : 53
헤드셋이 53부터 시작해서 다음 요청중 가장 가까운 65를 처리하고 그다음 67을 처리한다.
이렇게 가까운 요청부터 처리를 하다보니 seek time은 적을 수 있으나, 바깥쪽에 있는 요청들은 기아상태가 될 수 있다.
3) SCAN
헤드 진행방향에 있는 요청을 처리하고, 다시 반대 방향으로 틀어 반대방향에 있는 요청들을 처리
헤드의 이동 자체는 엘레베이터와 닮아서 엘레베이터 기법이라고도 한다.
장점 : SSTF의 바깥쪽 트랙의 기아가능성을 제거할 수 있고, 응답시간의 편차를 줄일 수 있다.
단점 : 양 쪽 끝 트랙 가운데 위치한 트랙보다 대기 시간이 길어진다. 엘레베이터로 비유하자면, 맨 꼭대기 층이 중간층보다 응답시간이 늦어질 수 있다는 뜻.
헤드셋이 0 쪽인 방향으로 진행하고 있었기 때문에, 0 방향 상에 있는 트랙들을 먼저 처리한다.
헤드셋은 0 까지 도달하고 나서야 반대방향인 199로 향하며 반대방향 상에 있는 트랙들을 처리한다.
여기서 주목할 것은 20, 23, 30, 43 이다.
이미 요청이 들어온 것이 아니라, 이후에 치고 들어와도 가는 방향에 아직 지나치지 않고 있다면 요청을 처리한다.
4) C-SCAN
항상 한쪽 방향에서 반대방향으로 진행하며 트랙 요청 처리
즉 바깥쪽에서 안쪽으로 진행하며 요청을 처리한다.
SCAN의 변형된 형태로 조금더 시간을 균등하게 배분할 수 있다.
장점 : 응답시간의 편차가 매우 적음, SCAN보다 시간균등성이 좋음
단점 : 안쪽이나, 바깥쪽으로 처리할 요청이 없어도 헤드셋이 끝까지 이동하기 때문에 비효율적
53 헤드셋이 0방향으로 시작하면 0 방향상의 요청을 처리하고 0에 도달한다.
SCAN은 0에 도착하면 반대방향으로 방향을 틀었겠지만, C-SCAN은 다시 199 지점으로가서 같은 방향인 0 방향으로 다시 트랙을 처리한다.
여기서 주목할 것은 SCAN과 다르게 중간에 치고들어오는 요청이 있어도 요청을 처리하지 않고 큐에 모았다가 일전에 요청한 것들을 다 처리한 후 처리한다.
5) LOOK, C-LOOK
- 각각 SCAN과 C-SCAN을 보완하기 위한 스케쥴링 기법
- 각각 LOOK과 C-LOOK은 끝단을 방문하지 않음
- 장점 : 불필요한 헤드 이동시간 제거
- 단점 : 끝단까지 가야할지 말아야할지 판단하는데 오버헤드 소요
LOOK (SCAN 변형)
C-LOOK (C-SCAN 변형)
6) N-STEP SCAN
- SCAN 기법 기반
- 시작 전 대기중인 요청들을 우선적으로 처리하고,
- 처리하는 과정 중 들어온 요청은 모아서, 반대방향으로 진행할 때 처리
- SSTF, SCAN 보다 응답시간의 편차가 적음
- 특정 방향에서의 많은 요청으로 인해 반대방향에 들어온 요청들에 대해 기아현상을 방지
7) 에션바흐(Eschenbach) 기법
- 부하가 큰 항공시스템을 위해 개발됨
- 탐색시간 및 회전지연시간도 최적화 할 수 있는 기법
8) SLTF(Shortest Latency Time Fisrt) 기법
- 디스크 헤드가 틀정 실린더에 도착하면 그 실린더 내 여러 트랙에 대한 요청을 검사한 후, 회전 지연시간이 가장 짧은 요청부터 서비스 하는 기법
- 대표적인 회전 지연 시간 최적화 기법
- 헤드의 이동이 거의 없어, 고정 헤드 장치인 드럼에 사용
'컴퓨터 과학 > 운영체제' 카테고리의 다른 글
[운영체제] 프로세스와 메모리 구조(5): 프로세스 스케줄링(Process Scheduling) (0) | 2024.04.27 |
---|---|
[운영체제] 프로세스와 메모리 구조(4): 프로세스 제어 블록(PCB) (0) | 2024.04.27 |
[운영체제] 프로세스와 메모리 구조(3): 프로세스와 스레드 (1) | 2024.04.27 |
[운영체제] 프로세스와 메모리 구조(2): 커널 공간과 사용자 공간 (0) | 2024.04.27 |
[운영체제] 프로세스와 메모리 구조(1): 메모리와 저장공간 계층구조(Memory Hierachy) (0) | 2024.04.27 |