Computer/Operating system

08 Virtual Memory (1)

코머 2021. 10. 25. 18:56

1. Types of Memory

Real memory

- Main memory

Virtual memory

- Real memory + Memory on disk(하드디스크의 일부)

- 보다 많은 프로그램 실행 가능해짐

- 궁극적으로 CPU 이용률을 향상시킴

2. Real memory

- 프로세스는 page 또는 segmentation 단위로 분할

- 프로세스는 전체가 메모리에 로드 되어야 실행 가능

- 프로세스가 메모리에 연속적을 배치될 필요는 없음

- MMU 장치에서 HW적으로 주소 변환 : 논리주소 -> 실제주소

 CPU는 논리 주소만을 취급

 프로세스 내의 모든 포인터 변수 값 역시 논리주소 값

 실제 주소는 memory management unit(MMU)만 취급함

- MMU 역할

  Memory protection : 영역 침범 시 interrupt 걸어줌

  논리주소 -> 실제 주소 변환 

3. Virtual memory [Windows & UNIX ]

Real Memory의 기능 활용

- paging system 또는 Segmentation system 그대로 사용

- MMU 장치에서 HW적으로 주소 변환 : 논리주소 -> 실제주소

- 프로세스가 메모리에 연속적으로 배치될 필요는 없음

 

Real Memory와의 차이점

1) 프로세스의 일부분만 메모리에 로드 되어도 실행 가능

- 나머지 부분은 디스크에 존재, 필요할 때 메모리에 가져옴

- 장시간 사용되지 않는 페이지는 디스크로 빼냄

- Dist swap out, swap in을 수행함(페이지 단위로 실행)

2) 메모리보다 더 큰 프로그램 실행 가능

3) 더 많은 프로세스를 실행 가능해 짐 (multiprogramming)

- 프로세스의 일부분만 로드 되기 때문

- 프로세스 많으면 CPU를 더 많이 활용 -> CPU 이용률 향상

 

Program Execution & Page Fault (실행 순서)

1) 프로그램 실행

- OS는 프로그램 시작 부분(main 함수, 그 함수가 사용)만 메모리 로드 후 실행

- Resident set : 메모리에 로드된 프로그램의 일부분

2) 메모리에 없는 주소 (디스크에 있음)을 참조 했을 때

- Page Fault(memory fault ) interrupt 발생

- Interrupt hadler(인터럽트 처리 함수) 실행

① 실행 중이던 process -> Blocking state

② Issues a disk I/O Read request : 디스크에 다음번 페이지를 읽어달라고 요청

③ Call scheduler : 다른 프로세스에 CPU 넘겨버림

④ CPU는 다른 process 실행 (process switch)

3) 조금 뒤 disk가 process의 요청했던 부분을 읽어 들였을 때

- Disk interrupt 발생 및 interrupt handler 실행

① Updates page table of the attected process

다른 프로세스 실행 중인 CPU -> 다시 disk interrup 발생한 쪽 읽어들임 -> 읽어들인 데이터를 메모리의 빈 프레임에 위치 -> Page table에 빈 메모리의 frame 번호를  적어줌

② Places the process in the Ready state

③ Calls scheduler

④ Page fault 발생했던 process runs again

 

Principle of Locality (지역성의 원리) - 지역성의 원리에 대해 설명해봐라, 설명을 보고 단 단어로 기술

- 프로세스는 특정 순간에 프로그램의 전체가 아닌 일부 영역(코드와 변수)만 참조

- 잠깐 동안 단지 몇 개의 영역(페이지들)들만 필요함 (현재 실행중인 명령어와 이 명령어가 참조하는 변수) -> 시간이  갈수록 이 영역이 점점 이동하지만 참조하는 영역의 개수는 비슷함

- 미래에 어떤 조각이 필요한지 지적인 추측을 할 수 있다.

- 이 원리로 인해 가상기억장치가 잘 작동함

 

 

'Computer > Operating system' 카테고리의 다른 글

09 Uniprocessor Scheduling(1)  (0) 2021.10.26
08 Virtual Memory (2)  (0) 2021.10.25
ch07. Memory Mangement  (0) 2021.10.12
Ch03 Processes2  (0) 2021.09.23
Ch03 Processes1  (0) 2021.09.23