Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 코드스테이츠 백엔드 과정 39기
- springboot
- Allocation of Physical Memory
- 알고리즘
- 웹개발
- 웹 프로그래밍
- 메모리의 불연속적 할당
- 메모리 관리
- 자바 알고리즘
- 2단계 Page Table
- 스프링
- Page Table의 구현
- 리눅스
- 프로세스 할당
- Segmentation with Paging
- Shared Page
- 프로세스 동기화
- 문제풀이
- Effective Access Time
- jpa
- spring
- 프로세스 불연속 할당
- 운영체제
- CS
- Inverted Page Table
- linux
- 다단계 페이지 테이블
- annotation
- 스프링부트
- 자바 문제풀이
Archives
- Today
- Total
GrowMe
[운영체제] 메모리 관리 (1) : 컴퓨터가 메모리를 관리하는 방법 본문
메모리 관리 (1)
# Logical VS Physical Address
# 주소 바인딩
# MMU
# Dynamic Relocation
# Hardware Support for Address Translation
✍️ 본 포스팅은 이화여자대학교 반효경 교수님의 "운영체제" 강의를 들으며 정리한 내용입니다.
*Logical VS Physical Address
메모리라는 것은 주소를 통해 접근하는 정보 저장 기억장치이다. 주소는 두 가지가 존재한다.
- Logical address (= virtual address)
- 프로세스마다 독립적으로 가지는 주소 공간
- 각 프로세스마다 0번지부터 시작
- CPU가 보는 주소는 logical address임
- Physical address
- 메모리에 실제 올라가는 위치
- 주소 바인딩
- 주소를 결정하는 것
- Symbolic Address : 프로그래머는 메모리 저장 시 변수 이름에 저장하도록 하는데, 이 변수 이름을 의미
- Symbolic Address -> Logical Address -> Physical address
Logical Address -> Physical address 로 넘어가는 시점이 언제일까?
*주소 바인딩 (Address Binding)
- Compile time binding
- 물리적 메모리 주소(physical address)가 컴파일 시 알려짐
- 시작 위치 변경시 재컴파일
- 컴파일러는 절대 코드(absolute code) 생성
- Load time binding
- Loader의 책임 하에 물리적 메모리 주소 부여
- 컴파일러가 재배치가능코드(relocatable code)를 생성한 경우 가능
- Execution time binding (= Run time binding)
- 수행이 시작된 이후에도 프로세스의 메모리 상 위치를 옮길 수 있음
- CPU가 주소를 참조할 때마다 binding을 점검 (address mapping table)
- 하드웨어적인 지원이 필요 (e.g., base and limit registers, MMU)
*Memory-Management Unit (MMU)
- MMU (Memory-Management Unit)
- logical address를 physical address로 매핑해주는 하드웨어 장치
- MMU scheme
- 사용자 프로세스가 CPU에서 수행되며, 생성하는 모든 주소값에 base register (=relocation register)의 값을 더함
- user program
- logical address만을 다룬다.
- 실제 physical address를 볼 수 없으며, 알 필요가 없다.
*Dynamic Relocation : 물리적 메모리로 매핑 과정
- CPU가 logical address 346번지를 요청한다.
- MMU는 relocation register (프로그램의 physical address 시작점)에 논리적 주소를 더한
physical address 위치에 매핑시킨다. - limit register는 physical address의 최대치를 고려하여, 요청 logical address의 최대치를 제한둔다.
(이로써 고의로 최대 physical memory 위치 넘는 요청 등 악의적인 시도도 막을 수 있음)
*Hardware Support for Address Translation : 예외처리
- CPU가 logical 주소 요청
- MMU의 limit register를 넘는지 확인한다.
- limit register를 넘는다면 trap이 걸린다.
- trap이 걸리면 하던 일을 멈추고 CPU 제어권이 운영체제로 넘어간다.
- 운영체제는 trap이 왜 걸렸는지 파악 후, 그에 대한 응징을 한다.
- trap이 걸리지 않는다면 정상적으로 physical memory에 매핑시켜 CPU에 전달한다.
'CS(Computer science)' 카테고리의 다른 글
[운영체제] 메모리 관리 (3) : physical memory 할당에 관하여 (0) | 2023.01.17 |
---|---|
[운영체제] 메모리 관리 (2) : 동적인 메모리 관리에 대하여 (0) | 2023.01.17 |
[운영체제] Deadlock (0) | 2023.01.15 |
[운영체제] 프로세스 동기화 -3 (0) | 2023.01.09 |
[운영체제] 프로세스 동기화 -2 (0) | 2023.01.07 |
Comments