728x90
반응형
Chapter 15 파일 시스템
1. 파일과 디렉터리
파일/ 확장자/ 속성/ 디렉터리/ 경로/ 절대 경로/ 상대 경로
파일(file)
- 보조기억장치(하드 디스크, SSD)에 저장된 관련 정보의 집합
- 의미 있고 관련된 정보를 모은 논리적 단위
- 이름/ 파일 실행 위한 정보/ 속성(attribute) = 메타데이터(metadata): 관련된 부가 정보
- 유형/ 크기/ 보호/ 생성 날짜/ 마지막 접근 날짜/ 마지막 수정 날짜/ 생성자/ 소유자/ 위치
- 운영체제가 인지하는 파일의 종류 나타냄
- ex. 같은 이름의 파일이라도 텍스트 파일, 실행 파일, 음악 파일 등 유형 != -> 실행 양상 !=
=> 확장자(extension) ~> 파일 유형 확인
- 유형/ 크기/ 보호/ 생성 날짜/ 마지막 접근 날짜/ 마지막 수정 날짜/ 생성자/ 소유자/ 위치
- 운영체제) 파일 연산 -> 시스템 호출 제공
- 파일 생성/ 삭제/ 열기/ 닫기/ 읽기/ 쓰기
*파일 유형
- 실행 파일: x/ exe/ com/ bin
- 목적 파일: obj/ o
- 소스 코드 파일: c/ cpp/ cc/ java/ asm/ py
- 워드 프로세서 파일: xml/ rtf/ doc/ docx
- 라이브러리 파일: lib/ a/ so/ dll
- 멀티미디어 파일: mpeg/ mov/ mp3/ mp4/ avi
- 백업/보관 파일: rar/ zip/ tar
디렉터리(directory) = 폴더(folder)
- 여러 개의 파일 or 디렉토리 묶어 관리할 수 있음
- 1단계 디렉터리(single-level directory): 모든 파일이 하나의 디렉터리 아래
- 트리 구조 디렉터리(tree-structured directory)
- 최상위 디렉터리 = 루트 디렉터리(root directory): 슬래시(/)로 표현
- 운영체제) 디렉터리 연산 -> 시스템 호출 제공
- 디렉터리 생성/ 삭제/ 열기/ 닫기/ 읽기
경로(path)
디렉터리를 이용해 파일 위치, 파일 이름 특정 짓는 정보
- 절대 경로(absolute path)
- 루트 디렉터리부터 시작하는 경로
- 루트 디렉터리에서 자기 자신까지 이르는 고유한 경로
- 상대 경로(relative path)
- 현재 디렉터리부터 시작하는 경로
=> 디렉터리: 특별한 형태의 파일 => 포함된 정보가 특별할 뿐 디렉터리도 파일
- 파일: 내부에 해당 파일과 관련된 정보 담음
- 디렉터리: 내부에 해당 디렉터리에 담겨 있는 대상과 관련된 정보 담음
- 정보가 보조기억장치에 테이블(표) 형태로 구성돼 저장
- 엔트리(행)에 담기는 정보: 디렉토리에 포함된 대상의 이름, 그 대상이 보조기억장치 내 저장된 위치 유추할 수 있는 정보 등
=> 디렉터리 엔트리 ~> 해당 디렉터리에 무엇이 담겼는지, 보조기억장치 어디에 있는지 직간접적으로 알 수 O
2. 파일 시스템
파티셔닝/ 포매팅/ 연속 할당/ 연결 할당/ 색인 할당/ FAT 파일 시스템/ 유닉스 파일 시스템
파일 시스템: 학습한 파일, 디렉터리 -> 보조기억장치에 저장, 접근할 수 있게 하는 운영체제 내부 프로그램
파티셔닝(partitioning)과 포매팅(formatting)
보조기억장치 사용 전 파티셔닝, 포매팅 필요
- 파티셔닝
- 파티션을 나누는 작업
- 저장 장치의 논리적인 영역을 구획하는 작업
- 용량 ↑ 저장장치(하드 디스크, SSD) -> 하나 이상의 논리적인 단위로 구획
- 파티션(partition): 파티셔닝 작업 ~> 나눠진 각각의 영역
- 포매팅
- 포맷 작업
- 저장 장치를 완전히 삭제하는 것(X)
- 파일 시스템 설정 -> 파일 저장 및 관리 방식 결정, 새로운 데이터 쓸 준비 작업
- -> 어떤 종류의 파일 시스템 사용할지 결정
- 저수준 포매팅: 저장 장치를 생성할 당시 공장에서 수행되는 물리적인 포매팅
- 논리적 포매팅: 파일 시스템 생성하는 포매팅(-> 현재 설명하고 있는 것)
파일 할당 방법
운영장치) 파일, 디렉터리 -> 블록(block) 단위로 읽고 씀
= 하나의 파일이 보조기억장치에 저장될 때 하나 이상의 블록에 걸쳐 저장됨
크기 ↑ 파일 -> 여러 블록에 걸쳐 저장/ 크기 ↓ 파일 -> 적은 수의 블록에 걸쳐 저장
하나 이상의 섹터 -> 블록 단위로 묶어서 파일, 디렉터리 관리
섹터: 하드 디스크의 가장 작은 저장 단위
보조기억장치에 할당하는 방법(파일 할당)
- 연속 할당(contiguous allocation)
- 보조기억장치 내 연속적인 블록에 파일을 할당하는 방식
- 파일의 첫 번째 블록 주소, 블록 단위의 길이 알면 됨
-> 디렉터리 엔트리에 파일 이름, 첫 번째 블록 주소, 블록 단위 길이 명시
- 불연속 할당
- 연결 할당(linked allocation)
- 각 블록 일부에 다음 블록의 주소 저장 -> 각 블록이 다음 블록 가리키는 형태로 할당하는 방식
어떤 블록의 주소를 저장한다 = 그 블록을 가리킨다 (주소 알면 해당 블록에 접근할 수 있음) - 파일을 이루는 데이터 -> 연결 리스트로 관리
- 파일이 여러 블록에 흩어져 저장되도 됨
- 각 블록 일부에 다음 블록의 주소 저장 -> 각 블록이 다음 블록 가리키는 형태로 할당하는 방식
- 색인 할당(indexed allocation)
- 파일의 모든 블록 주소를 색인 블록(index block)에 모아 관리하는 방식
- 연결 할당(linked allocation)
파일 시스템 살펴보기
- FAT 파일 시스템
- 유닉스 파일 시스템
출처
728x90
반응형
'Computer Science > 컴퓨터구조 | 운영체제' 카테고리의 다른 글
[혼자 공부하는 컴퓨터구조+운영체제] Chapter 14 가상 메모리 (0) | 2024.07.25 |
---|---|
[혼자 공부하는 컴퓨터구조+운영체제] Chapter 13 교착 상태 (0) | 2024.07.25 |
[혼자 공부하는 컴퓨터구조+운영체제] Chapter 12 프로세스 동기화 (0) | 2024.07.25 |
[혼자 공부하는 컴퓨터구조+운영체제] Chapter 11 CPU 스케줄링 (1) | 2024.07.09 |
[혼자 공부하는 컴퓨터구조+운영체제] Chapter 10 프로세스와 스레드 (0) | 2024.07.09 |