7단원은 8단원 VM(Virtual Memory)를 위한 빌드업이라 생각하면 된다
메모리 관리에 있어서 중요한 요점 3가지
- Relocation: 기준이 1000번지면 모든 주소에 1000을 더해 Relocation이 필요하다
[Relative Address + Base Resister -> Physical Address]
- Protection: 무슨 일이 있어도 프로그램을 실행할 때는 이 프로그램이 자기에게 할당된 메모리 영역 외에는 Access 하면 안 된다
- Sharing
메모리를 관리하는(나누는) 방법 2가지
1. Fixed Partitioning
- Equal-size partitions
- Unequal-size partitions
2. Dynamic Partitioning
External fragmentation problem: 메모리 프로그램 외부 사이사이에 남는 공간이 생기는 현상 e.g. 프로그램이 100개면 대략 100개
- compaction(프로그램들을 다 위로 붙이는 것)을 이용해 해결할 수 있다
※ Dynamic Partitioning Placement Algorithm: fit을 찾는 알고리즘
매번 compaction을 하는데 시간이 너무 오래 걸려서 나온 알고리즘이다
Best-fit: 공간을 모두 탐색하고 찾은 Best-fit (시간이 오래 걸린다)
First-fit: 최상단을 기점으로 탐색해 찾은 첫 first-fit
Next-fit: 마지막 할당받은 블럭을 기점으로 탐색해 찾은 첫 Next-fit
Worst-fit: 공간을 모두 탐색하고 찾은 Worst-fit = 가장 큰 공간을 찾겠다는 의미 (시간이 오래 걸린다)
(First-fit과 Next-fit은 남는 공간들이 다 Linked-list로 연결되어 있다)
ㅇBuddy System: 정해진 규칙의 크기를 동적으로 할당한다
fixed partitioning + dynamic partitioning
ㅁ3가지 주소 개념
Logical address(논리 주소): 연속적일 필요 x
Relative address(상대 주소): 연속적인 주소
Physical address / absolute address(물리적 주소 / 절대 주소): 실제 메모리 주소
Relocation: Relative Address + Base Resister -> Physical Address
(참고)
변위: EA = A + (R)
베이스-레지스터 주소 지정 방식
기술이 발달하면서 이전과 같이 프로그램을 연속된 공간에 할당하지 않는 방법이 있다!
프로그램을 잘라서 메모리에 적재하는 방식인데 크게 페이징(Paging) 기법과 세그멘테이션(Segmentation) 기법이 있다
ㅇ페이징(Paging): 내용 상관없이 모두 동일한 크기로 짜름 - 관리 easy
(페이징 과정)
프로세스 하나마다 Page Table을 이용한다
ㅇPage Table Entry(PTE): 페이지 테이블 각각의 행을 의미한다
ㅇPage Fault: 프로세스가 실행 중 필요한 페이지가 메모리에 없는 경우 발생하는 이벤트
ㅇ세그멘테이션(Segmentation): 관련이 있는 함수를 고려해 짜름 - 관리 hard
- 최대 세그먼트 길이가 존재
- 세그먼트 번호와 offset을 이용하는 논리 주소를 사용한다
- Dynamic partitioning과 유사하다
각각의 논리 주소 비교
페이징(Paging)
세그멘테이션(Segmentation)
참고 및 출처: Operating Systems: Internals and Design Principles(William Stalling), Operating System Concepts(Silberschatz, Abraham), 혼공컴운(강민철)
'Computer Science > 운영체제' 카테고리의 다른 글
[운영체제] ep8) Uniprocessor Scheduling (0) | 2024.07.04 |
---|---|
[운영체제] ep7) Virtual Memory (0) | 2024.07.02 |
[운영체제] ep5) Concurrency: Deadlock and Starvation (0) | 2024.06.30 |
[운영체제] ep4-3) Concurrency: Mutual Exclusion and Synchronization (0) | 2024.06.29 |
[운영체제] ep4-2) Concurrency: Mutual Exclusion and Synchronization (0) | 2024.06.29 |