주소
논리적 주소
- 프로세스마다 독립적으로 가지는 주소
- 0번지 부터
- cpu가 보는 주소
물리적 주소
- 메모리에 실제 올라가는 위치
주소 바인딩: 주소 결정
주소바인딩
- 컴파일 타임 바인딩: 컴파일 시에 주소 바인딩
- 로드 타임 바인딩: 실행 시작될 때 주소변환
- excution 타임 바인딩: (런타임) 프로그램 시작된 이후 중간에, 하드웨어 지원 필요
memory management unit
논리주소 -> 주소변환 -> 물리주소
Dynamic loading
- 해당 루틴 불려질 때 메모리에 load하는 것
- memory utilization 향상
- 프로그램 자체에서 구현 가능
overlays
- 메모리에 프로세스 부분 중 실제 필요한 정보만 올림
- 사용자가 구현
swapping
- 프로세스 일시적으로 메모리에서 backing store로 쫓아냄
- backing store:디스크
- 중기 스케줄러가 swap out 프로세스 선정(cpu 우선순위 낮은 프로세스)
Dynamic linking
- linking을 실행 시간까지 미루는 기법<-> static링킹
- 라이브러리 어디에 있는지 찾아 메모리에 올림
allocation of physical memory
메모리는 os 상주 영역/사용자 프로세스 영역으로 나뉨
사용자 프로세스 영역 할당
contiguous allocation(연속할당): 각각의 프로세스가 메모리 연속 공간에 적재
- 고정분할: 영구적 분할
- 가변분할: 프로그램 크기 고려 -dynamic storage allocation problem(hole찾는 문제)
Noncontiguous allocation(불연속할당): 하나의 프로세스가 메모리 여러 영역에 분산
- paging: 페이지 테이블
- segmention: 의미단위로 잘라 (공유, 보안)
- paged segmentation: segment하나가 여러개의 페이지로 구성
운영체제 관여 안함 하드웨어가 해줌
http://www.kocw.net/home/search/kemView.do?kemId=1046323&ar=pop
'운영체제' 카테고리의 다른 글
[운영체제] File Systems (0) | 2022.05.12 |
---|---|
[운영체제] Virtual Memory (0) | 2022.05.08 |
[운영체제] Deadlocks (0) | 2022.05.03 |
[운영체제] Process Synchronization (0) | 2022.05.01 |
[운영체제] CPU Scheduling (0) | 2022.04.28 |