[운영체제] 9. 파일시스템

nnm·2020년 6월 16일
0

운영체제

목록 보기
9/10
post-thumbnail

OS? Oh Yes! 책을 바탕으로 학습한 내용입니다.

파일(File)

저장 장치에 연관된 정보의 논리적 저장 단위

  • 필드(Field)
    데이터의 기본 요소로서 단일 값을 가지는 단위
  • 레코드(Record)
    관련된 필드를 모아놓은 것으로 응용 프로그램에 의해 하나의 단위로 취급
  • 더미(Pile) 파일
    일정한 구조를 가지지 않은 채 수집되는대로 저장되는 방식
  • 순차(Sequential) 파일
    같은 크기의 레코드들로 구성, 각 레코드는 알려진 순서로 나열된 같은 개수와 크기의 필드들로 구성된다. 일괄처리에 적합하지만 특정 레코드에 대한 접근이 필요한 대화형 접근에는 효과적이지 않다.
  • 인덱스(Index) 순차 파일
    순차 파일의 특성에다 임의의 레코드를 빨리 접근할 수 있기 위한 파일 인덱스와 레코드의 추가를 위한 오버플로우 파일이 추가된 형태
  • 인덱스(Index) 파일
    몇 개 또는 전체 필드에 대한 인덱스를 만들어 임의의 레코드에 대한 접근성을 높인 형태
  • 해시(Hash) 파일
    특정 필드의 값을 해싱하여 임의의 레코드에 대한 접근성을 높인 형태

파일 시스템의 구조 - 논리적 관점

  • 평면 디렉토리 구조
    파일 시스템 전체에 한 개의 디렉토리가 존재하고 모든 파일들은 이 디렉토리에 저장한다.
  • 2단계 디렉토리 구조
    마스터 파일 디렉토리에 사용자별 디렉토리 구조를 가지게 한 형태, 각 사용자의 디렉토리는 더 이상의 하부 디렉토리를 가질 수 없다.
  • 계층(트리) 디렉토리 구조
    최상위 루트 디렉토리 아래에 계층적 구조의 디렉토리를 구성하는 형태
  • 비순환 그래프(Acyclic Graph) 디렉토리 구조
    계층 디렉토리 구조에서 링크로 각 디렉토리를 연결시킨다. 이 때 순환구조가 생기지 않도록 한다.
  • 일반 그래프(General Graph) 디렉토리 구조
    순환 구조가 존재하는 일반 그래프 형태의 디렉토리

파일 시스템의 구조 - 물리적 관점

  • 연속 할당(Contiguous Allocation)
    디스크 상에서 연속된 다수 개의 블록들에 파일을 저장하는 방법, 공간 활용이 비효율적이며 외부 단편화를 일으킨다.
  • 체인 할당(Chained Allocation)
    블록 크기만큼 나누어진 파일의 내용을 연속적이지 않은 블록들에 할당하여 체이닝하는 방법
  • 인덱스 할당(Indexed Allocation)
    비연속 할당으로 연속 할당과 체인 할당의 문제점을 상당부분 해결한 방법
    • 비트 벡터(Bit Vector)
      디스크 블록당 하나의 비트가 대응된 벡터를 두어 사용중 유무를 파악한다. 파일 시스템에서 관리하며 빠른 검색을 위해 메모리에 둔다.
    • 리스트(List)
      디스크 상의 빈 블록들을 리스트로 연결하고 첫 번째 빈 블록에 대한 포인터를 커널이 가지는 방법
    • 그룹화(Grouping)
      각 빈 블록이 n개의 빈 블록 번호를 가지도록 한다. 이 중 n - 1 개는 빈 블록의 번호이며, 나머지 하나는 다음번 n개의 빈 블록 번호를 가지고 있는 블록 번호다. 기본적으로 리스트를 사용하지만 노드의 수가 1/n이다.
    • 인덱싱(Indexing)
      인덱스 테이블을 사용해 디스크 상의 연속된 빈 블록들 당 하나의 인덱스 항목을 설정하여 관리하는 기법, 빈 공간 전체가 하나의 파일로 취급됨

파일에 대한 접근 제어

  • 패스워드
  • 접근 행렬(Access Matrix)
    객체(파일)와 도메인(같은 접근 권한을 갖는 프로세스들의 집합)별 접근 권한을 행렬에 저장, 희소 행렬이 될 가능성이 크다.
    • 전역 테이블
      시스템 전체에 대한 도메인과 파일들 그리고 접근 권한을 순서대로 세 개의 쌍으로 표현하여 전역 테이블에서 관리
    • 접근 리스트
      접근 행열의 각각의 열을 리스트로 표현한 것, UNIX에서 채택
    • 권한 리스트
      접근 행렬의 행을 리스트로 표현한 것, 프로세스는 자신이 속하는 도메인이 정해져 있으므로 임의의 파일에 접근할 때 시스템에 의해 권한 리스트가 검색된 후 접근을 허용하는지 결정, 대부분의 시스템에서 접근, 권한 리스트를 함께 사용
    • 락키(Lock-key) 방식
      파일을 락(Lock) 비트 패턴으로, 도메인을 키(Key) 비트 패턴으로하는 비트 패턴 리스트를 통해 일치여부 판단
profile
그냥 개발자

0개의 댓글