기억 장치

2023. 2. 22. 15:50정처기 필기/4과목 - 프로그래밍 언어 활용

기억 장치

1. 기억장치의 관리 전략

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

- 반입(Fetch), 배치(Placement), 할당(Allocation), 교체(Replacement)

 

2. 반입 (Fetch) 전략

* 언제 (When)

 

- 요구 반입 (Demand Fetch)

  : 실행중인 프로그램이 특정 프로그램이나 데이터 등의 참조를 요구할 때

 

- 예상 반입 (Anticipatory Fetch)

  : 실행중인 프로그램에 의해 참조될 프로그램이나 데이터를 미리 예상

 

3. 배치(Placement)  전략

* 어디 (Where)

 

- 최초 : 첫 번째 분할 영역

- 최적 : 단편화를 가장 적게 남기는 분할 영역

- 최악 : 단편화르 가장 많이 남기는 

 

4. 교체(Replacement) 전략

* 어느 영역을 교체할지 (Who)

 

5. 주기억장치 할당(Allocation)

* 어떻게 할당할지 (How)

 

- 연속 할당 기법

  : 단일 -> 오버레이, 스와핑

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

 

- 분산 할당 기법

  : 프로그램을 특정 단위의 조각으로 나누어 할당하는 기법

  : 페이징 기법

  : 세그먼테이션 기법

 

6. 가상 기억장치

# USB 생각하면될듯

- 보조기억장치(하드디스크)의 일부를 주기억장치처럼 사용하는 것

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

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

- 가상기억장치의 프로그램을 실행하려면 (가상->주)로 바꾸는 기억변환 작업 필요

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

 

7. 페이징 기법 (분산할당기법)

- 주기억장치의 영역과 동일한 크기로 가상기억장치를 나눈 후 주기억장치에 적재시키는 방법

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

- 외부 단편화 X , 내부 단편화 O

- 주소 변환을 위해 페이지 맵 테이블이 필요하다. (처리속도 감소, 비용 증가)

 

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

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

- 논리적인 크기로 나눈 단위를 세그먼트라고 함, 각 세그먼트는 고유의 이름과 크기를 가진다.

- 주소변환을 위해 세그먼트 맵 테이블 필요

- 세그먼트는 각자 할당된 영역을 침범할 수 없으며, 이를 위해서 기억장치 보호키가 필요하다.

- 내부 단편화 X, 외부 단편화 O

 

9. 페이지 교체 알고리즘

* FIFO = FCFS (선입선출)

 

* LRU (Least Recently Used)

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

 

* LFU (Least Frequently Used)

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

 

* OPT (OPTimal replacement)

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

  - 페이지 부재 횟수가 가장 적게 발생함 (최적)

 

* NUR (Not Used Recently) = LUR

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

 

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

  - 자주 사용되는 페이지의 교체를 방지하기 위한 것

 

10. 페이지 크기

* 페이지 크기가 작을 경우

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

  - 불필요한 내용이 적재될 가능성이 적다

  - 기억장치 효율이 높아진다.

  - 페이지 맵 테이블의 크기가 커짖고, 매핑 속도는 늦어진다.

  - 전체적인 입출력 시간은 늘어난다.

 

* 페이지 크기가 클 경우

  - 페이지 단편화가 증가하고 주기억장치로 이동하는 시간이 늘어난다.

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

  - 페이지 맵 테이블으 크기가 작아지고, 매핑 속도는 빨라진다.

  - 전체적인 입출력 속도가 짧아진다.

 

11. Locality (지역성, 구역성)

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

- 스레싱을 방지하기 위한 워킹 셋 이론의 기반

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

 

* 시간적 구역성

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

  :  루프, 스택, 서브루틴, 카운팅, 집계

 

* 공간적 구역성

  : 한 번 참조한 페이지의 근처 페이지를 참조할 확률이 높다.

  : 배열, 순차적 코드

 

12. 워킹 셋

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

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

- 워킹셋은 시간에 따라 변경된다.