CS/운영체제

[Chapter 6] 개념 이해를 위한 운영체제 [파일 시스템 - 디스크 관리]

devrabbit22 2025. 3. 3. 03:54
  • 운영체제를 포함하여 대부분의 파일은 디스크 상의 블록 단위로 저장된다.
  • 하나의 파일은 여러 개의 블록으로 구성되기 때문에 하나의 파일을 참조하기 위해서는 파일을 구성하는 모든 블록을 접근하여야 한다. 따라서 디스크 접근 속도는 물리적으로 제한되어 있지만 이를 운영하는 방법에 따라 시스템의 성능이 달라진다. 

디스크 구조 및 접근 시간

디스크는 여러 개의 원판과 헤드로 구성되며 데이터는 헤드에 의해 원판의 표면에 저장된다. 하나의 원판은 동심원을 그리는 여러 개의 트랙으로 나누어지고 트랙은 또 다시 여러 개의 섹터로 나뉘어 사용된다. 

유의할 점

  • 트랙의 길이는 다르지만 트랙 당 섹터의 수는 일정하다. 트랙 및 섹터의 수는 디스크의 특성에 의해 물리적으로 결정되지만 일반적으로 하나의 디스크 원판에는 500 ~ 2000 개의 트랙이 있으며 하나의 트랙에는 10 ~ 100 개의 섹터가 있다.
  • 디스크의 데이터 저장은 섹터 단위로 이루어지며 섹터의 크기는 32B ~ 4KB 까지 다양하지만 일반적으로 512B를 사용한다.

 

  • 위의 이미지에는 섹터의 번호가 연속적으로 할당되어 있지만 불연속적으로 할당되어 있을 수 있다. 그 이유는 연속적으로 할당된 일련의 섹터로부터 데이터를 읽을 경우 이미 읽은 데이터를 전송하는데 약간의 시간이 소요되기 때문이다. 따라서 한 섹터의 데이터를 전송하는데 소요되는 시간만큼의 간격을 두고 다음 섹터 번호를 할당하는 것이 유리하다. 이러한 기법을 디스크 인터리빙(disk interleaving)이라고 하며, 그 간격의 정도를 인터리빙 계수(interleaving factor)라고 부른다.
  • 디스크 헤드에는 고정 헤드(fixed head)와 이동 헤드(moving head)가 있다. 고정 헤드 디스크는 디스크 헤드가 각 트랙마다 하나씩 고정되어 있으며 이동 헤드 디스크는 디스크의 회전축은 고정되어 있고 디스크 헤드가 안팎으로 이동하는 방식이다.
  • 고정 헤드 디스크는 트랙과 트랙 사이의 이동이 필요없기 때문에 이동 헤드 디스크 보다 원하는 섹터를 빠르게 접근할 수 있다. 
  • 고정 헤드는 여러개의 원판으로 구성된 대용량 디스크에 적합하다.
  • 이러한 디스크 헤드의 유형은 운영체제의 디스크 관리 기법은 직접적인 영향을 미치게 된다. 디스크로부터 데이터를 접근하는데 걸리는 시간은 디스크 유형에 따라 약간의 차이가 있지만 일반적으로 다음과 같은 3가지 요소로 구성된다.
  • 접근 시간(access time) = 탐색시간(seek time) + 회전 지연시간(latency time) + 전송 시간(transmission time)

디스크 접근 시간

  • 탐색 시간(seek time)은 접근하려는 섹터가 위치하는 트랙을 탐색하여 디스크의 헤드가 이동하는데 소요되는 시간으로써 고정 헤드 디스크 유형에서는 필요 없다. 회전 지연 시간(latency time)은 접근하려는 섹터가 디스크의 헤드 아래로 회전하는데 소요되는 시간이다. 전송 시간(transmission time)은 디스크의 헤드에 의해서 실제 데이터를 전송하는데 소요되는 시간이다.
  • 이러한 요소들 중에서 디스크 스케줄링에 의한 접근 시간을 단축할 수 있는 것은 탐색 시간과 회전 지연 시간이다. 디스크의 회전 속도(보통 5,000 rpm)는 매우 빠르기 때문에 탐색 시간은 회전 지연 시간보다 탐색 시간을 단축하기 위한 기법이며, 이동 헤드 디스크 유형에 적용된다.

디스크 스케줄링 정책

