📖
Mini's Today I Learned
  • Today I Learned
  • 💻Computer Science
    • 🧱Computer Science
      • Computer Architecture
    • 🦕OperatingSystem
      • System Structure
      • 01. 운영체제 역할
      • 02. History로 이해하는 운영체제
      • 03. 운영체제 구조
      • 04. 프로세스 스케쥴링
      • 05. 스케쥴링 알고리즘
      • 06. 프로세스 상태와 스케쥴러
      • 07. 인터럽트
      • 08. 프로세스와 컨텍스트 스위칭
      • 09. 프로세스간 커뮤니케이션(IPC 기법)
      • 10. Thread(스레드)
      • 11. 가상메모리 (Virtual Memory System)
      • 12. 파일시스템 이해
      • 13. 부팅의 이해
      • 14. 가상머신(Virtual Machine)
  • 📈Database
    • MySQL CLI (Frequently used)
    • 1-Tier, 2Tier, 3Tier
    • Basic SQL
    • Built in function
    • Sub Query
    • View
    • Stored Program
    • index
    • Normalization(정규화)
    • Transaction
    • Transaction
  • 🌐 Network
    • 🔌 TCP&IP Basic
      • 01 TCP/IP 맛보기
      • 02 TCP/IP 개요
      • 03 통신 서비스와 프로토콜
      • 04 애플리케이션 계층
      • 05 트렌스포트 계층
      • 06 네트워크계층
      • 07 데이터 계층과 물리계층
      • 08 라우팅
      • 09 보안
      • 10 HTTP 프로토콜
    • 🐿️HTTP 완벽 가이드 요약
      • 1. HTTP: 웹의 기초
      • 2. URL 과 리소스
      • 3. HTTP Message
      • 4. Connection Management
      • 5. Overview of web server architectures
      • 6. Proxies
      • 7.Caching
      • 8. Integration Points: Gateways, Tunnels, and Relays
      • 9. Web Robots
      • 10. HTTP/2.0
      • 11. Client Identification and Cookies
      • 12. Basic Authentication
      • 13. Digest Authentication
      • 14. Secure HTTP
      • 15. Entities and Encodings
      • 16. Internationalization
      • 17. Content Negotiation and Transcoding
      • 18. Web Hosting
  • 🏴Language
    • ☕JAVA
      • Comparable vs Comparator
  • 🛠️ Framework
  • 🧩Design Pattern
    • 객체 지향 설계 원칙 (SOLID)
    • Design Pattern 개요
    • Template method
    • Singleton
  • 🐥FrontEnd
    • HTML&CSS
      • 01 Intro
      • 02 HTML Basic
      • 03 Content Section
      • 04 Block and Inline Elements
      • 05 Text Contents
      • 06 Inline Elements
      • 07 Multi Media
      • 08 Table&Form&etc
      • 09 Global Attribute & etc
      • 10 css basic
      • 11 css config
      • 12 css unit
      • 13 Box Model
      • 14 Font & Text
      • 15 Float(띄움) & Position
      • 16 Background
      • 17 Transitions & Transforms
      • 18 Animation & Multi Columns(다단)
      • 19 Flex
      • 20 Grid
    • Sass(SCSS)
    • TypeScript
    • Webpack Introduction
      • 웹팩의 기본 구조
      • CommonJS
      • ESM
      • WebpackConfig
        • 1. Handlebars
        • 2. Caching
        • 3. Minification & Mangling
        • 4. Mode(Development mode & Production Mode)
        • 5. 이미지 파일 모듈로 다루어보기(file-loader)
        • 6. 이미지 파일 모듈로 다루어보기(url-loader)
        • 7. SASS Loader
        • 8. Post CSS
        • 9. BLOWSERS LIST
        • 10. Stylelint
        • 11. Babel
      • Webpack-Practice
    • ETC
      • GIT
      • MarkDown
Powered by GitBook
On this page

Was this helpful?

  1. Computer Science
  2. 🦕OperatingSystem

