OS - 파일관리

yonii·2021년 8월 6일
0

파일시스템이란 컴퓨터 사용자의 응용프로그램을 실행함으로써 생성하는 정보를 파일이라는 단위로 저장, 관리하는 운영체제의 서브시스템을 말한다.
사용자와 보조기억장치간의 인터페이스를 제공하는 시스템이다.

파일시스템 기능

  • 사용자가 파일 생성, 수정, 제거 가능
  • 여러 사용자가 파일 공유하여 사용 가능
  • 백업, 복구
  • 주기억장치와 보조기억장치간의 파일 전송

파일시스템의 파일 관련 작업

파일 시스템의 파일작업은 크게 파일단위 작업과 레코드단위 작업으로 나뉜다.

파일단위 작업

  • Open: 파일을 사용할 수 있는 상태로 준비
  • Close: 파일의 변경된내용을 저장하고 사용 권한을 종료
  • Copy: 새로운 파일 생성
  • Destroy: 파일명을 디스크에서 삭제
  • Rename: 파일명 변경
  • List: 디스크에 저장되어 있는 파일 목록 출력

레코드단위 작업

  • Read: 데이터를 읽음
  • Write: 데이터를 기록
  • Update: 데이터를 갱신
  • Insert: 데이터를 추가
  • Delete: 데이터를 삭제
  • Search: 데이터를 검색

파일 디스크립터(File Descriptor)

파일을 관리하기 위한 metadata를 보관하는 파일제어 블록을 말하며,
보조기억장치에 존재하다가 파일이 오픈되면 주기억장치로 이동한다.
파일시스템이 관리하며 사용자가 직접 참조 불가하다는 특징이 있다.
파일마다 독립적으로 가지며 시스템마다 다른 내용을 가진다.

파일 디스크립터의 정보

  • 파일 이름 및 파일 크기
  • 보조기억장치에서의 파일 위치
  • 파일 구조 : 순차 파일, 색인 순차 파일, 색인 파일 등
  • 보조기억장치의 유형 : 자기 디스크, 자기 테이프 등
  • 액세스 제어 정보
  • 파일 유형 : 텍스트 파일, 목적 프로그램 파일(2진 파일, 기계어 파일, 실행 파일)
  • 생성 날짜와 시간, 제거 날짜와 시간
  • 최종 수정 날짜 및 시간
  • 액세스한 횟수 : 파일 사용 횟수

디렉터리(Directory)

파일 시스템 내부에 있으며 디스크에 존재하는 파일에 대한 정보를 가지고 잇는 테이블을 말한다.
각 파일의 위치, 크기, 할당방식, 형태, 소유자 등의 정보를 가진다.

1. 1단계(단일) 디렉터리

모든 파일이 같은 디렉터리에서 관리되는 가장 간단한 구조

모든 파일이 유일한 이름 가져야하며 다수의 사용자가 사용하거나 파일의 수가 증가하면 관리가 어렵다는 단점이 있다.

2. 2단계 디렉터리

중앙에 마스터 파일 디렉터리(Master File Directory: MFD)가 있고 그 아래에 각 사용자에게 할당하는 디렉터리가 있는 구조

각 사용자에게 서로 다른 디렉토리를 할당하며 각 사용자는 각자의 디렉터리를 가지므로 다른 사용자와 같은 이름의 파일 소지가 가능하다.
사용자 이름과 파일 이름으로 특정 파일을 명시해야해서 파일 이름이 길다.
각 사용자명 디렉토리가 독립적이므로 파일 공유가 불가능하다.

3. 트리 구조 디렉터리

하나의 루트 디렉터리와 다수의 서브 디렉터리로 구성된다.

서로 다른 디렉터리 내에서는 동일한 이름의 파일이나 디렉터리 생성이 가능하다.
파일 및 디렉터리 탐색은 절대경로, 상대경로를 이용한다.
(절대 경로: 루트 디렉터리를 기준으로 해당 파일이나 종속디렉터리에 이르는 경로)
(상대경로: 현재 디렉터리기준)
디렉터리 생성 및 삭제가 용이하며, Window, unix, dos운영체제에서 사용하는 구조이다.

4. 비순환 그래프 디렉터리 (Acyclic Graph Directory)


하위 파일이나 디렉터리의 공유를 허용한다.
단순 트리구조보다 복잡하며 공유된 하나의 파일을 탐색할 경우 다른 경로로 두번이상 찾아갈 수 있어서 시스템 성능 저하될 수 있다.
공유된 파일을 삭제할 경우 파일은 삭제되었지만 포인터는 남아있는 고아포인터가 발생할 수 있다.

5. 일반 그래프 디렉터리

트리 구조에 링크를 첨가한 구조이다.

파일이나 디렉터리 공유가 가능하며 그래프 탐색 알고리즘이 간단해서 디렉터리 접근 용이하다.
불필요한 파일제거를 위한 카운터가 필요하며 제거된 파일의 디스크 공간 확보를 위해 쓰레기 수집이 필요하다.

파일 시스템 마운팅(File System Mounting)

파일에 접근하려면 파일 시스템이 프로세서들에 의해 미리 장착(mount)되어야한다.
사용하고싶은 파일을 소유한 파일 시스템을 특정 디렉터리에 mount하면 그때부터 파일을 사용할 수 있다. 이때 특정한 디렉터리를 mount point라고함.

파일 할당 방식

하나의 디스크에 여러 파일이 저장되며 디스크에서 파일을 배치하는 방법은 다음과 같다.

1. 연속할당

파일들을 디스크 내의 연속적으로 인접된 공간에 할당

장점

  • 엑세스 시간 감소
  • 디렉터리는 파일 시작주소와 길이 정보만 잇으면 되므로 구현 용이

단점

  • 파일 크기에 맞는 기억공간이 확보되지 않으면 그 파일은 생성되지 못함.
  • 공간확보를 위해 재배치를 이용한 주기적인 압축이 필요

2. 연결할당

파일을 디스크 블록의 연결 리스트 모양으로 할당

장점

  • 파일의 크기가 미리 고정될 필요가 없으며 파일은 계속해서 커질 수 있음
  • 주기적인 밀집화 필요 없음

단점

  • 포인터를 관리하기위한 추가공간이 필요
  • 포인터를 잃어버리거나 잘못된 포인터 주소를 가질 경우 결국 모든 자료를 잃음.

참고자료

OS 파일시스템
파일과 파일 시스템

profile
공부하려고 노력ing....

0개의 댓글