Operating System/O.S(Neso Academy, HPC Lab. KOREATECH)

HPC Lab) 파일 시스템

Tony Lim 2021. 6. 2. 13:14

Disk Pack

Sector = 가장 기본적인 물리적 단위

Track = 같은 거리에 있는 sector 들의 집합

Cylinder = 같은 반지름을 갖는 track들의 집합

Platter = 둥근 디스크 하나를 의미한다.

Surface = Platter 의 뒷면과 아랫면

 

Disk Drive 

DIsk pack 에 데이터를 기록하거나 판독할 수 있도록 구성된 장치

Head = 디스크 표면에 데이터를 기록 판독

Arm = Head를 고정 지탱

Positioner (Arm 이동장치) = Head를 원하는 track으로 이동

Spindle = Disk pack을 고정시키고 회전시킨다.

 

Disk Address

Physical disk address

 

Logical disk address : relative address

Disk system의 데이터 전체를 block들의 나열로 취급 

OS 입장에서는 어떤 파일을 Block 2번에 저장해줘 이런 명령을 내리게 된다. 이떄 Disk driver 가 해당 Block 2를 실제 Physical disk Address로 mapping 시켜준다. 

 

 

Seek time = 디스크 head를 필요한 cyliner로 이동하는 시간

Rotational delay = Spindle 이 돌아가는 시간

Data trasmission time = 이후에 해당 sector를 읽어서 전송 및 기록 하는 시간

 

 

File System

사용자들이 사용하는 파일들을 관리하는 운영체제의 한 부분

 

Files

보조 기억 장치에 저장된 연관된 정보들의 집합

OS 는 file operation 들에 대한 system call 을 제공해야한다. (Create , write , read 등등)

  • Sequential access = File 을 record( or bytes) 단위로 순서대로 접근 , fgetc()
  • Directed access (직접접근) = 원하는 Block을 직접 접근 , lseek(), seek()
  • Indexed access = Index를 참조하여 , 원하는 block를 찾은 후 데이터에 접근

 

Directory structure = 시스템 내 파일들의 정보를 구성 및 제공

Partitions = Directory들의 집합을 논리적 / 물리적 구분

 

Mounting = 현재 File System을 다른 File System 을 붙이는 것 

 

Hierarchical Directory Structure

Tree 형태의 계층적 directory 사용이 가능

사용자가 하부 directory 생성/ 관리 가능 

System call 이 제공이 되어야 함.  댑부분의 OS가 사용하고 있다.

 

Acyclic Graph Directory Strcuture

Directory안에 shared directory, shared file 를 담을 수 있음

Link 의 개념을 사용 = linux 에서 symbolic link 

 

 

File Protection

접근 제어가 필요한 연산들

Read(R) , Write(W) , Execute(X) , Append(A)

linux 에서 사용된다. 

 

Continous Allocation

장점 = 효율적인 file 접근

단점 = 새로운 file 을 위한 공간 확보가 어려움 , External fragmentation , File 공간 크기 결정이 어려움 

 

Linked Allocation

장점 = Simple , No external fragmentation

단점 = 직접 접근에 비효율적 , 포인터 저장을 위한 공간 필요, 신뢰성 문제(사용자가 포인터를 실수로 건드리는 문제등)

FAT(File Allocation Table) = 각 block의 시작 부분에 다음 블록의 번호를 기록하는 방법

 

Indexed Allocation

File이 저장된 block의 정보(pointer)를 index block 에 모아둠

직접 접근에 효율적 (순차 접근에는 비효율적 , index블록을 계속 확인해야 하기 때문)