[운영체제] #12. 저장장치 및 파일관리

bien·2024년 6월 17일
0

운영체제

목록 보기
4/4

1. 저장 장치의 종류

저장장치의 종류에는 크게 순차접근, 직접접근 두 종류가 있다.

순차접근 저장장치

  • 데이터를 순차적으로 읽거나 쓸 수 있는 저장장치
  • 초기 접근 시간이 굉장히 오래 걸림 (단점)
  • 대량의 데이터 백업용으로 사용
    • 예: 테이프 장치
    • 테이프 자체는 순차접근 저장장치를 추상적으로 표현한 것. 실제 테이프처럼 특정 저장공간에 하나하나 순차적으로 접근해야하고, 실제 보관역시 돌돌 보관하는 방식. 접근 자체가 힘들어 일상적으로 사용되지는 않고, 대량의 데이터를 백업하는 용도 정도로 사용된다.

직접접근 저장장치

  • 지정한 위치를 직접 찾아 데이터를 읽거나 쓸 수 있는 저장장치
    (실제로 일상에서 많이 사용되는 저장장치)
  • 임의접근 저장장치
    • 예: 자기 디스크, 광디스크, SSD

(1) 자기디스크

  • 자성을 띤 디스크의 표면에 데이터를 쓰거나 읽음
    • 자성의 성질 (N극이냐, S극이냐) 정보를 이용해서 0,1을 표현해 데이터를 저장하는 방식

  1. 플래터(Platter)
    • 자성을 띤 디스크의 표면
    • 데이터를 저장하는 공간
  2. 헤드(Head)
    • 플래터 표면의 값(0 또는 1)을 읽고 쓰는 장치
  3. 암(Arm)
    • 헤드를 움직이기 위한 장치
    • 플래터마다 각각의 암이 필요
  4. 고정축(Actuator Arm)
    • 암들을 한번에 움직이기 위한 장치
    • 고정축이 움직이면 암들이 동시에 움직임

하드디스크를 뜯어보면 여러 장의 플래터가 존재하고, 플래터의 표면위에 자성을 띈 장치가 이루어져있어 해당 장치로 값을 변화시킬 수 있게 된다. 이 작업을 위해서는 헤드가 필요하고, 헤드가 플래터 표면을 보고 값(0 혹은 1)을 읽고 변경한다. 헤드를 움직이기 위해 이 필요하고, 플래터마다 각각의 암이 필요하다. 이 암을 한번에 움직이기 위해 고정축이 필요하고, 고정축이 움직이면 암들이 동시에 움직이면서 헤드를 이동시켜 데이터를 읽거나 변경시키는것이 가능해진다.

  1. 트랙(Track)
    • 플래터 표면의 동심원
      • (동심원: 중심축은 동일하면서 반지름의 길이가 다른 두 개 이상의 원)
  2. 섹터(Sector)
    • 하나의 트랙을 더 작게 나눈 단위
    • 데이터를 저장하는 최소 단위

플래터를 위에서 내려다보면 각각의 동심원(중심축은 동일하면서 반지름의 길이가 다른 여러가지 원)들이 존재하는데, 이 각각의 원들을 트랙이라고 부른다. 따라서 하나의 플래터는 여러개의 트랙이 존재할 수 있음. (눈에 보이지는 않음) 디스크의 종류나 데이터의 사이즈에 따라 트랙의 갯수는 다양. 하나의 트랙을 볼 때 데이터를 더 쪼갤 수 잇는데, 이를 섹터라 칭하고, 하나의 트랙은 여러개의 섹터로 구성되어 있다. 특정 데이터의 위치를 찾는다는 것은, 특정 트랙의 특정 섹터로 헤드를 움직여 데이터를 읽고 쓴다는 것을 의미한다.

  1. 실린더(Cylinder)
    • 같은 반지름을 가지는 트랙들의 집합
    • 플래터 간 동일한 반지름의 트랙들을 의미
    • 동시에 데이터를 읽고 쓸 수 있는 영역

플래터가 여러개 존재하므로, 같은 반지름을 가지는 트랙이 플래터마다 하나씩 존재하게 된다. (고정축에 의해) 헤드가 동일한 위치(반지름)에 존재하므로, 플래터마다 같은 반지름을 가지는 트랙들은 동시에 데이터를 읽고 쓸 수 있게 된다. 이 같은 반지름을 가지는 트랙들을 모아서 실린더라고 부른다.

(2) 광디스크

  • 디스크 표면에 레이저 를 쏘아 반사되는 빛의 차이를 이용하여 데이터를 읽거나 쏨
  • 나선형인 하나의 트랙으로 구성
    • 예: CD-ROM, CD-RW, DVD, 블루레이 디스크 등

