메모리 관리 장치
- 통신 작업은 계속 백그라운드에서 실행해야 하기 때문에 멀티태스킹은 필수가 됨
- 누군가가 의도적으로 다른 프로그램을 들여다보거나 변경을 할 수 없도록 오늘날 대부분 마이크로프로세서에서 메모리 관리 장치(MMU)가 들어 있음
- MMU가 들어 있는 시스템은 가상 주소와 물리 주소를 구분함
- MMU의 가상 주소 범위는 물리적 메모라 주소보다 큰 경우가 많으며, MMU는 가상 메모리 주소를 두 부분으로 나눈다.
- 페이지 테이블이라는 RAM 영역을 통해 주소를 변환
- 메모리는 256바이트 크기의 페이지로 분할된다 1~256 바이트까지 순차적으로 분할 됨
- 이를 통해 시작하는 프로그램은 다른 곳에 넣을 수 있으나 모든 내용은 페이지 경계 안에 들어 있어야 한다.
- 현대적 프로세서의 MMU는 페이지 테이블 크기가 정해져 있다.
- 전체 페이지 테이블 항목은 주 메모리에 저장 되거나 주 메모리가 부족한 경우 디스크에 저장됨
- MMU는 페이지 테이블 항목 중 일부를 필요할 때만 자신의 페이지 테이블로 읽어 들임
MMU의 장점
- 메모리 보호
- 캐시 관리
- 멀티태스킹에 도움이 된다.
- 버그로 인한 피해 감소
가상 메모리
메모리 :
- 스왑 아웃 : 요청받은 메모리가 사용 가능한 물리적 메모리보다 큰 경우 현재 필요 없는 메모리 페이지를 느리지만 용량이 큰 디스크로 옮기는 것
- 스왑 인 : 스왑 아웃한 페이지에 프로그램이 접근하면 필요한 메모리 공간을 확보하고 해당 페이지를 다시 메모리로 불러들이는 것
- 최소 최근 사용 알고리즘(스와핑으로 인한 성능 저하를 막기위한 기법) : 최근에 자주 사용된 페이지는 물리 메모리에 그대로 남겨두고 최근에 덜 사용한 페이지를 스왑 아웃 한다.
- 하지만 메모리가 부족해서 프로그램 실행을 못하는 것보다는 느리더라도 실행 하는 편이 더 낫다
시스템 공간과 사용자 공간
사용자 프로그램이 MMU의 성질을 마음대로 바꿀 수 있다면 MMU가 프로그램을 서로 격리시키지 못한다.
여러 CPU는 이러한 문제를 해결할 수 있도록 추가 하드웨어를 제공한다.
-
시스템 모드 : I/O 처리 명령어, 특권명령어 실행 가능한 모드
-
사용자 모드 : 유저(사용자)가 접근할 수 있는 영역을 제한적으로 두고, 프로그램의 자원에 함부로 침범하지 못하는 모드
시스템 모드에서는 트랩, 시스템콜 이라고 부르는 특별한 명령을 통해 사용자 모드에서 실행 중인
프로그램이 시스템 모드 프로그램에게 요청을 보낼 수 있다.
이런 방식에는 몇 가지 장점이 있다.
첫째, 사용자 프로그램으로부터 운영체제를 보호하고 사용자 프로그램을 다른 사용자 프로그램으로부터 보호한다.
둘째, 사용자 프로그램이 MMU 등의 몇몇 요소에 손을 댈 수 없기 때문에 운영체제가 프로그램에 대한 자원 할당을 전적으로 제어할 수 있다.
- 장점
1. 사용자 프로그램으로부터 운영체제를 보호하고, 사용자 프로그램을 다른 사용자 프로그램으로부터 보호험
2. 사용자 프로그램이 MMU 등의 몇몇 요소에 손을 댈 수 없기 때문에 운영체제가 프로그램에 대한 자원 할당을 전적으로 제어