다중 프로그래밍 환경에서 디스크 입출력에 대한 프로세스들의 요청은 디스크 큐(queue)에서 기다리게 된다. 디스크 스케줄링은 "디스크 큐에 존재하는 요청중에서 어떤 요청을 우선적으로 선택할 것인가에 대한 정책"으로써 디스크 유형에 따라 다르게 적용된다. 이러한 정책은 프로세스 스케줄링과 유사하며 다음과 같은 기법들이 있다.

  • 선입 선처리
    • 선입 선처리(FCFS: First-Come First-Served) 스케줄링은 가장 간단한 기법으로써 디스크 큐에 도착된 순서대로 처리한다.
    • ex) 5개의 트랙으로 구성된 디스크에서 트랙 번호 순서로 블록 요청이 발생할 경우현재 헤드 위치에서 디스크 큐 도착된 순서대로 처리된다. 
    • 이 기법은 구현하기 쉽고 사용자 입장에서는 매우 공평하다고 볼 수 있다. 그러나 탐색 시간의 최소화를 고려하지 않기 때문에 비효율적이다. 따라서 디스크의 요청이 적을 경우에 적합하지만 요청이 많아지면 탐색 시간이 길어지는 경향이 있다.
  • 최소 탐색 우선
    • 최소 탐색 우선(SSTF: Shortest Seek Time First)은 탐색 시간을 최소화하기 위하여 현재 헤드의 위치에서 가장 가까운 트랙에 해당하는 요청을 우선적으로 처리하는 기법이다. 
    • ex) 5개의 트랙으로 구성된 디스크에서 트랙 번호 순서로 블록 요청이 발생할 경우 디스크 큐에 도착한 순서에 관계 없이 현재 헤드 위치에서 가장 가까운 트랙에 위치한 블록을 우선적으로 처리한다.
    • 이 기법은FCFS 보다 탐색 시간을 개선할 수 있지만 현재 헤드 위치에서 가장 가까운 트랙에 위치한 블록을 검색하는데 소요되는 오버헤드가 있다. 또한 현재 헤드 위치로부터 멀리 떨어지는 블록은 기아(starvation)현상이 발생할 수 있는 단점이 있다.
  • SCAN 및 C-SCAN
    • SCAN은 디스크 헤드가 단순히 안쪽과 바깥쪽을 왕복하면서 디스크 큐에서 기다리고 있는 블록을 처리하는 기법으로써 일명 엘리베이터(elevator)방식이라고도 부른다. 
    • 디스크 헤드가 양쪽 방향으로 이동하면서 요청한 트랙에 해당한 블록을 처리한다. 

  • SCAN은 SSTF 보다 간단하면서 탐색 시간을 개선할 수 있다. 그러나 디스크 헤드가 양쪽 방향으로 이동하면서 처리하기 때문에 양쪽 끝의 트랙에 위치한 블록은 가운데 트랙에 위치한 블록에 비해 상대적으로 대기 시간이 길다. 이러한 대기 시간을 균등하게 하기 위해서 디스크 헤드를 항상 한쪽 방향으로 진행하면서 처리하도록 하는 C-SCAN(Circular-SCAN) 기법이 있다.
  • C-SCAN 기법은 디스크 헤드가 한쪽 방향으로 진행하면서 처리한다. 그러나 한쪽 끝에 도달하게 되면 반대 방향으로 진행하면서 처리하는 것이 아니라 일단 헤드를 처음 위치로 이동한 후 다시 처리하기 시작한다. 이러한 방식의 SCAN 기법은 양쪽 끝이 연결되어 있는 것과 같기 때문에 C-SCAN이라 한다.

  • Look 및 C-LOOK
    • LOOK은 SCAN과 마찬가지로 디스크 헤드가 디스크의 안쪽과 바깥쪽을 왕복하면서 디스크 큐에서 기다리고 있는 블록을 처리한다. 그러나 SCAN과 차이점은 현재 진행 방향에서 더 이상 처리할 블록이 없으면 진행 방향을 바꾼다. 이와 같이 요청된 블록을 검사하면서 진행하기 때문에 'LOOK' 기법이라고 부른다.
    • C-LOOK(Circular-LOOK)은 C-SCAN과 마찬가지로 디스크 헤드가 한쪽 방향으로 진행하면서 처리한다. 그러나 C-SCAN과 차이점은 현재 진행 방향에서 더 이상 처리할 블록이 없으면 더 이상 진행하지 않는다.
    • 이러한 기법은 불필요한 헤드의 이동시간을 제거할 수 있지만 진행 여부를 결정하기 위하여 디스크 큐의 요청된 모든 블록들을 검사해야하는 오버헤드가 발생한다.
  • 최소 지연 우선
    • 최소 지연 우선(SLTF: Shortest Latency Time First)은 주로 드럼(drum)과 같이 헤드가 고정된 경우에 회전 지연 시간(latency time)을 단축하기 위한 기법이다.

  • 이 기법을 사용할 경우 일반적으로 하나의 트랙을 일정한 수의 블록으로 구성된 섹터(sector) 단위로 나누어 관리한다. 따라서 디스크의 주소는 트랙과 섹터 번호로 구성된다. 또한 모든 섹터마다 대기 큐(queue)를 유지하여 임의의 섹터에 대한 요청이 발생하면 해당 섹터 큐에서 대기하도록 한다.
  • 섹터마다 큐를 유지하기 때문에 SLTF 기법을 '섹터 큐잉(sector queueing)'이라고도 부른다.

 

