데이터 엔지니어

[OS Chapter 11] Disk Management and Scheduling(끝) 본문

컴퓨터 과학(Computer science)/운영체제(Operating System)

[OS Chapter 11] Disk Management and Scheduling(끝)

kingsmo 2020. 11. 29. 11:56

Disk Scheduling

 

logical block: 디스크 외부에서는 logical block단위로 바라본다

sector: logical block이 물리적인 디스크 sector에 매핑되어있다. 디스크가 관리하는 최소 단위는 섹터이다.


Disk Management

physical formatting(Low-level formatting)

  • 디스크를 섹터들로 나누는 과정
  • 각 섹터 = header + 실제 데이터(보통 512 bytes) + trailer
  • header와 trailer는 sector number, ECC(Error-Correcting-Code) 등의 정보가 저장 됨. (Controller가 접근 및 운영)

Partitioning

  • 디스크를 하나 이상의 실린더 그룹으로 나누는 과정
  • OS는 이것을 독립적 disk(logical disk)로 취급

Logical formatting

  • 파일시스템을 만드는 것
  • FAT, inode, free space등의 구조 포함

Booting

  • ROM(Memory중 소량의 비휘발성 메모리)에 있는 "small bootstrap loader"의 실행
  • sector 0 (boot block)을 load하여 실행
  • sector 0 은 "full bootstrap loader program"
  • OS를 디스크에서 load하여 실행

Disk Scheduling

Access time 구성

  • Seek time: 헤드를 해당 실린더로 움직이는데 걸리는 시간(가장 큰 시간요소)
  • Rotational latency: 헤드가 원하는 섹터에 도달하기까지 걸리는 회전지연시간
  • Transfer time: 실제 데이터 전송시간

Disk bandwith: 단위 시간당 전송된 바이트의 수

Disk schedulingseek time을 최소화하는 것이 목표


Disk Scheduling Algorithm

실린더 번호를 기준으로 알고리즘을 설명함

FCFS

  • 먼저 들어온 순서대로 처리

출처: 강의

 

SSTF(Shortest Seek Time First)

  • 현재 헤드에서 제일 가까운 위치에 있는 요청을 처리함.
  • starvation문제가 생김

출처: 강의

SCAN

  • 엘리베이터 스케줄링과 유사
  • 헤드가 방향대로 가면서 
  • 헤드가 떠나면 다시 돌아올 때까지 기다려야하는 문제점

출처: https://www.geeksforgeeks.org/difference-between-scan-and-cscan-disk-scheduling-algorithms/

C-SCAN

  • 돌아오는 요청은 처리하지 않고 한쪽 방향으로만 처리하는 방식
  • SCAN보다 균일한 대기 시간을 제공한다.

출처: https://www.geeksforgeeks.org/difference-between-scan-and-cscan-disk-scheduling-algorithms/

N-SCAN - 한 방향으로 움직일 때 들어오는 job들을 되 돌아 올 때 처리

Look and C-Look - SCAN기법들의 단점을 극복, 만약에 끝까지 요청이 없으면 끝까지 가지 않고 바로 방향을 틈

출처: 강의

 

현대 알고리즘은 SCAN 알고리즘들을 기반으로 사용하고 있음

File의 할당 방법에 따라 디스크 요청이 영향을 많이 받음


Swap-Space Management

Disk 사용 이유

  • 메모리의 휘발성
  • 메모리 공간부족

Swap-space

  • 메모리의 연장공간으로 사용
  • 파일 시스템 내부에도 둘 수 있으나 별도 partition 사용이 일반적
  • 속도 효율성이 우선
  • 일반 파일보다 훨씬 짧은 시간만 존재하고 자주 참조됨

RAID(Redundant Array of Independent Disks)

  • 여러개의 디스크를 묶어서 사용
  • 디스크 처리속도 향상: 여러 디스크에 분산 저장 된 것을 병렬적으로 읽어 오기 때문(= interleaving, striping)
  • 신뢰성(Reliability) 향상: 동일 정보를 여러 디스크에 중복 저장, 디스크 고장나면 다른 디스크에서 읽어옴(= mirroring, shadowing)

드디어 7주 간의 운영체제 스터디가 끝이 났습니다.

간단히 총평을 하자면, 반효경 교수님께서 OS에 대해 쉽게 설명해주시고 개괄적인 개념을 잡기에는 매우 좋았던 강의 였습니다. 하지만 deep하게는 설명해 주시지 않아 따로 자료들도 찾아보고 공부도 많이 해야 할 것 같습니다.

OS 책을 읽어보며 여태까지 올린 글들을 다듬으며 머릿속에 OS를 정리해볼 생각입니다.

 

각 스터디원들의 정리본과 스터디하면서 출제했던 문제와 정답들은 밑에 링크에서 확인해 보실 수 있습니다.

감사합니다.

 

github.com/smothly/OS-study-7week-challenge

 

smothly/OS-study-7week-challenge

7주동안 진행 되는 OS 스터디. Contribute to smothly/OS-study-7week-challenge development by creating an account on GitHub.

github.com

Comments