반응형
Disk 구조
logical block
- 디스크의 외부에서 보는 디스크의 단위 정보 저장 공간들이다.
- 주소를 가진 1차원 배열처럼 취급하며 정보를 전송하는 최소 단위이다.
sector
- logical block이 물리적인 디스크에 매핑된 위치이다.
- sector 0은 가장 바깥쪽의 실린더의 첫 트랙에 있는 첫 번째 섹터이다.
Disk 관리
physical formatting
- 디스크를 컨트롤러가 읽고 쓸 수 있도록 섹터들로 나누는 과정이다.
- 각 섹터는 header와 실제 data 및 trailer로 구성된다.
- header와 trailer는 sector number, ECC(Error-correcting Code)등의 정보가 저장되며 controller가 직접 접근 및 운영한다.
Partitioning
- 디스크를 하나 이상의 실린더 그룹으로 나누는 과정이다.
- OS는 이것을 독립적인 disk로 취급한다. (논리적 disk)
logical formatting
- 파일시스템을 만드는 것을 말한다.
- FAT, inode, free space 등의 구조를 포함한다.
Booting
- ROM에 있는 small bootstrap loader의 실행을 말한다.
- sector 0(boot block)을 로드해서 실행한다.
- sector 0은 full Bootstrap loader program 이다.
- OS를 디스크에서 load 해서 실행한다.
Disk Scheduling
디스크를 접근하는 Access time은 3가지로 구성된다.
- Seek time: 헤드를 해당 실린더로 움직이는데 걸리는 시간이다. (디스크를 읽고 쓰는데 걸리는 거의 모든 시간)
- Rotational latency: 헤드가 원하는 섹터에 도달하기까지 걸리는 회전지연시간이다.
- Transfer time: 실제 데이터의 전송 시간을 말한다.
Disk bandwidth: 단위 시간 당 전송된 바이트의 수를 말한다.
Disk Scheduling: seek time을 최소화하는 것이 목표이다.
Disk Scheduling Algorithm
FCFS(First Come First Service): 들어온 순서대로 처리하는 알고리즘이다.
SSTF(Shortest Seek Time First): 현재 헤드 위치에서 가장 가까운 요청을 먼저 처리한다. (starvation이 발생할 수 있다.)
SCAN
- disk arm이 디스크 한쪽 끝에서 다른쪽 끝으로 이동하며 가는 길목에 있는 모든 요청을 처리한다.
- 다른 한쪽 끝에 도달하면 반대반향으로 이동하며 오는 길목에 있는 모든 요청을 처리한다.
- 실린더 위치에 따라 대기 시간이 다르다는 문제점이 있다.
C-SCAN(Circular SCAN)
- 헤드가 한쪽 끝에서 다른쪽 끝으로 이동하며 가는 길목에 있는 모든 요청을 처리한다.
- 다른쪽 끝에 도달했으면 요청을 처리하지 않고 곧바로 출발점으로 다시 이동한다.
- 이동거리는 길어지지만 SCAN보다 균일한 대기 시간을 제공한다.
N-SCAN
- SCAN의 변형 알고리즘이다.
- 일단 arm이 한 방향으로 움직이기 시작하면 그 시점 이후에 도착한 일은 되돌아올 때 처리한다.
LOCK, C-LOCK
- SCAN의 비효율적인 방식을 개선한 알고리즘이다.
- SCAN이나 C-SCAN은 헤드가 디스크 끝에서 끝으로 이동한다.
- LOCK과 C-LOCK은 헤드가 진행중일때 더이상 그 방향에 요청이 없으면 헤드를 즉시 이동하는걸 말한다.
Disk Scheduling Algorithm 결정
SCAN, C-SCAN 및 LOCK, C-LOCK 등이 일반적으로 디스크 입출력이 많은 시스템에서 효율적인 것으로 알려져 있다.
File의 할당 방법에 따라 디스크 요청이 영향을 받는다.
디스크 스케줄링 알고리즘은 필요할 경우 다른 알고리즘으로 쉽게 교체할 수 있도록 OS와 별도의 모듈로 작성되는 것이 바람직하다.
Swap-Space 관리
Disk를 사용하는 이유는 다음과 같다.
- 메모리는 휘발성이기 때문에 파일 시스템을 사용해서 disk를 사용한다.
- 프로그램 실행을 위해서 메모리 공간이 부족하기 때문이다. swap space용도로 disk를 사용한다.
Swap-Space
가상 메모리 시스템에서는 디스크를 메모리의 연장 공간으로 사용한다.
파일시스템 내부에 둘 수도 있으나 별도 파티션 사용이 일반적이다.
- 공간효율성보다는 속도 효율성이 우선이기 떄문이다.
- 일반 파일보다 훨씬 짧은 시간만 존재하고 자주 참조된다.
- 따라서, block의 크기 및 저장 방식이 일반 파일시스템과 다르다.
RAID
RAID(Redundant Array of Independent Disk): 여러개의 디스크를 묶어서 사용하는걸 말한다.
RAID의 사용 목적
- 디스크 처리 속도가 향상된다. (여러 디스크의 block의 내용을 분산 저장하고, 병렬적으로 읽어 오기 때문이다.)
- 신뢰성이 향상된다.
- 동일 정보를 여러 디스크의 중복 저장하는데, 하나의 디스크가 고장시 다른 디스크에서 읽어오면 되기 때문이다.
- 단순한 중복 저장이 아니라 일부 디스크의 parity를 저장하여 공간의 효율성을 높일 수 있다.
반응형
'Computer Science > Operating System' 카테고리의 다른 글
[OS] 가상 메모리(swap) 사용 시 CPU 점유율이 폭증하는 이유 (0) | 2023.09.14 |
---|---|
[CS] 운영체제 - 파일 시스템 (0) | 2022.09.06 |
[CS] 운영체제 - 가상 메모리 (0) | 2022.09.06 |
[CS] 운영체제 - 메모리 관리 (0) | 2022.09.06 |
[CS] 운영체제 - Deadlock (0) | 2022.09.01 |