ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 파일 시스템
    Computer Science/OS 2023. 8. 19. 13:52

    파일 시스템

    • FAT 파일 시스템과 유닉스 파일 시스템이 있다.
    • 보조기억장치에 먼저 파티셔닝과 포매팅을 해야한다.
    • 파티셔닝 : 논리적으로 영역을 구획하는 작업
    • 포매팅 : 파일 시스템 결정하고 새로 데이터를 쓸 준비를 하는 작업

     

    디렉터리 엔트리

    • 디렉터리도 파일이고 테이블 형태로 데이터가 저장됨
    • 파일이름, 위치 유추할 수 있는 정보, 생성 시간, 수정된 시간, 크기 등이 저장됨

    파일 할당 방법

    운영체제는 ‘블록’단위로 파일과 디렉터리를 읽고 쓴다.

    이때 여러 블록 사용하는데 연속 할당과 불연속 할당(연결 할당, 색인 할당) 으로 나뉨

     

    연속 할당 : 구현이 단순하지만 ‘외부 단편화’ 발생 (빈 공간이 남아도 사용하기 힘들다)

     

    연결 할당 : 각 블록이 다음 블록을 가리키는 형태. 불연속적 이여도 괜찮다. C언어의 포인터 개념

    • 중간부터 읽을 수는 없는 단점이 있음. 처음부터 일일이 순서대로 접근해야 함. 즉 임의 접근 속도가 매우 느림.
    • 중간에 하나라도 블록에 문제가 생기면 이후 블록에 접근할 수 없다.

     

    색인 할당 : 파일의 모든 블록 주소를 ‘색인 블록’이라는 하나의 블록에 모아 관리하는 방식

    • 임의 접근 속도는 나쁘지 않다. 
    • 유닉스 파일 시스템이 색인 할당 기반이다
    • 색인 블록이 날아가면? 그건 연결 할당도 마찬가지이긴 해

     

     

    FAT 파일 시스템 (File Allocation Table) - USB 메모리, SD 카드

    • 연결 할당 기반
    • 각 블록의 다음 블록 주소를 테이블로 관리
    • 보조기억장치에 FAT 영역이 따로 있음 
    • 디렉터리 엔트리에 파일이름 + 시작블록 주소 저장

     

    유닉스 파일 시스템

    • 유닉스 파일 시스템에서 색인 블록을 ‘i-node’라고 부름
    • i-node마다 번호가 있고 FAT 영역처럼 i-node 영역이 따로 있다.
    • 파일의 블록이 i-node에서 저장할 수 있는 크기보다 크면 파일에 ‘단일 간접 블록’ 으로 파일 데이터가 아닌 블록 주소들은 저장한 블록을 저장한다.
    • 이걸로 충분하지 않으면 ‘이중 간접 블록’ 그래도 충분하지 않으면 ‘삼중 간접 블록’
    • 즉 i-node 번호만 알면 해당 파일 데이터를 전부 구할 수 있음 -> 디렉터리 엔트리에 파일이름 + i-node 번호 저장

     

     

     

    저널링 파일 시스템

     

    파일 시스템 관련 작업하다 전원이 나가거나 치명적 오류로 컴퓨터가 강제 종료되면 (시스템 크래시)

    기존에는 부팅 직후에 파일 시스템 검사를 했다. (e.g. fsck, scandisk)

    그런데 시간이 너무 오래 걸림

    -> 저널링 기법 등장

     

    1. 작업 직전에 파티션의 로그 영역에 변경 작업에 대한 로그를 남김
    2. 로그 남긴 후 작업 수행
    3. 작업이 끝나면 로그 삭제

     

    시스템 크래시가 발생해도 전체를 검사하지 않고 로그 영역에 남긴 부분만 검사를 한다.

     

     

    마운트 

    • 다른 저장 장치의 파일 시스템에 접근할 수 있도록 한다는 것을 의미 (i.e. 저장 장치를 마운트 한다.)
    • /mnt 경로에 다른 저장 장치를 마운트 하면 /mnt/ 접근 가능

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

    가상 메모리  (0) 2023.08.17
    면접대비 CS - OS 정리  (0) 2020.12.08
Designed by Tistory.