Theory/Operating System

기억 장치 관리

D4tai1 2018. 8. 12.

3 장 기억 장치 관리

1. 주기억장치 관리 기법

 

 

 

 

단일 프로그래밍

 

 

 

 

 

 

 

 

 

 

 

 

 

 

연속 할당

 

 

 

 

 

절대 번역

 

 

 

 

 

고정 분할

 

 

 

 

 

다중 프로그래밍

 

 

재배치 가능 번역

 

 

 

 

 

 

 

주기억장치

 

 

 

 

 

가변 분할

 

 

관리 기법

 

 

 

 

 

 

 

 

 

 

 

페이징

 

 

 

 

 

 

비연속 할당

 

 

 

 

 

 

 

 

세그먼테이션

 

 

 

 

 

 

 

 

 

 

 

 

1) 연속 할당

단일 프로그래밍 : 한 개의 프로세스만 주기억장치에 적재하여 실행하는 방법.

특징

경계레지스터 필요 프로그램의 크기가 제한됨

기억장치의 낭비가 심함 사용자 모드와 관리자 모드로 구분됨.

적용기술

교체(Swapping) : 어떤 프로그램이 기억장치를 사용하는 도중에 다른 프로그램에서 해당 기억 장치를 사용하고자 할 경우 사용중인 내용을 보조 기억 장치에 보존하고 새로운 프로그램이 주기억 장치를 사용하는 방법.

중첩(Overlay) : 주기억 장치보다 큰 프로그램을 실행하기 위해서 필요한 부분만 기억장치에 읽어 오는 방법.

 

다중 프로그래밍

  ㉠ 고정 분할 : 주기억장치를 미리 몇 개의 고정된 개수와 크기의 부분으로 분할하여 여러 개의 프로그램이 동시에 적재되어 실행되게 하는 방법.

   ․절대 번역 : 정해진 공간에서만 실행.

 

   ․재배치 가능 번역 : 실행할 수 있는 공간만 있으면 위치에 관계없이 실행.

  ㉡ 가변 분할 : 주기억장치를 미리 나누어 놓은 것이 아니라, 요구량에 따라 동적으로 필요한 만큼 분할하여 사용하는 방법.

 

   ※ 배치전략

   ․ 최적적합(Best-Fit) : 반입되는 프로그램의 크기에 가장 알맞은 크기의 빈 분할 공간에 적재시키는 방법.

   ․ 최초적합(First-Fit) : 반입되는 프로그램을 수용할수 있는 크기를 가진 최초의 빈 분할 공간에 적재시키는 방법.

   ․ 최적적합(Best-Fit) : 반입되는 프로그램의 크기에 가장 큰 빈 분할 공간에 적재시키는 방법.

단편화(Fragmentation) : 주기억장치를 연속할당 기법으로 사용할 경우 사용되지 않고 낭비되는 부분적인 공간.

  ㉠ 내부 단편화 : 기억공간 > 작업량

  ㉡ 외부 단편화 : 기억공간 < 작업량

단편화 해결 방안

  ㉠ 통합(Coalsescing) : 인접되어 있는 두 빈 공간을 하나로 합하는 방법.

 

  ㉡ 압축(Compaction) : 빈 분할 영역을 한 곳에 합치는 방법.

 

 2) 비연속 할당

  ① 페이징(Paging) 기법 : 일정한 크기의 블록을 사용.

  ② 세크먼테이션(Segmentation) 기법 : 블록이 서로 다른 경우.

 

2. 가상 기억 장치

 - 물리적 주기억 장치 크기보다 더 큰 사용자 프로그램을 실행시킬 수 있도록 하기 위해 개발,

 

1) 가상 기억 구성

페이징(Paging) 기법 : 일정한 크기의 블록을 사용.

  ㉠ 연관사상 : 연관 기억장치를 이용하여 페이지를 관리하는 기법.

  ㉡ 직접사상 : 모든 페이지가 페이지 사상표에 있는 경우 사용.

  ㉢ 직접/연관사상 : 최근에 참조되는 페이지는 연관 사상표에 보관하고 나머지는 페이지 사상표 이용.

