파일
- 하드 디스크나 SSD와 같은 보조기억장치에 저장된 관련 정보의 집합
- 속성, 메타데이터
- 파일의 이름, 파일을 실행하기 위한 정보
파일 속성과 유형
속성 이름 | 의미 |
유형 | 운영체제가 인지하는 파일의 종류 |
크기 | 파일의 현재 크기와 허용 가능한 최대 크기 |
보호 | 어떤 사용자가 해당 파일을 읽고, 쓰고, 실행할 수 있는지 |
생성 날짜 | 파일이 생성된 날짜 |
마지막 접근 날짜 | 파일에 마지막으로 접근한 날짜 |
마지막 수정 날짜 | 파일이 마지막으로 수정된 날짜 |
생성자 | 파일을 생성한 사용자 |
소유자 | 파일을 소유한 사용자 |
위치 | 파일의 보조기억장치상의 현재 위치 |
파일 유형 | 대표적인 확장자 |
실행 파일 | 없는 경우, exe, com, bin |
목적 파일 | obj, o |
소스 코드 파일 | c, cpp, cc, java, asm, py, js |
워드 프로세서 파일 | xml, rtf, doc, docx |
라이브러리 파일 | lib, a, so, dll |
멀티미디어 파일 | mpeg, mov, mp3, mp4, avi |
백업/보관 파일 | rar, zip, tar |
파일 연산을 위한 시스템 호출
- 파일 생성
- 파일 삭제
- 파일 열기
- 파일 닫기
- 파일 읽기
- 파일 쓰기
디렉터리
- 1단계 디렉터리
- 옛날 운영체제에 존재했던, 모든 파일이 하나의 디렉토리 밑에 있는 것 - 트리 구조 디렉터리
- 여러 계층을 가진 디렉터리
- 최상위(루트) 디렉터리, 자식 디렉터리로 구성 - 경로
- 디렉터리를 이용해 파일 위치, 파일 이름을 특정 짓는 정보
절대 경로와 상대 경로
- 절대 경로
- 루트 디렉터리부터 자기 자신까지 이르는 고유한 경로
- 다른 디렉터리에 같은 이름을 가진 파일이 있어도, 하나를 특정지을 수 있음 - 상대 경로
- 현재 디렉터리부터 자기 자신까지 이르는 경로
- ". / folder / test.txt "로 구성
디렉터리 연산을 위한 시스템 호출
- 디렉터리 생성
- 디렉터리 삭제
- 디렉터리 열기
- 디렉터리 닫기
- 디렉터리 읽기
- 디렉터리 엔트리
- 디렉터리에 포함된 대상의 이름, 그 대상이 보조기억장치 내에 저장된 위치 정보를 담기
파일 시스템
파티셔닝과 포매팅
- 파티셔닝
- 파티션을 나누는 작업
- 파티션: 하나의 논리적인 영역
- 저장장치의 논리적인 영역을 구획하는 작업 - 포매팅
- 포맷 작업
- 파일 시스템을 설정하여 어떤 방식으로 파일을 저장하고 관리할 것인지를 결정
- 새로운 데이터를 쓸 준비를 하는 작업
파일 할당 방법
연속 할당
- 가장 단순한 방식
- 보조기억장치 내 연속적인 블록에 파일을 할당하는 방식
- 접근하기 위해, 첫번째 블록 주소와 블록 단위의 길이를 알면 됨
- 단점1. 외부 단편화를 야기할 수 있음
- 연결된 파일의 중간이 삭제되는 경우
연결 할당
- 각 블록 일부에 다음 블록의 주소를 저장하여, 각 블록을 가리키는 형태로 할당하는 방식
- 파일을 이루는 데이터를 연결 리스트로 관리
- 불연속 할당의 일종
- 단점1. 반드시 첫 번째 블록부터 하나씩 차례대로 읽어야함
- 파일 내 임의의 위치에 접근하는 속도가 느림 - 단점2. 하드웨어 고장이나 오류 발생 시 해당 블록 이후 블록은 접근할 수 없음
- 물리적 저장장치는 충격에 취약하여 오류가 발생할 수 있음 - 때문에 연결 할당을 변형한 FAT 파일 시스템을 사용
색인 할당
- 파일의 모든 블록 주소를 색인 블록이라는 하나의 블록에 모아 관리하는 방식
- 색인 블록 주소를 함께 명시
- 유닉스 파일 시스템이 색인 할당을 바탕으로 만들어짐
파일 시스템
FAT 파일 시스템
- 파일 할당 테이블 (Fie Allocation Table)
- 각 블록에 포함된 다음 블록의 주소들을 한데 모아 테이블 형태로 관리 - MS-DOS, USB, SD 카드 등 저용량 저장 장치용 파일 시스템으로 이용
- FAT 뒤에 오는 숫자는 블록을 표현하는 비트 수를 의미
- FAT는 파티션의 앞부분에 만들어짐
- 예약 영역, FAT 영역, 루트 디렉터리 영역, 데이터 영역으로 구성 - FAT는 실행 도중 메모리에 캐시될 수 있음
- 연결 할당 방식보다 임의 접근에 유리
- 블록을 찾는 속도가 매우 빨라짐
유닉스 파일 시스템
- i-node
- 색인 블록을 기반으로 파일의 데이터 블록을 찾는 방식
- 파일 속성 정보, 15개의 블록 주소 저장 가능 - 예약 영역, i-node 영역, 데이터 영역으로 구성
- 블록을 15개를 넘어서 차지하는 큰 파일이 있다면?
- 블록 주소 중 12개에는 직접 블록 주소를 저장
- 충분하지 않다면 13번째 주소에 단일 간접 블록 주소 저장
- 단일 간접 블록: 파일 데이터가 저장된 블록이 아닌 파일 데이터를 저장한 블록 주소가 저장된 블록
- 또 충분하지 않다면 14번째 주소에 이중 간접 블록 주소 저장
- 이중 간접 블록: 데이터 블록 주소를 저장하는 단일 블록 주소가 저장된 블록
- 또 충분하지 않다면 15번째 주소에 삼중 간접 블록 주소를 저장
- 삼중 간접 블록: 데이터 블록 주소를 저장하는 이중 블록 주소가 저장된 블록
저널링 파일 시스템
- 작업 로그를 통해 시스템 크래시가 발생했을 때 빠르게 복구할 수 있는 시스템
- 작업 직전 파티션이 로그 영역에 수행하는 작업에 대한 로그를 남긴다
- 로그를 남긴 후 작업을 시작한다
- 작업이 끝났다면 로그를 삭제한다
- 작업을 하던 도중 크래시가 발생해도 로그만 검사하여 복구
'CS notes > OS' 카테고리의 다른 글
[OS] 가상 메모리는 가상세계에 있지 않습니다. (0) | 2024.04.30 |
---|---|
[OS] 교착 상태를 막아봅시다. (0) | 2024.04.28 |
[OS] 프로세스 동기에 대해서 알아보자 (0) | 2024.04.27 |
[OS] CPU 스케줄링에 대해서 알아보자 (0) | 2024.04.25 |
[OS] 프로세스와 스레드 (0) | 2024.04.23 |