티스토리 뷰

운영체제/이론

(57) Virtual Memory

geonwoopaeng@gmail.com 2020. 10. 7. 10:48

### Virtual Memory ###

출처: Operating System Concepts 10th Ed (John Wiley & Sons, Inc. 2018) ​

 

 

: 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이다.

 

출처: Operating System Concepts 10th Ed (John Wiley & Sons, Inc. 2018) ​

( 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를 공유할 수 있다.

 

출처: Operating System Concepts 10th Ed (John Wiley & Sons, Inc. 2018) ​

반응형

'운영체제 > 이론' 카테고리의 다른 글

(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
공지사항
최근에 올라온 글