


FIFO Scheduling

SCAN Scheduling


C-SCAN(Circular-SCAN) Scheduling
( 단방향으로 Scan을 한다. 만약 되돌아갈 일이 있으면, 처음부터 돌아가서 다시 읽는다. )




데이터를 READ/WRITE하는 처리량을 병렬적으로 처리가 가능하다.
또한 올바르게 써졌는지에 대한 reliablility를 확인해야 한다.
(그래서, 중복으로 기록을 한다.)

중요한 정보는 redundancy를 줘서 데이터를 보장해야 한다.

데이터를 striping을 통해서 병렬처리를 하는데, 이는 속도 개선에 도움이 된다.

mirroring : 동일한 데이터 완전 복제
striping : reliablility 무관하다.
parity bit : 1과 0으로 데이터 손상 여부를 확인할 수 있다.
(parity bit -> checksum -> CRC)

RAID 0
중복 데이터 없는 상태
RAID 1
클론
RAID 4
별도의 parity bit를 생성
RAID 5
각 디스크마다 parity bit가 존재한다
RAID 6
각 디스크마다 parity bit + Q
Multidimensional RAID 6
P,Q를 2차원 행렬처럼 관리

(ex. 요금제, 고객정보)

I/O를 처리하는게 OS의 주요 업무이다.



메모리 주소에 I/O Controller를 맵핑한다.

polling(busy-waiting)
데이터가 올 때까지, 확인을 계속한다.(동기 + 논블록킹과 비슷)
interrupt
wait() & notify()
DMA
CPU 개입없이 HDD와 메모리간 통신



Blocking I/O
thread가 중지되어 running -> waiting
Non-blocking I/O
execution을 정지하지 않고, 계속 실행









logical file system : fopen(), fclose()
basic file system : OS


파일을 통쨰로 올린다.
그러나 다음과 같은 문제가 있다.

그래서 Linked List로 한다.

그런데 Linked List도 문제 있음.

FAT를 일반화를 시키면 Indexed Allocation이라고 한다.

(기존 Linked list 중 1개의 element만 망가져도 전체 파일을 읽을 수 없으므로,
분산으로 처리한다.)

( 인덱스 block만 찾으면, 포렌식이 가능하다. 파일 지워도 찾을 수 있음. )
안 쓰이는 공간도 관리해야 한다.
