운영체제 - 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 구성

  1. Seek time : 헤드를 해당 실린더로 움직이는데 걸리는 시간
  2. Rotational latency : 헤드가 원하는 섹터에 도달하기까지 걸리는 회전 지연 시간
  3. 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를 사용하는 두 가지 이유

    1. 메모리의 volatile(휘발성)한 특성 -> 파일 시스템
    2. 프로그램 실행을 위한 메모리 공간 부족 -> 스왑 space(area)
  • Swap space

    1. 가상 메모리 시스템에서는 디스크를 메모리의 연장 공간으로 사용
    2. 파일 시스템 내부에 둘 수 도 있으나 별도 파티션 사용이 일반적
    • 공간 효율성보다 속도 효율성이 우선
    • 일반 파일보다 훨씬 짧은 시간만 존재하고 자주 참조됨
    • 따라서 block의 크기 및 저장 방식이 일반 파일 시스템과 다름

13. RAID (Redundant Array of Independent Disks)

  • 독립적인 디스크들의 불필요한 배열?

  • 여러 개의 디스크를 묶어서 사용

13.1 목적

  • 디스크 처리 속도 향상 : 분산 저장. 병렬적으로 읽어 옴.(interleaving, striping)
  • 신뢰성 향상 : 하나의 디스크가 고장시 다른 디스크에서 읽어옴 (mirroring, shadowing)