본문 바로가기
정보처리기사 필기 총정리/4과목: 프로그래밍 언어 활용

기억장치 관리 ★★★

by 함께 공부해요 2020. 10. 5.
p.640, 4-43

1) 기억장치의 관리 전략의 개요

- 보조기억장치의 프로그램이나 데이터를 주기억장치에 적재시키는 시기(When), 적재 위치(Where) 등을 지정하여 한정된 주기억장치의 공간을 효율적으로 사용하기 위함

# (Fetch), (Placement), (Allocation), (Replacemnet)

#반배할교

 

 

2) 반입(Fetch) 전략

- 보조기억장치에 보관중인 프로그램이나 데이터를 언제(When) 주기억장치로 적재할 것인지를 결정하는 전략

 

요구 반입(Demand Fetch)

실행중인 프로그램이 특정 프로그램이나 데이터 등의 참조를 요구할 때 적재하는 방법

 

예상 반입(Anticipatory Fetch)

실행중인 프로그램에 의해 참조될 프로그램이나 데이터를 미리 예상하여 적재하는 방법

 

 

3) 배치(Placement) 전략 __ 203회 기출문제

- 새로 반입되는 프로그램이나 데이터를 주기억장치의 어디에(Where) 위치시킬 것인지를 결정하는 전략

 

초 적합(First Fit)

빈 영역 중에서 첫 번째 분할 영역에 배치

 

적합(Best Fit)

빈 영역 중에서 단편화를 가정 작게 남기는 분할 영역에 배치

 

적합(Worst Fit)

빈 영역 중에서 단편화를 가장 많이 남기는 분할 영역에 배치

#최적악

 

 

4) 교체(Replacement) 전략 __ 4-46

- 이미 사용되고 있는 영역 중에서 어느(Who) 영역을 교체할지 결정하는 전략

# FIFO, LRU, LFU, NUR, OPT, SCR

 

 

5) 주기억장치 할당(Allocation)의 개념

- 프로그램이나 데이터를 실행시키기 위해 주기억장치에 어떻게(How) 할당할지 정함

 

속 할당 기법: 프로그램을 주기억장치에 연속으로 할당하는 기법
#
일 분할 할당 기법: 오버레이, 스와핑

# 중 분할 할당 기법: 고정(정적) 분할 할당 기법, 가변(동적) 분할 할당 기법

 

산 할당 기법: 프로그램을 특정 단위의 조각으로 나누어 할당하는 기법
#
이징(Paging) 기법

# 그먼테이션(Segmentation) 기법

#연단다 분페세

 

 

6) 가상기억장치의 개요

- 보조기억장치(하드디스크)의 일부를 주기억장치처럼 사용하는 것으로, 용량이 작은 주기억장치를 마치 큰 용량을 가진 것처럼 사용하는 기법

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

- 주기억장치의 이용률과 다중 프로그래밍 효율을 높일 수 있음

- 가상기억장치에 저장된 프로그램을 실행하려면 가상기억장치의 주소를 주기억장치의 주소로 바꾸는 주소 변환 작업 필요

- 블록 단위로 나누어 사용하므로 연속 할당 방식의 단편화 해결 가능

 

 

7) 페이징(Paging) 기법

- 가상기억장치에 보관되어 있는 프로그램과 주기억장치의 영역을 동일한 크기로 나눈 후 나눠진 프로그램(페이지)을 동일하게 나눠진 주기억장치의 영역(페이지 프레임)에 적재시켜 실행하는 기법

- 일정한 크기로 나눈 단위를 페이지(Page)라 하고, 페이지 크기로 일정하게 나누어진 주기억장치의 단위를 페이지 프레임(Page Frame)이라 함

- 외부 단편화는 발생하지 않으나, 내부 단편화 발생 __ 4-48

- 주소 변환을 위해 페이지의 위치 정보를 갖고 있는 페이지 맵 테이블(Page Map Table) 필요 페이지 맵 테이블 사용으로 비용 증가, 처리 속도 감소

 

 

8) 세그먼테이션(Segmentation) 기법

- 가상기억장치에 보관되어 있는 프로그램을 다양한 크기의 논리적인 단위로 나눈 후 주기억장치에 적재시켜 기억공간을 절약하기 위해서 사용하는 실행시키는 방법

- 논리적인 크기로 나눈 단위를 세그먼트(Segment)라고 하며, 각 세그먼트는 고유한 이름과 크기를 가짐

- 기억장치의 사용자 관점을 보존하는 기억장치 관리 기법

- 주소 변환을 위해서 세그먼트가 존재하는 위치 정보를 갖고 있는 세그먼트 맵 테이블(Segment Map Table) 필요

- 세그먼트가 주기억장치에 적재될 때 다른 세그먼트에게 할당된 영역을 침범할 수 없으며, 이를 위해 기억장치 보호키(Storage Protection Key)가 필요

- 내부 단편화는 발생하지 않으나, 외부 단편화 발생 __ 4-48

 

 

8) 페이지 교체 알고리즘

FIFO(First In First Out) = FCFS(First Come First Serve)

 -각 페이지가 주기억장치에 적재될 떄마다 그때의 시간을 기억시켜 가장 먼저 들어와서 가장 오래 있었던 페이지를 교체하는 기법

 

LRU(Least Recently Used)

 -최근에 가장 오랫동안 사용하지 않은 페이지를 교체하는 기법

 -가장 오래 전에 사용된 페이지 교체

 

LFU(Least Frequently Used)

 -사용 빈도가 가장 적은 페이지를 교체하는 기법

 

 

