[OS] 파일 시스템 인터페이스(File System Interface)

2023. 5. 15. 10:53·운영체제
목차
  1. 파일 시스템
  2. 파일 개념
  3. 접근 방법
  4. 디렉터리
  5. 비순환 그래프(Acyclic-Graph) 디렉터리
  6. 파일 시스템 마운트
  7. 파일 보호(File protection)
  8. 요약

파일 시스템

파일 시스템

  • 저장 장치의 데이터를 구성하는 소프트웨어

사용자(user) 관점의 파일 시스템

  • 파일 시스템 인터페이스
  • 파일 시스템을 사용자에게 보여주는 방법은 무엇인가?
  • 파일, 디렉토리, 속성(attribute), 작업(operation)
  • 트리 구조

스토리지 관리(storage management) 관점의 파일 시스템

  • 파일 시스템 구현
  • 논리 파일 시스템을 저장장치에 매핑하는 방법은 무엇인가?
  • 레이아웃, 데이터 구조, 알고리즘
  • 스토리지 내부를 이해해야 한다.

파일 시스템의 목표

 


파일 개념

파일

  • 이름이 지정된 관련 정보 모음
  • 바이트의 시퀀스
  • 보조 저장장치에 저장
  • 데이터 파일과 프로그램 파일로 나뉜다.

파일 유지 관리를 위한 파일 속성(attributes)

  • 이름(Name) : 사람이 읽을 수 있는 형태로 보관된 정보만 제공
  • 식별자(Identifier) : 고유 태그(숫자)는 파일 시스템 내의 파일을 식별
  • 유형(Type) : 일반 파일, 디렉토리, 심볼릭 링크, 명명된 파이프 등
  • 위치(Location) : 장치의 파일 위치에 대한 포인터
  • 크기(Size) : 현재 파일 크기
  • 보호(Protection) : 읽기, 쓰기, 실행
  • 시간(Time), 날짜(Date), 사용자 식별(User identification)

파일 작업(operations)

  • Create
  • Delete
  • Open
  • Close
  • Read
  • Write
  • Truncate
  • Reposition within file-seek

파일 형식(types)

  • 파일 확장자로 인식
파일 형식 일반 확장자 기능
실행 파일 exe, com, bin, none 읽기-실행 기계어 프로그램
개체 obj, o 컴파일됨, 컴퓨터 언어, 연결되지 않음
소스 코드 c, cc, java, pas, asm, a 다양한 언어로 된 소스 코드
배치 bat, sh 명령 인터프리터에 대한 명령
텍스트 txt, doc 텍스트 데이터, 문서
워드 프로세서 wp, text, rtf, doc 다양한 워드 프로세서 형식
라이브러리 lib, a, so, dll 프로그래머용 루틴 라이브러리
인쇄 또는 보기 ps, pdf, jpg ASCII 또는 이진 파일
아카이브 arc, zip, tar 관련 파일을 하나의 파일로 그룹화(가끔 압축)하여 보관 또는 저장
멀티미디어 mpeg, mov, rm, mp3, avi 오디오 또는 A/V 정보가 들어 있는 이진 파일

Magic number(UNIX)

  • 파일의 대략적인 유형을 나타내기 위해 일부 파일의 시작 부분에 저장
  • 실행 가능한 프로그램, 배치 파일(또는 셸 스크립트), 포스트스크립트 파일 등.
  • 유닉스에서는 확장자가 아닌 Magic number로 구분함

 


접근 방법

순차 접근(Sequential access)

  • 파일은 레코드의 순서대로 액세스
  • 파일의 다음 부분을 읽고 쓰고 파일 포인터를 자동으로 진행
  • 예: 편집기, 컴파일러

임의 접근(Random access = 직접 액세스)

  • 파일은 임의의 순서로 액세스
  • 파일 읽기/쓰기 순서에는 제한이 없다.
  • 예: DBMS

 


디렉터리

디렉터리

  • 파일 그룹 및 기타 디렉터리가 포함된 가상 컨테이너
  • 예: 트리 구조의 디렉터리

유닉스 디렉터리 구조

디렉터리 항목 - (파일 이름, 아이노드 번호)
아이노드 - (속성, 파일 데이터 ptr)

