*기억장치와 프로세스는 시험에 자주 출시됨*

 

 


 

[목차]

 

1. 기억장치 관리 전략 (주기억장치)

2. 가상 기억장치

3. 기출 및 기출 예상 문제 풀이

 

 

 

 


 

 

[기억장치 관리 전략 (주기억장치)]

 

 

1. 기억장치 관리 전략

1) 반입(Fetch) 전략

: 보조기억장치의 프로그램이나 데이터를 주기억장치로 언제 적재할 것인지 결정

1-1) 요구 반입 : 요구할 때 적재

1-2) 예상 반입 : 미리 예상하여 적재

 

2) 배치(Placement) 전략

: 주기억장치 어디에 위치시킬 것인지 결정

2-1) 최초 적합 (First Fit) : 첫 번째 배치시키는 방법 (속도 빠름, 공간 활용도 떨어짐)

2-2) 최적 적합 (Best Fit) : 단편화를 가장 작게 남기는 분할 영역에 배치시키는 방법 (속도 느림, 공간활용도 높음)

2-3) 최악 적합 (Worst Fit) : 단편화를 가장 많이 남기는 분할 영역에 배치시키는 방법 (속도느림, 공간활용도낮음)

 

* 단편화 (Fragmentation)

: 내부 - 할당 후 남은 공간

: 외부 - 할당하지 못한 공간

 

 

3) 교체(Replacement) 전략

: 주기억장치의 모든 영역이 이미 사용중인 상태에서 주기억장치에 배치하려고 할 때,

이미 사용되고 있는 영역 중에서 어느 영역을 교체하여 사용할 것인지 결정 (FIFO, OPT, LRU, LFU, NUR, SCR 등)

 

 

4) 기출문제

 

 

 

2. 단편화 해결 방법

1) 통합(Coalescing) 기법

: 주기억장치 내에 인접해 있는 단편화된 공간을 하나의 공간으로 통합

 

2) 집약(Compaction) 기법, 압축, 쓰레기 수집(Garbage Collection)

: 주기억장치 내에 분산되어 있는 단편화된 빈 공간을 결합하여 하나의 큰 가용 공간을 만드는 작업

 

 

 

 

 

3. 주기억장치 할당 기법

 

3-1) 연속 할당 기법

ㄱ. 단일분할 할당(단일 프로그래밍) > 스와핑 (Swapping)

: 하나의 프로그램 전체를 주기억장치에 할당하여 사용하다

필요에 따라 다른 프로그램과 교체하는 기법

 

 

ㄴ. 단일분할 할당 (단일 프로그래밍) > 오버레이 (Overlay) -> 스와핑의 단점을 보완한 것

: 실행되어야 할 프로그램의 크기가 커서 사용자의 기억 공간(주기억장치)에 수용될 수 없을 때

작업의 모든 부분들이 동시에 주기억 장소에 상주해 있을 필요가 없다.

이 때 작업을 조각내고 분할하여 필요한 부분만 교체하는 방법

 

 

ㄷ. 다중분할 할당 (다중 프로그래밍) > 고정 분할 (정적 분할)

: 주기억장치를 미리 여러 개의 고정된 크기로 분할하고 준비상태 큐에서

준비중인 프로그램을 각 영역에 할당 (현재는 사용하지 않음)

 

 

ㄹ. 다중분할 할당 (다중 프로그래밍) > 가변 분할 (동적 분할)

: 고정 분할 할당 기법의 단편화를 줄이기 위한 것으로, 미리 주기억장치를 분할해 놓는 것이 아니라

프로그램을 주기억장치에 적재하면서 필요한 만큼의 크기로 영역을 분할하는 기법

ex. 식당 전체 공간에서 칸막이를 이용해 손님의 수에 따라 자리를 만들어 줌

 

 

3-2) 분산 할당 기법 (가상 메모리 기법)

ㄱ. 페이징 기법

ㄴ. 세그먼테이션 기법

: 기억장치 보호키(Storage Protection Key)를 사용해 기억장소를 보호함

: 외부 단편화가 발생하고 내부 단편화는 발생하지 않음

: 공유가 가능함

: 각 세그먼트의 크기는 다양 함

 

 

 

 

[가상 기억장치]

 

: RAM에 대한 설명!

: 속도가 아닌 용량이 키워드!

: 주기억장치의 용량이 부족하기 때문에 나온 개념이다!

 

 

1. 가상기억장치(Virtual Memory) 개요

: 보조기억장치(HDD)의 일부분을 주기억장치처럼 사용하는 것

: 용량이 적은 주기억장치를 마치 큰 용량이 있는 것처럼 사용하는 것 (속도와는 무관)

: 프로그램을 여러 개의 작은 블록으로 나누어서, 프로그램 실행 시 요구되는 블록만

