운영체제
-
[OS] 커널 메모리 할당 방식(Buddy, Slab)운영체제 2020. 11. 27. 03:14
KernelMemory 사용자 모드의 프로세스가 추가적인 메모리를 요구하면 커널 페이지 프레임을 넘겨줌 커널 메모리의 특징 사용자 모드 프로세스와 달리 메모리 풀에서 할당하는 정책 사용 커널은 다양한 자료구조를 사용하지만 대충 필요한 메모리의 양이 정해져 있기에 이를 고려하고 적절히 할당됨 일반 프로세스의 페이지는 연속적일 필요가 없으나 커널은 하드웨어와 직접 상호작용하기에 물리적으로 연속적인 페이지 프레임을 할당 받음 Buddy System Allocator 2의 지수승으로 커널 프로세스에 메모리를 할당하는 방식 256 KB 는 물리적으로 연속적인 페이지임. 요청된 메모리 크기를 수용할 수 있는 최소 크기로 메모리를 쪼개어 할당하며 그러한 메모리 조각을 buddy 라고 부름 작업 종료 후 원본 budd..
-
[OS] 페이지 Thrashing, Working-Set, PFF운영체제 2020. 11. 27. 03:13
Thrashing Page fault 로 인한 페이지 로딩이 너무 빈번하게 요청되어서 실제 데이터를 가져온 뒤 활용도 못해보고 교체되는 문제 CPU 스케쥴러가 CPU utilization(활용률)을 최대화 시키는 방향으로만 스케쥴링되면 발생하는 문제임. → CPU utilization 이 떨어지면 프로세스를 추가할당 위 한계 구간에서 프로세스가 추가로 할당하면 당연히 Page fault 도 더 많이 발생하고, Thrashing 문제는 더 심해지는 악순환이 발생 따라서 CPU 스케쥴러를 구현할 때 page fault 횟수(frequency)도 고려해서 스케쥴링을 해줘야함 Demand paging 기법은 데이터간의 Locality 를 이용한 기법인데 이 locality 를 유지하기 위한 메모리 크기가 총 메..
-
[OS] 프로세스의 물리 메모리 할당운영체제 2020. 11. 27. 03:12
Allocation of Frames (물리 메모리의 할당) 컴퓨터 시스템에는 여러 개의 프로세스가 동시에 동작하므로 이를 효과적으로 분배해야함 → 각 프로세스에게 할당되는 최소/최대 프레임 수를 정해둠 그렇지 않으면 소수의 프로세스가 물리 메모리를 독점하는 현상이 발생 최소 프레임 수 작으면 Page fault 확률이 늘어나서 성능이 떨어짐. 프로세서의 Instruction set architecture 에 의해 결정 예를 들어 ADD x y z 라는 기본 명령어가 있다고 할 때 운이 없으면 ADD 명령어는 두 개의 페이지에 걸칠 수 있음 x, y, z 또한 각각 다른 페이지에 존재한다고 한다면 하나의 명령어를 처리하는데에 5개의 페이지에 접근해야함 이 때 최소 프레임 개수가 5개 미만이라면 해당 명령..
-
[OS] Page replacement운영체제 2020. 11. 26. 15:45
Page replacement Page fault 가 발생해서 해당 페이지를 로딩하기 위해 Free frame 을 찾는데 free frame 이 없는 상황에서 사용중인 frame 을 내쫓고 할당하는 방법 최대한 오버헤드가 없도록 해야함. 즉 frame 을 잘 골라서 내쫓는게 중요함 많이 사용 안될것같은 frame 가급적 수정이 안된 frame Write 된 frame 을 내쫓으면 디스크에 Write back(백업) 해줘야 하기 때문에 읽기만 수행된 frame 을 내쫓는게 이득임 페이지 테이블에 Modify(dirty) bit 를 추가하여 해당 페이지가 write 된 적이 있는지 체크 Over allocation(= 메모리 크기보다 큰 페이지를 할당하는 것)을 막는 것 또한 중요함 Page replacem..
-
[OS] COW(Copy On Write)운영체제 2020. 11. 26. 07:03
COW(Copy On Write) : 프로세스 종료 시 변경된 메모리 페이지만 디스크에 백업하는 정책
-
[OS] Demand paging운영체제 2020. 11. 26. 06:53
Demand Paging Page : 논리적 메모리의 최소 단위 Frame : 물리적 메모리의 최소 단위 Demand Paging : 프로세스에서 사용할 메모리 페이지를 프로세스 생성 시에 모두 할당하지 않고, 필요할 때마다 동적으로 할당하는 기법 Swap-out : 메모리가 가득 차버려서 일시적으로 특정 페이지를 디스크로 보내버리는 것. 디스크에 백업하는 것이기에 느림 Swap-in : 디스크에 백업했던 페이지를 프로세스에서 요청해서 다시 메모리로 불러들이는 것 Page fault : 사용자가 요청한 페이지가 swap out 되었거나 아직 로딩되지 않아서 없는 경우 Page-fault 가 발생하면 해당 프로세스의 명령어 수행을 중지(Trap을 발생)시키고, 디스크에서 해당 페이지를 로딩한 뒤 명령어를 ..
-
[OS] 가상메모리 주소공간과 MMU운영체제 2020. 11. 26. 05:20
가상 메모리 개념 Virtual memory(가상 메모리) : Physical memory 로부터 Logical memory 를 분리하는 것 Virtual memory space(가상 메모리 공간) : 프로세스가 메모리를 바라보는 Logical View(논리적 관점) MMU(Memory Management Unit) : 가상 메모리 공간을 물리 주소와 맵핑해주는 유닛 동적할당 Virtual Memory Space 를 Physical address 와 분리함으로서 위와 같이 사용 하지 않을 확률이 높은 “Sparse address space” 를 프로세스 생성과 동시에 할당하는 것이 아닌 사용할 때만 할당하는 방식을 사용할 수 있음 코딩적으로 예를 들자면 배열을 1만까지 할당하더라도 실제로는 100까지만 ..
-
[OS] OS 페이징 기법운영체제 2020. 10. 22. 20:08
Page table 기존 페이지 테이블의 문제점 : 메모리가 커지다보니 페이지 테이블이 커지는 문제 Two-level Page-Table scheme (Hierarchical paging) 페이지 테이블을 두 단계로 나누어서 페이지 사이즈를 줄임. 대신 메모리 접근 횟수가 1회 증가 Hashed Page Table (Clustered page table) 해시테이블로 page table 을 관리하는 법으로 충돌이 날 수 있기 때문에 내부에 linked list 또한 갖고 있다 메모리 접근횟수도 줄이고 테이블 사이즈도 확실히 줄어듦 Inverted Page Table 논리주소를 기반으로 페이지를 찾아서 물리주소를 찾는 방법과는 달리 물리주소를 테이블에 저장해두고 매칭되는 페이지를 찾는 방식 따라서 페이지 ..