CS/OS 수업 / / 2021. 6. 1. 01:42

운영체제 14주차(파일-디스크)


파일

  • 서로 관련되어 있는 정보의 집합체
  • 사용자의 관점에서는 파일은 논리적으로 저장되는 단위
  • 운영체제는 논리적인 저장 단위를 디스크와 같은 물리적인 저장장치에 맵핑하여 저장

 

파일 시스템

  • 운영체제의 기능으로서1) 사용자에게 파일 관리 기능 제공(파일과 디렉토리의 생성/삭제, 파일에 대한 조작, 공유, 보호
  • 2) 파일을 저장장치에 저장한다.
  • 응용분야 또는 저장장치의 특성에(e.g. 동영상 ..etc) 따라서 다양한 파일 시스템이 개발됨
    • FAT, NTFS(윈도우 제공), ext2, ext3, JFS, NFS, YAFFS
  • 사용자가 파일 시스템을 선택해서 사용할 수 있음.

 

파일 시스템의 기능

  • 파일 관리: 파일 생성, 참조, 삭제 및 보호 기능을 제공하며 적절한 제어방식을 통해 다른 사람의 파일을 공유할 수 있게 함
  • 저장장치 관리: 파일의 저장할 공간을 할당
  • 파일 무결성 보장: 파일에 저장된 정보가 손상되지 않도록 보장
  • 파일 액세스 방법 제공: 파일에 대해 읽기, 기록, 실행 등 여러 종류의 액세스 제어 제공
  • 파일 백업과 복구: 사고로 정보를 손실하거나 고의로 손상시키는 일을 방지하기 위한 데이터 사본(중복)을 생성하는 백업 및 손상된 데이터를 복구할 수 있는 복구 기능을 제공
  • 정보 보호와 비밀 보장: 데이터를 암호화하고 해독하는 방법 제공

 

파일의 종류와 구조

  • 종류
    • 프로그램 파일: 소스 파일, object 파일, word 파일, ppt 파일 ... etc
    • 데이터 파일: 텍스트(숫자, 문자), 바이너리(이미지, 음성, 동영상) 파일
  • 파일의 구조
    • 형식이 없는 구조: 바이트의 나열
    • 간단한 레코드 구조(예를 들어 데이터베이스 파일): 레코드들의 나열(고정 크기의 레코드, 가변 크기의 레코드...)
    • 복잡한 구조: 워드 파일처럼 포맷화된 문서, 실행 파일

 

파일의 속성(정보)

  • 파일 시스템은 파일에 대해 다음과 같은 속성 관리
    • 이름
    • 형태: 주로 확장자를 나타냄
    • 위치: 저장된 장소
    • 크기
    • 만들어진 시간, 날짜
    • 변경된 시간, 날짜
    • 사용자 식별
    • 보호: 읽기(r), 쓰기(w), 실행(x) 권한

 

디렉토리

  • 파일에 대한 정보(이름, 날짜, 크기 ...)를 가진 구조체
  • 파일을 잘 관리하려면 디렉토리를 효율적으로 구조화해야 함
  • 파일 시스템은 사용자에게 디렉토리 관리 기능 제공
    • 다중 사용자를 고려
    • 사용자 간의 파일 보호 또는 공유 기능
  • 디렉토리 구조

 

 

파일 시스템의 디스크 저장 공간 할당

  • 파일 시스템은 파일을 물리적 보조 기억장치에 사상(map) 시킨다.
    • 파일을 블록으로 나누고 블록에 논리적 번호(0, 1, 2 ...)로 구성
    • 디스크도 블록으로 나누어져 있음: 보통 섹터라고 하는 블록으로 나누어져 있음
    • 파일의 (논리적) 블록을 디스크의 어떤 (물리적) 블록에 저장할 것인가?
  • 디스크 블록 할당 방법
    • 연속 할당 (contiguous allocation)
    • 연결 할당 (linked allocation)
    • 색인 할당 (indexed allocation)

 

연속 할당 (contiguous allocation)

  • 파일을 저장할 때 디스크의 연속된 블록을 할당하여 저장
  • 디렉토리에 파일이 저장된 시작 블록과 길이(블록의 개수)에 대한 정보를 관리
  • 장점: 순차 접근(파일을 읽거나 쓸 때, 순차적으로)과 직접접근이 모두 가능
  • 단점1) 파일을 저장할 때 적절한 연속된 블록을 모두 수용할 수 있는 빈 블록들을 찾아야 하는데 찾는 시간조차 오래 걸릴 수 있다.3) 외부 파편화
    • 파일들이 할당되고 삭제되면서 파일에 할당된 블록들 사이에 가용 블록들이 생김
    • 새로 생성되는 파일의 크기가 커서 이러한 가용 블록에 저장할 수 없다면 외부 단편화 문제가 발생
    • 해결책: 공간을 압축할 것!! → 사용 중인 블록들을 한 곳으로 모은다.
  • 2) 파일이 커지는 경우, 연속된 공간이 없으면 파일이 커질 수 없다.

 

 

