Files & Directory[Operation System]

SnowCat·2023년 2월 22일
0

CS - Operating System

목록 보기
6/6
post-thumbnail

파일

  • 보조기억장치에 저장된 관련 정보의 집합
  • 의미있고 관련 있는 정보를 모은 논리적 단위
  • 파일에는 파일을 이루는 정보와, 파일을 실행하기 위한 정보, 부가 정보가 존재함
  • 파일의 속성은 다음과 같은 종류가 있음

  • 운영체제는 파일연산을 위한 시스템 호출을 가짐

디렉터리

  • 파일을 관리하기 위한 계층
  • 과거 운영체제에서는 하나의 디렉터리만이 존재함
  • 현재는 여러 계층으로 파일과 폴더를 관리하는 트리 구조의 디렉터리를 가짐
  • 최상위 디렉터리부터 서브 디렉터리들과 파일을 관리하게 됨
  • 디렉터리를 사용해 파일/디렉터리의 위치, 나아가 이름까지 특정지을 수 있는 정보인 경로를 사용할 수 있음
  • 경로는 절대 경로와 상대 경로로 나뉨
  • 같은 디렉터리에는 동일한 이름의 파일이 있을 수 없지만, 서로 다른 디렉터리에서는 가능함
  • 운영체제는 디렉터리 연산을 위한 시스템 호출을 가짐
  • 많은 운영체제에서는 디렉터리를 특별한 형태의 파일로 간주함

디렉터리 테이블

  • 디렉터리에 저장되는 내용물을 디렉터리 테이블이라 부름
  • 각 엔트리(행)에는 디렉터리에 포함된 대상의 이름, 대상이 보조기억장치에 저장된 위치를 유추할 수 있는 정보가 들어있음
  • 디렉터리 엔트리에 파일 속성을 저장하는 경우도 있음

파티셔닝과 포매팅

  • 보조기억장치를 사용하기 위해서는 파티셔닝과 포매팅을 해야 함
  • 파티서닝은 저장 장치의 논리적인 영역을 구획하는 작업을 의미함
  • 포매팅은 파일 시스템을 설정하고, 어떤 방식으로 파일을 저장하고 관리할지를 결정하며 새로운 데이터를 쓸 준비를 하는 작업이 있음
  • 파일 시스템은 포매팅을 할 때 결정됨

파일 할당 방법

  • 운영체제에서는 파일과 디렉터리를 블록 단위로 읽고 쓰게 됨
    블록: 섹터를 여러개로 묶은 단위
  • 파일을 보조기억장치에 할당하는 방법으로 연속 할당과 불연속 할당이 있음

연속 할당

  • 보조기억장치 내 연속적인 블록에 파일을 할당하는 방법
  • 연속된 파일에 접근하기 위해서는 파일의 첫 번째 블록 주소와 블록 단위의 길이만 알면 딤
  • 디렉터리 엔트리에는 파일 이름과 첫번째 블록 주소, 블록 단위 길이의 명시가 필요함
  • 구현이 단순하지만 외부 단편화를 야기할 수 있음

불연속 할당 - 연결 할당

  • 각 블록의 일부에 다음 불록의 주소를 저장해 다음 블록을 가리키는 형태로 할당
  • 데이터 블록을 연결 리스트로 관리함
  • 연속 할당과 마찬가지로 디렉터리 엔트리에는 파일 이름과 첫번째 블록 주소, 블록 단위 길이의 명시가 필요함
  • 반드시 첫번째 블록부터 하나씩 읽어야 하고, 오류 발생시 오류 발생 이후 블록을 읽어올 수 없다는 단점이 있음

불연속 할당 - 색인 할당

  • 파일의 모든 블록 주소를 색인 블록에 모아 관리하는 방식
  • 파일의 임의 위치에 접근하기에 좋음
  • 디렉트리 엔트리에는 파일 이름과, 색인 블록 주소만 기록하면 있다 됨

출처:
https://www.youtube.com/watch?v=C-IYRzC-GW8&list=PLVsNizTWUw7FCS83JhC1vflK8OcLRG0Hl&index=43
혼자 공부하는 컴퓨터 구조+운영체제, 강민철, 한빛미디어

파일 시스템

FAT 파일 시스템

  • 연결 할당 기반 파일 시스템으로 연결 할당의 단점을 보완함
  • 각 불록에 포함된 다음 블록 주소를 한데 모아 테이블 (File Allocation Table)로 관리
  • FAT가 메모리에 캐시되면 파일의 임의 접근 속도 개선 가능
  • 디렉터리 엔트리는 다음과 같음

유닉스 파일 시스템

  • 색인 할당 기반의 파일 시스템
  • 색인 블록은 i-node로 부르며, 파일의 속성 정보와 15개의 블록 주소를 저장 가능함
  • 큰 파일을 저장하는 경우에는 블록 주소중 12개에는 직접 블록 주소를 저장하고, 13번째 주소에 단일 간접 블록 주소(데이터를 저장하는 블록의 포인터), 14번째 주소에 이중 간접 블록 주소, (간접 블록을 가리키는 포인터), 15번째 주소에는 삼중 간접 블록 주소를 저장하게 됨
  • 디렉터리 엔트리는 i-node 번호와 파일 이름으로 구성됨
profile
냐아아아아아아아아앙

0개의 댓글

관련 채용 정보