728x90
반응형

Chapter 15 파일 시스템

1. 파일과 디렉터리

파일/ 확장자/ 속성/ 디렉터리/ 경로/ 절대 경로/ 상대 경로

파일(file)

  • 보조기억장치(하드 디스크, SSD)에 저장된 관련 정보의 집합
  • 의미 있고 관련된 정보를 모은 논리적 단위
  • 이름/ 파일 실행 위한 정보/ 속성(attribute) = 메타데이터(metadata): 관련된 부가 정보
    • 유형/ 크기/ 보호/ 생성 날짜/ 마지막 접근 날짜/ 마지막 수정 날짜/ 생성자/ 소유자/ 위치
      • 운영체제가 인지하는 파일의 종류 나타냄
      • ex. 같은 이름의 파일이라도 텍스트 파일, 실행 파일, 음악 파일 등 유형 != -> 실행 양상 !=
        => 확장자(extension) ~> 파일 유형 확인
  • 운영체제) 파일 연산 -> 시스템 호출 제공
    • 파일 생성/ 삭제/ 열기/ 닫기/ 읽기/ 쓰기

*파일 유형

  • 실행 파일: x/ exe/ com/ bin
  • 목적 파일: obj/ o
  • 소스 코드 파일: c/ cpp/ cc/ java/ asm/ py
  • 워드 프로세서 파일: xml/ rtf/ doc/ docx
  • 라이브러리 파일: lib/ a/ so/ dll
  • 멀티미디어 파일: mpeg/ mov/ mp3/ mp4/ avi
  • 백업/보관 파일: rar/ zip/ tar

디렉터리(directory) = 폴더(folder)

  • 여러 개의 파일 or 디렉토리 묶어 관리할 수 있음
  • 1단계 디렉터리(single-level directory): 모든 파일이 하나의 디렉터리 아래
  • 트리 구조 디렉터리(tree-structured directory)
    • 최상위 디렉터리 = 루트 디렉터리(root directory): 슬래시(/)로 표현
  • 운영체제) 디렉터리 연산 -> 시스템 호출 제공
    • 디렉터리 생성/ 삭제/ 열기/ 닫기/ 읽기

경로(path)

디렉터리를 이용해 파일 위치, 파일 이름 특정 짓는 정보

  • 절대 경로(absolute path)
    • 루트 디렉터리부터 시작하는 경로
    • 루트 디렉터리에서 자기 자신까지 이르는 고유한 경로
  • 상대 경로(relative path)
    • 현재 디렉터리부터 시작하는 경로

=> 디렉터리: 특별한 형태의 파일 => 포함된 정보가 특별할 뿐 디렉터리도 파일

  • 파일: 내부에 해당 파일과 관련된 정보 담음
  • 디렉터리: 내부에 해당 디렉터리에 담겨 있는 대상과 관련된 정보 담음
    • 정보가 보조기억장치에 테이블(표) 형태로 구성돼 저장
    • 엔트리(행)에 담기는 정보: 디렉토리에 포함된 대상의 이름, 그 대상이 보조기억장치 내 저장된 위치 유추할 수 있는 정보 등
      => 디렉터리 엔트리 ~> 해당 디렉터리에 무엇이 담겼는지, 보조기억장치 어디에 있는지 직간접적으로 알 수 O

2. 파일 시스템

파티셔닝/ 포매팅/ 연속 할당/ 연결 할당/ 색인 할당/ FAT 파일 시스템/ 유닉스 파일 시스템

 

파일 시스템: 학습한 파일, 디렉터리 -> 보조기억장치에 저장, 접근할 수 있게 하는 운영체제 내부 프로그램

파티셔닝(partitioning)과 포매팅(formatting)

보조기억장치 사용 전 파티셔닝, 포매팅 필요

  • 파티셔닝
    • 파티션을 나누는 작업
    • 저장 장치의 논리적인 영역을 구획하는 작업
    • 용량 ↑ 저장장치(하드 디스크, SSD) -> 하나 이상의 논리적인 단위로 구획
    • 파티션(partition): 파티셔닝 작업 ~> 나눠진 각각의 영역
  • 포매팅
    • 포맷 작업
    • 저장 장치를 완전히 삭제하는 것(X)
    • 파일 시스템 설정 -> 파일 저장 및 관리 방식 결정, 새로운 데이터 쓸 준비 작업
      • -> 어떤 종류의 파일 시스템 사용할지 결정
    • 저수준 포매팅: 저장 장치를 생성할 당시 공장에서 수행되는 물리적인 포매팅
    • 논리적 포매팅: 파일 시스템 생성하는 포매팅(-> 현재 설명하고 있는 것)

파일 할당 방법

운영장치) 파일, 디렉터리 -> 블록(block) 단위로 읽고 씀

= 하나의 파일이 보조기억장치에 저장될 때 하나 이상의 블록에 걸쳐 저장됨

 

크기 ↑ 파일 -> 여러 블록에 걸쳐 저장/ 크기 ↓ 파일 -> 적은 수의 블록에 걸쳐 저장

하나 이상의 섹터 -> 블록 단위로 묶어서 파일, 디렉터리 관리

섹터: 하드 디스크의 가장 작은 저장 단위

 

보조기억장치에 할당하는 방법(파일 할당)

  • 연속 할당(contiguous allocation)
    • 보조기억장치 내 연속적인 블록에 파일을 할당하는 방식
    • 파일의 첫 번째 블록 주소, 블록 단위의 길이 알면 됨
      -> 디렉터리 엔트리에 파일 이름, 첫 번째 블록 주소, 블록 단위 길이 명시
  • 불연속 할당
    • 연결 할당(linked allocation)
      • 각 블록 일부에 다음 블록의 주소 저장 -> 각 블록이 다음 블록 가리키는 형태로 할당하는 방식
        어떤 블록의 주소를 저장한다 = 그 블록을 가리킨다 (주소 알면 해당 블록에 접근할 수 있음)
      • 파일을 이루는 데이터 -> 연결 리스트로 관리
      • 파일이 여러 블록에 흩어져 저장되도 됨
    • 색인 할당(indexed allocation)
      • 파일의 모든 블록 주소를 색인 블록(index block)에 모아 관리하는 방식

파일 시스템 살펴보기

  • FAT 파일 시스템
  • 유닉스  파일 시스템

출처

 

[한빛미디어] 혼자 공부하는 컴퓨터 구조+운영체제

좋은 개발자는 컴퓨터를 분석의 대상으로 바라볼 뿐, 두려워하지 않는다!‘전공서가 너무 어려워서 쉽게 배우고 싶을 때’, ‘개발자가 되고 싶은데 뭐부터 봐야 하는지 모를 때’ ‘기술 면접

hongong.hanbit.co.kr

 

728x90
반응형
김앩옹