디스크 캐쉬

  • 디스크에 대한 접근 속도는 시스템 성능에 많은 영향을 미치기 때문에 운영체제에서 이를 향상시키기 위하여 디스크 캐쉬(disk cache)를 사용한다. 디스크 캐쉬는 디스크에 대한 접근 속도를 향상시키기 위하여 메인 메모리와 디스크 사이에 위치하는 메인 메모리의 일부분을 말한다.
  • 디스크 캐쉬는 디스크의 내용을 블록 단위로 유지한다.
  • ex)프로세스로부터 디스크의 특정 블록에 대한 입력 요청이 발생하면 운영체제는 해당 블록의 존재 여부를 디스크 캐쉬에서 먼저 검색한다. 존재할 경우 디스크 캐쉬의 내용을 프로세스의 주소 공간으로 직접 복사함으로써 디스크 접근 속도가 향상될 것이다. 그러나 요청한 블록이 디스크 캐쉬에 존재하지 않을 경우에는 해당 블록을 디스크로부터 디스크 캐쉬로 복사한 후 디스크 캐쉬의 내용을 프로세스의 주소 공간으로 복사하여야 한다. 따라서 디스크 캐쉬를 통한 디스크 접근 속도를 향상시키기 위하여 운영체제에서는 가능한 한 디스크 캐쉬의 성공률(hit ratio)를 극대화 하는것이 중요하다. 
  • 디스크 캐쉬의 성공률을 향상시키기 위한 방법은 요구 혹은 예상 페이징 기법에서 페이지 부재율을 최소화 하기 위한 전략과 동일하다. 
  • 제한된 디스크 캐쉬에 대한 교체 알고리즘의 선택에 많은 영향을 받게 된다.

Reference

개념 이해를 위한 운영체제 

https://velog.io/@blue_archive/OS-5-13.-%EB%94%94%EC%8A%A4%ED%81%AC-%EC%8A%A4%EC%BC%80%EC%A4%84%EB%A7%81%EA%B3%BC-%ED%8C%8C%EC%9D%BC-%EC%8B%9C%EC%8A%A4%ED%85%9C-%EA%B0%9C%EC%9A%94-%EA%B5%AC%EC%A1%B0

 

[OS] 5-1~3. 디스크 스케줄링과 파일 시스템 개요, 구조

OS

velog.io

https://velog.io/@haneuls/OS-%EB%94%94%EC%8A%A4%ED%81%AC-%EC%8A%A4%EC%BC%80%EC%A4%84%EB%A7%81%EA%B3%BC-%ED%8C%8C%EC%9D%BC-%EC%8B%9C%EC%8A%A4%ED%85%9C

 

[OS] 디스크 스케줄링

(1) 개요 파일 시스템 : 데이터와 프로그램을 저장하고, 현재 컴퓨터 시스템은 주로 디스크 시스템 중심으로 파일시스템을 처리한다. 운영체제 : 디스크나 CD-ROM, DVD-ROM 같은 기억용량이 큰 기억장

velog.io

https://limkydev.tistory.com/165

 

[운영체제] 디스크 스케줄링이란?(Disk Scheduling)

디스크 스케줄링이란?(Disk Scheduling) 일반적으로 컴퓨터는 데이터를 저장할때, 순차적으로 하드웨어 디스크에 저장하지 않는다. 그때 그때 필요에 따라 상황에 맞게! 데이터를 저장하기 때문에

limkydev.tistory.com