Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Tags more
Archives
Today
Total
관리 메뉴

개발의변화

2. 메모리 관리 본문

운영체제

2. 메모리 관리

refindmySapporo 2023. 3. 30. 19:17
반응형

메모리 관리 개념

메모리 관리는 중앙 처리 장치, 메모리, 스토리지, 주변 기기 등을 적절히 관리하는 기법, CPU가 프로그램을 읽어서 연속적으로 동작하기 위해서는 메모리 관리의 역할이 중요!


메모리 관리 기본 사항

가상 메모리 

  • 각 프로그램에 실제 메모리 주소가 아닌 가상의 메모리 주소를 부여하는 방식
  • 가상 주소(Virtual Address), 물리 주소(Physical Address)가 있고 가상 주소의 범위를 가상 주소 공간, 물리 주소의 범위를 물리 주소 공간
  • 가상 주소 공간은 메모리 관리 장치(MMU)에 의해서 물리 주소로 변환

메모리 관리 장치

  • CPU가 메모리에 접근하는 것을 관리하는 컴퓨터 하드웨어 부품
  • 가상 메모리 주소를 실제 메모리 주소로 변환
  • 메모리 보호, 캐시 관리, 버스 중재 등의 역할 담당

메모리 관리자

  • 기억장치의 어는 부분이 사용 중인지 또는 아닌지를 조사하여 프로세스에게 필요할 때마다 기억장치를 할당 후 회수하는 작업 수행
  • 실행 파일 심볼의 재배치 주소를 프로세스의 논리 주소로 연결시키는 작업 수행

메모리 관리 기법

반입 기법: 주기억장치에 적재할 다음 프로세스의 반입시기를 결정하는 기법-> 메모리 적재 시기 결정(when)

배치 기법: 디스크에 있는 프로세스를 주기억장치의 어느 위치에 저장할 것인지 결정-> 메모리 적재 위치 결정

할당 기법: 실행해야 할 프로세스를 주기억장치에 어떤 방법으로 할당할 것인지 결정 -> 메모리 적재 방법 결정

교체 기법: 재배치 기법으로 주기억장치에 있는 프로세스 중 어떤 프로세스를 제거할 것 인지를 결졍 -> 메모리 교체 대상 결정

 

반입기법:

  • 요구 반입 기법: 다음에 실행될 프로세스가 참조 요구가 있을 경우에 적재하는 기법
  • 예상 반입 기법: 시스템의 요구를 예측하여 미리 메모리에 적재하는 방법으로 요구되는 페이지 이외 다른 페이지도 함께 적재

배치기법:

  • 최초 적합: 프로세스가 적재할 수 있는 가용 공간 중에서 첫 번째 분할에 할당하는 방식
  • 최적 적합: 가용 공간 중에서 가장 크기가 비슷한 공간을 선택하여 프로세스를 적재하는 방식
  • 최악 적합: 프로세스의 가용 공간 중에서 가장 큰 공간을 할당하는 방식


메모리 할당 기법

연속 할당 기법

  • 실행을 위한 각 프로세스를 주기억장치 공간 내에서 인접되게 연속하여 저장하는 방법
  • 프로세스를 주기억장치에 연속으로 할당하는 기법
  • 단일 분할 할당 기법, 다중 분할 할당 기법

분산 할당 기법

  • 하나의 프로세스를 여러 개의 조각으로 나누어 주기억장치 공간 내 분산하여 배치하는 기법
  • 주로 가상기억장치에서 사용
  • 페이징 기법, 세그먼테이션 기법, 페이징/세그머네테이션기법

A. 페이징 기법(Paging)

가상기억장치 내의 프로세스를 일정하게 분할하여 주기억장치의 분산된 공간에 적재시킨 후 프로세스를 수행시키는 기법

실제 공간은 페이지 크기와 같은 페이지 프레임(물리 메모리를 일정한 크기로 나눈 블록)으로 나누어 사용한다

논리 주소는 페이지 번호(p)와 변위(d)로 구성되어 있다.

페이지 테이블에서 MMU를 활용해 논리 주소를 물리 주소로 변환하고 이때 실제 메모리 기준 주소를 찾고 변위를 더해 물리 메모리 주소를 결정한다

 

장점 단점
공유 페이지 이용, 메모리 활용을 통한 다중 처리 프로그래밍 가능 페이징 사상 하드웨어 비용 소요,속도 저하, 내부 단편화 현상 발생

☞페이징 기법에서 페이지 크기가 작을 경우와 클 경우 발생하는 현상

1. 페이지 크기가 작을 경우 발생 현상

  • 더 많은 페이지 사상 테이블 공간이 필요
  • 내부 단편화는 줄고, 특정한 참조 구역성만을 포함하기 때문에 기억장치 효율이 좋음
  • 페이지 정보를 갖는 페이지 맵 테이블의 크기가 커지고, 매핑 속도가 늦어짐
  • 디스크 접근 횟수가 많아져서 전체적인 입출력 시간 증가

2.페이지 크기가 클 경우 발생 현상

  • 테이블의 크기가 작아지므로 주기억 장치의 공간이 절약
  • 페이지 정보를 갖는 페이지 맵 테이블의 크기가 작아져서 관리가 용이하고 매핑속도가 빨라짐
  • 디스크 접근 횟수가 줄고, 전체적인 입출력 시간 감소
  • 페이지 단편화가 증가하고, 이에 따라 기억 공간의 낭비 초래

