본문 바로가기

Computer Science 254

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.
Paging Paging Physical memory를 fixed sized block (frame)으로 나눈다. Logical memory를 같은 크기의 block인 page로 나눈다. frame과 page는 같은 것으로 physical memory인지 logical memory인지를 구분하기 위해 달리 표현하는 것이다. 운영체제는 모든 free frame들을 기록해야 한다. Page Table 목적 아래의 문제들을 해결하기 위해 page table을 사용한다. 운영체제와 하드웨어는 매핑 정보를 가지고 있어야 한다. 너무 많은 relocation register를 필요로 할 수 있다. Relcoation register는 virtual address space의 최대 page 수 만큼 필요하다. Page Table.. 2021. 6. 20.
Memory Management Memory Management Multitasking을 위해서는 대상이 되는 프로그램들을 메모리에 올려놓고 실행해야 한다. 이를 위해서 memory management가 필요하다. Memory management는 운영체제에서 가장 복잡한 것 중 하나이다. 목적 Memory management의 일반적인 목적는 다음과 같다. 프로세스 별로 하나의 contiguous, protected 메모리 공간을 배정한다. 물리적으로 주어지는 메모리보더 더 많고 분리된 메모리를 프로세스마다 배정한다. Tricks address translation paging, segmentation address translation을 통해서 noncontiguous한 physical emmory allocation을 효율적으로 .. 2021. 6. 20.
Deadlock Handling Deadlock Handling 일반적으로 운영체제는 deadlock ignorance를 채택한다. prevention, avoidance, detection은 성능적인 비용이 많이 들기 때문이다. deadlock preventation : deadlock을 예방함으로써 deadlock을 해결한다. deadlock avoidance : deadlock이 발생할 가능성은 있지만, 발생하지 않도록 자원을 운용한다. deadlock detection and recovery : deadlock이 발생하도록 냅두고, 발생하면 처리한다. deadlock ignore : deadlock이 발생해도 무시한다. 프로그래머가 deadlock이 발생하지 않도록 해야 한다. Deadlock Prevention deadlock.. 2021. 6. 20.