<쉽게 배우는 운영체제> 교재를 참고하였습니다.
다중 프로그래밍 환경 연속 메모리 할당_가변 분할 방법
가변 분할 방법 예

사용 가능 공간을 어느 작업에 할당하는 것이 가장 좋은지 결정하는 메모리 배치 방법
- 최초 적합 방법
- 프로세스를 사용 가능 공간 중 충분히 큰 첫 번째 공간에 할당, 검색을 사용 가능 공간의 리스트 맨 앞이나 이전의 최초 적합 검색이 끝났던 곳에서 시작하면 충분히 큰 사용 공간 빨리 찾기 가능. 공간 활용률 떨어질 수 있는 단점
- 예

- 최적 적합 방법
- 프로세스를 충분히 큰 사용 가능 공간 중에서 들어갈 수 있는 가장 작은 공간에 할당. 사용 가능 공간이 크기 순으로 정렬되어 있지 않으면 전체를 검색 해야 함. 사용 가능 공간을 계속 정렬하는 과정이 필요하므로 비효율적. 사용 가능 공간 이용률은 향상될 수 있으나 할당 과정에 많은 시간 소요.
- 예

- 최악 적합 방법
- 프로세스를 가장 큰 사용 가능 공간에 할당. 공간이 크기 순으로 정렬되어 있지 않으면 전체 검색해야 함
- 가장 큰 사용 가능 공간에 할당하기 때 문에 가장 작은 또 다른 사용 가능 공간을 만드는 최적 적합보다 메모리 활용 면에서 더 유용
- 예

- 메모리 통합 방법
- 하나의 작업이 끝났을 때 다른 빈 공간과 인접해 있는지 점검하여 하나로 합치는 것.
- 물론 메모리 전반에 흩어진 빈 공간을 모두 통합하기는 곤란
- 예

- 메모리 압축 방법
- 메모리의 내용을 적절히 움직여 사용 가능 공간을 큰 블록 하나로 만드는 것

- 다양한 메모리 압축 방법

메모리 압축의 단점
- 압축하는 동안 시스템은 모든 일을 중지해야 함. 이때 대화형 사용자는 응답시간이 일정하지 않게 되고, 실시간 시스템은 심각한 문제 발생 가능
- 메모리에 있는 작업들을 이동해야 하므로 프로그램을 적재할 때 제거되는 대치 관련 정보를 액세스 가능한 형태로 보관해야 함
- 압축 작업을 자주 요구하여 시스템 자원의 소모가 큼
다중 프로그래밍 환경 연속 메모리 할당_고정 분할 방법
내부 단편화의 개념

스케줄링과 분할 크기에 따른 내부 단편화의 변화

고정 분할 방법에서 메모리 보호 예

각 영역별로 독립된 큐가 있는 고정 분할 시스템


다중 프로그래밍의 성능 향상을 위한 메모리 분할, 작업 큐와 관련된 사항 결정
- 분할 영역의 크기
- 시스템 부하를 분석하여 분할 영역의 개수와 크기를 결정. 이때 개수는 다중 프로그래밍의 정도가 될 수 있음
- 영역의 크기 결정은 시스템 전체의 효율 나타냄
- 영역의 배치
- 프로그램 작업을 어느 영역에 배치하는지 결정해야 하는데, 작업 스케줄러 필요
버디 시스템
버디 시스템의 작동 방식
① 프로세스의 크기에 맞게 메모리를 ½로 자르고 프로세스를 메모리에 배치
② 나뉜 메모리의 각 구역에는 프로세스가 1개만 들어감
③ 프로세스가 종료되면 주변의 빈 조각과 합쳐서 하나의 큰 덩어리를 만듦

- [그림 7-35] 버디시스템 방식으로 일식집 자리 배정의 예를 보여줌
- 4명이 한 팀인 손님이 오면 의자를 1/2로 나누고(8개) 오른쪽 의자를 다시 1/2로 나눈 후(4개) 번호 순으로 왼쪽 9~12번 자리 배정
- 손님이 3명일 때 4명과 동일하게 처리함. 손님이 2명으로 가정하면 맨 우측 의자 4개를 다시 1/2로 나눈 후 왼쪽 13~14번 자리 배정
- 손님 1명일 경우, 오른쪽 의자 2개를 다시 1/2로 나눈 후 15번 의자에 배정함
- 이런 방법으로 공간을 1/2로 나누면서 같은 팀을 한 묶음으로 배치함
- 식사를 마치면 주변에 남은 의자를 합쳐서 하나의 묶음으로 만듦
- 16번 의자가 비어 있는 상태에서 15번 손님이 나가면 15~16을 한 묶음으로 만듦
- 결론적으로 버디시스템은 메모리를 나눌 때는 1/2로 나누고, 프로세스가 종료될 때마다 빈 구역을 하나로 통합
버디 시스템의 자리 배정 (일식집 예)



- [그림 7-36]은 A팀 3명, B팀 2명, C팀 2명 순으로
- [그림 7-37]은 D팀 1명 추가된 경우 12번이 비어 있지만 다른 팀에 들어갈 수 없음
- 왼쪽의 의자 8개를 1/2로 나누어 7번 자리 배정함. 이 후 E팀 4명, F팀 1명, G팀 2명, H팀 4명, I팀 2명이 입장
- 동일한 방법으로 자리 배정, H팀 4명과 I팀 2명이 대기함
- [그림 7-38]은 A팀의 3명과 D팀의 1명이 식사를 마친 상황
- 이 경우 가변 분할에서는 대기팀을 배치 불가능하였지만, 버디 시스템에서는 9~12번 의자에 H팀 4명을 배정할 수 있음
- 더불어 F팀 한 명이 나가면 7~8번에 I팀을 배정할 수 있음
버디 시스템 특징
- 가변 분할 방식처럼 메모리가 프로세스 크기대로 나뉨
- 고정 분할 방식처럼 하나의 구역에 다른 프로세스가 들어갈 수 없고, 메모리의 한 구역 내부에 조각이 생겨 내부 단편화 발생
- 비슷한 크기의 조각이 서로 모여 작은 조각을 통합하여 큰 조각을 만들기 쉬움
- 효율적인 공간 관리 측면에서 보면 고정 분할 방식과 버디 시스템은 비슷함
- 그러나 공간을 1/2로 나누어 가면서 메모리를 배분하는 버디 시스템보다 모든 구간을 동일한 크기로 나누는 고정 분할 방식이 메모리 관리 측면에서 단순하기 때문에 고정 분할 방법이 많이 사용됨.
'전공 > 운영체제' 카테고리의 다른 글
Ch08. 가상 메모리의 기초_01)가상 메모리의 개요 (0) | 2023.05.21 |
---|---|
[심화]Ch07. 물리 메모리 관리_05)컴파일과 메모리 관리 (0) | 2023.05.20 |
Ch07. 물리 메모리 관리_04)다중 프로그래밍 환경에서의 메모리 할당_1 (1) | 2023.05.19 |
Ch07. 물리 메모리 관리_03)단일 프로그래밍 환경에서의 메모리 할당 (0) | 2023.05.14 |
Ch07. 물리 메모리 관리_02)메모리 주소 (1) | 2023.05.14 |
댓글