운영체제(OS)

Operating Systems 12. File Management

아뵹젼 2021. 12. 5.

Files

- 사용자가 생성한 데이터의 집합

- 연속적인 논리적 주소 공간 (저장장치의 물리적 특성으로부터 분리

- 유익한 특성

  • 장기간 보존
  • 프로세스들 간에 공유 가능
  • 편리한 내부 구조

- 파일 타입 : 데이터 파일, 프로그램 파일

- 파일 형태 : 텍스트 파일, 소스 파일, 실행 파일 등 확장자로 구별

 

 

File Systems

- 데이터를 파일로 저장할 수 있는 방법

- 연산

  • 생성
  • 삭제
  • 열기
  • 닫기
  • 읽기
  • 쓰기

 

파일 구조 관련 주요 용어

- 필드

  • 데이터의 가장 기본적 요소
  • 하나의 값 저장
  • 고정 또는 가변 길이

- 레코드

  • 몇몇 응용에 의해 하나로 취급될 수 있는 관련 필드 묶음
  • 고정 도는 가변 길이

- 파일

  • 유사한 레코드의 묶음
  • 하나의 개체로 취급
  • 이름으로 참조됨
  • 파일에 대해 접근 제어가 적용됨

- 데이터베이스

  • 관련된 데이터의 집합
  • 데이터 요소 사이의 관계가 명시적
  • 여러 응용에 의해서 사용될 수 있도록 설계됨
  • 하나 이상 유형의 파일로 구성됨

 

- 전형적인 파일 연산 

-> 모두 검색, 하나 검색, 다음 검색, 이전 검색 : 파일시스템에서 쉬움

-> 하나 삽입, 하나 삭제, 하나 갱신, 소수 검색 : 파일시스템에서 어려움

 

- 파일관리 시스템의 목적

  • 사용자의 데이터 관리 요구사항 만족
  • 파일의 데이터가 유효하도록 보장
  • 성능 최적화
  • 다양한 유형의 저장 장치들에 대한 입출력 지원

- 파일시스템 소프트웨어 구조

 

- 장치 드라이버

  • 가장 하위 레벨로 주변 장치들과 직접 통신한다.
  • 입출력 연산을 시작하며 입출력 요청의 완료를 처리한다

 

- 기본 파일 시스템

  • 물리적인 입출력 레벨로, 컴퓨터 시스템 외부 환경과의 주된 인터페이스이다.
  • 디스크 시스템과의 데이터 블록 교환을 처리한다.
  • 보조저장장치 상에서의 블록 배치를 맡으며, 블록의 메인 메모리 버퍼링을 맡는다.

 

- 기본 입출력 관리자

  • 모든 파일 입출력의 시작과 종료를 책임지며, 장치 입출력과 스케줄링 및 파일 상태를 처리한다.
  • 파일 입출력이 수행되는 장치를 선택하며, 성능을 최적화하기 위해 디스크 접근을 스케줄링한다.

 

- 논리 입출력

  • 사용자들과 응용프로그램들이 레코드에 접근할 수 있도록 허용한다.
  • 일반적인 레코드 입출력 기능을 제공하며, 파일에 대한 기본적인 데이터를 유지한다.

 

- 파일 관리 요소

파일 구성과 접근

- 파일 구성 선택시 기준

  • 짧은 접근 시간
  • 쉬운 업데이트
  • 저장의 경제성
  • 간단한 유지 관리
  • 높은 신뢰성

- 일반적인 파일 구성 유형

  • 더미 파일
  • 순차 파일
  • 인덱스 순차 파일
  • 인덱스 파일
  • 직접 or 해쉬 파일

파일 구성 유형

 

- 더미 파일

  • 가장 단순한 형태로, 데이터는 도착하는 순서에 따라 수집된다.
  • 각 레코드는 한 연산 동안 도착한 데이터를 구성한다.

 

- 순차파일

  • 가장 일반적인 파일 구조로, 구정된 형식의 레코드이다.
  • 키 필드가 레코드를 식별하며, 디스크 뿐 아니라 테이프에도 쉽게 저장되는 유일한 구성이다.

 

- 인덱스 순차파일

  • 무작위 접근을 지원하기 위해 파일에 인덱스를 추가한다.
  • 더 효율적인 접근을 위하여 여러 단계의 인덱스가 사용된다.

 

- 인덱스 파일

  • 오직 인덱스를 통해서만 레코드에 접근 가능하다.
  • 가변 길이 레코드를 사용 가능하다.

 

- 직접 또는 해시파일

  • 주소가 알려진 블록을 직접 접근하는 방법으로, 키 값에 대해 해싱이 필요하다.
  • 매우 빠른 접근이다.
  • 고정 크기의 레코드가 사용되며, 항상 한번에 하나의 레코드만 접근된다.

 

Inodes

- 모든 유형의 UNIX 파일은 inode 를 통해 운영체제가 관리한다.

- inode 구성요소 : 파일 모드, 소유자명, 그룹명, 파일 크기, 마지막 접근 정보, 마지막 수정 정보, 아이노드 수정 정보

- 하나의 파일은 하나의 inode 가 관리한다.

 

UNIX 파일시스템 구성 요소

- 부트블록 : 운영체제를 부팅하는데 필요한 코드

- 수퍼블록 : 파티션 크기, inode 테이블 크기 등 파일시스템에 대한 속성과 정보 포함

- Inode 테이블 : 파일별 inode 들의 집합

- 데이터 블록 : 데이터 파일과 서브디렉토리에 할당 가능한 저장 공간

댓글