본문 바로가기
컴퓨터공학/운영체제

OS 13. File System Interface

by Jinger 2023. 5. 19.

서론

 사용자 대부분에게 파일 시스템은 가장 많이 노출되는 범용 운영체제의 부분이다. 운영체제와 컴퓨터 시스템의 모든 사용자의 데이터와 프로그램을 온라인으로 저장하는 실제적인 파일의 집합체와 시스템 내의 모든 파일에 관한 정보를 제공하는 디렉터리 구조로 구성된다. 파일의 다양한 면과 주된 디렉터리 구조에 관해서 살펴보고 다중 프로세스, 사용자 그리고 컴퓨터 간에 파일을 공유하는 의미를 알아보자.


File system

 파일 시스템은 컴퓨터 시스템에서 데이터를 조직화하고 저장하는 방법이다. 파일 시스템은 사용자 관점과 저장 관리 관점에서 다룰 수 있다.

 사용자 관점에서 파일 시스템은 파일과 디렉터리의 트리 구조로 표현된다. 사용자는 파일 시스템 인터페이스를 통해 파일을 생성, 읽기, 쓰기, 삭제하는 등의 작업을 수행할 수 있다. 파일 시스템은 파일과 디렉터리의 속성을 관리하며, 사용자에게 파일 시스템을 시각적으로 표시한다.

 저장 관리 관점에서 파일 시스템은 논리적인 파일 시스템을 실제 저장 장치에 매핑하는 방법을 다룬다. 이를 위해 파일 시스템은 레이아웃, 데이터 구조, 알고리즘 등을 사용하여 파일을 저장하고 관리한다. 파일 시스템은 데이터를 저장 장치에 효율적으로 배치하고 접근하기 위해 저장 장치의 내부 구조를 이해하고 활용한다.

 파일 시스템은 컴퓨터 시스템에서 중요한 역할을 수행하며, 데이터의 안정성과 효율성을 보장하기 위해 다양한 기술과 알고리즘이 적용된다.

File system’s objective

File concepts

 파일 개념은 컴퓨터 시스템에서 중요한 역할을 하는데, 다음과 같은 특징과 작업을 가지고 있다

  • 파일: 관련된 정보의 이름이 지정된 집합으로, 그저 일련의 바이트들로 이루어져 있다. 보조 저장 장치에 저장되며, 데이터 파일과 프로그램 파일로 구분될 수 있다.
  • 파일 속성: 파일의 유지를 위해 사용되는 속성들이 있다.
    • 이름: 사람이 읽을 수 있는 형태로 저장되는 정보
    • 식별자: 파일 시스템 내에서 파일을 고유하게 식별하는 태그(번호)
    • 타입: 일반 파일, 디렉토리, 심볼릭 링크, 이름 있는 파이프 등과 같은 파일의 종류를 나타냄
    • 위치: 파일이 저장 장치 상에서의 위치를 가리키는 포인터
    • 크기: 현재 파일의 크기
    • 보호: 읽기, 쓰기, 실행 등의 권한
    • 시간, 날짜 및 사용자 식별 등의 정보도 포함될 수 있다.
  •  파일 작업: 파일에 대해 수행할 수 있는 다양한 작업들이 있다.
    • 생성: 새로운 파일을 생성
    • 삭제: 파일을 삭제
    • 열기: 파일을 열어 작업을 시작
    • 닫기: 파일을 닫는다
    • 읽기: 파일에서 데이터를 읽는다.
    • 쓰기: 파일에 데이터를 쓴다.
    • 잘라내기: 파일의 크기를 줄인다.
    • 파일 내에서 이동: 파일 내에서 특정 위치로 이동한다.
  • 파일 유형: 파일 유형은 파일 확장자로 인식될 수 있다. UNIX에서는 매직 넘버라는 특정 파일의 시작 부분에 저장된 값으로 파일의 종류를 대략적으로 알 수 있다. 예를 들어, 실행 가능한 프로그램, 배치 파일(또는 셸 스크립트), 포스트스크립트 파일 등이 있다.
파일 유형 일반적 확장자 기능
실행 기능 exe, com, bin 혹은 없는 경우 수행 기능 기계어 프로그램
목적 obj, o 연결되지 않은 상태의 컴파일된 기계 언어
소스 코드 c, cc, java, perl, asm 다양한 언어로 된 소스 코드
배치 bat, sh 명령 해석기에 대한 명령
마크업 xml, html, tex 덱스트 데이터, 서류
워드 프로세서 xml, rtf, docx 다양한 워드프로세서 형식
라이브러리 lib, a, so, dll 프로그래머들을 위한 라이브러리 루틴
인쇄나 뷰(view) gif, pdf, jpg 인쇄 출력용 파일로서 ASCII 혹은, 이진 파일 형식
백업, 보관 rar, zip, tar 관련된 파일들을 하나로 묶어서 보관하는 것으로 저장을 위해 압축도 가능
멀티미디어 mepg, mov, mp3, mp4, avi 오디오나 비디오 정보를 포함하는 이진 파일

Access modes

순차 접근

 파일은 순서대로, 한 레코드씩 접근한다. 파일의 다음 부분을 읽고 쓰고 파일 포인터를 자동으로 전진시킨다. 예로 편집기, 컴파일러가 있다.

랜덤 접근(직접 접근)

 파일은 무작위 순서로 접근한다. 파일 읽기/쓰기 순서에는 제한이 없다. 예로 DBMS가 있다.


