티스토리 뷰

컴퓨터 공학

메모리 계층 구조

삼전동해커 2020. 10. 4. 23:15

출처 : https://velog.io/@chowisely/Operating-Systems-Memory-Management

https://velog.io/@pa324/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EA%B4%80%EB%A6%AC-l5k3qktzwo


기억장치 계층 구조

CPU가 주기억장치에서 데이터를 가져올 때 좀 더 빠르고, 가격 대비 좋은 성능으로 실행하기 위해 여러가지 기억장치들을 계층구조로 쌓아 올린다. 






주소 바인딩(address binding)

프로세스가 실행되기 위해서는 프로그램이 물리적 메모리에 적재되어야 한다.

또한, CPU가 기계어 명령을 수행하기 위해 논리적 주소를 통해 메모리 참조를 하게 되면 해당 논리적 주소가 물리적 메모리의 어느 위치에 매핑되는지를 확인해야 한다. 이 때 논리적 주소를 물리적 메모리 주소로 연결시키는 작업을 주소 바인딩이라한다.


프로그램이 메모리에 적재되는 순간 생성되는 주소를 논리적 주소,가상 주소라 한다.


주소 바인딩 방식은

(1)컴파일 타임 바인딩

물리적 메모리 주소가 프로그램을 컴파일 할 때 결정되는 주소 바인딩 방식.

프로그램이 절대 주소에 적재된다.

현대에는 잘 사용하지 않음.


(2)로드 타임 바인딩

프로그램의 실행이 시작될 때에 물리적 메모리 주소가 결정되는 방식.

로더에 의해 물리적 메모리 주소가 부여되며 프로그램이 종료될 때 까지 주소 고정.


#로더는 사용자 프로그램을 메모리에 적재시키는 프로그램.


(3)실행 시간 바인딩

프로그램이 실행을 시작한 후에도 그 프로그램이 위치한 물리적 메모리 상의 주소가 변경될 수 있음.

CPU가 주소를 참조할 때 마다 해당 데이터가 물리적 메모리의 어느 위치에 존재하는지 매핑 테이블을 통해 확인.

MMU라는 하드웨어 필요.


MMU(Memory Management Unit)

논리적 주소를 물리적 주소로 매핑해주는 하드웨어 장치.

동적 로딩(Dynamic Loading)
여러 프로그램이 동시에 메모리에 올라가서 수행되는 다중 프로그래밍 환경에서 메모리 사용의 효율성을 높이기 위해 사용하는 기법 중 하나.
프로세스가 시작될 때  그 프로세스의 주소 공간 전체를 메모리에 다 올려놓는 것이 아니라 메모리를 좀 더 효율적으로 사용하기 위해 해당 루틴이 불려질 때 그 루틴만 메모리에 적재하는 방식.



'컴퓨터 공학' 카테고리의 다른 글

CPU 스케쥴링 알고리즘  (0) 2020.10.04
프로세스 와 쓰레드  (0) 2020.10.04
I/O 방식  (0) 2020.10.04
인터럽트 & 시스템 콜  (0) 2020.10.04
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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
글 보관함