세크먼테이션(Segmentation) 기법 : 블록이 서로 다른 경우.

 ※ 세그먼트 접근 제어 : 기억장치 보호키(판독접근,기록접근,수행접근)을 이용.

 

2) 가상 기억 장치 관리 정책

반입(fetch) 전략

- 언제 보조기억 장치에서 주기억장치로 옮길 것인가 결정.

배치(placement) 전략

- 주기억장치 어느 곳에 위치시킬 것인가 결정.

교체(replacement) 전략

- 주기억장치에 있던 페이지 중 어느 페이지를 새로운 페이지와 교체할 것인가 결정.

 

3) 반입전략

요구반입 기법

- 각 페이지들이 보조 기억 장치에 저장되어 있다가 프로세스에 의해 그 페이지가 요구 되어 질 때 보조 기억 장치에 주기억 장치로 옮겨지는 기법.

예상반입 기법

- 참조될 페이지를 미리 예측하여 보조 기억 장치에 주기억 장치로 옮기는 기법.

 

4) 페이지 교체 알고리즘

최적화 알고리즘 : Belady가 제안한 것으로 페이지 부재를 최소화 하기 위해서 이후에 가장 오랫동안 사용되지 않을 페이지를 대치하는 기법으로 실제 구현 불가능.

FIFO(First In First Out) 알고리즘 : 가장 먼저 들여온 페이지를 먼저 대치시키는 방법.

FIFO의 모순 : FIFO 페이지 대치 기법 하에서 더 많은 수의 페이지 프레임을 할당하더라도 페이지 부제가 더 많이 발생함.(참조의 국부성 때문)

LRU(Least Recently Used) 알고리즘 : 가장 오랫동안 사용되지 않은 페이지를 먼저 대치시키는 방법.

LFU(Least Frequently Used) 알고리즘 : 참조(호출)된 횟수가 가장 적은 페이지를 대치시키는 방법.

NUR(Not Used Recently) 알고리즘 : 참조 비트를 이용하여 최근에 사용하지 않은 페이지 대치.

 

필요로 하는 프레임

A

B

C

D

B

A

C

A

E

FIFO

A

A

A

A

A

A

A

A

E

 

B

B

B

B

B

B

B

B

 

 

C

C

C

C

C

C

C

 

 

 

D

D

D

D

D

D

*

*

*

*

 

 

 

 

*

 

 

 

 

 

 

 

 

 

 

LRU

A

A

A

A

A

A

A

A

A

 

B

B

B

B

B

B

B

B

 

 

C

C

C

C

C

C

C

 

 

 

D

D

D

D

D

E

*

*

*

*

 

 

 

 

*

 

 

 

 

 

 

 

 

 

 

LFU

A

A

A

A

A

A

A

A

A

 

B

B

B

B

B

B

B

B

 

 

C

C

C

C

C

C

C

 

 

 

D

D

D

D

D

E

*

*

*

*

 

 

 

 

*

*표시는 페이지 폴트(Page Fault)를 의미함

 

5) 기타 고려 사항

스레싱(Thrashing)

- 너무 빈번히 페이지 부재가 일어나는 현상으로, 프로세스 수행에 소요되는 시간보다 페이지 이동에 더 많은 시간이 소요되는 현상. CPU 이용률 저하

- 다중 프로그램밍의 정도를 낮추어야 스레싱 현상을 방지 할 수 있음.

 

페이지 부재(Page Fault) : 프로세스에서 원하는 페이지가 주기억장치 내에 존재하지 않는 경우.

보조기억장치에서 읽어 들여 주기억장치에 적재한 다음 사용.

 

워킹 세트(Working Set) : 주기억장치에 유지되어야 하는(참조되는) 페이지들의 집합.

데닝 : 워킹세트는 주기억 장치에 위치되어야 함.

 

구역성(Locality)

