-
728x90
1. CPU와 메모리
CPU의 비트는
한 번에 다룰 수 있는 데이터의 최대 크기
를 의미한다. CPU 내부 부품은 모두 이 비트를 기준으로 제작된다. 레지스터 크기, 산술 논리 연산장치의 처리 범위, 각종 버스의 크기(대역폭)도 모두 이 비트를 따른다.CPU의 비트는
메모리 주소 공간(address space)
의 크기와도 연관이 있다. 예를 들어 32비트의 경우 메모리 주소 레지스터(MAR)의 크기도 32비트이므로 메모리 주소의 총 개수가 2^32개가 된다. 총 크기는 (2^32)B = 4GB이므로 32비트의 CPU는 메모리를 최대 4GB까지 사용할 수 있다.2. 절대 주소와 상대 주소
메모리 영역의 구분
메모리는 2개의 영역으로 구분된다.
운영체제 영역
과사용자 영역
이다. 운영체제는 시스템을 관리하는 중요한 역할을 하기 때문에 운영체제 영역은 사용자가 침범하지 못하도록 보호되어야 한다.사용자 영역의 침범을 막으려면 하드웨어의 도움이 필요한데, 이는 CPU 내의
경계 레지스터
가 담당한다. 경계 레지스터는 운영체제 영역과 사용자 영역의 경계 지점의 주소를 가진 레지스터이다.메모리 관리자
는 사용자가 작업을 요청할 때마다 경계 레지스터의 값을 벗어나는지 검사하고, 벗어나는 작업을 요청하는 프로세스는 종료한다.절대 주소와 상대 주소의 개념
절대 주소
는 실제 메모리에 올라가는 주소다. 어떤 프로그램에서 변수의 메모리 주소를 지정할 때 절대 주소로 지정한다면 어떨까? 운영체제 영역이 달라질 때마다 주소를 다시 설정해야 하고 경계 레지스터의 값을 아는 것만으로 여러 조작의 가능성을 열어줄 수 있기 때문에 좋지 않다.그래서 사용하는 것이
상대 주소
이다. 상대 주소는 사용자 영역이 시작되는 주소를 0번지로 변경하여 사용한다. 사용하는 입장에서는 굳이 경계 레지스터 값을 알 필요가 없고 항상 0번지부터 시작하면 되기 때문에 편리하다.상대 주소를 절대 주소로 변환하는 과정
상대 주소는 실제 메모리에 올라가는 주소가 아니기 때문에 물리 주소로 변환해야 한다. 이는 프로세스가 실행되는 동안
메모리 관리자
에 의해 매우 빠르게 처리된다. 사용자 프로세스가 40번지의 데이터를 요청했다고 가정하면 과정은 다음과 같다. 경계 레지스터의 값은 360번지라고 가정한다.- 사용자 프로세스가 상대 주소 40번지에 있는 데이터를 요청한다.
- CPU는 메모리 관리자에게 40번지에 있는 내용을 가져오라고 명령한다.
- 메모리 관리자는
재배치 레지스터
를 사용하여 상대 주소 40번지를 절대 주소 400번지로 변환하고 메모리 400번지에 저장된 데이터를 가져온다.
이렇듯 메모리 관리자는 상대 주소값에 재배치 레지스터 값을 더해 절대 주소를 구한다. 재배치 레지스터에는 메모리에서 사용자 영역의 시작 주소값이 저장되어 있다.
728x90'운영체제' 카테고리의 다른 글
23. 다중 프로그래밍 환경에서의 메모리 할당 (0) 2021.09.22 22. 단일 프로그래밍 환경에서의 메모리 할당 (0) 2021.09.22 20. 메모리 관리의 개요 (0) 2021.09.22 19. 다중 자원과 교착상태 검출 (0) 2021.09.22 18. 교착 상태 (0) 2021.09.22