티스토리 뷰
### Virtual Memory ###
: memory에 없는 process의 실행을 허락한다.
: 개발자가 physical memory에서 인식한대로 logical memory(virtual memory)를 분리한다.
: 구현하기 쉽지 않으며 부주의하게 사용하면 성능이 크게 저하된다.
=> 실제로 data가 올라가는 곳은 physical memory이다 (logical/virtual memory가 아니다.)
< Inefficiency of entire program running >
: program에는 종종 비정상적인 경우를 처리하기 위한 code가 포함되어 있다.
: 일부 data 구조(ex, arrays,lists,tables)에는 종종 실제 필요한 것보다 더 많은 memory가 할당된다.
: program의 특정 옵션 및 기능은 거의 사용되지 않는다.
< Advantages of virtual memory >
: users은 large virtual address space을 위한 program을 작성하여 programing 작업을 단순화 할 수 있다.
: CPU 사용률/처리량은 증가하지만 응답 시간/처리 시간은 증가하지 않으면서 더 많은 program을 동시에 실행 할 수 있다.
: program의 일부를 memory로 load하거나 교체하는데 필요한 I/O가 적다.
< Virtual address space >
: process의 virtual address space은 process가 memory에 저장되는 방식의 logical(또는 virtual)보기를 나타낸다.
: Physical memory는 frame으로 구성되며 process에 할당 된 frame이 연속되지 않을 수 있다.
< Process in memory >
: stack은 연속적인 함수 호출을 통해 memory에서 아래쪽으로 커진다.
: hip은 dynamic memory 할당에 사용되므로 memory에서 위쪽으로 커진다.
: stack과 hip 사이의 사용되지 않은 주소 공간은 hole이다.
( code: program의 instruction code, data: program의 global variable/static variable,
heap: program 개발자가 명시적으로 할당한 동적 memory address,
stack: program의 local variable (function parameter))
< Shared library using virtual memory >
: library를 공유할 수 있다.
'운영체제 > 이론' 카테고리의 다른 글
(59) Page fault (0) | 2020.10.07 |
---|---|
(58) Demand paging (0) | 2020.10.07 |
(56) Swapping (0) | 2020.10.06 |
(55) Structure of the page table (0) | 2020.10.06 |
(54) EAT & Memory protection & valid/invalid bit (0) | 2020.10.06 |