Index
Search
1. 프로세스와 메모리
1.1. 프로세스의 동작
•
프로그램 카운터(PC)를 참조하여 수행될 명령을 메모리에서 읽어 CPU로 수행하는 것
1.2. 기억장치 계층 구조
•
적절한 비용으로 높은 성능을 냄
◦
CPU (레지스터)
◦
캐시 메모리
◦
메모리
◦
보조 기억장치
1.3. 메모리 관리
•
메모리 호출 시점
◦
언제 새로운 프로세스를 메모리에 둘 것인가?
•
메모리 배치
◦
다음에 실행될 프로세스를 메모리 내 어느곳에 둘 것인가?
•
메모리 교체
◦
메모리가 꽉찬 상태에서 새로운 프로세스를 메모리에 적재해야 한다면 어떤 프로세스를 제거할 것인가?
•
그외
◦
고정/동적 분할, 고정/유동 적재영역 등
2. 다중 프로그래밍 환경
2.1. 단일 프로그래밍 환경
•
단일 프로그래밍
◦
하나의 프로세스만 메모리를 전용으로 사용하는 것
◦
메모리에 남은 공간이 있음에도 하나의 프로세스만 사용
◦
프로세스는 하나의 연속된 블록으로 메모리에 할당
▪
연속 메모리 할당
•
단일 프로그래밍의 문제점
◦
메모리의 용량을 초과하는 프로세스는 실행 못함
◦
메모리 낭비 심함
▪
지속적으로 사용되지 않는 프로세스도 메모리에 계속 적재
◦
주변장치 등 자원 낭비 심함
▪
계산 위주의 사용자 프로세스 (CPU bounded)
•
다른 장치(I/O)은 쉬고 있음
▪
입출력 위주의 사용자 프로세스 (I/O bounded)
•
I/O 동안 CPU가 쉬고 있음
2.2. 다중 프로그래밍
•
여러개의 프로세스가 메모리에 동시에 적재되는 것
•
CPU 연산과 입출력을 동시에 함으로써 CPU 이용도와 시스템 처리량 증가
2.3. 메모리 분할
•
여러 프로세스를 메모리에 적재하기 위해 고안된 방법
•
하나의 분할에 하나의 프로세스가 적재되는 방식
•
종류
◦
고정 분할
◦
동적 분할
2.4. 고정 분할
•
메모리를 여러개의 고정된 크기의 영역으로 분할
•
프로세스 배치 방법 1
◦
분할 영역마다 큐를 두고 큐에 들어온 프로세스는 해당 분할 영역에만 적재
◦
절대 번역(절대 주소) 및 적재
◦
효율성이 낮음
•
프로세스 배치 방법 2
◦
하나의 큐만 두고 큐에 들어온 프로세스는 어느 분할 영역에든 적재
◦
재배치 가능 번역 및 적재
◦
복잡함
•
문제점: 내부 단편화
◦
프로세스의 크기가 적재된 분할 영역 크기보다 작아서 분할 영역 내에 남게 되는 메모리 발생
◦
수행할 프로세스의 크기를 미리 알고 그 크기에 맞춰 고정 분할을 해야함 (비현실적)
2.5. 동적 분할
•
메모리의 분할 경계가 고정되지 않음
•
각 프로세스에 필요한 만큼의 메모리만 할당
•
문제점: 외부 단편화
◦
메모리의 할당과 반환이 반복됨에 따라 작은 크기의 공백이 메모리 공간에 흩어져 생김
◦
해결 방법: 통합, 집약
•
통합
◦
인접된 공백을 더 큰 하나의 공백으로 만들어 외부 단편화 해결
◦
인접하게 붙어있어야지만 통합 가능
•
집약
◦
메모리 내에 모든 공백을 하나로 모아 외부 단편화 해결
기존에 배치되어있던 프로세스를 복사해서 옮겨야함
2.6. 메모리 보호
•
프로세스가 다른 할당영역을 침범하지 않게 하는 것
•
하한-상한 또는 하한-크기 레지스터 쌍으로 범위 제한
◦
주소 b~c 사이의 할당 영역만 사용하게 레지스터가 막음
•
이 제한을 넘어 운영체제를 호출하려면 시스템 콜 이용
3. 메모리 배치 기법
3.1. 메모리 배치 기법
•
동적 분할 다중 프로그래밍에서 새로 반입된 프로그램이나 데이터를 메모리의 어느 위치에 배치할 것인가를 결정
◦
메모리의 빈공간은 빈공간 리스트로 관리
◦
어떤 식으로 어느 공간에 배치할 것인가?
•
종류
◦
최초 적합
◦
후속 적합
◦
최적 적합
◦
최악 적합
3.2. 최초 적합
•
프로세스가 적재 될 수 있는 빈 공간 중에서 가장 먼저 발견되는 곳에 할당
•
순서대로 탐색하면서 할당
•
계속 진행되다보면 빈공간 리스트의 앞에는 작은 공간들만 남게 될 수 있음
3.3. 후속 적합
•
최초 적합의 변형
•
이전 탐색이 끝난 그 다음 부분부터 시작하여 사용가능한 빈 공간 중에서 가장 먼저 발견되는 곳을 할당
3.4. 최적 적합
•
필요한 공간을 제공할 수 있는 빈 공간 중 가장 작은 곳을 선택하여 할당
•
큰 빈공간을 최대한 많이 남겨 놓기 위한 방법
3.5. 최악 적합
•
필요한 공간을 제공 할 수 있는 빈공간 중 가장 큰 곳을 선택하여 할당
•
너무 작은 자투리가 남아 사용되지 못하는 공간이 발생하는 것을 최소화 하기 위한 방법
•
가장 큰 메모리 공간을 사용하여, 남은 공간을 최대한 활용해보자!