### Least Recently Used Algorithm ### : 최근에 사용하지 않은 page를 가장 먼저 내려 보내는 algorithm : LRU에서는 가장 오랜 시간동안 사용되지 않은 page를 교체할 수 있다. => 미래는 알 수 없지만 과거는 알 수 있다. (page의 과거는 미래를 반영한다) : Optimal(최적)은 가능하지 않지만 근사값은 가능하다 : FIFO는 page를 memory로 가져온 시간을 사용하고 OPT는 page를 사용하는 시간을 사용한다. : 이것은 종종 page replacement algorithm으로 사용되며 좋은 것으로 간주된다. : 주요 문제는 LRU교체를 구현하는 방법이다. : 상당한 하드웨어..
### Optimal Page Replacement ### : 모든 algorithm 중에서 page-fault rate이 가장 낮고 Belady's anomaly가 발생하지 않는 algorithm => 이러한 algorithm을 OPT (가장 사용하지 않을 page(미래를 보고)를 가장 우선적으로 내려 보내는 algorithm) 또는 MIN이라고 한다. ==>> 장기간 사용하지 않는 page를 replacement하십시오 (가장 뒤에 나오는 수를 교체) : Optimal algorithm은 고정된 수의 frame에 대해 가능한 가장 낮은 page-fault rate를 보장한다. : 실제 system에서는 불가능하다(prediction문제) => algori..
### First-In-First-Out(FIFO) Algorithm ### - 입력 순서 : 메모리에 먼저 올라온 page를 먼저 내보낸다는 algorithm : 가장 간단한 page-replacement algorithm : page를 replacement할 때 가장 오래된 page가 선택된다. (physical memory에 적재 되어진 page 중) : 이해하고 program하기 쉽지만 성능이 항상 좋은 것은 아니다. : frame수가 늘으면 page fault가 감소한다. : Reference string: 1,2,3,4,1,2,5,1,2,3,4,5 : 더 많은 frame을 추가하면 더 많은 page fau..
### Page/Frame Replacement ### : page fault발생시 free frame이 없다면 어떤 frame(victim frame)을 고를 것인가 선택하는 algorithm : first access와 re-access 에서 가장 낮은 page-fault rate 원한다. ==> 각 process에서 page fault의 전체 합을 최소화 시키는 것 : memory에 올라와 있는 각process 얼마나 많은 physical memory를 할당할 것인가 (얼마나 많은 frame을 할당 할 것인가) => 각 process에 제공 할 frame 수 : repl..
### Page Replacement ### : os가 multiprogramming 정도를 부주의하게 증가 시키면 memory 초과 할당이 발생할 수 있다. : program page 외에도 i/o용 buffer도 상당한 양의 memory를 소비한다. : os가 page fault를 발견하면 process를 종료하거나 page replacement를 수행 할 수 있다. ( B를 선택하였는데 frame number가 없고 invalid상태입니다. 그래서 backing store(disk)에서 찾아 physical memory에 적재하려 했는데 physical memory가 꽉차있습니다. 해결 방법: 1. 강제 종료해서 free frame확보(syst..
### Copy-on-write ### : 필요할 때만 page를 frame에 적재하는 방식 => memory낭비, 작업처리 속도면에서 기존방식보다 좋다. : Copy-on-write(COW)를 사용하면 parent and child process가 모두 동일한 page를 memory에서 share할 수 있다. => 중복된 page를 frame에 적지 않을 수 있다 : shared page는 write 중 복수 page로 표시된다. => process 중 하나가 shared page에 쓰면 shared page의 사본이 생성되어 그 곳에 write한다.
### Demand Paging ### : page를 요청할 때만 memory에 적재한다. : block(source or destination)이 page boundary를 넘으면 부분적으로 이동한 후 page fault가 발생할 수 있다. : source and destination blocks이 겹치는 경우 sources block이 수정된 것일 수 있으며 이 경우 os가 단순히 명령을 다시 시작할 수 없다. : microcode는 두 block의 양쪽 끝을 계산하여 access를 시도한다. page fault가 발생하기 전에 page fault를 미리 발생시켜서(data가 삭제된 이후에) 이후 page fault를 방지한다...