OPT(OPTimal replacement, 최적 교체)

 -앞으로 가장 오랫동안 사용하지 않을 페이지를 교체하는 기법

 -벨레이디(Belady)가 제안한 것으로, 페이지 부재 횟수가 가장 적게 발생하는 가장 효율적인 알고리즘

 

NUR(Not Used Recently)

 -LRU와 비슷한 알고리즘으로, 최근에 사용하지 않은 페이지를 교체하는 기법

 -각 페이지마다 두 개의 비트, 즉 참조 비트와 변형 비트 사용

참조 비트

0

0

1

1

변형 비트

0

1

0

1

교체 순서

1

2

3

4

 

SCR(Second Chance Replacement, 2차 기회 교체)

 -가장 오랫동안 주기억장치에 있던 페이지 중 자주 사용되는 페이지의 교체를 방지하기 위한 것으로, FIFO 기법의 단점을 보완하는 기법

 

 

9) 페이지 크기 ★★

페이지 크기가 작을 경우

 -페이지 단편화가 감소되고, 한 개의 페이지를 주기억장치로 이동하는 시간이 줄어듬

 -불필요한 내용이 주기억장치에 적재될 확률이 적으므료 효율적인 워킹 셋 유지 가능

 -Locality에 더 일치할 수 있기 때문에 기억장치 효율 높아짐

 -페이지 정보를 갖는 페이지 맵(사상) 테이블의 크기가 커지고, 매핑 속도가 늦어짐

 -디스크 접근 횟수가 많아져서 전체적인 입, 출력 시간은 늘어남

 

페이지 크기가 클 경우

 -페이지 단편화가 증가되고, 한 개의 페이지를 주기억장치로 이동하는 시간이 늘어남

 -불필요한 내용까지도 주기억장치에 적재될 수 있음

 -페이지 정보를 갖는 페이지 맵(사상) 테이블의 크기가 작아지고, 매핑 속도가 빨라짐

 -디스크 접근 횟수가 줄어들어 전체적인 입, 출력 효율성이 증가됨

 

 

10) Locality(지역성, 구역성) ★★

- 프로세스가 실행되는 동안 주기억장치를 참조할 때 일부 페이지만 집중적으로 참조하는 성질이 있다는 이론

- 스래싱(Thrashing)을 방지하기 위한 워킹 셋 이론의 기반

- 데닝(Denning) 교수에 의해 구역성의 개념이 증명됐으며, 캐시 메모리 시스템의 이론적 근거

종류

설명

간적 구역성

(Temporal Locality)

한 번 참조한 페이지는 가까운 시간 내에 계속 참조할 가능성이 높음

# Loop(), Stack(), Subroutine(브루틴),

 Counting(운팅), Totaling()

#루스서카집

간적 구역성

(Spatial Locality)

어느 하나의 페이지를 참조하면 그 근처의 페이지를 계속 참조할 가능성이 높음

# Array(배열), Sequential Code(순차적 코드)

 

 

11) 워킹 셋(Working Set) __ 4-50

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

- 주기억장치에 상주시킴으로써 페이지 부재 및 페이지 교체 현상이 줄어들어 프로세스의 기억장치 사용이 안정

- 시간이 지남에 따라 자주 참조하는 페이지들의 집합이 변화하기 때문에 워킹 셋은 시간에 따라 변경

 

 

12) 페이지 부재 빈도(PFF; Page Fault Frequency) 방식 __ 4-50

- 페이지 부재율에 따라 주기억장치에 있는 페이지 프레임의 수를 늘리거나 줄여 페이지 부재율을 적정 수준으로 유지하는 방식

- 페이지 부재(Page Fault)는 프로세스 실행 시 참조할 페이지가 주기억장치에 없는 현상이며, 페이지 부재 빈도는 페이지 부재가 일어나는 횟수를 의미함

 

 

13) 프리페이징(Prepaging)

- 처음의 과도한 페이지 부재를 방지하기 위해 필요할 것 같은 모든 페이지를 미리 한꺼번에 페이지 프레임에 적재하는 기법

기억장치에 들어온 페이지들 중에서 사용되지 않는 페이지가 많을 수도 있음

 

 

14) 스래싱(Thrashing) __ 4-49

- 프로세스의 처리 시간보다 페이지 교체에 소요되는 시간이 더 많아지는 현상

전체 시스템 성능 저하

- 다중 프로그래밍(멀티 태스킹)의 정도가 높아짐에 따라 CPU의 이용률은 어느 특정 시점까지는 높아지지만, 다중 프로그래밍의 정도가 더욱 커지면 스래싱이 나타나고, CPU의 이용률은 급격히 감소

 

스래싱 현상 방지 방법

 -다중 프로그래밍의 정도를 적정 수준으로 유지

 -페이지 부재 빈도(Page Fault Frequency)를 조절해 사용

 -워킹 셋(Working Set)을 유지

 -부족한 자원을 증설하고, 일부 프로세스를 중단시킴

 

 

wook-2124.tistory.com/275

 

2020 정보처리기사 필기 총정리 (시나공, 수제비)

본 정리 글은 시나공과 수제비 필기책의 내용을 압축 요약하여 작성했기 때문에 내용이 부족할 수 있습니다. 자세한 내용과 출제 예상문제 및 기출문제를 공부하기 위해서 책을 꼭 참고하시고,

wook-2124.tistory.com

wook-2124.tistory.com/206

 

정보처리기사 필기, 실기 공부방법 및 기출문제 무료 공유

<네이버페이 5천원 적립 이벤트> 10/18까지 네이버페이 5,000원을 무료​로 주는 이벤트가 진행중이니 한번 확인해보세요🙏 네이버페이 포인트 5천원 무료 적립 이벤트! 모르면 손해!! (초간단) 먼�

wook-2124.tistory.com

댓글