simDev1234
심플하고 차분하게
simDev1234
전체 방문자
오늘
어제
  • 분류 전체보기
    • Computer Science
      • Basic Math
      • Data Structure
      • Algorithm
      • Database
      • OS
    • Language
      • Java
      • Kotlin
      • SQL
    • Framework
      • Spring
      • Orm&Mapper
      • 프로젝트로 스프링 이해하기
      • 스프링 라이브러리
    • Infra
      • Cloud
      • Docker
      • Redis
      • AWS, Azure
      • Device
    • Etc
      • CleanCoding
    • Git,Github

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 컨트롤러
  • 스프링
  • 자바메모리구조
  • 참조변수
  • 자바프로그래밍
  • 자바
  • 404
  • 자바프로그램
  • controllerTest
  • JVM메모리구조
  • 참조타입
  • null
  • scanner #next() #nextLine()

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
simDev1234

심플하고 차분하게

[운영체제] 파일 시스템
Computer Science/OS

[운영체제] 파일 시스템

2022. 7. 25. 14:30

|  파일 시스템 

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

1) 파일은 어떻게 만들어진 걸까?

- 0과 1만으로 이루어진 비트 데이터를 그대로 저장하면 관리하기 어렵다.

- 따라서 블록으로 (ex. 4kb) 데이터를 나눠 저장한다. (블록에 고유 번호 부여)

- 블록의 고유 번호도 구분하기 어려우니, 추상적인 객체가 필요하다. (객체 : 파일)

- 그렇게 파일이 만들어졌다.

 

2) 저장 방법

- 가능하면 연속적인 공간에 저장하는 것이 좋지만, 외부 단편화*나 파일 사이즈 변경 문제로 어렵다.

- 그렇기에 자료구조로 연결리스트를 사용한다.

* 외부 단편화 : 총 메모리 공간이 남았으나, 남아있는 공간이 연속적이지 않아서 발생하는 현상

외부단편화,출처:https://code-lab1.tistory.com/54

3) 다양한 파일 시스템

- 인도우는 FAT이라는 자료구조에 블록 위치를 기록

- 리눅스는 inode 방식 - 일종의 인덱스 블록 기법 - 을 사용

* 가장 기본 파일 시스템 방식은 inode이다.

 

|  inode 파일 시스템 구조

수퍼 블록 파일 시스템 정보 (파일 시스템 전반의 메타 데이터)
아이노드 블록 파일 상세 정보 (파일 각각의 메타 데이터)
데이터 블록 실제 데이터

- 파일은 inode 고유값과 자료구조로 주요 정보를 관리한다.

- '파일이름:inode'로 이름과 inode번호를 매칭

- inode를 기반으로 파일에 접근한다. (inode 기반 메타데이터* 저장)

super block
↓ inode ↓ inode
fileA fileB
disk
block
disk
block
disk
block
disk
block
disk
block
disk
block

* inode 메타데이터 : 파일 권한, 소유자 정보, 파일 사이즈....등등등

출처:https://www.science.unitn.it/~fiorella/guidelinux/tlk/node96.html

더보기

ext2_inode 구조

  • i_blocks: 파일이 몇 개의 데이터 블록을 가지고 있는지 나타냄.
  • i_mode: 이 inode가 관리하는 파일의 속성 및 접근 제어 정보 유지
  • i_links_count: 이 inode를 가리키고 있는 파일 수(또는 링크 수)를 의미. (파일 이름 -- inode)
  • i_uid, i_gid: 파일을 생성한 소유자의 userID, groupID 의미.
  • i_atime, i_ctime, imtime: 파일의 접근 시간, 생성 시간, 수정 시간 의미.
  • i_block[15]: 파일에 속한 디스크 블록들의 위치를 관리.

[ 출처 ] https://velog.io/@jinh2352/inode-%EA%B5%AC%EC%A1%B0

 

|  가상 파일 시스템 (VFS)

가상적(virtual) 층으로 다양한 파일시스템에 일관된 방식으로 접근할 수 있게 하는 것

- 원래 EXT2, EXT4, XFS 파일 시스템들에 대해 각각에 맞는 고유 함수를 호출해야하나,

- VFS를 사용하면 open(), read(), write() 와 같은 동일 함수를 사용해 호출할 수 있다.

- 어느 파일 시스템으로 저장되었는지 상관 없이 일관된 인터페이스를 사용해서 파일에 접근 가능

 

|  가상 머신

하나의 하드웨어에 다수의 운영체제를 설치하고 개별 컴퓨터처럼 동작하게 한 것

- 하이퍼바이저, KVM(AWS), VMWare 등이 있다.

 

|  부팅 

- 컴퓨터를 켜서 동작시키는 절차

 

/ 확인하기

1. inode 파일 시스템 방식이 뭔가?

2. 가상 머신에 대해 설명하라

3. 외부 단편화에 대해 설명하라

 

[ 출처 ]

부트 캠프 강의를 듣고 책, 블로그 내용 등을 참조하여 정리하였습니다.

 

[ 참고 ] 

https://blog.naver.com/PostView.naver?blogId=n_cloudplatform&logNo=222481521174&parentCategoryNo=&categoryNo=11&viewDate=&isShowPopularPosts=false&from=postView 

https://hyoje420.tistory.com/53

https://code-lab1.tistory.com/54

'Computer Science > OS' 카테고리의 다른 글

[시스템 소프트웨어] 리눅스의 기본 명령어  (0) 2022.08.15
[시스템 소프트웨어] AWS로 리눅스 서버 세팅하기  (0) 2022.08.15
[운영체제] 가상 메모리와 페이징 시스템  (0) 2022.07.23
[운영체제] 스레드 - 동기화, 뮤텍스/세마포어, 데드락/스타베이션  (0) 2022.07.23
[운영체제] 프로세스와 스케줄러  (0) 2022.07.23
    'Computer Science/OS' 카테고리의 다른 글
    • [시스템 소프트웨어] 리눅스의 기본 명령어
    • [시스템 소프트웨어] AWS로 리눅스 서버 세팅하기
    • [운영체제] 가상 메모리와 페이징 시스템
    • [운영체제] 스레드 - 동기화, 뮤텍스/세마포어, 데드락/스타베이션
    simDev1234
    simDev1234
    TIL용 블로그. * 저작권 이슈가 있는 부분이 있다면 댓글 부탁드립니다.

    티스토리툴바