[운영체제] 12강 - 저장장치 및 파일관리

2026. 4. 30. 12:43·방송통신대학교/⚙️운영체제

✅ 1. 저장장치의 종류

(1) 순차접근 저장장치

  • 순차접근 저장장치: 데이터를 순차적으로 읽거나 쓸 수 있는 저장장치를 의미하며, 테이프 장치의 유형으로 볼 수 있음.
  • 특징: 초기 접근시간이 굉장히 오래 걸리기 때문에 보통 대량의 데이터 백업용으로 사용이 됨.

(2) 직접접근 저장장치

  • 직접접근 저장장치: 저장장치 내의 지정한 위치를 직접 찾아 데이터를 읽거나 쓸 수 있는 저장장치임.
  • 현대에는 직접접근 저장장치를 주로 쓰며 보통 자기 디스크, 광디스크, SSD가 대표적임.

  • 자기 디스크: 자성을 띤 디스크의 표면에 데이터를 쓰거나 읽는 방식의 저장장치 이며, 보통 하드디스크로 보면 됨.
  • 헤드가 디스크의 표면을 읽고, 여러 플래터에는 트랙과 섹터가 있으며, 플래터가 여러개 이기 때문에 동시에 읽기 가능함.

  • 광디스크: 디스크 표면에 레이저를 쏘고 반사되는 빛의 차이를 이용해 데이터를 읽거나 쓰는 방식의 저장장치임.
  • 나선형인 하나의 트랙으로 구성이 되어있음. 즉, 트랙이 하나임.

  • SSD: 읽고 쓰기가 가능하면서 전력공급이 없어도 데이터가 지워지지 않는 메모리 저장장치이다.
  • 자기 디스크보다 속도가 빠르고 전력 소모가 적은 장점이 있지만, 용량 대비 가격이 비싸며 수명이 짧은 단점이 있음.

✅ 2. 디스크 스케줄링 알고리즘

(1) 디스크 스케줄링

  • 디스크 스케줄링: 디스크 접근 요구를 효율적으로 처리하는 순서를 결정하는 작업을 의미함.
  • 쉽게 말해, 여러 프로세스가 디스크 읽기, 쓰기에 대한 접근 요구가 올 때 이것은 디스크 입출력(I/O) 요청으로 쌓이게 되는데, 디스크의 헤드의 위치나 이러한 상황에 따라서 디스크 입출력(I/O) 요청을 어떤 순서로 처리해야 움직임을 최소화하고 효율을 높일 수 있지에 대한 결정을 하기 위한 과정을 디스크 스케줄링이라함.

(2) 디스크 접근 요구 처리 시간

  • 디스크 접근 요구 처리 시간: 탐구시간 + 회전지연시간 + 전송시간에 대한 시간을 통틀어서 의미함.
  • 탐구시간: 디스크의 데이터가 저장된 특정 트랙(원형 경로) 위로 암에 달린 헤드를 이동시키는데 걸리는 시간을 의미함.
  • 회전지연시간: 헤드가 원하는 트랙에 도착한 후, 디스크 판이 회전하여 실제 데이터가 있는 섹터(지점)가 헤드 밑으로 올 때까지 기다리는 시간을 의미함.
  • 전송시간: 헤드가 데이터가 있는 위치에 도달한 후, 실제로 데이터를 읽거나 써서 메인 메모리로 전송하는 데 걸리는 시간을 의미함.
  • 정리하면, (1) 탐구시간: 헤드를 이동시켜 트랙에 맞추고, (2) 회전지연시간: 디스크 판이 회전하여 실제 데이터가 있는 섹터(지점)으로 이동 (3) 전송시간: 실제 데이터를 읽거나 쓰는 작업을 진행 한 뒤, 메인 메모리로 전송
  • 또한, 전송시간의 경우 데이터가 저장되어 있는 곳이라 변하지 않지만, 탐구 시간 및 회전지연시간은 최적화가 가능하기 때문에, 스케줄링 형태가 탐구시간과 회전지연시간에 거의 맞춰져 있음. ( 그래도 대부분은 탐구시간 최적화에 맞춰져 있음. )

