본문 바로가기
프로그래밍/CS

운영체제(8/11) - Memory Management 1~4

by 숙님 2023. 2. 1.
728x90

종류 

logical address: 프로세스마다 독립적 주소 공간

physical address: 메모리에 실제 올려지는 위치 

 

주소 바인딩 

compile time binding: 절대 코드 생성 

load time binding : 물리적 주소 부여, 재배치 가능 코드 

run time binding: 수행 시작 후 주소 변경 가능 , 하드웨어 지원 필요 

 

메모리 관련 용어 설명 

- dynamic loading: 해당 루틴이 필요할 때 메모리에 load하는 것 

오류 처리 루틴에 유용 

- overlays: 메모리에 프로세스 부분 중 필요한 정보만을 올림 

-swapping: 프로세스를 일시적으로 메모리에서 backing store로 쫒아내는 것 

- dynamic linking: linking을 실행시간까지 미루는 기법 

 

메모리 할당

- 고정 분할 방식: 프로그램별로 미리 할당, 물리적 메모리를 몇개의 영구적 분할로 나눔  

- 가변 분할 방식: 미리 분할을 하지 않는 것, 프로그램의 크기를 고려하여 할당 

-  dynamic storage-allocation problem

compaction: 사용중인 메모리 영역을 한 곳에 몰고 hole을 다른 한 곳으로 몰아 큰 block을 만드는 것 

- paging: 프로세스의 virtual memory를 동일한 사이즈의 page단위로 나눔  

 

shared page

- shred code: ready-only로 하여 프로세스 간에 하나의 code만 메모리에 올림 

- private code and data: 각 프로세스 들은 독자적으로 메모리에 올림 

 

segmentation

- 프로그램은 의미 단위인 segment로 나누어서 관리 

- segment architecture: protection(각 세그먼트 별 관리), sharing, allocation(first fit/ best fit)

 

segmentation and paging 

- pure segmentation과 차이점: segment-table entry가 segment의 base address를 갖고 있는 것이 아니라 segment를 구성하는 page table의 base address를 가지고 있음 

 

 

 

댓글