B. 세그먼테이션 기법

가상기억장치 내의 프로세스를 가변적인 크기의 블록으로 나누고 메모리를 할당하는 기법

분할 형태가 배열이나 함수와 같은 논리적인 다양한 크기의 가변적인 크기로 관리

  • 세그먼트 테이블은 기준(base)와 한계(limit)로 메모리의 시작 주소와 길이를 확인
  • 세그먼트 테이블은 메인 메모리에 존재
장점 단점
가변적인 데이터 구조와 모듈 처리, 자원의 효율적 이용 외부 단편화 현상 발생

 

 돼지를 도축할 때, 페이징은 돼지를 같은 크기로 잘라서 보관하는 것이라면 세그멘테이션은 부위 별로 잘라서 보관한다고 이해하면 된다!

-> 외부 단편화 및 내부 단편화 최소화를 위하여 페이징/세그먼테이션 기법이 개발

  • 하나의 세그먼트를 정수 배의 부분 페이지로 다시 분할하는 방식
  • 세그먼트가 너무 가변적인 길이이고 때로는 그 크기가 너무 커서 주기억장치에 적재할 수 없는 문제점을 해결

교체 기법

 

FIFO(First-In-First-Out: 선입선출)알고리즘

FIFO는 주기억장치 페이지에 순차적으로 참조 스트링이 들어오고, 페이지 교체는 가장 먼저 들어온 페이지부터 교체하는 알고리즘

 

참조 스트링  = 0 1 2 3 0 1 4 0 1 2 3 4

페이지 프레임 = 3개, 모두 비어있다고 가정

page fault(페이지 부재)가 발생하면 가장 먼저 들어온 페이지부터 교체

 

 

LRU(Least Recentlry Used)알고리즘

사용된 시간을 확인하여 가장 오랫동안 사용되지 않는 페이지를 선택하여 교체하는 알고리즘

 

참조 스트링 = 2 3 2 1 5 2 3 5

페이지 프레임 = 3개 고정, 모두 비어있음

 

LFU(Least Frequently Used) 알고리즘

사용된 시간을 확인하여 참조횟수가 가장 적은 페이지를 선택하여 교체하는 알고리즘

w = 2 3 2 1 5 2 3 5

페이지 프레임 = 3개

 


메모리 단편화

내부 단편화

  • 분할된 공간에 프로세스를 적재한 후 남은 공간
  • 고정 분할 할당 방식 또는 페이징 기법 사용 시 발생하는 메모리 단편화

외부 단편화

  • 할당된 크기가 프로세스 크기보다 작아서 사용하지 못한는 공간
  • 가변 분할 할당 방식 또는 세그먼테이션 기법 사용 시 발생하는 메모리 단편화

페이징 기법의 문제점 - 스레싱 (Thrashing)

어떤 프로세스가 계속적으로 페이지 부재가 발생하여 프로세스의 실제 처리 시간 보다 페이지 교체 시간이 더 많아지는 현상

오류율이 클수록 스레싱이 많이 발생한 것이고, 스레싱으로 인해 전체 시스템의 성능 및 처리율은 저하

페이지 부재가 계속 증가하여 기억장치 접근 시간이 증가한다

 

페이징 기법의 문제점에 대한 해결방안

1. 워킹 세트

각 프로세스가 많이 참조하는 페이지들의 집합을 주기억장치 공간에 계속 상주하게 하여 빈번한 페이지 교체 현상을 줄이고자 하는 기법

 

2. 페이지 부재 빈도

페이지 부재 빈도는 페이지 부재율의 상한과 하한을 정해서 직접적으로 페이지 부재율을 예측하고 조절하는 기법

페이지 부재 비율에 따라 페이지 프레임 개수를 조절

 


지역성

  • 지역성(국부성, 구역성, 국소성)은 프로세스가 실행되는 동안 주기억장치를 참조할 때 일부 페이지만 집중적으로 참조
  • 프로세스가 집중적으로 사용하는 페이지를 알아내는 방법 -> 가상 기억장치 관리의 이론적인 근거
  • 워킹 셋 이론의 기반

유형

 

시간 지역성 

  • 최근 사용되었던 기억장소들이 집중적으로 액세스하는 현상
  • 참조했던 메모리는 빠른 시간에 다시 참조될 확률이 높은 특성
  • Loop,Stack,Sub Routine, Counting, Totaling에 사용되는 변수

 

공간 지역성

  • 프로세스 실행 시 일정 위치의 페이지를 집중적으로 액세스하는 현상
  • 참조된 메모리 근처의 메모리를 참조하는 특성
  • 배열 순회, 프로그래머들

 

순차 지역성

  • 데이터가 순차적으로 액세스 되는 현상
  • 프로그램 내의 명령어가 순차적으로 구성된 특성
  • 공간 지역성에 편입되어 설명되기도 함
  • 순차적 코드 실행
반응형

'운영체제' 카테고리의 다른 글

운영체제 문제풀이  (0) 2024.04.16
운영체제 정리1  (0) 2024.04.15
3. 프로세스 스케줄링  (0) 2023.03.31
1.운영체제 기초 활용  (0) 2023.03.30
프로세스와 스레드  (0) 2023.03.28