디렉터리에서 수행 작업

  • 파일 검색(Search): 이름이 유사한 특정 파일 또는 파일의 항목을 찾기
  • 파일 만들기(Create): 새 파일을 만들어 디렉토리에 추가
  • 파일 삭제(Delete): 디렉토리에서 파일 제거
  • 디렉터리 리스트 : 디렉터리의 파일을 나열
  • 파일 이름 변경: 파일 이름을 변경
  • 파일 시스템 이동(Traverse): 모든 디렉토리 및 디렉토리 구조 내의 모든 파일에 액세스

트리 구조 디렉터리

비순환 그래프(Acyclic-Graph) 디렉터리

  • 하위 디렉터리 및 파일 공유

동일한 파일(또는 하위 디렉토리)이 두 개의 서로 다른 디렉토리에 있을 수 있다.

  • 트래버스 문제 및 삭제 문제
  • 시나리오
    • Kim은 X파일을 가지고 있다.
    • Lee의 디렉토리 아래에 동일한 X가 있어야 한다.
    • UNIX에서 Lee의 디렉토리에 "link"를 만든다.
  • 하드 링크
    • X의 메타데이터를 Lee의 디렉토리에 복사
    • X를 삭제하면?
    • 참조 카운트를 사용
  • 심볼릭 링크
    • Lee의 디렉토리에 X의 경로 이름을 만든다.
    • X를 삭제하면?
    • Dangling 참조

 


파일 시스템 마운트

파일 시스템 마운트

  • 파일 시스템이 사용할 준비가 된 운영 체제를 지시하고 시스템의 파일 시스템 계층 구조에 있는 특정 지점(마운트 포인트)과 연결

디스크 2와 디스크 3의 파일에 액세스하려면 어떻게 해야 하는가?

 


파일 보호(File protection)

파일 소유자는 사용자가 수행할 수 있는 작업을 제어

  • what - 권한(읽기, 쓰기, 실행, 추가, 삭제, 목록 등)
  • who - 사용자(슈퍼 사용자, foo, kim, park, jane 등)

그룹화가 필요

  • 접근 권한 : 읽기, 쓰기, 실행
  • 세 가지 사용자 클래스 : 소유자, 그룹, 기타

예

 


요약

  • 파일 시스템 : 저장 장치의 데이터를 구성하는 소프트웨어
  • 파일 시스템 인터페이스 : 파일 시스템을 사용자에게 표시하는 방법
  • 파일 : 관련 정보의 명명된 모음
  • 디렉터리 : 파일 그룹과 다른 디렉터리 그룹이 포함된 가상 컨테이너
  • 파일 시스템 마운트 : 파일 시스템이 사용할 준비가 된 운영 체제를 지시하고 마운트 지점과 연결
저작자표시 변경금지 (새창열림)

'운영체제' 카테고리의 다른 글

[OS] 파일 시스템 구현(File System Implementation)  (0) 2023.05.15
[OS] I/O Systems  (0) 2023.05.15
[OS] 대량 저장 구조(Mass-Storage Structure)  (0) 2023.05.08
[OS] 가상메모리(Virtual Memory)  (0) 2023.05.01
[OS] 메인메모리(Main Memory)  (0) 2023.04.24
  1. 파일 시스템
  2. 파일 개념
  3. 접근 방법
  4. 디렉터리
  5. 비순환 그래프(Acyclic-Graph) 디렉터리
  6. 파일 시스템 마운트
  7. 파일 보호(File protection)
  8. 요약
'운영체제' 카테고리의 다른 글
  • [OS] 파일 시스템 구현(File System Implementation)
  • [OS] I/O Systems
  • [OS] 대량 저장 구조(Mass-Storage Structure)
  • [OS] 가상메모리(Virtual Memory)
파스텔코랄
파스텔코랄
Developer Blog 📜 Lots of rules and no mercy ✨
슬기로운 개발일지Developer Blog 📜 Lots of rules and no mercy ✨
파스텔코랄
슬기로운 개발일지
파스텔코랄
전체
오늘
어제
  • 스터디
    • 컴퓨터시스템구조
    • 모바일프로그래밍
    • 프로그래밍언어론
    • 운영체제
    • 컴퓨터네트워크
    • 데이터분석
    • 소프트웨어공학
    • 시스템프로그래밍

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • About

링크

공지사항

인기 글

태그

네트워크
프로그래밍언어론
어셈블리어
운영체제

최근 댓글

최근 글

hELLO· Designed By정상우.v4.6.1
파스텔코랄
[OS] 파일 시스템 인터페이스(File System Interface)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.