운영체제에서 기억하고 싶은 내용
메모리 관리자가 하는 일
메모리 호출
언제 새로운 프로세스 메모리에 둘까
메모리 배치
메모리 어디에 둘까
메모리 교체
메모리 꽉 찼을 때 어떤 프로세스 제거할까
그 외
고정/동적 분할, 고정 유동 적재 영역 등
단일 프로그램 환경
- 하나의 프로세스가 메모리를 전용으로 사용하는거
- 연속된 블록으로 메모리에 할당
문제점
- 메모리 용량을 초과하는 프로세스 실행 못한다
- 지속적이지 않은 프로세스도 적재되어 있어 메모리 낭비 심하다
- 주변장치 등 자원 낭비 심하다
다중 프로그래밍 환경
- 우리가 사용하는 거
- 여러 개의 프로세스가 메모리에 동시에 적재
- CPU 연산과 입출력 동시에 사용
=> CPU 이용도와 시스템 처리량 증가
메모리 분할의 고민이 생겼지
메모리 고정 분할
메모리를 여러 개의 고정된 크기고 나눈다
다 같은 크기라는 의미는 아님
프로세스 배치 방법 1
분할 영역마다 큐를 두고, 큐에 들어온 프로세스는 해당 분할 영역에 적재
프로세스 배치 방법 2
하나의 큐만 두고, 어느 분할 영역에든 적재
고정 분할의 문제점 - 내부 단편화
분할 영역보다 프로세스 크기가 작으면 남는 메모리가 발생
메모리 동적 분할
분할 경계가 고정되지 않는다
각 프로세스에 필요한 메모리 할당
외부 단편화
작은 크기의 공백이 메모리 공간에 흩어져서 생긴다
외부 단편화 해결 방법 1 - 통합
인접된 공백을 더 큰 하나의 공백으로 만들자
외부 단편화 해결 방법 2 - 집약
모든 공백을 하나로 모으자
그럴려면 기존 배치된 프로세스를 옮기는 비용 든다
메모리 보호
프로세스가 다른 할당 영역을 침범하지 않아야 한다
메모리 배치 기법
새로 반입된 프로그램/데이터를 어디에 배치할건가?
최초 적합
프로세스가 적재될 수 있는 빈 공간 중에 제일 먼저 발견할 곳에 할당
후속 적합
앞선 탐색이 끝난 다음 부분부터 탐색해서 발견된 빈 공간에 할당
최적 적합
빈 공간이 가장 적은 곳을 선택
큰 빈 공간을 최대한 많이 남겨 놓을 수 있는 방법
최악 적합
빈 공간 중 가장 큰 곳에 선택
사용하지 못하는 너무 작은 자투리를 안만들려는 방법
'Computer Science > 운영체제' 카테고리의 다른 글
운영체제 10강 :: 페이지 교체 알고리즘, 프로세스 집합 (0) | 2023.05.01 |
---|---|
운영체제 9강 :: 가상메모리, 블록사상시스템, 블록구성방식 (0) | 2023.04.26 |
운영체제 7강 :: 교착상태 회피, 탐지 및 복구 (0) | 2023.04.23 |
운영체제 6강 :: 교착상태 필요조건, 예방 (0) | 2023.04.23 |
운영체제 5강 :: 생산자-소비자 문제, 프로세스 간 통신 (0) | 2023.04.19 |