[운영체제] 운영체제 반효경 교수님 2017년 - 13. 입출력 시스템

June·2021년 5월 19일
0

Disk Scheduling

대부분의 시간은 seek time과 rotational latency에서 소요된다.

Disk Structure

cpu는 디스크를 얘기할 때 logical block을 다룬다. 마치 1차원 배열처럼. 논리적인 블록을 섹터랑 매칭하는 것은 컨트롤러가 한다.

Disk Management

디스크 컨트롤러가 섹터 단위로 쪼개서 관리하겠다고 구획을 나누는 것을 format이라 한다.

partitioning은 디스크 하나를 c 드라이브, d 드라이브 등으로 나누는 것이다.

logical formatting은 파티션된 논리적인 디스크에 파일 시스템을 설치하는 것이다.

메모리 바로 옆에 비휘발성 아주 작은 메모리가 있는데 이것이 ROM이다. ROM에는 부팅할 때 0번째 섹터를 메모리에 올려서 실행하라고 적혀있다.

Disk Scheduling Algorithm

FCFS (First Come First Served)

SSTF (Shortest Seek Time First)

가장 다음 이동거리가 짧은 곳으로 이동하는 방식이다. startvation 발생 가능하다.

SCAN

대기 시간의 편차가 클 수도 있다.

C-SCAN

Other-Algorithms

Disk-Scheduling Algorithm의 결정

Swap-Space Management

swap area는 파일 시스템보다 단위 크기가 훨씬 크다. 전원이 끄면 사라지므로 공간을 효율적으로 사용하는 것이 중요하지 않다. 속도가 더 중요하다.

RAID

병렬성을 이용해서 성능을 향상 시키는 것이다.

UNIX 파일시스템

inode에는 메타데이터 정보를 보관하고 있다.

현재 가장 많이 사용되는 파일시스템은 EXT4이다.

Ext2 파일시스템

indirect pointer는 큰 파일을 지원하기 위해서이다.

원래 파일에 접근하기 위해서는 메타데이터에 접근하고, 실제 파일에 접근하는데 i-node block과 data block을 왔다갔다하는 것은 디스크 헤더가 많이 움직인다. 이러한 단점을 보완하기 위해서 블록의 그룹화가 나왔다.

그룹에 대한 총체적인 정보를 담고 있는 것이 Group descriptor이다.

사용적인 블록과 비어있는 그룹은 block bitmap으로 구분한다.

Ext4 파일시스템

What happened?

전원이 나가서 메모리의 내용이 휘발되면 파일시스템의 내용이 깨질 수 있다.

How to solve this problem?

버퍼캐시에서 쫓겨날때 파일에 저장을 해주는 것이 아니라, 주기적으로 스토리지에 써주는 것이다. 파일시스템에 쓰는것이 아니라 저널 영역이라는 것에 써주는 것이다. 도중에 크래쉬가 나더라도 저널영역에 있는 것을 옮겨쓰면 된다.

Ext4의 저널링 (메타데이터 저널링 모드)

이건 메타데이터만 저널링하는 방법이다. 메타데이터만 저널링했기 때문에 파일의 위치정보는 깨지지않는다. 일반 데이터는 깨질 수 있다.

Ext4의 저널링 (데이터 저널링 모드)

파일시스템을 위한 버퍼캐시 알고리즘

lru와 lfu 둘다 일부분의 정보만 사용하기 때문에 단점이 있다.

LRFU 알고리즘

LRFU 알고리즘의 실효성

어떤 것을 쫓아낼지 logn 안에 결정 할 수 있어야하는데 이렇게하면 O(n)이다.

LRFU의 효율적인 구현 방법

0개의 댓글