Transcript 11장

파일 시스템 인터페이스(File System Interface)
파일 개념(File Concept)
•
파일 개념
보조기억장치에 저장된 관련된 정보들의 모임
» 파일 속성: 이름, 타입, 위치, 크기, 보호
» 파일 연산: 생성, 쓰기, 읽기, 재위치, 삭제
• 열린 파일 정보: per-process open file table
» file pointer
» file open count
» disk location of the file
• memory-mapped files: p350(11.1)
» memory mapping으로 파일의 한 영역을 공유
» 상호배제 필요
» 파일 타입: p351(11.2), magic number(Unix)
» 파일 구조:
• 텍스트 파일과 실행 파일 구분
• 최소한의 구분: 8-bit byte의 연속(Unix, MS-DOS)
» 내부 파일 구조
• 논리구조 = 1 byte
• 물리구조 = 512 bytes
2000 운영체제
11.1
인천대학교 컴퓨터공학과 성미영
File Types – name, extension
File Type
Executable
Object
Source code
Usual extension
exe, com, bin or
none
obj, o
Function
ready-to-run machinelanguage program
complied, machine
language, not linked
source code in various
languages
commands to the
command interpreter
textual data documents
Batch
c, p, pas, 177,
asm, a
bat, sh
Text
txt, doc
Word processor
wp, tex, rrf, etc.
Library
lib, a
various word-processor
formats
libraries of routines
Print or view
ps, dvi, gif
ASCII or binary file
Archive
arc, zip, tar
related files grouped
into one file, sometimes
compressed.
2000 운영체제
11.2
인천대학교 컴퓨터공학과 성미영
접근 방법(Access Methods)
•
순차접근(sequential access)
•
직접접근(direct access)
•
기타: ISAM(Indexed Sequential Access Method)
2000 운영체제
11.3
인천대학교 컴퓨터공학과 성미영
디렉토리 구조(Directory Structure)
•
디렉토리: 파일에 대한 정보를 담고 있는 노드들의 모임
(a collection of nodes containing information about all files)
Directory
Files
F1
F2
F3
F4
Fn
•
디레토리 구조 및 파일은 디스크에
2000 운영체제
11.4
인천대학교 컴퓨터공학과 성미영
디렉토리 구조(Directory Structure)
•
단단계 디렉토리: p360(11.7)
» 모든 파일이 같은 디렉토리에
» 모든 파일이 유일한 이름을 가져야 함
•
이단계 디렉토리: p361(11.8)
» 사용자별 UFD(User File Directory)
» 파일 공유 어려움
•
트리구조 디렉토리: p363(11.9)
» 사용자별 subdirectory 생성
» 유일한 path name 가짐
•
비순환 그래프 디렉토리: p365(11.10)
» 파일과 서브디렉토리 공유가능
» 구현 방법 : link 사용(Unix), 복사(duplication)
•
일반적인 그래프 디렉토리: p368(11.11)
» 트리구조 디렉토리에 link 첨가
» cycle 허용되면 탐색시 무한 루프 가능
» 새 link 추가시 cycle 피하는 것이 어려움
2000 운영체제
11.5
인천대학교 컴퓨터공학과 성미영
단단계 디렉토리(Single-Level Directory)
이단계 디렉토리(Two-Level Directory)
2000 운영체제
11.6
인천대학교 컴퓨터공학과 성미영
트리구조 디렉토리(Tree-Structured Directories)
2000 운영체제
11.7
인천대학교 컴퓨터공학과 성미영
비순환 그래프 디렉토리(Acyclic-Graph Directories)
2000 운영체제
11.8
인천대학교 컴퓨터공학과 성미영
일반적인 그래프 디렉토리(General Graph Directory)
2000 운영체제
11.9
인천대학교 컴퓨터공학과 성미영
보호(Protection)
•
보호
»
»
»
»
접근타입 제어: 읽기, 쓰기, 실행,첨가, 삭제, 리스트
접근 리스트와 그룹: owner, group, universe
기타 보호: password, 디렉토리 보호(sticky bit)
예: 3 bits rwx(Unix)
일관성 의미 구조(Consistency Semantics)
•
일관성 의미 구조(철학)
» Unix 의미론: Unix file system
• 열린파일의 변경은 즉시 공유자에게 보여짐
• 파일의 현재 위치 포인터 공유->하나의 파일 이미지 유지
» 세션 의미론: Andrew file system
(session: 파일 open과 close 사이의 모든 파일접근의 연속)
• 열린파일의 변경은 즉시 공유자에게 보여지지 않음
• 파일 변경은 파일 close 후 다른 session에서만 보여짐
» 불변-공유 파일 의미론
(immutable shared file = read-only file)
• 파일 이름 불변
• 파일 내용 변경 불가
2000 운영체제
11.10
인천대학교 컴퓨터공학과 성미영
파일 시스템 구현(File System Implementation)
파일 시스템 구조(File System Organization)
•
•
•
•
•
•
응용 프로그램
논리적 파일 시스템(디렉토리 구조)
파일 구성 모듈(논리블록 -> 물리블록)
기본적 파일 시스템(장치 드라이버에 read/write 명령)
입출력 제어(device drivers와 interrupt hadler)
장치
할당 방법(Allocation Methods)
•
연속할당(contiguous allocation): p378(11.15)
» 디스크 탐구시간(seek time)이 최소
» 순차접근과 직접접근 모두
» 동적 기억장치 할당
» 외부단편 문제
» 파일 크기 결정(preallocation) 문제
-> extent(다른 연속할당 덩어리)로 연결
파일의 블록주소 : <시작위치, 블록 개수, 다음 extent로 link)
2000 운영체제
11.11
인천대학교 컴퓨터공학과 성미영
할당 방법(Allocation Methods)
•
연결 할당(linked allocation): p380(11.16)
» 디스크 블록의 연결 리스트 구성
» 외부 단편 없음
» 파일 커져도 문제 없음
» pointer space overhead -> block들의 clusters로 보완
» 신뢰성 떨어짐 -> doubly linked list로 보완
» 직접 접근이 비효율적
» (예) FAT(File Allocation Table): p382(11.17) MS-DOS, OS/2각
• 각 partition 시작 부분에
• 테이블의 각 항복
: <블록 번호, 파일에서의 다음 블록 번호>
• 잦은 참조로 인해 caching 해야 함
•
색인 할당(indexed allocation) : p383(11.18)
» 각 파일에 색인 블록(index block): paging과 유사
» 직접접근 가능
» 색인 블록의 memory overhead
2000 운영체제
11.12
인천대학교 컴퓨터공학과 성미영
Example of Contiguous Allocation
2000 운영체제
11.13
인천대학교 컴퓨터공학과 성미영
Linked allocation of disk space
2000 운영체제
11.14
인천대학교 컴퓨터공학과 성미영
Example of Indexed Allocation
2000 운영체제
11.15
인천대학교 컴퓨터공학과 성미영
할당 방법(Allocation Methods)
•
» 색인 블록의 구현
• 연결 체계(linked scheme) : 다음 색인 블록으로 연결
• 다중레벨 색인 (multilevel index) : 간접 색인
(예) 블록크기: 4096 bytes = 1024 항목 x 4 bytes pointers
2-level indexing 경우 최대 블록 개수: 1024 x 1024
파일 최대 크기:1024 x 1024 x 4K = 4G
• 혼합 체계 (combined scheme) : BSD Unix , p411(11.7)
12 direct blocks: 불록주소 = ~48K (4K x 12)
3 indirect blocks:
» single indirect blocks: ~ 4M (1024 x 4K)
» double indirect blocks: ~ 4G (1024 x 1024 x 4K)
» triple indirect blocks: 실제 사용 않음
Q: 한 파일의 최대 블록 수?
Q: 한 파일의 최대 크기?
성능
» 연속(직접 접근) + 연결(순차 접근)
» 연속(작은 파일) + 색인(큰 파일)
2000 운영체제
11.16
인천대학교 컴퓨터공학과 성미영
Combined Scheme: UNIX (4K bytes per block)
2000 운영체제
11.17
인천대학교 컴퓨터공학과 성미영
가용 공간 관리(Free-Space Management)
•
•
•
•
Bit-vector(Bitmaps)
» free: 1
» allocated: 0
블록번호 = 워드 당 비트수 x 0인 워드 갯수 +
첫번 1 까지의 간격
연결리스트(Linked List): p388(11.20)
그룹화(Grouping)
» 첫번 블록에 n-1개
» 마지막은 다음 블록의 포인터
개수(Counting)
» <첫번 블록 주소, 연속된 free blocks 갯수>
디렉토리 구현(Directory implementation)
•
선형 리스트(Linear List)
» linear search 가 문제
•
해시 테이블(Hash Table)
» collision이 문제
» 크기확장 어려움
2000 운영체제
11.18
인천대학교 컴퓨터공학과 성미영
무엇이 성공인가
자주 그리고 많이 웃는 것
현명한 이에게 존경을 받고
아이들에게서 사랑을 받는 것
정직한 비평가의 찬사를 듣고
친구의 배반을 참아 내는 것
아름다움을 식별할 줄 알며
다른 사람에게서 최선의 것을 발견하는 것
건강한 아이를 낳든
한 뙈기의 정원을 가꾸든
사회 환경을 개선하든
자기가 태어나기 전보다
세상을 조금이라도 살기 좋은 곳으로
만들어 놓고 떠나는 것
자신이 한때 이곳에 살았음으로 해서
단 한 사람의 인생이라도 행복해지는 것
이것이 진정한 성공이다.
랄프 왈도 에머슨
2000 운영체제
11.19
인천대학교 컴퓨터공학과 성미영