트랙이 여러개이던 자기디스크와 달리, 나선형으로 말려들어가는 하나의 트랙으로 구성되고, 시간순으로 짤라서 특정 위치를 찾는 등의 방법으로 사용된다.

(3) SSD

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

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

    • 자기 디스크의 경우 여러 프로세스가 동시에 사용될 수 있는데, 이 프로세스들의 실행 순서를 어떻게 스케줄링할 수 있을까?
    • 그림에서 A, B, C라는 프로세스가 디스크의 서로 다른 부위를 읽고 쓸 때, 어떤 프로세스를 먼저 처리하는게 좋을까?

디스크 스케줄링

  • 디스크 접근 요구를 효율적으로 처리하는 순서를 결정하는 작업
    • 디스크 접근 요구: 디스크에서 데이터를 읽거나 쓰는 요구
  • 프로세스들의 요구를 디스크 큐에 두고 관리
  • 기계적 동작이 최소화되도록 디스크 큐를 재배열
    • 직접 접근을 위해 헤드의 이동, 디스크의 회전 같은 기계적 움직임 필요

디스크 접근 요구 처리 시간

탐구시간 + 회전지연시간 + 전송시간

  • 암을 움직여 파란색의 데이터를 읽어야 하는 상황. 회전 자체는 시계방향으로 하고 있다.
  1. 파란색 부분(읽고자 하는 데이터가 있는)의 트랙으로 암을 이동시킨다.
    • 탐구시간(seek time) = 원하는 트랙으로 암을 이동시키는 시간
  2. 같은 트랙에서 원하는 섹터 위치까지 회전
    • 회전 지연 시간 = 원하는 섹터까지 디스크를 회전시키는 시간
  3. 원하는 트랙에 도달한 이후, 파란부분의 데이터를 읽는 시간
    • 전송 시간 = 섹터 내부의 실제 데이터를 읽고 쓰는 시간

이 중 전송시간은 항상 고정되어 있음. 따라서 탐구시간과 회전지연시간에서의 최적화가 가능하다. 그중에서도 암을 움직이는 탐구 시간이 특히 많은 시간을 필요로하므로, 탐구시간의 최적화가 주요히 다뤄질 수 있다.

  • 스케줄링 형태
    • 탐구시간 최적화 (특히 좋음!)
    • 회전지연시간 최적화

디스크 스케줄링 알고리즘

FCFS(First-Come-First-Served)

  • 먼저 도착한 접근 요구가 먼저 서비스를 받는 방법 (큐 사용)
  • 장점
    • 접근 요구의 도착순서대로 실행되므로 공평
  • 단점
    • 도착순서에 따라 총탐구시간이 커질 수 있음
    • 디스크 부하가 높을수록 응답시간이 길어짐

SSTF(Shortest Seek Time First)

  • 탐구시간이 가장 짧은 접근 요구를 먼저 처리하는 방법
    • 매순간순간 가장 가까이있는 트랙을 먼저 찾아가는 것
  • 장점
    • FCFS 스케줄링보다 처리량, 평균응답시간 개선
      • 일괄처리 운영체제적합
  • 단점
    • 양 끝 쪽에 위치한 트랙에 대한 접근요구는 기아상태 발생 가능
    • 트랙위치에 따라 응답시간 편차 큼
      • 시분할 운영체제부적합

SCAN

  • 양 끝 트랙 사이를 왕복하며 진행방향의 가장 가까운 접근 요구를 먼저 처리하는 방법
  • 장점
    • SSTF 스케줄링의 응답시간 편차를 어느정도 개선
      • 총 탐구시가닝 늘어나긴 했지만, 앞서 살펴본 SSTF에서 양 극단에 위치한 데이터들의 업무가 하염없이 연기되었던것에 비해, 끝과 끝을 왕복하고 있으므로 해당 단점이 개선된다.
  • 단점
    • 새로운 요구가 헤드 진행방향의 바로 앞이냐 뒤냐에 따라 응답시간 편차 발생
    • 양 끝 트랙은 헤드가 한 번 왕복할 때 한 번의 서비스 기회만 있음
      • 양 끝 트랙을 왔다갔다 하면서 중간부위는 그래도 2번씩 지나가는데, 양 끝단은 절반의 서비스 기회가 존재. 그래서 결국 응답시간 편차의 문제가 아직 남아있다.

