티스토리 뷰

source:https://www.geeksforgeeks.org/logical-and-physical-address-in-operating-system/

 

Logical and Physical Address in Operating System - GeeksforGeeks

A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.

www.geeksforgeeks.org

 

 

1. 논리 주소 Logical Address == Virtual Address

논리 주소는 CPU에 의해 프로그램이 실행되고 있을 때 만들어진다. 물리적으로 존재하는 주소가 아니라 개념적으로 존재하는 주소이므로 가상 주소Virtual Address라고도 부른다. 논리 주소/가상 주소는 CPU에 위치한 메모리의 물리적 주소를 가르킨다.

Logical Address Space라는 용어는 프로그램에 의해서 만들어진 모든 논리 주소의 집합이다.

Memory-Management Unit, MMU라는 하드웨어 장치는 논리 주소와 대응되는 물리 주소를 연결mapping한다.

 

 

 

2. 물리 주소 Physical Address

물리 주소는 메모리 상의 물리적인 주소를 의미한다.

사용자들은 직접적으로 물리 주소로 접근하지 못하고 대신 대응되는 논리 주소로 접근한다. 프로그램들은 논리 주소를 생성하고 해당 프로그램이 이 논리 주소에서 실행되고 있다고 상정한다. 그러나 프로그램이 실행되기 위해서는 물리 주소가 필요하다. 그러므로 MMU가 논리 주소가 사용되기 전에 논리 주소와 물리 주소를 대응mapping시킨다.

Physical Address Space라는 용어는 Logical Address Space와 대응되는 물리 주소의 집합이다.

 

 

 

 

 

source:https://eng.libretexts.org/Courses/Delta_College/Operating_System%3A_The_Basics/07%3A_Memory/7.5%3A_Logical_vs_Physical_Address

 

7.5: Logical vs Physical Address

 

eng.libretexts.org

https://www.geeksforgeeks.org/memory-allocation-techniques-mapping-virtual-addresses-to-physical-addresses/

 

Memory Allocation Techniques | Mapping Virtual Addresses to Physical Addresses - GeeksforGeeks

A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.

www.geeksforgeeks.org

 

메모리는 수많은 주소의 배열로 이루어져 있다.

 

CPU는 프로그램 counter로부터 명령어 주소instruction address를 가져와야fetch한다. 명령어instruction를 수행하면 특정 메모리 주소를 load하거나 저장하게 된다.

 

주소 바인딩Address Binding은 어떤 주소 공간을 또 다른 주소 공간으로 대치mapping시키는 것이다.

논리 주소는 CPU가 실행되는 동안에 생성된다. 반면 물리 주소는 물리적인 메모리의 공간을 가리킨다.

 

 

 

 

 

*논리 주소는 언제 물리 주소와 대응mapping 되는가?

컴파일 될 때 Compile Time

컴파일 하면 프로세스가 메모리 상에서 존재하고, 절대 주소absolute address가 생성된다. 풀어서 말한다면, 프로그램의 executable이 컴파일compliation 되는 도중에 물리 주소가 삽입된다. 메모리에 프로그램 Executable을 탑재loading하여 프로세스로써 사용하면 매우 빠르게 동작한다. 그러나 만약 생성된 주소 공간address space이 다른 프로세스에 의해 점유된 상태라면, 프로그램은 충돌하게 되고 주소 공간address space를 바꾸기 위해서 프로그램을 다시 컴파일 해야한다.

 

로드 될 때 Load Time

컴파일 시에 프로세스의 위치를 알 수 없는 경우, 재배치 가능한relocatable 주소가 생성된다. 로더loader는 relocatable 주소를 절대 주소absolute address로 변환한다. 절대 주소absolute address를 생성할 때, 로더는 주 메모리main memory에 있는 프로세스의 기준 주소base address는 모든 논리 주소에 더한다. 만약 프로세스의 기준 주소base address가 바뀌면 프로세스를 다시 로드해야 한다.

 

실행 될 때 Execution Time

메모리 상의 명령어instruction들은 CPU에 의해서 처리된다.

Execution time에 추가적으로 메모리가 할당되거나 deallocated된다. 프로세스가 실행 중에 dynamic linking을 한다면 프로세스의 메모리 상 위치가 바뀐다. 

 

 

'컴퓨터 > 운영체제' 카테고리의 다른 글

Context Switching  (0) 2022.01.03
Translation-Lookaside Buffer, TLB  (0) 2021.12.30
Paging  (0) 2021.12.30
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
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
글 보관함