티스토리 뷰

반응형

파일 시스템

대신 파일을 보관하고 관리하는 파일 관리자를 두어 저장장치의 전체 관리를 맡기는 시스템을 말한다. 파일 시스템에서 파일 관리자는 사용자의 요청에 따라 파일을 저장하거나 파일의 내용을 읽어온다.

 

 

💫 파일 관리자

파일 관리자는 사용자가 직접 파일을 보관하거나 접근하지 못하도록 하고, 대신해준다. 대신해주는 이유는 사용자가 직접 개입하면 파일 훼손 등 문제가 생길 수 있기 때문이다.

 


파일 시스템의 기능

파일 시스템은 파일을 생성하고, 사용자가 파일을 편리하게 관리할 수 있도록 디렉터리 구조를 제공한다. 또한 여러 종류의 파일을 구분하기 위해 파일 이름과 확장자를 만들어 관리한다.

 

  1. 파일 구성
  2. 파일 관리
  3. 접근 권한 관리
  4. 접근 방법 제공
  5. 무결성 보장
  6. 백업과 복구
  7. 암호화

블록과 파일 테이블

데이터는 운영체제와 저장장치 간에 블록 단위로 전송된다. 블록은 저장장치에서 사용하는 가장 작은 단위로, 한 블록에 주소 하나가 할당된다. 메모리는 바이트 단위로 저장되고, 하드디스크의 물리적인 구조상 가장 작은 저장 단위는 섹터이다.

 

섹터마다 주소를 부여하면 너무 많은 양의 주소가 필요하기에 섹터를 묶어 하나의 블록으로 만들고, 블록 하나에 주소 하나를 배정한다.

 

블록의 크기는 시스템마다 다르다. 크기가 큰 파일을 많이 사용할 때는 블록 크기를 크게 잡는 것이 좋다.

 

 

파일 분류와 확장자

파일은 논리적인 데이터의 집합이고 0과 1의 비트 패턴으로 이루어지며, 운영체제 입장에서는 크게 실행 파일데이터 파일로 나뉜다.

 

  • 실행 파일

    운영체제가 메모리로 가져와 CPU를 이용하여 작업을 하는 파일

  • 데이터 파일

    실행 파일이 작업하는 데 필요한 데이터를 모아놓은 파일

파일을 구분하기 위해 모든 파일은 각각 고유한 헤더를 가지고 있고, 파일의 성격을 알기 위해 확장자를 붙인다.

 

파일 이름과 연결 프로그램

대부분의 파일 이름은 '파일 이름.확장자'의 형태로 구성된다. 확장자를 바꾼다고 해서 파일 내용이 바뀌지는 않는다.

 

파일 속성

파일 속성은 각 파일 헤더에 기록되며, 운영체제는 이러한 파일 헤더를 파일 테이블에서 관리한다.

 

  • 파일 헤더: 파일 테이블에서 관리하며 일반적인 내용이 담겨있다.
  • 고유 헤더: 파일의 버전 번호, 크기 등 응용 프로그램이 필요로 하는 정보가 담겨 있다.

 

파일 구조

파일은 하나의 데이터 덩어리이다. 파이 구조는 이 데이터 덩어리를 어떻게 구성하느냐에 따라 순차 파일 구조, 인덱스 파일 구조, 직접 파일 구조로 나눌 수 있다.

 

1️⃣ 순차 파일 구조

 

일반 파일은 기본적으로 순차 파일 구조이다. 순차 파일 구조는 파일 내용이 하나의 긴 줄로 늘어선 형태로 카세프 테이프가 대표적인 예이다. 파일을 작업할 때, 앞에서부터 뒤까지 순차적인 접근만 가능하다.

 

  • 장점: 순서대로 기록되기 때문에, 공간 낭비가 없고 구조가 단순하다. 따라서 순서대로 읽거나 저장할 때 빠르다.
  • 단점: 새로운 데이터를 삽입하거나, 삭제할 때 시간이 많이 소요되고 특정 데이터로 직접 접근이 어렵다.

 

