혼공 학습단/혼자 공부하는 컴퓨터구조+운영체제

혼자 공부하는 컴퓨터 구조 + 운영체제 Chapter 15

uomnf97 2024. 2. 11. 23:48
안녕하세요! 제이덥입니다~ 저는 학부 때 공부했던 CS 기초 내용을 Wrap-Up 하기 위해 혼공학습단 11기 활동을 진행해왔는데 이제 6주차로 마지막이네요. 개발 도서를 개발이나 프로젝트를 할 때 참고하기 위해 봤었지, 개인적으로 이렇게 오랜 기간 동안 나눠서 공부해본건 처음이었는데요. 주마다 일정 부분 나눠서 공부하니 지식을 쌓아가는 느낌이 들어서 좋았고, 이외에도 여러 관점에서 많은 것을 배우고 성장할 수 있었던 것 같습니다.
이번 포스팅에서는 Chapter 15파일 시스템에 대해서 다룹니다. 파일과 디렉토리가 무엇이며 어떠한 방식으로 저장되는지 살펴보시면 좋을 것 같습니다.
해당 도서는 제가 직접 구매하여 글을 작성한 것이며, 혼공단 11기 활동의 일환으로 학습 내용에 대한 공유 글을 작성하게되었음을 알려드립니다. 도서에 대한 자세한 내용과 활동에 대한 내용을 알고 싶은 분들은 아래 Reference에서 확인해주세요~

Chapter 15. 파일 시스템

1️⃣ 파일과 디렉토리

  • 파일
    • 파일의 정의(file):
      • 하드 디스크나 SSD와 같은 보조기억장치에 저장된 정보의 집합
      • 의미있고 관련있는 정보를 모은 논리적 단뒤
    • 파일 구성
      • 이름과 파일을 실행하기 위한 데이터
      • 속성(attribute) 또는 메타데이터(metadata) : 파일에 대한 부가 정보를 말함
  • 파일 속성과 유형
    • 파일 속성의 종류
      • 파일별로 같은 속성을 유지하고 관리
      속성 이름 의미
      유형 운영체제가 인지하는 파일의 종류
      크기 파일의 현재 크기와 허용 가능한 최대 크기
      보호 아딴 시영지기 헤딩 파일을 읽고, 쓰고
      생성 날짜 파일이 생성된 날짜를 나타낸다.
      마지막 접근 날짜 파일에 마지막으로 접근한 날짜를 나타낸다.
      마지막 수정 날짜 파일이 마지막으로 수정된 날짜를 나타낸다.
      생성자 파일을 생성한 사용자를 나타낸다
      소유자 파일을 소유한 사용자를 나타낸다
      위치 파일의 보조기억장치상의 현재 위치를 나타낸다.
    • 파일 유형
      • 운영체제가 인식하는 파일 종류
      • 같은 이름의 파일이라도 유형이 다르면 실행 양상도 달라짐
      • 확장자(extension) : 파일 유형을 알리기 위해 사용하는 방식으로 이름 뒤에 붙여서 활용
      • 파일 유형 종류
        파일 유형 대표적인 확장자
        실행 파일 없는 경우, 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)라고 부름
    • 1단계 디렉터리(single-level directory)
      • 옛날 운영체제의 디렉토리로 모든 파일이 하나의 디렉터리 아래에 있음
        사진 출처 : 혼자 공부하는 컴퓨터 구조 + 운영체제
    • 트리 구조 디렉터리(tree-structured directory)
      • 여러 계측 구조를 가진 디렉토리로 현대의 용량이 큰 컴퓨터들이 사용하는 디레터리 구조
        사진 출처 : 혼자 공부하는 컴퓨터 구조 + 운영체제
      • 구성 :
        • 최상위 디렉터리(루트 디렉터리라고도 하며 / 로 표기를 하기도 함.
        • 서브 디렉토리
    • 경로(path)
      • 정의 : 디렉터리를 이용하여 파일 위치 및 파일 이름을 특정 짓는 정보
      • 경로의 종류 :
        • 절대 경로(absolute path):
          • 루트 디렉터리부터 자기 사신까지 이르는 고유한 경로
          • ex) /home/hongong/tistory.py
        • 상대 경로(relative path):
          • 현재 디렉터리부터 시작하는 경로
          • ex) ./hongong/tistory.py
    • 디렉터리 연산을 위한 시스템 호출
      • 디렉터리를 다루는 모든 작업은 운영체제에 의해 이뤄짐 ⇒ 시스템 요청을 통해서 연산을 해결
      • 종류 : 생성/삭제/열기/닫기/읽기
    • 디렉터리 엔트리
      • 운영체제는 디렉터리도 파일으로 간주하며 단지 특별한 정보를 담고 있는 파일이라고 간주함
      • 디렉토리는 보조기억장치에 테이블 형태로 정보가 저장됨
      • 운영체제마다 다르나 디렉터리에 포함된 파일과, 보조기억장치내에 저장된 위치를 유추할 수 있는 정보가 담겨있음.

2️⃣ 파일 시스템

  • 파일 시스템
    • 파일과 디렉터리를 보조기억장치에 일목요연하게 저장하고 접근할 수 있게 하는 운영체제의 내부 프로그램
    • 대표적인 파일 시스템 : FAT 파일 시스템, 유닉스 파일 시스템
  • 파티셔닝과 포매팅
    • 파티셔닝(partitioning) : 저장 장치의 논리적인 영역을 구현하는 방법
    • 파티션(partition) : 나누어진 영역을 지칭
    • 포매팅(formatting) : 파일 시스템을 설정하여 어떤 방식으로 파일을 저장하고 관리할 것인지 결정, 새로운 데이터를 쓸 준비를 하는 작업.
      • 포매팅 종류
        • 저수준 포매팅 : 저장 장치를 생성할 당시 공장에서 수행되는 물리적인 포매팅
        • 논리적 포매팅 : 파일 시스템을 생성하는 포매팅
  • 파일 할당 방법
    • 블록(block) : 운영체제가 파일과 디렉터리를 읽고 쓰는 단위
    • 그리고 파일은 이러한 블록이 여러개 이루어져 있는데 저장 방식에 따라 다른 할당 방법을 가짐
    • 연속 할당(contiguous allocation)
      • 보조 기억 장치 내 연속적인 블록에 파일을 할당
      • 단점 : 외부 단편화 야기
        연속할당
    • 연결 할당(linked allocation)
      • 각 블록 이룹에 다음 블록의 주소를 저장하여 각 블록이 다음 블록을 가리키는 형태로 할당
      • 데이터를 연결리스트로 관리
      • 외부 단편화를 해결
      • 단점 :
        • 반드시 첫번째 블록부터 하나씩 차례대로 읽어야 함 ⇒ 임의 접근(random acess) 속도가 느림
        • 비효율적
        • 하드웨어 고장이나 오류 발생시 하해당 블록 이후 블록은 접근 불가
          연결 할당
    • 색인 할당(indexed allocation)
      • 파일의 모든 블록 주소를 색인 블록(indexed block)이라는 하나의 블록에 모아 관리
      • 임의의 위치에 접근하기 쉬움
        색인할당

Reference :