주기억장치에 불연속적으로 할당하여 처리

: 주기억장치보다 용량이 큰 프로그램을 실행하기 위해 사용

: 가상기억장치에 저장된 프로그램을 실행하려면 가상기억장치의 주소를 주기억장치의 주소로

변환하는 작업이 필요(맵핑)

: 맵핑(Mapping) - 가상기억장치에서 주기억장치로 자료의 페이지를 옮길 때 주소를 조정해 주는 것

 

 

* WINDOW PC에서 확인하는 법

 

 

 

2. 가상기억장치 구현 기법

 

 

2-1) 페이징(Paging) 기법

: 가장기억장치에 보관되어 있는 프로그램과 주기억장치의 영역을 동일한 크기로 나눈 후

나눠진 프로그램(페이지) 동일하게 나눠진 주기억장치의 영역(페이지 프레임)에 적재시켜 실행하는 기법

: 주소변환(Mapping) : 가상주소(보조기억장치) -> 실주소(주기억장치)

: 주소변환을 위해 페이지 맵핑 테이블(페이지 사상표)이 필요 -> 기억장소 낭비

: 페이지 부재(Page Fault) - 프로그램 실행 시 참조한 페이지가 주기억장치에 없는 현상(페이지 교체 알고리즘)

 

* 페이지 크기가 작을 경우 (10K -> 1K)

: 페이지 수 증가 -> 페이지 맵핑 테이블 커짐 -> 맵핑 속도 느리고 기억 공간 낭비 발생

: 디스크 접근 횟수 증가 -> 전체적인 입출력 시간이 늘어남

: 한 개의 페이지를 주기억장치로 이동하는 시간이 줄어듬

: 필요한 내용만 주기억장치에 적재 -> 유용도가 커짐 -> 기억장치 효율이 높아짐(내부 단편화 감소)

 

2-2) 세그먼테이션(Segmentation) 기법

: 가상기억장치에 보관되어 있는 프로그램을 다양한 크기의 논리적인 단위로 나눈 

주기억장치에 적재시켜 실행시키는 기법 -> 메모리 절약

: 논리적인 크리로 나눈 단위를 세그먼트라고 하며, 각 세그먼트는 고유한 이름과 크기를 갖고 있음

: 다른 세그먼트에게 할당된 영역을 침범할 수 없으며, 이를 위해

기억장치 보호키(Storage Protection Key)가 필요함

: 외부단편화 발생, 내부단편화 발생하지 않음

 

 

 

3. 가상기억장치의 성능에 영향을 미치는 요인 (관련 용어 정리)

3-1) 워킹 셋 (Working Set)

: 프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합으로,

자주 참조되는 워킹 셋을 주기억장치에 상주시킴으로서 페이지 부재 및

페이지 교체 현상을 중림 (시간이 지남에 따라 워킹 셋은 변경됨)

 

3-2) 스래싱 (Thrashing)

: 프로세스의 처리 시간보다 페이지 교체 시간이 더 많아지는 현상 -> CPU 이용률 저하

: 페이지 오류율(Page fault)이 크면 스래싱이 많이 일어난 것

: 다중 프로그래밍의 정도가 높을수록 스래싱의 발생 빈도는 높아짐

: 스래싱 방지 방법 - 다중 프로그래밍의 정도를 줄인다. CPU 이용률을 높인다. Working set 방법을 사용

 

3-3) 구역성 (Locality, 국부성). 참조 국부성(locality of reference)

: 프로세스가 실행되는 동안 일부 페이지만 집중적으로 참조하는 성질

 

ㄱ. 시간 구역성

: 최근에 참조된 기억 장소가 가까운 장래에도 계속 참조될 가능성이 높음

(ex. 오전에 비가 오면 오후에도..)

ex. Loop(반복), 부프로그램(Sub Routine, 함수), 스택(서브 프로그램 호출 시 복귀 주소 저장),

카운팅(Counting, 1씩 증가), 집계(Totaling)에 사용되는 변수

 

ㄴ. 공간 구역성

: 하나의 기억 장소가 참조되면 그 근처의 기억 장소가 계속 참조될 가능성이 높음

(ex. 서울에 비가오면 인근 지역도..)

ex. 순차적 코드(수행)실행, 배열 순회, 같은 영역에 있는 변수 참조

 

 

 


 

 

[기출 및 기출 예상 문제 풀이]

 

 

 

 

 

 

 

 

 

 

 

 


출처: 유튜브 기사 퍼스트 권우석

https://www.youtube.com/watch?v=PfRuRem-wx8&list=PLz95GL3y9Hv1pC1yOWBV1yqHxi4jEOKez&index=38

 

 

 

728x90
반응형

+ Recent posts