Directory

 디렉터리(Directory)는 파일과 가능한 다른 디렉터리의 그룹을 가상의 컨테이너로서 담고 있는 개념이다. 디렉터리는 트리 구조로서 파일들과 다른 디렉터리들을 포함할 수 있다.


 유닉스에서 디렉터리 엔트리는 (파일 이름, 아이노드 번호)의 형태로 저장되며, 아이노드는 (속성, 파일 데이터에 대한 포인터)를 포함한다.

 디렉터리에서 다음과 같은 작업이 수행된다.

  • 파일 검색: 특정 파일 또는 비슷한 이름을 가진 파일을 찾는다.
  • 파일 생성: 새로운 파일을 생성하고 디렉터리에 추가한다.
  • 파일 삭제: 파일을 디렉터리에서 삭제한다.
  • 디렉터리 목록 표시: 디렉터리에 있는 파일들을 목록으로 표시한다.
  • 파일 이름 변경: 파일의 이름을 변경한다.
  • 파일 시스템 탐색: 디렉터리 구조 내의 모든 디렉터리와 파일에 접근한다.
  • 비순환 그래프 디렉터리: 서브디렉터리와 파일을 공유하는 디렉터리이다. 동일한 파일(또는 서브디렉터리)이 두 개의 다른 디렉터리에 있을 수 있다. 이로 인해 탐색 문제와 삭제 문제가 발생할 수 있다.

Tree-Structured Directory/Acyclic-Graph Directories(공유 하위 디렉토리 및 파일 보유)

 하드 링크(Hard link)는 Lee의 디렉터리에 X의 메타데이터를 복사하여 링크를 생성하는 방식이다. 참조 카운트를 사용하여 X를 삭제할 때 처리된다. 심볼릭 링크(Symbolic link)는 Lee의 디렉터리에서 X의 경로명을 생성하는 방식이다. X를 삭제할 때 링크가 남아 있는 문제가 발생할 수 있다.

File system mounting

 파일 시스템 마운트(File system mount)는 운영 체제에게 특정 파일 시스템이 사용 가능하다는 것을 알리고, 시스템의 파일 시스템 계층 구조에서 특정 지점(마운트 지점)과 연결한다.


 디스크 2와 디스크 3에 있는 파일에 접근하기 위해서는 다음과 같은 단계를 거쳐야 한다.

  • 디스크 확인: 시스템에서 사용 가능한 디스크를 확인한다. 디스크 2와 디스크 3가 시스템에 연결되어 있는지 확인해야 한다.
  • 파티션 확인: 각 디스크에는 하나 이상의 파티션이 있을 수 있다. 디스크의 파티션 구성을 확인하여 원하는 파티션을 식별한다.
  • 파일 시스템 마운트: 선택한 파티션에 포함된 파일 시스템을 마운트한다. 이를 위해 마운트 지점(예: /mnt/disk2, /mnt/disk3)을 생성하고 해당 지점에 파일 시스템을 연결한다.
  • 파일 접근: 마운트된 파일 시스템의 마운트 지점을 통해 해당 디스크에 있는 파일에 접근할 수 있다. 마운트 지점을 통해 파일을 읽거나 쓰는 등의 작업을 수행할 수 있다.

 요약하면, 디스크 2와 디스크 3에 있는 파일에 접근하기 위해서는 해당 디스크를 시스템에 연결하고, 파일 시스템을 마운트하여 파일에 접근할 수 있는 마운트 지점을 생성해야 한다. 그런 다음 마운트 지점을 통해 파일을 읽거나 쓸 수 있다.


File protection

파일 보호(File protection)는 파일 소유자가 누구에게 어떤 작업을 허용할지를 제어할 수 있어야 한다.

  • "무엇"을(what) - 허가(permission) (읽기, 쓰기, 실행, 추가, 삭제, 목록 등)
  • "누구"에게(whom) - 사용자(users) (슈퍼유저, foo, kim, park, jane 등)

이를 위해 그룹화가 필요하다.

  • 접근 권한
    • 읽기, 쓰기, 실행(read, write, execute)
  • 사용자의 세 가지 클래스
    • 소유자, 그룹, 기타(owner, group, others)

 요약하면, 파일 보호는 파일 소유자가 어떤 작업을 어떤 사용자에게 허용할지를 제어하는 기능을 제공한다. 이를 위해 파일에 대한 접근 권한을 설정하고, 사용자를 소유자, 그룹, 기타 세 가지 클래스로 분류한다.


핵심

  • 파일 시스템은 저장 장치에 데이터를 정리하기 위한 소프트웨어이다.
  • 파일 시스템 인터페이스는 파일 시스템을 사용자에게 보여주는 방법이다.
  • 파일은 관련 정보의 명명된 모음이다.
  • 디렉토리는 파일 그룹 및 가능한 다른 디렉터리가 있는 가상 컨테이너이다.
  • 파일 시스템 마운트는 운영 체제에 파일 시스템을 사용할 준비가 되었음을 알리고 이를 마운트 지점과 연결한다.
반응형

'컴퓨터공학 > 운영체제' 카테고리의 다른 글

OS 14. File System Implementation  (1) 2023.05.19
12. I/O Systems  (0) 2023.05.18
OS 11. Mass-Storage Structure  (0) 2023.05.18
OS 10. Virtual Memory  (0) 2023.05.18
OS 9. Main Memory  (0) 2023.05.18

댓글