운영체제 기본

기억장치의 관리

홍박스 2021. 4. 2. 15:24
728x90

컴퓨터가 메인 메모리를 어떻게 관리하는가

 

프로그램, 데이터를 실행할려면 메인메모리에 올라가야함 

다수의 프로세스들을 위한 기억장치의 효율적인 관리가필요

실제 메모리와 가상 메모리

주소 바인딩 (address binding) 개념

이진파일 형태로 디스크에 저장되어 있는 프로그램-> 주기억장치에 로드

디스크에 있는 주소를 메인메모리에 올려주는것

종류

  • 컴파일 시간 바인딩 = 컴파일중에 적재됨
  • 적재 시간 바인딩 = 로딩중에 적재됨
  • 실행 시간 바인딩 = 실행할때 적재됨

컴파일 적재 로드란?

프로그램을 만든다. (.c)

프로그램이 실행되면 -> 컴파일 된다. (.obj)

여러개의 컴파일 된 파일들을 연결 (링킹)

메모리에 올림(로딩)

실행됨

 

 

 

 

 

 

 

 

 

 

 

 

컴파일시간 바인딩

프로세스가 적재될 주기억장치의 위치를 미리 아는경우, 컴파일러가 절대코드를(물리적 주소를 가진 이진코드)를 생성함

(원도우의 bootloder)

로드시간 바인딩(대부분)

프로세스가 적재될 위치(주소)를 컴파일러가 알지 못하는 경우, 컴파일러는 일단 이진코드를 재배치 가능하게 생성함

실행시간 바인딩(필요할때 만)

프로세스가 실행되는 시점에 주소 바인딩이 이루어짐

 

논리적 주소, 물리적 주소

논리적 : 중앙처리장치가 생성하여 관리하는주소, 가상주소

물리적 : 메모리의 실제주소, 주기억장치가 관리하는 주소

cpu 논리적, 기억장치는 물리적

기억장치 관리기 : 논리적 주소를 물리적 주소로 변환하는 역활 수행

기억장치 관리기

기억장치의 계층족 구조

메모리 종류

레지스터 : 빠르다. 비싸다.작다

캐시 메모리

주기억장치 

보조 장치 : 느리다 싸다 크다

++CPU는 디스크를 읽을 수 없다 무조건 메모리

 

 

 

 

 

 

MMU의 기억장치 관리

기억장치 자원을 효율적으로 사용할 수 있도록 함

1. 반입기법 2. 배치기법 3. 교체기법

 

반입기법

fetch

데이터를 언제 가져올것인가 결정

요구반입(요구하면 메모리에 올려줌)과 예상반입(요구할것을 예상해서 메모리에 올려줌)이 있다.

 

배치기법

새로반입된 데이터나 프로그램을 주기억장치의 어디에 위치시킬 것인가 결정

최초적합,최적적합,최악적합

 

교체기법

꽉찼을때 새로들어온 프로그램이 들어갈 장소를 마련하기 위해서 어떤프로그램을 제거 것인가를 결정

 

어디에 위치할것인가?

단일 사용자 연속 기억장치 할당 방법

그냥 프로그램이 오면 메모리에 할당함

 

임의의 시간에 한 사용자만이 할당됨

겹치지 않게 보호하는 방법 : 경계 레지스터를 만들어 a주소를 기억하고 a밑으로 프로그램을 넣음

만약 프로그램이 너무 크다면 반으로 나눠서 실행 == 오버레이 기법

 

 

 

 

 

 

 

 

 

고정 분할 기억장치 할당 방법

주기억장치를 일정수의 고정된 크기들로 분할하여 여러 프로세스에게 할당하는 방법->초기 다중프로그램에 사용

보호 방법 : 상한선 하한선을 만들어 보호 == 여러 개의 경계 레지스터 

+기억장치의 단편화 현상발생

남아있는 공간은 있는데 크기가 애메해서 들어갈 수가 없음 

 

해결방법 : 

사용하고 남은 건 내부 단편화

크기가 작아서 사용못한 메모리 외부 단편화

가변분할 기억장치 할당 방법:

고정된 분할의 개념을 없애고 필요헌 만큼 동적으로 할당하는 방법

문제점: 기억장치 낭비가 없음 하지만

작업에 대하여 메모리의 할당과 해제를 반복하는경우에 기억장피 단편화의 문제가 심화될 가능성이 높음

처음엔 없지만 한번 분활된 후에 발생됨

기억공산의 효율화 방법

  1. 공백 합병 : 운영체제가 인접한 공백들을 경합하여 하나의 큰 기억 공간으로 만들어 버림
  2. 기억장소 집약 : 여러개의 작은 공백들을 하나의 커다란 기억공간으로 통합

일반적으로 가비지 컬랙터라고 부르기도 함

기억장소 집약의 단점 : 집약이 실행되는 동안 모든일을 중지해야함

집약시 기억장치 내에 있는 모든 메모리를 재 배치 해야함

잦은 기억장집약을 수행하는데 필요한 시스템 자원들의 소모가 기억장소 집약으로 부터 얻는 이익보다 더 커질 수 있음 

소요되는 비용(프로그램 재배치 비용): 메모리 컴배션

방법1: 위로 그냥 올리는것

방법2:빈공간에 알맞은 메모리를 옮기는것

방법3:굳이 남는것을 아래로 옯기지 않고 알맞은것을 알맞은 자리에 배치

 

기억장치 배치 할당 기법

입력된 프로그램과 데이터를 메인메모리의 어디에 배치할 것인가 

  1. 최초적합 기법
  2. 최적적합 기법
  3. 최악적합 기법

1.최초적합기법

주기억장치의 첫번째 유요한 공백을 우선적으로 선택(널리사용)

2.최적적합기법

적재가능한 공간을 확인 남는곳을 최소화하는 곳에 할당

3.촤악적합기법

적재가능한 가용공간 가장 공간에 할당

기억장치 교제(replayment)

하나의 작업이 전체 기억장치를 사용한 후. 필요에 따라 그 작업을 제거, 적재하는것

오늘날 페이징시스템의 기초가 됨

반입

배치

교체

728x90

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

디스크 스케줄링과 파일 시스템  (0) 2021.04.30
가상메모리 관리  (0) 2021.04.02
스레드와 프로세스의 관계  (0) 2021.04.02
프로세스 스케줄링 방법  (0) 2021.04.01
프로세스와 스레드  (0) 2021.04.01