운영체제 - 파일 시스템

dobby·2025년 3월 11일
0
post-thumbnail

파일 시스템

운영체제는 사용자가 직접 파일을 보관하거나 접근하지 못하도록 한다.
대신 파일을 보관하고 관리하는 파일 관리자를 두어 저장장치의 전체 관리를 맡기는데, 이를 파일 시스템이라고 한다.
파일 시스템에서 파일 관리자는 사용자의 요청에 따라 파일을 저장하거나 파일의 내용을 읽어온다.

가상 메모리에서 메모리 관리자가 메모리 매핑 테이블을 사용하여 가상 주소를 물리 주소로 변환하듯이, 저장장치에서는 파일 관리자가 파일 테이블을 사용하여 파일 생성, 수정, 삭제 등을 수행한다.

사용자가 특정 파일에 접근하려면 파일 관리자로부터 파일에 접근할 수 있는 권한(키)을 획득해야 하는데, 이를 파일 권한 파일 디스크립터(file descriptor)라고 한다.


파일 시스템의 기능

파일 시스템은 파일과 파일의 집합체인 디렉터리를 관리한다.
파일 시스템은 파일 및 디렉터리의 생성, 수정, 삭제 등을 관리한다.
파일 및 디렉터리에 대한 접근 방법을 제공하고 권한이 없는 사용자의 접근을 차단하는 것도 파일 시스템의 중요한 역할이다.

부가적으로, 파일 내용이 손상되지 않도록 무결성을 보장하고, 사고로부터 파일을 보호하기 위한 백업과 복구 작업을 한다.
또한, 파일을 암호화하여 악의적인 접근으로부터 차단한다.


블록과 파일 테이블

저장장치에서는 파일을 일정 크기로 묶어서 관리하는데, 이를 블록(block)이라고 한다.
메모리의 단위는 바이트지만, 저장장치의 단위는 블록이다.

한 블록에 주소 하나가 할당되며, 운영체제와 저장장치 사이에서는 파일을 블록 단위로 전송한다.

파일 테이블에는 각 파일이 어떤 블록에 저장되어 있는지에 대한 정보가 저장되어 있다.


파일 종류

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

  • 실행 파일
    운영체제가 메모리로 가져와 CPU를 이용하여 작업하는 파일이다.
    즉, 사용자의 요청으로 프로세스가 된 파일이다.

  • 데이터 파일
    실행 파일이 작업하는데 필요한 데이터를 모아놓은 파일이다.
    데이터 파일은 스스로 프로세스가 될 수 없고, 운영체제가 전송하거나 보관만 할 뿐 특별하게 다루지 않는다.


저장장치 관리 기법

저장장치를 사용하기 위해서는 파티션, 포맷, 조각 모음과 같은 관리 기법이 필요하다.


파티션

하드디스크나 SSD와 같은 대용량 저장장치는 통째로 사용하기도 하지만, 대개 2개나 3개로 나눠서 사용한다.
저장장치를 2개 이상의 묶음으로 나누는 것을 파티션을 나눈다고 하며 파티션은 디스크를 논리적으로 분할하는 작업이다.
하나의 논리적 저장장치에는 하나의 파일 시스템이 탑재된다.

파일 테이블은 탑재된 파이션의 영역에 저장된 파일만 관리한다.

유닉스는 여러 개의 파티션을 통합하는 기능을 가지고 있다.
여러 개의 파티션을 하나로 통합한다는 것은 저장장치나 파티션의 개수에 상관없이 하나의 파일 시스템만 가진다는 의미다.
저장장치가 100개라도 파일 시스템이 하나이기 때문에 1개의 저장장치처럼 보인다.
유닉스에서 여러 개의 파티션을 하나로 통합하는 기능을 마운트(mount)라고 한다.


포맷

포맷은 저장장치의 파일 시스템을 초기화하는 작업이다.
파일 테이블이 없는 저장장치를 포맷하면 파일 테이블이 새로 탑재되고, 파일 테이블이 있는 저장장치를 포맷하면 파일 테이블이 초기화되어 아무것도 저장되지 않은 처음 상태로 돌아간다.


조각 모음

하드디스크를 처음 사용할 때는 데이터가 앞에서부터 차곡차곡 쌓이지만, 파일을 저장했다가 지우기를 반복하면 중간중간 빈 공간이 생긴다.
이를 조각화 또는 단편화라고 한다.

하드디스크에 조각이 많이 생기면 큰 파일이 여러 조각으로 나뉘어 저장된다.
이를 읽으려면 하드디스크의 여러 곳을 돌아다녀야 하므로 성능 저하로 이어진다.
이러한 문제를 방지하려면 주기적으로 조각 모음을 해주어야 한다.

profile
성장통을 겪고 있습니다.

0개의 댓글

관련 채용 정보