1. 파일과 디렉터리
- 보조기억장치의 데이터 덩어리
1) 파일
- 보조기억장치에 저장된 관련 정보의 집합
- 의미 있고 관련 있는 정보를 모은 논리적 단위
2) 디렉터리
- 윈도우에서는 폴더
(1) 1단계 디렉터리
: 1개의 디렉터리 안에 다양한 파일
(2) 트리 구조 디렉터리
: 여러 계층으로 파일 및 폴더를 관리
** 경로
- 디렉터리를 이용해 파일/디렉터리의 위치, 이름까지 특정 지을 수 있는 정보
- 절대경로와 상대경로
(1) 절대 경로 : 루트 디렉터리에서 자기 자신까지 이르는 고유한 경로
(2) 상대 경로 : 현재 디렉터리에서 자기 자신까지 이르는 경로
** 많은 운영체제에서는 디렉터리를 그저 '특별한 형태의 파일'로 간주!
3)디렉터리 엔트리
- 파일의 내부에는 파일과 관련된 정보들이 있다면
- 디렉터리의 내부에는 해당 디렉터리에 담겨있는 대상과 관련된 정보들이 담겨있다.(보통 테이블(표)형태로 구성)
- 각 엔트리에 담기는 정보
(1. 디렉터리에 포함된 대상의 이름 / 2. 대상이 보조기억장치 내에 저장된 위치 )
2. 파일 시스템
- 파일과 디렉터리를 관리하는 운영체제 내의 프로그램
1) 파티셔닝과 포매팅
- 한 번도 사용된 적 없는 하드 디스크/SSD는 파티셔닝과 포매팅 없이는 사용할 수 없음.
(1) 파티셔닝
: 저장장치의 논리적인 영역을 구획하는 작업
(2) 포매팅
: 파일 시스템을 설정.
- 어떤 방식으로 파일을 관리할지 결정 / 새로운 데이터를 쓸 준비 작업
=> 포매팅까지 완료되면 파일과 디렉터리 생성이 가능해짐!
2) 파일 할당 방법
- 포매팅까지 끝난 하드디스크에 파일을 저장하기
- 운영체제는 파일/디렉터리를 블록 단위로 읽고 쓴다!
(즉, 하나의 파일이 보조기억장치에 저장될 때에는 여러 블록에 걸쳐 저장)
(1) *연속 할당*
- 보조기억장치에 연속적으로 블록에 파일 할당
- 연속된 파일에 접근하기 위해 파일의 첫번째 블록주소와 블록 단위의 길이만 알면 된다.
- 디렉터리 엔트리 : 파일 이름 & 첫 번째 블록 주소 & 블록 단위 길이 명시
- 구현이 단순하지만 '외부 단편화'를 야기할 수 있는 부작용이 있다.
(2) *불연속 할당*
- 오늘날 사용되는 방식
a. 연결 할당
- 각 블록의 일부에 다음 블록의 주소를 저장하여 각 블록이 다음 블록을 가리키는 형태로 할당
- 파일을 이루는 데이터 블록을 연결 리스트로 관리
- 불연속 할당의 일종 -> 파일이 여러 블록에 흩어져 저장되어도 무방
- 디렉터리 엔트리 : 파일 이름 & 첫 번째 블록 주소 & 블록 단위의 길이
- 반드시 첫 번째 블록부터 하나씩 읽어들여야 한다는 단점(임의 접근 속도가 느리다)
- 오류 발생시 해당 블록 이후 블록은 접근이 어렵다
b. 색인 할당
- 파일의 모든 블록 주소를 '색인 블록'이라는 하나의 블록에 모아 관리하는 방식
- 파일 내 임의의 위치에 접근하기 용이
- 디렉터리 엔트리 : 파일 이름 & 색인 블록 주소
3) 파일 시스템 살펴보기
(1) FAT 파일 시스템
- 연결할당 기반 파일 시스템
- 연결할당의 단점을 보완(FAT가 메모리에 캐시될 경우 느린 임의 접근 속도 개선 가능)
- 각 블록에 포함된 다음 블록 주소를 한데 모아 테이블(FAT : File Allocation Table)로 관리
- 디렉터리 엔트리 : 파일이름, 시작블록, 속성, 확장자, 예약영역, 생성시간, 마지막 접근시간, 마지막 수정시간, 파일크기
(2) 유닉스 파일 시스템
- 색인할당 기반 파일 시스템
- 색인 블록 == i-node (파일의 속성정보와 15개의 블록주소 저장가능)
Q. 15개 블록 이상을 차지하는 파일은?
- 블록 주소 중 12개에는 직접 블록 주소 저장
- 충분하지 않다면 13번째 주소에 '단일 간접 블록 주소' 저장
*단일 간접 블록 주소 : 파일 데이터를 저장한 블록 주소가 저장된 블록
- 그래도 충분하지 않다면 14번째 주소에 '이중 간접 블록 주소' 저장
*이중 간접 블록 주소 : 단일 간접 블록들의 주소를 저장하는 블록
'CS 공부' 카테고리의 다른 글
[CS] {네트워크} 물리 계층 & 데이터링크 계층 (0) | 2025.05.15 |
---|---|
[CS] {네트워크} 네트워크란? (2) | 2025.05.11 |
[CS] {운영체제} 메모리 관리 방식 (1) | 2025.05.03 |
[CS] {운영체제} 교착상태(데드락) (0) | 2025.04.25 |
[CS] {운영체제} 동기화 (0) | 2025.04.22 |