File
- 컴퓨터 시스템을 편리하게 사용하기 위해 저장된 정보에 대한 일과된 논리적 관점을 제공하고 저장장치의 물리적 특성을 추상화하여 논리적 저장 단위, File을 정의
- 속성 : 이름, 식별자, 타입, 위치, 크기, 시간 등
- 명령어 : 생성, 쓰기, 읽기, 재설정, 삭제, 절단
- open() 시스템 호출로 파일에 접근
- 재접근에 대한 낭비를 줄이기 위해 open-file table에 모든 열린 파일에 대한 정보가 저장됨
- close()로 닫으면 open-file table에서 제거됨
- file pointer : 읽기와 쓰기 시스템 호출의 일부분, 파일을 어디까지 읽었다는 것을 나타냄
- Open File Locking : Shared lock 여러 프로세스가 잠금 가능, writer lock 한 번에 한 프로세스만 잠금
File Structure & Internal File Structure
- 각각의 파일들은 그 파일을 다루는 프로그램에 의해 인식 가능한 내부 구조를 일정한 형태로 가짐
- 특정 파일들은 os가 인식할 수 있도록 미리 정해진 구조를 따름
- 파일은 일련의 블록으로 간주, 디스크 입출력은 한 블록 단위로 수행되고 모든 디스크 블록들은 동일한 크기를 가짐
Access Methods
- Sequentail Access : 순차 접근, Tape Model과 비슷
- Direct Access : 고정길이의 논리 레코드의 집합으로 정의되어야함, 레코드 번호로 접근
- IBM의 ISAM : 크기가 작은 마스터 색인을 메모리에 유지, 우선 메모리에서 색인 블록 번호를 찾고 레코드로 가서 순차적으로 데이터를 찾음.
Directory and Disk Structure
- 디렉토리는 그 볼륨에 있는 모든 파일에 대한 이름, 위치, 크기, 유형과 같은 정보를 기록
- 위 그림에서 directory는 root라 생각하면 되고 하나의 disk가 파티션의 복수의 directory로 나누어질 수 있다.
- format : 해당 디스크의 데이터를 모두 지우는 것이 아닌 directory를 재설정
Directory 종류
Single-Level Directory
- 모든 파일이 한개의 디렉터리 밑에 있다. (1:1)
Two-Level Directory
- master file directory 밑에 user file directory 존재, 경로명을 써서 파일을 찾아가야 함
Tree-Structure Directories
- os는 하위 디렉터리 역시 하나의 file로 본다. 비트를 설정해 0이면 file, 1이면 subdirectory
- 아래로 계속해서 나아갈 수 있지만 cycle은 안된다. 즉, 파일공유 안됨!
- rm -r <dir-name>에서 r의 recursive..
Acyclic-Graph Directories
- 그래프 구조로 cycle 허용
- 링크는 다른 파일이나 서브 디렉터리를 가리키는 포인터(하나의 파일로 취급)
- 하나의 파일에 복수의 링크가 존재 가능
- 원본 파일을 지워도 링크 파일은 존재 → Dangling pointer
General Graph Directory
- 파일을 검색할 때 마스터 디렉터리부터 경로를 따라 탐색
- 서브 디렉터리를 지시하는 링크가 사이클 만들면 똑같은 경로를 재탐색하거나 무한루프
- 한 번에 탐색할 수 있는 디렉터리 개수를 제한!
- garbage collection 기법을 사용해 외부에서 가리키는 지시 포인터 없으면 삭제
File-System Mounting
- 파일 시스템의 디렉터리 구조에 접근을 하기 위해서는 마운트가 되어야 한다.
- os는 디바이스 이름과 파일 시스템을 부착할 수 있는 mount-point가 있고 파일 시스템 연결 가능
File Sharing
- 시스템에 복수의 사용자가 있다면 파일 공유 가능
- 단 파일을 보호하기 위해 해당 파일에 대한 권한이 사용자마다 정해짐
- 소유자, 그룹, 모든 사람 (리눅스 명령어 chmod로 권한 설정 가능)
'Computer Science > Operating System' 카테고리의 다른 글
[Linux] CentOS 교육 -1 (0) | 2022.10.24 |
---|---|
[개념] File System 2(Implementation) (0) | 2021.08.12 |
[개념] Storage Management (0) | 2021.08.12 |
[개념] Memory Management 5(Virtual Memory) (0) | 2021.08.12 |
[개념] Memory Management 4(Segmentation) (0) | 2021.08.12 |