반응형
Logical address ( = virtual address)
- 프로세스마다 독립적으로 가지는 주소 공간
- 각 프로세스마다 0 번지부터 시작
- CPU가 보는 주소는 logical address임
Physical address
- 메모리에 실제 올라가는 위치
주소 바인딩
주소를 결정 하는 것
Symbolic Address - > Logical Address - > Physical address
언제하는가??
- Compile time binding : 물리적 메모리 주소가 컴파일 시 알려짐
- Load time binding : Loader의 책임 하에 물리적 메모리 주소 부여
- Execution time binding ( = Run time binding)
- 프로그램 실행 중에도 프로세스의 메모리 상 위치를 옮길 수 있음
- CPU가 주소를 참조할 때마다 binding을 점검
- 하드웨어적인 지원이 필요 ( ex : MMU)
Memory - Management Unit ( MMU )
- logical address를 physical address로 매핑해 주는 Hardware device
- 레지스터 2개로 주소변환 실행
- Relocation Register ( base register ) : 접근할 수 있는 물리적 메모리의 주소의 최소값
- limit register : 논리적 주소의 범위
- MMU scheme : 사용자 프로세스가 CPU에서 수행되며 생성해내는 모든 주소값에 대해 base register ( = relocation register) 의 값을 더한다
- user program : 실제 physical address를 볼 수 없으며 알 필요가 없다, logical address만을 다룬다
- logical address만을 다룬다
Dynamic Loading (동적 로딩)
- 프로세스 전체를 메모리에 미리 다 올리는 것이 아니라 해당 루틴이 불러질 때 메모리에 load하는 것
- memory utilization의 향상
- 가끔식 사용되는 많은 양의 코드의 경우 유용, ( Ex : 오류 처리 루틴)
- 운영체제의 특별한 지원 없이 프로그램 자체에서 구현 가능 ( OS는 라이브러리를 통해 지원 가능)
※Loading : 메모리로 올리는 것
Overlays
- 메모리에 프로세스의 부분 중 실제 필요한 정보만을 올림
- 프로세스의 크기가 메모리보다 클 때 유용
- 운영체제의 지원 없이 사용자에 의해 구현
- 작은 공간의 메모리를 사용하던 초창기 시스템에서 수작업으로 프로그래머가 구현 ( 프로그래밍이 매우 복잡)
Swapping
- 프로세스를 일시적으로 메모리에서 backing store로 쫓아내는 것
Backing Store ( = swap area)
- 디스크 : 많은 사용자의 프로세스 이미지를 담을 만큼 충분히 빠르고 큰 저장 공간
Dynamic Linking
- Linking을 실행 시간 ( execution time) 까지 미루는 기법
- 링킹이란 프로그램을 작성하고, 실행시키기 위해 여러개의 실행파일을 묶는 과정
- 라이브러리가 실행파일을 만들 때 포함되지 않고, 별도의 파일에 존재한다.
- 라이브러리가 실행시 연결 (link) 됨
- 운영체제의 도움이 필요
- 라이브러리 호출 부분에 라이브러리 루틴의 위치를 찾기 위한 stub이라는 작은 코드를 둠
- 라이브러리가 이미 메모리에 있으면 그 루틴의 주소로 가고 없으면 디스크에서 읽어옴
- Static Linking보다 메모리를 효율적으로 사용할 수 있다
Static Linking
- 라이브러리가 프로그램의 실행 파일 코드에 포함됨
- 실행 파일의 크기가 커짐
- 동일한 라이브러리를 각각의 프로세스가 메모리에 올리므로 메모리 낭비
OS는 interrupt vector와 함께 메모리의 낮은 주소 영역 사용
사용자 프로세스는 높은 주소 영역 사용
이 포스팅은 이화여대에서 무료로제공하는 반효경님의 운영체제강의를 수강하며 정리한 내용입니다.
필자가 잘 이해하지 못해서 잘못된 내용이 있을 수 있으므로 주의바라며, 발견되면 알려주시면 감사하겠습니다.
http://www.kocw.net/home/search/kemView.do?kemId=1046323
반응형
'CS > 운영체제' 카테고리의 다른 글
운영체제(13) - 프로세스의 메모리 할당 (비연속적 할당 방식) (2) | 2023.10.23 |
---|---|
운영체제(12) - 프로세스의 메모리 할당 (연속 할당 방식) (1) | 2023.10.09 |
운영체제 (10) - Deadlock (데드락) (1) | 2023.10.08 |
운영체제(9) - 고전적인 동기화 문제들 (1) | 2023.10.05 |
운영체제(8) -Semaphores ,Monitor (1) | 2023.10.05 |