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 |