<쉽게 배우는 운영체제> 교재를 참고하였습니다.
메모리 주소 : 메모리에 접근 시 주소 이용. 따라서 메모리와 주소는 매우 밀접한 관계임
32bit CPU와 64bit CPU의 차이
CPU의 비트
- 한 번에 다룰 수 있는 데이터의 최대 크기 – 이를 워드(word)라 부름
- 32bit CPU는 한 번에 다룰 수 있는 데이터의 최대 크기가 32bit (1word = 32bit)
- 32bit CPU 내의 레지스터 크기는 전부 32bit, 산술 논리 연산장치와 대역폭도 32bit로 설계됨
32bit CPU의 메모리 크기
- 표현할 수 있는 메모리 주소의 범위가 0~232-1, 총 개수가 232
- 16진수로 나타내면 00000000~FFFFFFFF, 총 크기는 232B (약 4GB)
64bit CPU의 메모리 크기
- 0~264-1번지의 주소 공간을 제공
- 총 크기가 264B, 약 16,777,216TB로 거의 무한대에 가까운 메모리 사용 가능
물리 주소 공간과 논리 주소 공간
- 물리 주소 공간 : 하드웨어 입장에서 바라본 주소 공간으로 컴퓨터마다 크기가 다름
- 논리 주소 공간 : 사용자 입장에서 바라본 주소 공간
메모리의 구조와 매핑 (사상)
메모리 장치의 주소 변환
매핑 (mapping)
- 논리적 주소와 물리적 주소의 연결
- 바인딩(binding) : 매핑시켜 주는 작업
절대 주소와 상대 주소
단순 메모리 구조
- 한 번에 한 가지 일만 처리하는 일괄 처리 시스템에서 볼 수 있음
- 메모리를 운영체제 영역과 사용자 영역으로 나누어 관리
단순 메모리 구조에서 사용자 프로세스 적재
- 사용자 프로세스는 운영체제 영역을 피하여 메모리에 적재
- 사용자 프로세스가 운영체제의 크기에 따라 매번 적재되는 주소가 달라지는 것은 번거로움
- 이를 개선하여 사용자 프로세스를 메모리의 최상위부터 사용
→ 그러나 메모리를 거꾸로 사용하기 위해 주소를 변경하는 일이 복잡하기 때문에 잘 쓰이지 않음
경계 레지스터
- 운영체제 영역과 사용자 영역 경계 지점의 주소를 가진 레지스터
- CPU 내에 있는 경계 레지스터가 사용자 영역이 운영체제 영역으로 침범하는 것을 막아줌
- 메모리 관리자는 사용자가 작업을 요청할 때마다 경계 레지스터의 값을 벗어나는지 검사하고, 만약 경계 레지스터를 벗어나는 작업을 요청하는 프로세스가 있으면 그 프로세스를 종료
절대 주소 (absolute address)
- 실제 물리 주소(physical address)를 가리키는 주소
- 메모리 주소 레지스터가 사용하는 주소
- 컴퓨터에 장착된 램 메모리의 실제 주소
상대 주소 (relative address)
- 사용자 영역이 시작되는 번지를 0번지로 변경하여 사용하는 주소
- 사용자 프로세스 입장에서 바라본 주소
- 절대 주소와 관계없이 항상 0번지부터 시작
- 프로세스 입장에서 상대 주소가 사용할 수 없는 영역의 위치를 알 필요가 없고, 주소가 항상 0번지부터 시작하기 때문에 편리
절대 주소와 상대 주소의 차이
- 논리 주소 공간은 상대 주소를 사용하는 주소 공간
- 물리 주소 공간은 절대 주소를 사용하는 주소 공간
상대 주소를 절대 주소로 변환하는 과정
- 메모리 접근 시 상대 주소를 사용하면 절대 주소로 변환해야 함
- 메모리 관리자는 사용자 프로세스가 상대 주소를 사용하여 메모리에 접근할 때마다 상대 주소 값에 재배치 레지스터 값을 더하여 절대 주소를 구함
- 재배치 레지스터는 주소 변환의 기본이 되는 주소 값을 가진 레지스터로, 메모리에서 사용자 영역의 시작 주소 값이 저장
① 메모리 사용자 프로세스 P1 상대주소 40 번지에 있는 데이터를 요청
② CPU는 메모리 관리자에게 40번지에 있는 내용을 가져오라고 명령
③ 메모리 관리자는 재배치 레지스터를 사용해 상대주소 40번지를 절대주소 400번지로 변환하고 메모리 400번지에 저장된 데이터를 가져옴
'전공 > 운영체제' 카테고리의 다른 글
Ch07. 물리 메모리 관리_04)다중 프로그래밍 환경에서의 메모리 할당_1 (1) | 2023.05.19 |
---|---|
Ch07. 물리 메모리 관리_03)단일 프로그래밍 환경에서의 메모리 할당 (0) | 2023.05.14 |
Ch07. 물리 메모리 관리_01)메모리 관리의 개요 (1) | 2023.05.13 |
[심화]Ch06. 교착 상태_04)다중 자원과 교착 상태 검출 (0) | 2023.04.29 |
Ch06. 교착 상태_03)교착 상태 해결 방법 (0) | 2023.04.29 |
댓글