KOCW - 운영체제(이화여대 반효경 교수)
13장 파일 시스템


보통 파일에 접근하는 방법은 그 파일의 메타데이터에 접근 -> 실제 파일 접근 순으로 이루어진다.
만약 메타데이터와 실제 데이터가 먼 거리에 존재할 경우 HEAD의 이동거리는 늘어나게 됨.
이를 개선(메타데이터와 실제 데이터 가까이 저장)시키기 위한 방법이 아래와 같은 블록의 그룹화임


데이터 블록 비트맵 : 사용중인 블록과 빈 블록의 표시
아이노드 비트맵 : 사용중인 아이노드와 빈 아이노드의 표시
아이노드 테이블 : 실제 아이노드의 저장 위치

GO WAST가 그대로 남지만, 버퍼캐시는 휘발성이기 때문에 아무것도 남지 않는다 -> 파일 시스템에는 GO WAST로 저장5~30초 단위로 버퍼캐시에서 수정된 내용을 저널영역에 기록

저널 영역에 쓰는 도중에 crash가 일어날 경우? -> 저널 영역에 있는 정보 모두 소실, 저널 영역 -> 파일 시스템 중에 전원 공급이 중단될 경우에는 그대로 복구 가능

메타데이터만 저널링 : 저널링 주기가 도래하면 데이터를 파일시스템에 저장한 후 메타데이터를 저널 영역에 기록, 체크포인트 주기가 도래하면 메타데이터를 파일시스템에 반영
메타데이터만 저널링하면 크래쉬 발생 시 파일시스템 자체가 깨지는 것을 방지할 수 있음
메타데이터와 일반데이터를 모두 저널링 : 저널링 주기가 도래하면 데이터와 메타데이터를 모두 저널영역에 기록 -> 체크포인트 주기가 도래하면 데이터와 메타데이터를 파일시스템에 반영\
저널링은 의미 단위의 업데이트가 기본임, 만약 복구가 되었을 경우 사람에게 의미있는 단위로 항상 복구


캐시 블록 x 중 그 가치(value(X))가 제일 적은 블록 삭제
LFU적인 성질 : 과거의 모든 참조기록이 현재 시점의 블록 가치 계산에 합산됨
LRU적인 성질 : 최근에 사용된 기록일수록 value를 증가시키는데 더 많이 기여함(예전 기록일수록 반대) -> LRU적인 성질
Space overhead : 모든 참조에 대한 시간 기록을 가지고 있어야함 -> 공간적인 오버헤드 발생
Time overhead : O(N)만큼의 시간이 걸림(모든 참조 기록 N개를 참조하고 value를 게산해야하기 때문에)
Space Complexity : t 시점의 시간값과 value값만 있으면 현재의 시점과 비교하여 바로 value를 게산할 수 있음 -> 모든 시점에 대한 정보 필요 x이기 때문에 공간적인 효율성 up
Time Complexity : 다시 사용되지 않은 블록들 간에는 가치의 대소관계가 변하지 않는다는 성질을 이용. -> 최소힙을 이용해서 정점 노드에 있는 블록만 out시키면 됨, 만약 어떤 블록의 value가 올라가면 그 블록의 자식과 비교해서 최소힙으로 만들면 됨