C-SCAN

  • 오로지 한 쪽 방향으로만 진행방향의 가장 가까운 접근 요구를 먼저 처리하는 방법으로 나머지는 scan 스케줄링과 동일
    • 앞의 SCAN의 문제를 해결하기 위함. 갈때만 업무를 처리하고 돌아올때는 업무를 처리하지 않음.
  • 장점
    • 양 끝 트랙에 대한 접근 요구의 차별 제거
    • 응답시간의 편차가 매우 적음
      • 진행시간이 크게 증가한다는 단점에도 불구하고, 응답시간의 차별성 제거에 큰 강점을 가짐

LOOK

  • SCAN 스케줄링처럼 처리하되 진행방향으로 더 이상 접근 요구가 없으면 방향을 바꾸는 방법
    • SCAN에서 너무 많은 시간이 소요되고 있어, 그 문제를 해결

C-LOOK

  • C-SCAN 스케줄링처럼 처리하되 진행방향으로 더 이상 접근요구가 없으면 방향을 바꾸어 가장 먼 접근 요구의 트랙까지 이동하는 방법

SLTF(Shortest Latency Time First)

  • 동일 실린더의 여러 섹터에 대한 접근 요구에 대해 회전지연시간가장 짧은 것을 먼저 처리하는 방법
  • 높은 부하상태에서 유용
  • 회전지연시간 최적화
    • 이론적인 최적화와 거의 일치
      • 이것보다 더 좋은 방식 찾기 힘듦.

3. 파일 관리

파일관리자

  • 파일을 생성, 삭제, 수정
  • 파일에 접근하는 것을 제어
  • 파일에 의해 사용되는 자원을 관리

파일관리자의 요소

  • 엑세스 방식
    • 파일에 저장되어 있는 데이터에 접근하는 방식
  • 파일 관리
    • 파일을 저장, 참조, 공유 및 안전하게 보호되도록 함
  • 보조기억장치 관리
    • 보조기억장치에 파일을 저장하는 데 필요한 공간 할당
  • 파일 무결성 유지
    • 파일의 정보가 소실되지 않도록 보장

파일관리자의 기능

  • 사용자가 파일을 생성, 수정 및 삭제할 수 있게 함
  • 타인의 파일을 공동으로 사용할 수 있게 함
  • 읽기, 쓰기, 실행 등 여러 종류의 액세스 제어 방법 제공
  • 사용자가 각 응용에 적합한 구조로 파일을 구성할 수 있게 함
  • 백업 및 복구
  • 기호화된 이름을 사용하여 파일을 참조할 수 있게 함
  • 정보가 안전하게 보호되고 비밀이 보장되게 함

파일구조와 접근 방식

  • 파일 구조
    • 파일을 구성하는 레코드들이 보조기억장치에 배치되는 방식
    • 접근 방식: 순차 파일, 인덱스된 순차 파일, 직접 파일
  • 순차 파일
    • 레코드가 물리적 순서에 따라 저장되어 있는 파일
    • 논리적 순서와 물리적 순서가 동일
    • 순차접근 저장장치에 많이 이용
  • 인덱스된 순차 파일
    • 각 레코드의 키를 기준으로 한 논리적 순서대로 레코드가 저장됨
    • 일부 주요 레코드의 실제 주소가 저장된 인덱스를 구성하여 관리하는 파일
    • 순차접근(키 순서)과 직접접근(인덱스 검색) 모두 가능
    • 보통 디스크에 이용
  • 직접 파일
    • 각 레코드의 키를 이용하여 직접 접근 저장장치의 물리적 주소를 통해 직접 액세스되는 파일
    • 논리적인 키와 물리적 주소의 사상은 프로그래머가 정의

디스크 공간 할당

(완전히 물리적으로) 하나의 디스크에 파일 하나를 어떻게 배정할지에 관한 문제

  • 연속 할당 기법
    • 보조기억장치의 연속된 가용공간에 팡리 저장공간을 할당
    • 필요한 공간의 크기를 미리 정해야
    • 장점
      • 엑세스가 효율적
      • 디렉터리 구현이 단순
    • 단점
      • 외부 단편화
        • 디스크 내에서 데이터들이 파편화되어 빈공간 생성을 위해 데이터들을 옮기는 집약화가 필요하게 됨. 결과적으로 관리가 힘들어짐.
      • 파일 크기 확장에 대한 대응이 비효율적
  • 불연속 할당 기법 (실제로는 이걸 많이 사용함)
    • 섹터 또는 불록 단위로 공간을 할당
    • 포인터를 이용하여 블록들을 연결
    • 장점
      • 단편화 문제 해결
      • 파일 확장 문제 해결
    • 단점
      • 파일 공간 분산으로 성능 저하
      • 포인터 관리를 위한 연산 및 공간 소비

Reference

  • 한국방송통신대학: 운영체제 - 김진욱
profile
Good Luck!

0개의 댓글