- 실행중인 프로세서는 시간에 따라 공간의 일정 부분만 집중적으로 참조하는 경향이 있음.

 

  ㉠ 시간 구역성(Tempral Locality) : 프로세스가 짧은 시간주기 동안 동일한 기억장소를 여러차례 참조하는 경향.

) 순환(Loop), 부프로그램(Subroutine), 스택(Stack), 카운팅(Counting)과 집계(Sum)에서의 변수

 

  ㉡ 공간 구역성(Spatial Locality) :프로세서가 분산지역이 아닌 특정 부분을 집중적으로 참조하는 경향

) 배열(Array), 순차코드 실행, 관련된 변수의 선언 등.

 

페이지의 크기

  ㉠ 페이지의 크기가 작을 경우

  - 페이지의 단편화를 감소. 기억장치의 효율이 좋아짐.

  ㉡ 페이지의 크기가 클 경우

  - 페이지 단편화로 인한 기억공간 낭비

  - 페이지의 수가 줄어들어 사상 테이블의 크기가 줄어듬.

  - 대량의 페이지 이동으로 인해 디스트 접근 부담이 줄어듬.

 

3. 보조 기억 장치

 1) 기억 장치의 계층구조

- 대부분의 컴퓨터 시스템의 기억장치는 디스크나 테이프 같은 보조 기억장치와 주기억 장치, 그리고 캐시 기억 장치 및 CPU 레지스터들이 계층적으로 구성됨.

 

 

2) 자기 디스크(Magnetic Disk)

트랙(Track) : 디스크의 회전축을 중심으로 한 동심원

섹터(Sector) : 트랙에 대한 부채꼴의 분할 영역

실린더(Cylinder) : 회전축으로부터 같은 거리에 있는 트랙의 모임.

접근시간(Acess Time) = 탐색시간(Seek Time) + 회전지연시간(Search, Latency Time) + 전송시간(Transfer Time)

 

3) 자기 테이프(Magnetic Tape)

 

논리레코드(Logical Record) : 논리적 레코드.

물리레코드(Physical Record) : 실제 입출력이 되는 단위로 여러개의 논리레코드의 묶음.

IRG(Inter Record Gap) : 레코드와 레코드 사이의 갭.(레코드 구분)

IBG(Inter Block Gap) : 블록과 블록사이의 갭.(다음 블록을 읽을 때 읽기위한 속도을 회복하기 위해 사용)

블럭화 인수(Blocking Factor) : 블록에 포함된 논리 레코드 수.

 

4) 디스크 공간 할당 기법

  ① 연속 할당 : 연속 공간이 없으면 파일은 생성될 수 없다.

  ② 연결 할당 : 각 파일에 할당된 블록들이 여러 곳에 흩어지게 적재하여 연결 리스트로 관리하는 기법

(섹터 지향, 블록 할당, 블록 연결 할당)

  ③ 인덱스 할당

 

4. 디스크 스케줄링 기법

  1) FCFS 기법

  ― 입출력 요청 대기 큐에 들어온 순서대로 서비스를 하는 방법.

  2) SSTF 기법

  ― 탐색 거리가 가장 짧은 요청이 먼저 서비스를 받는 기법. (FCFS보다 처리량이 많고, 평균 응답 시간이 짧다.)

  3) SCAN 기법

  ― SSTF와 같은 동작을 하지만, 진행 방향상의 가장 짧은 거리에 있는 요청이 먼저 서비스를 받는다.

  4) C-SCAN 기법

  ― 헤드가 항상 바깥쪽 실린더에서 안쪽 실린더로 이동하면서 가장 짧은 탐색 시간을 갖는 요청을 서비스하는 방법.

'Theory > Operating System' 카테고리의 다른 글

운영체제의 실제  (0) 2018.08.12
분산 운영체제의 기본  (0) 2018.08.12
정보관리  (0) 2018.08.12
프로세스 관리  (0) 2018.08.12
운영체제의 개요  (0) 2018.08.12

댓글