(3) 디스크 스케줄링 알고리즘

  • 디스크 스케줄링 알고리즘의 종류는 위와 같이 대표적으로 7개가 존재함.
  • FCFS ~ C-LOOK: 위에서 6번째 까지는 탐구시간 최적화를 다루는 스케줄링 기법
  • SLTF: 회전지연시간 최적화를 다루는 스케줄링 기법

(4) 디스크 스케줄링 알고리즘 - FCFS 스케줄링

  • FSCS 스케줄링: 먼저 도착한 디스크 I/O 접근 요구가 먼저 서비스를 받는 방법을 의미함.
  • 쉽게 말해, 디스크 큐에 들어온 순서대로 처리가 되는데, 각 요청마다 헤드를 옮기는 탐구 시간이 들어감.

  • 장점: 큐를 활용해 단순하게 구현이 가능하며, 접근 요구의 도착순서대로 실행이되므로 공평함.
  • 단점: 도착순서에 따라 총탐구시간이 커질 수 있음. 쉽게 말해, 요청 순서가 100번 -> 11번 -> 190번 이런식이면, 헤드가 멀리 이동해야 하는 헤드의 총 이동 거리가 길어짐.
  • 결국 시스템의 전체 응답 속도 저하로 직결이 될 수 있으며, 이것은 결국 디스크 부하가 높을수록 응답시간이 길어질 수 있음.

(5) 디스크 스케줄링 알고리즘 - SSTF 스케줄링

  • SSTF 스케줄링: 탐구시간이 가장 짧은 접근 요구를 먼저 처리하는 스케줄링 방법임.
  • 쉽게 말해, 현재 헤드의 위치에서 가장 짧은 위치에 있는 트랙에 접근 요구를 먼저 처리하는 방법으로 볼 수 있음.

  • 장점: FCFS 스케줄링보다 처리량, 평균응답시간이 개선되었으며, 일괄처리 운영체제에 적합함.
  • 이유는, 기존 FCFS 는 큐에 들어온 순서대로 처리하게 되다보니, 거리가 먼 탐구시간을 가지는 접근 요구가 있을 경우 왔다 갔다 하는데, 탐구시간을 오래 쓰기 때문에 평균응답시간이 늦어져 결국 처리량이 낮아지는 단점을 SSTF 스케줄링은 가장 짧은 접근 요구를 먼저 처리함으로써, 평균응답시간 개선과 동시에 처리량을 높일 수 있음.
  • 단점: 새로운 I/O 디스크 요구가 지속적으로 들어오는 시분할 운영체제의 경우 양 끝 쪽에 위치한 트랙에 대한 접근(탐구)을 할 수 없는 상황이 발생해 결과적으로 기아상태가 발생할 수 있음.
  • 또한, 이 경우에 추가적으로 양 끝 쪽에 위치한 트랙에 대한 접근의 어려움으로 응답시간 편차가 클 수 있는 단점이 있음.
  • 즉, 결과적으로 **시분할 운영체제에는 매우 부적합한 방법**으로 볼 수 있음.

(6) 디스크 스케줄링 알고리즘 - SCAN 스케줄링

  • SCAN 스케줄링: 양 끝 트랙 사이를 왕복하며 진행방향의 가장 가까운 접근 요구를 먼저 처리하는 방법이다.
  • 쉽게 말해, 헤드를 한 쪽 방향으로 트랙을 이동하면서 끝 트랙에 도달하면 반대편 끝 트랙으로 쭉 이동하면서 접근 요구를 모두 처리하는 방식임. ( 양쪽 끝으로 왔다 갔다 하면서 접근 요구 모두 처리하는 방식 )

  • 장점: SSTF 스케줄링의 양 끝의 접근 요구에 대한 응답시간 편차를 어느정도 개선 할 수 있음.
  • 즉, SSTF 는 양 끝의 접근 요구를 아예 처리 못할수도 있지만, 해당 SCAN 은 무조건 양 끝까지는 가서 처리를 함.
  • 단점1: 새로운 요구가 들어왔을 때, 헤드 진행방향의 바로 앞이냐 뒤냐에 따라 응답시간 편차가 발생 할 수 있음.
  • 단점2: 양 끝 트랙은 헤드가 한 번 왕복할 때 한 번의 서비스 기회만 있을 수 있음. ( 양 끝 트랙은 손해 볼 수 있음. )

