본문 바로가기

카테고리 338

Memory Optimization Memory Optimization 메모리 관리에 있어서 최적화를 해야 한다. Optimization Techniques Copy-on-write : fork 할 때 처음에 copy를 하지 않고 공유하도록 한다. Memory-mapped files : file을 메모리에 올려서 I/O가 메모리에서 일어나도록 한다. Modify bit : dirty bit을 사용해서 swap out 될 때 dirty 만 write 한다. Prepaging : 프로세스가 시작할 때 working set을 메모리에 불러온다. Copy-on-Write write가 발생할 때 copy를 실행한다. 주로 fork에서 사용하는 기법이다. 처음에 child가 만들어질 때는 parent의 address space를 복사하는 것이 아니라.. 2021. 6. 20.
Memory Allocation and Trashing Demand Paging Issue Demand paging을 할 때 memory allocation의 문제를 생각해야 한다. Demand paging으로 인해 trashing 문제가 발생할 수 있다. Memory Allocation Demand paging은 프로세스가 필요로 하는 page만 그때그때 제공하는 것이다. Demand paging을 구현할 때 프로세스가 최소로 필요로 하는 page의 수를 고려해야 한다. 최대로 필요한 page의 수는 제약은 없고, physical memory의 크기에 따라 결정하면 된다. 예를 들어 IBM 370에서 SS MOVE 라는 instructoin은 memory에서 memory로 data를 옮기는 instruction이다. 이 instruction를 처리하기 위해.. 2021. 6. 20.
Page Replacement Page Replacement Page fault가 발생할 경우 disk에 가서 필요한 page를 가져와야 한다. 그런데 memory에 empty frame이 없을 경우 기존에 있던 frame을 제거해야 한다. 기본적인 page replacement는 다음과 같다. disk에서 원하는 page의 위치를 찾는다. victim frame (메모리에서 뺄 frame)을 선택하고 뺀다. 필요한 page를 읽어서 free frame(victim frame)에 넣는다. page table을 update 한다. 중단된 process를 다시 시작한다. page fault가 일어나면 2 * EAT(everage access time) 이 소요된다. victim page를 swap out하고, 새로운 page를 swap .. 2021. 6. 20.
Memory Space Utilization Memory Space Utilization 과거 dynamic loading overlay dynamic linking swapping 요즘 demand paging 과거의 Memory Space Utilization 배경 과거에는 프로그램의 실행을 위해서 전체 프로그램과 데이터가 physical memory에 올라왔어야 한다. 따라서 프로세스의 크기는 physical memory의 크기보다 작아야 했다. 때문에 큰 프로레스나 많은 프로세스를 동작하기 위해서 프로세스가 당장 필요한 메모리만 할당하고 더 필요하면 이후에 추가로 할당하였다. 기법 dynamic loading : OS support O overlay : OS support X dynamic linking : OS support O swapp.. 2021. 6. 20.
Segmentation Segmentation Segmentation은 과거에 주로 사용되는 기법으로 요즘은 paging을 사용한다. Segment 단위로 memory management(allocate, protection, sharing)를 한다. 주로 code, dta, stack, symbol table 등의 각 영역 단위로 segment가 만들어진다. paging에서 page의 크기는 모두 동일하다. 그러나 segment는 각 프로세스별, 영역별로 크기가 다를 수 있다. 각 segment 들이 physical memory space에 흩어져서 저장된다. fragmentation이 줄어들기는 하지만, 아예 발생하지 않는 것은 아니다. Address Translation Address translation 과정은 pagi.. 2021. 6. 20.