운영체제 - 10
Updated:
강의
http://www.kocw.net/home/search/kemView.do?kemId=1226304
운영체제 - 입출력 시스템
0. 하드 디스크 구조
- 하드디스크의 내부에 여러 개의 원판 형태로 구성
- 원판은 track으로 구성되어 있음. track을 통해서 데이터을 read/write함
- 각 원판의 track들을 작게 쪼개면 섹터(Sector)라고 함
- 섹터는 하드디스크의 가장 작은 저장 장소 단위
- 섹터는 보통 512 바이트로 되어 있음
- 상대적으로 같은 동심원 상에 있는 위치를 실린더(Cylinder)라고 함
- 섹터에서 데이터를 읽고 쓰는 것을 디스크 head라고 함
1. Disk Scheduling
1.1 Access Time 구성
- Seek time : 헤드를 해당 실린더로 움직이는데 걸리는 시간
- Rotational latency : 헤드가 원하는 섹터에 도달하기까지 걸리는 회전 지연 시간
- Transfer time : 실제 데이터의 전송 시간
1.2 Disk bandwidth
- 단위 시간 당 전송된 바이트의 수
1.3 Disk Scheduling
- 헤드가 데이터가 있는 track에 접근하는 시간이 가장 오래 걸림
-
이를 seek time이라고 하는 것인데 이것을 최소화하는 것이 목표
- seek time은 곳 seek 거리
2. Disk Structure
1.2.1. logical block
- 디스크 외부에서 보는 디스크의 단위 저장 단위 공간
- 하드 디스크에 실제 저장되는 sector와 1:1 맵핑되어 있다.
1.2.2 Sector
- logical block이 물리적인 디스크에 매핑된 위치
- 섹터 0은 최 외곽 실린더의 첫 트랙에 있는 첫 번째 섹터이다.
3. Disk Management
3.1 physical formatting (Low-level formatting)
- 디스크를 컨트롤러가 읽고 쓸 수 있도록 섹터들로 나누는 과정
- 각 섹터는 헤더 + 실제 data + trailer로 구성
- 헤더와 trailer는 섹터 number, ECC(error-correcting code) 등의 정보가 저정되며 컨트롤러가 직접 접근 및 운영
3.2 Partitioning
- 디스크를 하나 이상의 실린더 그룹으로 나누는 과정
- OS는 이것을 독립적 Disk로 취급(logical disk)
- 우리가 하드디스크를 C드라이브 D드라이브 나눠서 쓰는 것을 말함
3.3 Logical formatting
- 파일 시스템을 만드는 것
- FAT, inode, free space 등의 구조 포함
3.4 Booting
- DRAM은 전원이 나가면 사라지는 메모리
- ROM은 DRAM 옆에 붙어 있으며 전원이 나가도 사라지지 않은 작은 메모리
-
ROM에는 운영체제의 위치를 가지고 있는 메모리
- ROM에 있는 “small bootstrap loader”의 실행
- 섹터 0을 load 실행
- 섹터 0은 full Bootstrap loader program
- OS를 디스크에서 load하여 실행
4. FCFS (First Come First Served)
- 운영체제 1을 참조
5. SSTF (Shortest Seek Time First)
- 운영체제 1을 참조
6. SCAN
- 운영체제 1을 참조
- 문제점 : 실린더 위치에 따라 대기 시간이 다르다. 방금 처리가 끝난 구간을 지나는데 바로 직전 위치에서 요청이 들어옴. 그럼 다시 돌아올때까지 엄청 기다려야 함.
7. CSCAN
- SCAN처럼 한 쪽 끝에서 다른쪽으로 이동하는데 역으로 돌아가지고 않고 다시 처음부터 시작하며 처리
8. N-SCAN
- 이동은 SCAN과 같다.
- 다른 점은 이동하면서 들어온 요청은 그때마다 처리하는 것이 아닌 다음 돌아 올때 처리
9. C-LOOK
- SCAN처럼 움직이나 양 쪽 끝에 마지막 요청까지만 움직임
10. C-LOOK
- CSCAN처럼 움직이나 맨 처음 부터 시작이 아닌 시작에서 가장 가까운 요청부터 시작
11. 디스크 스케줄링 알고리즘의 결정
- LOOK, C-LOOK 등이 일반적으로 디스크 입출력이 많은 시스템에서 효율적으로 알려져 있음
- 디스크 스케줄링 알로리즘은 필요할 경우 다른 알고리즘으로 쉽게 교체할 수 있도록 OS와 별도의 모듈로 작성되는 것이 바람직하다
12. SWAP - SPACE management
-
Disk를 사용하는 두 가지 이유
- 메모리의 volatile(휘발성)한 특성 -> 파일 시스템
- 프로그램 실행을 위한 메모리 공간 부족 -> 스왑 space(area)
-
Swap space
- 가상 메모리 시스템에서는 디스크를 메모리의 연장 공간으로 사용
- 파일 시스템 내부에 둘 수 도 있으나 별도 파티션 사용이 일반적
- 공간 효율성보다 속도 효율성이 우선
- 일반 파일보다 훨씬 짧은 시간만 존재하고 자주 참조됨
- 따라서 block의 크기 및 저장 방식이 일반 파일 시스템과 다름
13. RAID (Redundant Array of Independent Disks)
-
독립적인 디스크들의 불필요한 배열?
-
여러 개의 디스크를 묶어서 사용
13.1 목적
- 디스크 처리 속도 향상 : 분산 저장. 병렬적으로 읽어 옴.(interleaving, striping)
- 신뢰성 향상 : 하나의 디스크가 고장시 다른 디스크에서 읽어옴 (mirroring, shadowing)