(7) 디스크 스케줄링 알고리즘 - C-SCAN 스케줄링

  • C-SCAN 스케줄링: 한쪽 방향으로만 진행하며, 진행방향의 가장 가까운 접근 요구를 먼저 처리하는 방법임.
  • 쉽게 말해, 한쪽 방향으로 진행방향에 있는 모든 접근 요구를 처리한 뒤, 왕복이 아닌 다시 반대편 끝으로 돌아간 뒤 처리하는 방식으로 한쪽 방향으로만 진행하는 방식으로 볼 수 있음.
  • 즉, 한쪽 방향으로 헤드가 쭉 간뒤 끝에 도달하고 헤드가 다시 돌아올 땐 처리를 하지 않고 처음으로 돌아간 뒤 다시 처리하며 쭉 가는 방식임.

  • 장점: 양 끝 트랙에 대한 접근 요구의 차별을 제거함으로써, 응답시간의 편차가 매우 작음.
  • 단점: 반대편 끝으로 다시 돌아오는 과정에서 어떠한 요청도 처리하지 않으면서 단순히 위치만 이동하기 때문에 전체적인 헤드의 이동 거리가 길어질 수 있음. 즉, 총탐구시간이 늘어날 수 있음.

(8) 디스크 스케줄링 알고리즘 - LOOK 스케줄링

  • LOOK 스케줄링: SCAN 스케줄링과 동일하게 진행방향으로 처리가 되지만, 앞에 더 이상 접근 요구가 없으면 방향을 바꾸는 방법의 디스크 스케줄링 방법임.
  • 쉽게 말해, 진행방향으로 처리가 되다가 앞에 접근 요구가 더 이상 없다면 반대 방향으로 방향을 바꾸며 처리함.
  • 대신에 SCAN 과 동일하게 왕복으로 진행을 하는 방식임.

(9) 디스크 스케줄링 알고리즘 - C-LOOK 스케줄링

  • C-LOOK 스케줄링: C-SCAN 과 동일하게 한 방향으로만 진행을 하되, LOOK 스케줄링의 특징인 더 이상 접근 요구가 없다면 바로 처음으로 돌아가서 진행을 하는 방식의 스케줄링 방법임.

(10) 디스크 스케줄링 알고리즘 - SLTF 스케줄링

  • 앞선 내용은 탐구 시간을 줄이기 위한 방식이었다면, SLTF 스케줄링은 회전지연시간을 최소한으로 줄이기 위한 방법임.

  • SLTF 스케줄링: 동일한 실린더에는 여러 섹터가 존재하며, 해당 섹터 내에서 회전지연시간이 가장 짧은 것을 먼저 처리하는 방법의 디스크 스케줄링 방식임.
  • 쉽게 말해, 회전방향은 고정되어 있으며, SLTF 스케줄링을 안쓴다면 헤드가 1번 -> 2번 -> 3번 순으로 접근 요구가 있었다면, 1번을 처리하기 위해 3번, 2번을 무시하고 넘어가고 1번 읽고, 다음 2번을 읽기 위해 3번을 무시하고 2번을 읽어야 하며, 마지막으로 3번을 읽기 위해 1번을 무시하고 3번을 읽는 방식으로 해야함.
  • 하지만 SLTF 스케줄링을 이용하면 1번 -> 2번 -> 3번 순으로 접근 요구가 있다고 해도, 헤드와 가장 가까운 3번 처리, 2번 처리, 1번 처리를 진행함으로써 한 번의 회전으로 모두 처리가 가능한 것임.
  • 즉, 회전지연시간을 최적화 할 수 있는 스케줄링 알고리즘으로 볼 수 있음.

✅ 3. 파일 관리

(1) 파일 관리자

  • 파일 관리자: 파일을 생성, 삭제, 수정 등의 파일에 접근하는 것을 제어함.
  • 또한, 파일에 의해 사용되는 자원은 디스크에 저장이 되는데, 이러한 디스크의 자원을 관리해줌.