연결 할당 (linked allocation)

  • 파일의 블록을 디스크 여기저기에 저장하고, 블록들을 차례로 연결하는 방법
  • 디렉토리에 파일의 시작 블록과 마지막 블록 번호 저장
  • 디스크 블록마다 다음 블록 번호를 저장
  • 장점: 외부 단편화 문제 X
  • 단점: 직접 접근이 어렵다(임의의 중간 위치 접근 불가, 링크드 리스트와 동일!), 디스크 블록 내에 다음 블록 인덱스를 기록해야 하므로 약간의 저장 공간 소비

 

색인 할당(indexed allocation)

  • 파일마다 색인 블록을 별도로 놓고, 색인 블록에 파일의 모든 블록의 번호를 저장
  • 디렉토리는 파일의 색인 블록 번호를 가진다.
  • 장점: 색인 블록에 모든 블록 인덱스가 기록돼 있으므로 순차 접근과 직접 접근 모두 가능하고 외부 단편화 문제 X
  • 단점: 색인 블록이 공간 낭비를 초래할 수 있다. (디스크에서 색인 블록과 파일 블록을 구분해서 사용하기 때문에)특히, 파일의 크기가 작을 때는 색인 블록이 대부분 낭비된다.

 

가용공간 관리


 

하드 디스크

  • 보조 기억장치로 가장 널리 사용됨
  • 원판 모양의 표면에 자기 물질이 입혀져 있으며 이곳에 정보를 정보를 기록하여 저장
  • 기계 장치이기 때문에 컴퓨터 시스템에서 성능을 떨어뜨리는 원인

데이터를 읽고 쓸 때는 무조건 512 바이트 단위로 읽고 쓴다. 만약에 1 바이트 크기의 데이터를 쓰더라도 511 바이트는 빈 데이터로 디스크에 쓰인다.

일반적으로 탐색 시간이 가장 오래 걸림

 

 

디스크 스케줄링

  • 디스크 접근 시간은 탐색 시간과 회전 지연시간에 달려있다.
  • 여러 개의 디스크 블록에 대한 요청이 있을 때, 각 블록의 탐색시간을 줄일 수 있다면 전체 처리 시간이 짧아져 퍼포먼스가 좋아진다. 즉, 탐색시간을 줄이는 디스크 스케줄링이 필요하다!!

 

 

디스크 스케줄링 알고리즘

  • FCFS(First Come First Served): 선착순
  • SSTF(Shortest Seek Time First)
  • SCAN
  • C-SCAN(Circular SCAN)

 

1번은 디스크에서 맨 바깥쪽 섹터를 요청했고, 2번은 디스크에서 가장 먼 섹터를 요청했는데, 이걸 선착순으로 서비스하게 되면 탐색 시간이 매우 커진다. 즉, 1번 요청을 처리하기 위해서 맨 바깥쪽 디스크로 탐색하고, 다시 2번 요청을 처리하기 위해서 맨 안쪽 디스크 섹터로 탐색하지만... 퍼포먼스가 떨어진다. FCFS의 장점은 공평하게 서비스한다는 점이지만, 디스크 헤더를 많이 움직여야 하므로 처리 시간이 많이 걸린다

 

SSTF (Shortest Seek Time First)

  • 현재 헤드 위치에서 탐색 시간이 짧은 요청부터 처리하는 방법
  • 단점: 기아 상태가 발생할 수 있다 → 최내각과 최외각의 트랙은 서비스를 받지 못하는 상태 발생한다. 따라서, 응답 시간의 편차가 클 수 있다. 요청을 처리하는 동안에도 계속 새로운 요청이 들어오기 때문에

 

SCAN

  • 트랙의 한쪽 방향으로 요청들을 처리해나가고, 트랙의 끝에 도착하면, 반대 방향으로 요청들을 처리하는 방법; 디스크 헤드는 디스크의 양쪽 끝을 왕복 → 엘리베이터 알고리즘
  • 장점: 평균 응답시간은 SSTF와 비슷하면서 응답시간 편차가 작다.
  • 단점: 양쪽 끝 트랙의 요청들이 더 빨리 서비스를 받을 수 있다. 예를 들어, 방향을 바꾸자마자 새로운 요청이 들어왔는데, 마침 그 요청이 방향을 바꾼 그 위치에 서비스를 요청한 경우
  • 운영체제에서 가장 많이 쓰이는 알고리즘(물론 변형해서 사용하지만..)

 

 

C-SCAN(Circular SCAN)

  • SCAN처럼 한쪽 방향으로 요청을 처리하지만, 끝에 도착하면 처음으로 되돌아가서 같은 방향으로만 요청을 처리: SCAN보다 응답시간 편차를 줄일 수 있다. → 새로운 요청이 먼저 처리될 수 있는 SCAN에서의 단점을 해결할 수 있다

 

 

'CS > OS 수업' 카테고리의 다른 글

운영체제 10주차 - Deadlock  (0) 2021.05.04
운영체제 9주차 (프로세스 동기화 개념, 임계 구역)  (0) 2021.04.27
운영체제 8주차  (0) 2021.04.20
운영체제 7주차  (0) 2021.04.14
운영체제 6주차  (1) 2021.04.05
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유