12. 파일시스템 이해

  • 파일시스템:

    • 운영체제가 저장매체에 파일을 쓰기위한 알고리즘(자료구조)

    • 참고

      • 파일시스템이 만들어진 이유(블록)

        • 0 과 1의 데이터를 어떻게 저장매체에 저장할까?

          • bit로 관리하기에는 오버헤드가 너무 큼

          • block단위로 관리하기로 함.(보통 4KB)

          • 블록마다 고유번호를 부여해서 관리

      • 파일 시스템이 만들어진 이유(파일)

        • 사용자가 각 블록 고유번호를 관리하기 어려움

          • 추상적(논리적) 객체 필요: 파일

        • 사용자는 파일단위로 관리

          • 각 파일에는 블록단위

      • 파일 시스템이 만들어진 이유(저장방법)

        • 저장매체에 효율적으로 파일을 저장하는 방법

          • 가능한 연속적인 공간에 파일을 저장하는 것이 좋음

          • 외부 단편화, 파일 사이즈 변경 문제로 불연속 공간에 파일 저장 기능지원 필요

            • 블록체인: 블록을 링크드 리스트로 연결

              • 끝에 있는 블록을 찾으려면, 맨 처음 블록부터 주소를 따라가야함.

              • 연속적인 공간이 아니더라도, 연결된 블록을 찾아 사용.

            • 인덱스 블록기법: 각 블록에 대한 위치 정보를 기록하여 한번에 끝 블록을 찾아갈 수 있도록 함.

    • 참고2: 다양한 파일 시스템

      • Windows: FAT, FAT32, NTFS

        • 블록위치를 FAT이라는 자료구조에 기록

      • Linux(Unix): ext2, ext3, ext4

        • 일종의 인덱스 블록 기법인 inode 방식 사용.

  • 파일시스템과 시스템콜

    • 동일한 시스템콜 을 사용해서, 다양한 파일 시스템 지원 가능토록 구현

      • read/write 시스템 콜 호출시, 각 기기 및 파일 시스템에 따라

        실질적인 처리를 담당하는 함수 구현(예: read_spec/write_spec )

      • 파을 실제 어떻게 저장할지는 다를 수 있음

        • 리눅스의 경우 ext4 외 NTFS, FAT32 파일 시스템 지원

  • inode 방식파일시스템

    • 파일 시스템 기본구조

      • 수퍼블록: 파일시스템정보 및 파티션 정보 포함(df로 해당 정보 확인가능)

      • 아이노드 블록: 파일 상세 정보(PCB)

      • 데이터 블록: 실제 데이터(1~4KB)

  • inode와 파일

    • 파일: inode 고유값과 자료구조에 의해 주요 정보관리

      • '파일이름: inode'로 파일이름은 inode 번호와 매칭

      • 파일시스템은 inode를 기반으로 파일 엑세스

      • inode 기반 메타 데이터(상세 정보) 저장

  • inode 구조

    • inode 기반 메타 데이터(파일권한, 소요자정보, 파일사이즈, 생성시간, direct blcks, single indirect, double indirect, triple indirect)

  • 디렉토리 엔트리

    • 리눅스 파일탐색: 예: ~/home/ubuntu/link.txt

      • 각 디렉토리 엔트리(dentry)를 탐색

        • 각 엔트리는 해당 디렉토리 파일/ 디렉토리 정보를 가지고 있음

      • '/'dentry에서 home을 찾고, home에서 ubuntu를 찾고, ubuntu에서 link.txt파일 이름에 해당하는 inode를 얻음.

  • 가상파일 시스템(Virtual File System)

    • Network등 다양한 기기도 동일한 파일 시스템 인터페이스를 통해 관리 가능.

    • 예: read/write 시스템콜 사용하여 각 기기별 read_spec/write_spec 코드 구현

      (운영체제 내부)

  • 참고: 리눅스(유닉스) 운영체제와 가상 파일 시스템

    • 모든 것은 파일이라는 철학을 따름

      • 모든 인터렉션은 파일을 읽고, 쓰는 것처럼 이루어져있음

      • 마우스, 키보드와 같은 모든 디바이스 관련된 기술도 파일과 같이 다루어짐

      • 모든 자원에 대한 추상화 인터페이스로 파일 인터페이스를 활용

Previous11. 가상메모리 (Virtual Memory System)Next13. 부팅의 이해

Last updated 4 years ago

Was this helpful?

💻