(2) 파일 관리자의 요소

(3) 파일 관리자의 기능

(4) 파일 구조와 접근방식

  • 파일 구조: 파일을 구성하는 레코드들이 보조기억장치에 배치되는 방식을 파일 구조라고함.
  • 파일에 접근하는 방식에 따라서 대표적으로 순차 파일, 인덱스된 순차 파일, 직접 파일로 나뉨.
  • 순차 파일: 보조기억장치에 레코드가 순차적으로 저장되어 있는 파일을 의미함.

  • 인덱스된 순차 파일: 순차 파일과 동일하게 순차적으로 저장이 되어있지만, 인덱스를 활용해 직접접근이 가능한 파일 구조임.

  • 직접 파일: 논리적인 키를 통해 물리적 주소에 직접 접근하는 방식의 파일 구조임.

(5) 디스크 공간 할당

  • 연속 할당 기법: 보조기억장치의 연속된 가용공간에 파일 저장공간을 할당하는 기법임.
  • 단, 필요한 공간의 크기를 미리 정해야 할당이 가능함.
  • 장점: 순차 접근에 대한 액세스가 효율적이며, 디렉터리 구현이 단순(순차로 단순히 접근하면 되어서)함.
  • 단점: 외부 단편화가 발생 할 수 있으며, 파일 크기 확장에 대한 대응이 비효율적임.

  • 불연속 할당 기법: 섹터 또는 블록 단위로 공간을 여기저기에 할당해 포인터를 이용해 블록들을 연결하는 방식임.
  • 장점: 단편화 문제 해결, 파일 확장 문제 해결
  • 단점: 파일 공간 분산으로 접근에 대해서 성능이 저하 될 수 있으며, 포인터 관리를 위한 연산 및 공간 소비에 대한 단점 존재.
  • ** 하지만 현대에는 불연속 할당 기법으로 구현이 되어있음. **

'방송통신대학교 > ⚙️운영체제' 카테고리의 다른 글

📚 운영체제 1강 - 운영체제 소개  (0) 2026.07.25
[운영체제] 13강 - 분산 운영체제  (0) 2026.06.03
[운영체제] 11강 - 장치관리  (0) 2026.04.25
[운영체제] 10강 - 페이지 교체 알고리즘  (0) 2026.04.17
[운영체제] 9강 - 가상 메모리  (0) 2026.04.14
'방송통신대학교/⚙️운영체제' 카테고리의 다른 글
  • 📚 운영체제 1강 - 운영체제 소개
  • [운영체제] 13강 - 분산 운영체제
  • [운영체제] 11강 - 장치관리
  • [운영체제] 10강 - 페이지 교체 알고리즘
junbin2
junbin2
java.lang.NullPointerException
  • junbin2
    bin's Development Diary
    junbin2
  • 전체
    오늘
    어제
    • 전체보기 (233)
      • 방송통신대학교 (87)
        • ⚙️컴퓨터의 이해 (11)
        • 💻컴퓨터과학 개론 (15)
        • 🔢자료구조 (14)
        • 🧬알고리즘 (10)
        • ⚙️운영체제 (14)
        • 🕸️이산수학 (11)
        • 🌍유비쿼터스 컴퓨팅 (11)
        • 🖥️컴퓨터과학과 (1)
      • 공부 (72)
        • 📚백엔드 공부 (6)
        • ☕Java (23)
        • 🌳Spring (13)
        • ⚙️C (12)
        • ⚡Python (15)
        • JavaScript (1)
        • 🛢️Database (0)
        • Algorithm Problem Solving (2)
      • 네트워크 (7)
        • 📜HTTP (7)
      • 스파르타코딩클럽 (64)
      • 정보 (2)
      • 정리가 필요한 글 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    그래프
    컴퓨터과학과
    알고리즘
    Python
    컴퓨터의 이해
    C언어
    방송통신대학교
    배열
    spring
    이산수학
    방통대
    함수
    자바
    파이썬
    컴퓨터과학 개론
    방송대
    자료구조
    운영체제
    Java
    유비쿼터스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
junbin2
[운영체제] 12강 - 저장장치 및 파일관리
상단으로

티스토리툴바