공부/운영체제2011. 7. 13. 22:34


파일

추상적인 데이터 타입
OS가 파일에 대한 시스템콜 제공 
파일을 open하면 디스크의 directory 구조에서 내용을 찾고, 메모리에 그 내용을 옮긴다.
close하면 메모리 있는 내용을 디스크에 쓴다.
OS는 open-file table을 가지고 있다.

멀티유저 시스템은 두가지 file table을 가지고 있다.

Per-process table

프로세스 별로 file정보를 가지고 있다.
프로세스 의존적인 정보(현재 파일 포인터, 접근 권한 등)

System-wide table

모든 프로세스와 관련된 파일 정보를 가지고 있다.(디스크에서 위치, 접근 날짜, 파일 크기 등)
Open count- 파일이 open되면 1씩 증가, close되면 감소 

File Type

file type으로 그 파일의 내부 구조를 알 수 있다.
OS가 많은 파일 타입을 지원하면 안좋다.
각각의 파일 타입을 지원하는 코드가 필요한데, 그 구현과 OS크기가 복잡하고 커진다.

모든 OS는 실행파일은 지원해야 한다.

Disk 할당

Logical record unit
Unix는 모든 파일을 바이트의 연속이라 정의했다. 1byte가 단위이다.
Physical record unit
모든 disk 장치들은 block 단위로 수행된다. 예) 512byte가 한블락

Access Method

Sequential Access
파일의 정보가 순서대로 처리된다.
read, write 시스템콜 사용하는 것처럼.

Direct Access
순서없이 record를 읽고 쓸 수 있는 것.
어떤 블락에도 random access가 가능하다.

Directory Structure

파일의 숫자가 많아지다보니 생겼다.

파티션
디스크를 여러개의 파티션으로 나눌 수 있다.
각각의 파티션마다 directory(파일에 대한 정보)가 있다.
여러개 dish를 하나의 partition으로 할 수도 있다.

Single-level directory
모든 파일이 같은 디렉토리에 있는것.
모든 파일은 유일한 이름을 가지고 있어야 한다.

Two-level Directory
사용자 마다 자신의 디렉토리가 있다.
master file directory와 user file directory 두 단계.

Tree-Structured Directories
디렉토리가 파일도 포함하고 서브디렉토리도 포함한다.
디렉토리를 하나의 파일로 본다. (처리방식은 다르다.)

Acyclic-Graph Directories

파일과 디렉토리를 공유할수 있다.
문제점
여러개의 이름을 가진다. shared structure를 한번이상 탐색하지 않게 하고 싶을 때 문제.
파일을 삭제하면 원본없이 포인터만 있게 되는 문제.(그냥 내버려둬서 잘못된파일이름으로 처리하거나, 파일을 삭제하지 않고 유지하는 해결방법이 있다.)

Soft link and Hard link

soft link - soft link는 original 파일 이름을 가리킨다. original 파일 이름이 바뀌면 soft link는 쓸모가 없게 된다. 다른 파일 시스템의 파일을 가리킬수 있다.
hard link - 파일을 가리킨다.(inode) 원본 이름이 바뀌어도 안깨진다. 다른 파일 시스템을 가리키지는 못한다.

File system mounting

파일 시스템에 새로운 파일 시스템을 붙이는 것.



 

'공부 > 운영체제' 카테고리의 다른 글

Mass-storage structure  (0) 2011.07.13
File System Implementation  (0) 2011.07.13
Virtual Memory  (0) 2011.07.13
8장 Memory-management strategies  (0) 2011.07.10
7장 Deadlock  (0) 2011.07.09


Posted by skyjumps