Search
🏫

[운영체제] 8. 메모리 관리

[운영체제] 14. 운영체제 보안
CS
Operation System
2023/06/0712:24
[운영체제] 14. 운영체제 보안
CS
Operation System
2023/06/0712:24

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. 최악 적합

필요한 공간을 제공 할 수 있는 빈공간 중 가장 큰 곳을 선택하여 할당
너무 작은 자투리가 남아 사용되지 못하는 공간이 발생하는 것을 최소화 하기 위한 방법
가장 큰 메모리 공간을 사용하여, 남은 공간을 최대한 활용해보자!