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 파일 시스템
- 유닉스 파일 시스템
출처
[한빛미디어] 혼자 공부하는 컴퓨터 구조+운영체제
좋은 개발자는 컴퓨터를 분석의 대상으로 바라볼 뿐, 두려워하지 않는다!‘전공서가 너무 어려워서 쉽게 배우고 싶을 때’, ‘개발자가 되고 싶은데 뭐부터 봐야 하는지 모를 때’ ‘기술 면접
hongong.hanbit.co.kr
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 |