2️⃣ 인덱스 파일 구조

 

순차 파일 구조의 단점을 해결한 파일 구조로, 순차 파일 구조에 인덱스 테이블을 추가하여 순차 접근과 직접 접근이 가능하다. 음악 CD가 대표적인 예이다.

 

 

3️⃣ 직접 파일 구조

 

저장하려는 데이터의 특정 값에 어떤 관계를 정의하여 물리적인 주소로 바로 변환하는 파일 구조이다. 해시 테이블이 대표적인 예이다. 데이터 접근이 매우 빠르지만 해시 함수의 선정이 매우 중요하다.

 

 


디렉터리

디렉터리는 관련 있는 파일을 하나로 모아놓은 곳이다. 디렉터리도 파일이다. 따라서 디렉터리도 일반 파일과 마찬가지로 헤더를 가진다.

 

🏹 경로: 파일이 전체 디렉터리 중 어디에 있는지를 나타내는 정보로 서로 다른 디렉터리에는 같은 이름의              파일이 존재할 수도 있다.

 

🏹 절대 경로: 루트 디렉터리를 기준으로 파일의 위치를 나타내는 방식

 

🏹 상대 경로: 현재 있는 위치를 기준으로 파일의 위치를 나타내는 방식

 

 

🎪 디렉터리 구조

  • 1단계 디렉터리 구조 : 매우 단순하지만 파일이 많아지면 불편하다.
  • 다단계 디렉터리 구조 : 트리 디렉터리 구조라고도 하고, 디렉터리 속에 디렉터리가 존재하는 구조이다.

 

🎄 마운트

파티션은 논리적인 디스크 분할로, 하나 또는 여러 개의 디스크를 파티션으로 나누어 사용할 수 있다. 이러한 파티션이 여러 개 있을 때 통합하는 명령어가 바로 마운트이다.

 


디스크 파일 할당

일반적으로 하나의 파일은 여러 개의 블록을 사용하는데, 여러 개의 블록을 어떻게 연결하는지에 따라 연속 할당불연속 할당 방식으로 구분된다.

 

  • 연속 할당
  • 불연속 할당

 

📖 연속 할당

파일을 구성하는 데이터를 디스크 상에 연속으로 배열하는 간단한 방식이다. 그렇지만 디스크에 남은 공간 중 파일의 크기와 맞는 연속된 공간이 없을 때는 연속 할당이 불가능하다.

 

📖 불연속 할당

비어 있는 블록에 데이터를 분산하여 저장하고 이에 관한 정보를 파일 시스템이 관리하는 방식이다.

대표적인 불연속 할당 방식으로는 연결 리스트를 이용한 연결 할당인덱스를 이용한 인덱스 할당이 있다.

 

    🎫 연결 할당

       - 파일에 속한 데이터를 연결 리스트로 관리하는 방식으로 체인 할당이라고도 한다.

       - 테이블 형태로 관리 (FAT)

       - 파일 테이블에는 시작 블록에 대한 정보만 저장

       

 

    🎫 인덱스 할당

       - FAT의 최대 할당 크기 제한의 문제를 해결하기 위해 인덱스 할당 방식 사용

       - 데이터의 인덱스를 담고 있는 인덱스 블록을 연결

       - 인덱스 블록은 실제 데이터의 위치에 관한 정보를 순서대로 보관

 

 

디스크의 빈 공간 정리

디스크 블록의 크기에 따라 낭비되는 공간이 생길 수도 있다. 낭비되는 공간을 내부 단편화라 하는데 내부 단편화 때문에 실제 전체 파일 크기보다 디스크에 할당된 파일의 크기가 더 커진다.

 

이러한 현상을 해결하기 위해 빈 블록의 정보만 모아놓은 빈 공간 리스트를 사용해 빈 공간을 최소화한다.

 

 

 

 

좋아요는 로그인하지 않아도 누를 수 있습니다!

 

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함