15-1. 파일과 디렉터리
파일
- 파일 : 하드 디스크나 SSD와 같은 보조기억장치에 저장된 관련 정보의 집합을 의미.
- 모든 파일에는 이름과 파일을 실행하기 위한 정보, 파일관련 부가 정보가 있다. 부가정보를 속성 또는 메타데이터라고 한다.
- 파일 속성과 유형
속성 이름 | 의미 |
유형 | 운영체제가 인지하는 파일의 종류를 나타낸다. |
크기 | 파일의 현재 크기와 허용 가능한 최대 크기를 나타낸다. |
보호 | 어떤 사용자가 해당 파일을 읽고, 쓰고, 실행할 수 있는지를 나타낸다. |
생성 날짜 | 파일이 생성된 날짜를 나타낸다. |
마지막 접근 날짜 | 파일에 마지막으로 접근한 날짜를 나타낸다. |
마지막 수정 날짜 | 파일이 마지막으로 수정된 날짜를 나타낸다. |
생성자 | 파일을 생성한 사용자를 나타낸다. |
소유자 | 파일을 소유한 사용자를 나타낸다. |
위치 | 파일의 보조기억장치상의 현재 위치를 나타낸다. |
파일 유형 | 대표적인 확장자 |
실행파일 | 없는 경우, exe, com, bin |
목적 파일 | obj, o |
소스 코드 파일 | c, cpp, cc, java, asm, py |
워드 프로세서 파일 | xml, rft, doc, docx |
라이브러리 파일 | lib, a, so, dll |
멀티미디어 파일 | mpeg, mov, mp3, mp4, avi |
백업 / 보관 파일 | rar, zip, tar |
- 파일 연산을 위한 시스템 호출
- 파일 생성
- 파일 삭제
- 파일 열기
- 파일 닫기
- 파일 읽기
- 파일 쓰기
디렉터리
- 윈도우 운영체제에서는 디렉터리를 폴더라고 한다.
- 하나의 디렉터리만 존재 하는 것을 1단계 디렉터리라고 부른다. => 1단계 디렉터리로는 많은 파일을 관리하기가 어렵기 때문에 트리 구조 디렉터리가 생겼다.
- 절대 경로와 상대 경로
- 절대 경로 : 모든 파일이 루트 디렉터리에서 자기 자신이 이르는 고유한 경로를 가지고 있는 것.
- 상대 경로 : 절대 경로가 루트 디렉터리부터 시작하는 경로라면 상대 경로는 현재 디렉터리부터 시작하는 경로.
- 디렉터리 연산을 위한 시스템 호출
- 디렉터리 생성
- 디렉터리 삭제
- 디렉터리 열기
- 디렉터리 닫기
- 디렉터리 읽기
- 디렉터리 엔트리
- 파일이 내부에 해당 파일과 관련된 정보를 담고 있다면, 디렉터리는 해당 디렉터리에 담겨 있는 대상과 관련된 정보를 담고 있다.
- 디렉터리는 보조기억장치에 테이블 형태의 정보로 저장.
- 디렉터리 엔트리에는 디렉터리에 속한 파일들의 이름과 이들의 위치를 알 수 있는 정보 등이 포함되어 있기 때문에 이 파일들이 보조기억장치 내에 저장된 위치를 알 수 있고 실행할 수 있는 것이다.
PLUS 상대 경로를 나타내는 또 다른 방법
- 현재 작업 디렉터리를 마침표(.)로 나타내고, 현재 작업 디렉터리의 상위 디렉터리를 마침표 두번(..)으로 나타낸다.
15-2. 파일 시스템
파티셔닝과 포매팅
- 파티셔닝 : 저장 장치의 논리적인 영역을 구획하는 작업. (파티셔닝 작업을 통해 나누어진 영역 하나하나를 파티션)
- 포매팅 : 파일 시스템을 설정하여 어떤 방식으로 파일을 저장하고 관리할 것인지를 결정하고 새로운 데이터를 쓸 준비를 하는 작업. 포매팅 할 때 파일 시스템이 결정된다.
파일 할당 방법
- 운영체제는 파일과 디렉터리를 블록 단위로 읽고 쓴다.
- 연속 할당 : 보조기억장치 내 연속적인 블록에 파일을 할당하는 방식.
- 파일의 첫 번째 블록 주소와 블록 단위의 길이만 알면된다.
- 파일을 그저 연속적으로 저장하는 방식이기에 구현이 단순하다는 장점이 있지만, 외부 단편화를 야기한다는 단점이 있다.
- 연결 할당: 연속 할당의 문제를 해결할 수 있는 방식.
- 각 블록 일부에 다음 블록의 주소를 저장하여 각 블록이 다음 블록을 가리키는 형태로 할당하는 방식. 파일을 이루는 데이터를 연결 리스트로 관리.
- 파일 이름과 함께 첫 번째 블록 주소와 블록 단위의 길이를 명시.
- 단점
- 반드시 첫 번째 블록부터 하나씩 차례대로 읽어야 한다.
- 하드웨어 고장이나 오류 발생 시 해당 블록 이후 블록은 접근할 수 없다.
- 색인 할당 : 파일의 모든 블록 주소를 색인 블록 이라는 하나의 블록에 모아 관리하는 방식.
- 파일 a에 순차적으로 접근하고 싶다면 색인 블록에 저장된 주소에 차례대로 접근.
- 색인 할당을 사용하는 파일 시스템에서는 디렉터리 엔트리에 파일 이름과 더불어 색인 블록 주소를 명시.
파일 시스템 살펴보기
- FAT 파일 시스템 : USB 메모리, SD 카드 등의 저용량 저장 장치에서 사용되는 것.
- FAT : 각 블록에 포함된 다음 블록의 주소들을 한데 모아 테이블 형태로 관리 하는 테이블
- FAT 디렉터리 엔트리에는 파일이름과 더불어 파일의 첫 번째 블록 주소가 명시
- 유닉스 파일 시스템 : 유닉스 계열 운영체제에서 사용되는 것. 색인 블록을 i-node라고 한다.
- i-node에는 파일 속성 정보와 열다섯 개의 블록 주소가 저장될 수 있다.
- i - node 크기의 유한함 문제해결
- 블록 주소 중 열두 개에는 직접 블록 주소를 저장
- 첫번째 내용으로 충분하지 않다면 열세 번째 주소에 단일 간접 블록 주소를 저장
- 둘째 내용으로 충분하지 않다면 열네 번째 주소에 이중 간접 블록 주소를 저장
- 셋째 내용으로 충분하지 않다면 열다섯 번째 주소에 삼중 간접 블록 주소를 저장
PLUS 저널링 파일시스템
- 저널링 기법 : 작업 로그를 통해 시스템 크래시가 발생했을 때 빠르게 복구하기 위한 방법.
- 작업 직전 파티션의 로그 영역에 수행하는 작업(변경 사항)에 대한 로그를 남긴다.
- 로그를 남긴 후 작업을 수행한다.
- 작업이 끝났다면 로그를 삭제한다.
PLUS 마운트
- 마운트 : 한 저장 장치의 파일 시스템에서 다른 저장 장치의 파일 시스템에 접근할 수 있도록 파일 시스템을 편입 시키는 작업.
'CS공부🖥️ > 운영체제' 카테고리의 다른 글
혼공 컴+운 chapter14. 가상메모리 (0) | 2025.02.11 |
---|---|
혼공 컴+운 chapter13. 교착 상태 (0) | 2025.02.05 |
혼공 컴+운 chapter12. 프로세스 동기화 (0) | 2025.02.05 |
혼공 컴+운 chapter11. CPU 스케줄링 (0) | 2025.01.30 |
혼공 컴+운 chapter10. 프로세스와 스레드 (0) | 2025.01.28 |