컴퓨터에서 메모리의 주소는 이진수로 매겨진다.
32비트 혹은 64비트를 사용
- (예) 32 비트의 주소 체계 : \(2^{32}\) 가지의 서로 다른 메모리 위치 구분
현실에서도 행정구역을 나누듯 컴퓨터도 영역을 나누어서 32비트를 사용
- 4KB = \(2^{12}\)byte 단위로 묶어서 page 라는 하나의 영역을 만들어서 사용 - 한 페이지에 12비트
1. 주소 바인딩
- 논리적 주소를 물리적 주소로 연결시켜주는 작업
- 논리적 / 가상 주소 ( logical / virtual address)
- 각각 의 프로세스 -> 독립적으로 가짐
- 이 주소에 근거하여 CPU가 기계어 명령을 실행
-> 해당 주소가 물리적 메모리의 어느위치에 매핑되는지 확인도 필요 - 0 번지 부터 시작
- 물리적 주소 (physical address)
- 물리적 메모리에 실제로 올라가는 주소
- 메모리의 낮은 주소 : 운영체제
- 메모리의 높은 주소 : 사용자 프로세스
- 물리적 메모리에 실제로 올라가는 주소
- 주소 바인딩 방식 - 물리적 메모리의 주소가 결정되는 시기에 따라 분류
- 컴파일 타임 바인딩 (compile time binding)
- 프로그램을 컴파일하는 시점에 물리적 메모리에서의 주소 결정
- 위치를 변경하고 싶을때 마다 리 컴파일 필요
-> 비현실적, 시분할 컴퓨팅 환경에서 사용 X
- 로드 타임 바인딩 (load time binding)
- 프로그램이 실행 될때 물리적 메모리에서의 주소 결정
- 프로그램이 종료 될때까지 메모리 주소 고정
- (?) 컴파일러가 재배치 가능 코드를 생성한 경우에 가능한 방식
- 실행시간 바인딩 (execution time binding / run time binding)
- 프로그램이 실행된 후에도 프로그램의 물리적 메모리상의 주소가 변경될 수 있는 방식
- CPU가 주소를 참조할 때 마다 해당 데이터가 물리적 메모리의 어느 위체 존재하는지
주소 매핑 테이블 (address mapping table)을 이용해 바인딩을 점검 - 지원 필요
- 기준(base) 레지스터 혹은 재배치(relocatable) 레지스터
- 한계 레지스터
- MMU(memorry management unit: 메모리 관리 유닛)
- MMU : 논리적 주소를 물리적 주소로 매핑(mapping) 해주는 하드웨어 장치
- 컴파일 타임 바인딩 (compile time binding)
- MMU 기법 (scheme)
- 논리적 주소 + 기준 레지스터 값 = 물리적 주소 -> 메모리
- CPU 가 논리적 주소 123 번지에 있는 내용 요청
-> 기준 레지스터에 저장된 23000 값을 더함
-> 물리적 메모리 23123 번지에 있는 내용 참조 - 문제
- 더 한 결과가 해당 프로세스의 주소공간을 벗어 남 -> 다른 영역에 침범 가능 -> 메모리 보안 문제 발생
- 한계 레지스터를 사용하여 발생을 방지 -> 메모리 영역에 대한 보안을 유지
- 한계 레지스터에 있는 프로세스의 크기보다 크면 트랩발생 -> 프로세스 강제 종료
'책 > 운영체제와 정보기술의 원리' 카테고리의 다른 글
7장 3.물리적 메모리의 할당 방식 (0) | 2023.12.21 |
---|---|
7장 2. 메모리관리와 관련된 용어 (0) | 2023.12.20 |
6 장 CPU 스케줄링 (0) | 2023.12.18 |
5 장 프로세스 관리 (0) | 2023.12.13 |
4장 프로그램의 구조와 실행 (0) | 2023.11.29 |