
운영체제는 사용자와 하드웨어(디스크) 사이의 중재자 역할을 하며, 디스크의 물리적 세부사항을 추상화하여 파일 시스템이나 메모리 관리 기능을 구현한다. 디스크 구조를 이해하는 것은 I/O 성능이나 디스크 스케줄링, 스왑 공간 같은 주요 기능을 이해하는 데 필수이다.

운영체제가 디스크에서 데이터를 읽을 때 걸리는 시간은 다음과 같이 계산된다.
디스크 접근 시간 = 포지셔닝 시간 + 전송 시간
포지셔닝 시간 : 디스크 헤드를 원하는 위치로 이동시키는 시간
전송 시간 : 디스크에서 메모리로 데이터를 보내는 시간
운영체제는 이 값을 최소화하기 위해 디스크 스케줄링 알고리즘을 사용한다.
운영체제는 하드웨어의 복잡한 구조를 다음과 같이 단순화해서 사용한다. :

운영체제는 직접 디스크에 접근하지 않고, 대신 디스크 컨트롤러를 통해 요청을 전달한다.
컨트롤러는 OS의 명령을 받아 하드웨어에 전달한다.
I/O 요청 큐를 관리하며, 어느 요청을 먼저 처리할지 정한다.
캐시(Buffer) 기능도 포함 -> 같은 요청 반복 시 빠르게 응답이 가능하다.
운영체제는 디바이스 드라이버를 통해 컨트롤러와 통신한다.

CLV(Constant Linear Velocity) : 트랙이 바깥쪽으로 갈수록 길어진다. -> 더 많은 데이터를 저장함. 디스크 회전 속도를 계속 조절해야한다. (예: CD-ROM, DVD-ROM)
CAV(Constant Angular Velocity) : 디스크는 일정 속도로 회전하지만, 바깥쪽 트랙일수록 더 많은 섹터를 저장할 수 있다. OS는 이런 구조를 활용해서 성능 최적화가 가능하다.(예: HDD, 플로피디스크)
디스크 용량 늘리는 방법(벤터 관점) : 운영체제는 디스크의 용량이나 속도를 직접 개선하지 않지만, 디스크의 구조가 바뀌면 OS도 그에 맞게 대응해야 한다.
운영체제는 이런 구조를 추상화해서 논리 블록 번호(LBA) 기반으로 접근한다. 즉, "섹터 100번"이 어디 있는지 OS가 몰라도된다. 컨트롤러와 하드웨어가 알아서 처리한다.
운영체제에서 디스크는 속도가 느린 자원이다. 특히 디스크에 접근하는 요청이 많을수록 성능 병목(bottleneck)이 생길 수 있다. 예를 들어, 여러 프로세스가 동시에 파일을 읽거나 쓸 때, 디스크는 순차적으로 처리할 수밖에 없다. 디스크는 기계적인 움직임이 필요한 장치이기 때문에, 요청 처리 순서가 전체 성능에 큰 영향을 준다. 운영체제는 요청 큐(request queue)를 정렬하여 최적의 순서로 처리한다.

디스크 I/O 요청 처리 흐름 : 프로세스 → 시스템 콜(read/write) → 파일 시스템 → 버퍼 캐시 → 디스크 드라이버 → 요청 큐 → 디스크
각 요청은 특정 블록(예: B0, B2 등)을 읽거나 쓰기 위한 것
운영체제는 이 요청들을 디스크 요청 큐에 쌓아두고, 스케줄링 알고리즘을 통해 처리 순서를 결정한다.
디스크 접근 시간 최적화 기준
주요 스케줄링 알고리즘

운영체제는 디스크의 사용 목적(파일 서버, DB 서버, 일상용 등)에 따라 가장 적합한 알고리즘을 선택해 사용한다.




LOOK과 C-LOOK은 SCAN/C-SCAN의 "불필요한 끝까지의 이동"을 제거한 버전이다.
LOOK은 SCAN처럼 양방향 처리를 하지만, 실제로 요청이 있는 마지막 트랙까지만 가고, 거기서 방향을 바꾼다.
C-LOOK은 C-SCAN처럼 단방향으로만 처리하지만, 처리 가능한 가장 먼 요청까지만 이동하고, 다시 맨 처음 요청이 있는 곳으로 점프한다.(그 사이 요청들은 모두 무시)

디스크를 섹터 단위로 나누는 작업, 하드웨어 수준에서 수행된다.

운영체제는 디스크를 실제로 사용하기 위해 아래 두 단계가 더 필요하다.
이 작업을 통해 디스크는 파일을 읽고 쓰는 논리적 단위로 사용 가능해진다.
Low-level formatting + logical formatting(+Partition)
운영체제는 포맷된 디스크에만 파일 시스템을 설치할 수 있고, 이를 통해 파일 단위로 읽기/쓰기 연산을 수행할 수 있다.
디스크 캐시는 디스크의 일부 데이터를 임시로 저장하는 고속 메모리 공간이다. 보통 DRAM이나 SSD 내장 메모리에 위치하며, 디스크 컨트롤러나 OS가 관리한다.
목적 : 느린 디스크 접근을 줄이고, 자주 사용하는 데이터에 빠르게 접근하기 위함이다.
구성 : 디스크에 있는 일부 섹터(블록)를 복사해서 담아두는 버퍼 영역이다.
디스크 캐시 운영
읽기 요청(Read)
쓰기 요청(Write)
디스크 캐시는 운영체제가 디스크 접근 속도를 줄이기 위해 사용하는 고속 임시 저장소이다.