3학년/운영체제

Chapter3

김야키 2018. 4. 13. 22:24

기억장치 관리

 

주 기억 장치

-      프로그램과 데이터는 주 기억장치에 올라와 있어야 한다.

-      용량이 제한되어 있음

-      실 기억장치

-      가상 기억장치

 

주소 바인딩

-      정의

n  논리 주소 : 컴파일을 할 때만 사용하는 주소 (준을 0으로 해서 한다.)

n  물리 주소 : 컴파일을 완료 한 후에 운영체제로부터 받은 메모리 주소에 직접 올라오는 주소

n  위의 논리 주소 -> 물리 주소로 변환되는 것

-      컴파일 시간(Compile Time) 바인딩

n  컴파일 할 때 물리주소가 결정된다

n  실행 시 위치(주소)가 바뀌면 다시 컴파일 해야 한다.

-      적재 시간(Load Time) 바인딩

n  로딩 할 때 물리 주소가 결정된다.

n  논리 주소로 컴파일을 할 때 결정 됨

-      실행 시간(Execution Time) 바인딩

n  실행 할 때 메모리에 올라올 주소를 정해준다.

n  현재 사용중인 방식

n  프로그램의 일부만 메모리에 올린다.

n  필요한 부분만 가져와서 메모리 상에 올리고 그 부분을 다 사용하면 다른 부분을 해당 위치에 다시 올린다.

 

논리주소 & 물리주소

-      논리주소

n  가상 주소

n  CPU가 생성하는 주소

n  실제 메모리에 올라갈 주소가 아님

-      물리주소

n  메모리의 실제 주소

n  기억장치의 위치

-      기억장치 관리기(MMU : Memory Management Unit)

n  논리주소 -> 물리주소로 변환하는 작업

n  논리주소에 기본 주소(Base Address)를 더하는 역할

-      논리주소(CPU) -> MMU(특정 값을 더해 줌 덧셈 위주 계산) -> 메모리


 

기억장치 계층 구조

-      레지스터

n  가장 적은 비율

n  가장 제한적임

n  CPU접근 속도가 가장 빠름

-      캐시기억장치

n  CPU접근 속도가 빠름

n  저장량이 제한적임

-      주기억장치

n  CPU가 직접 참조할 수 있음

-      보조기억장치

n  가장 큰 비율

n  CPU가 직접 접근을 못함

 

기억장치 관리 기법

-      인출(fetch) 기법

n  메인 메모리로 언제 가져올 것 인가를 결정

-      배치(placement) 기법

n  메인 메모리 어디 위치에 저장하는 것이 좋은가를 결정

-      교체(replacement) 기법

n  동일한 위치에 어떤 정보를 내보내고 들여 올 것인가를 결정

 


 

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

-      경계 레지스터

n  운영체제와 사용자 프로그램 사이의 주소

n  운영체제가 사용중인 주소는 접근하면 안된다.

-      Overlay 기법

n  주기억장치보다 더 큰 프로그램의 실행이 가능

n  프로그램을 자른다. (개발자가 직접)

n  자른 프로그램 중 하나를 먼저 실행 시키고 나머지를 순서대로 실행 시킨다.

-      시스템 보호

n  경계 레지스터 사용

-      슈퍼 바이저 호출(SVC : Super Visor Call) 명령

n  사용자가 운영체제에 서비스 요청

n  운영체제가 해당 서비스를 해준다.

n  fork명령어 등과 같은 것

n  운영체제에 직접 access를 하는 것이 아님

 


고정 분할 기억장치 할당

-      주기억장치를 나누어서 사용

-      고정적으로 메모리를 나누어서 사용 하는 것

-      동시에 여러 프로그램을 메모리에 올려서 사용할 수 있게 해 줌

-      사용중인 위치에 프로그램이 나가면 해당 위치에 다를 프로그램을 접근 시킨다.

-      고정된 메모리 주소를 벗어날 수 없다.

n  경계 레지스터와 같은 것이 다수 출현

-      절대 번역(Compile) 및 로딩

n  컴파일 시간 바인딩

n  해당 위치는 변하지 않는다.

-      재배치 가능 번역(Compile) 및 로딩

n  로딩 시간, 실행시간 바인딩

-      할당 한 메모리 보다 큰 프로그램이 들어온 경우 실행 불가

n  적정선을 찾아야 한다.

n  적정선은 랜덤

-      로딩 타임과 컴파일 타임 바인딩에서 사용 가능


 

분할 공간의 크기와 단편화

-      기억장치의 단편화(fragmentation) 현상 발생

-      내부 단편화(internal fragmentation)

n  고정된 크기 안에서 프로세스를 할당 해 준 나머지

n  내부에 남은 공간

n  항상 발생

n  낭비가 심함

-      외부 단편화(external fragmentation)

n  내부 단편화로 인해서 프로세스를 할당해 줄 공간이 없는 경우 발생

n  외부 단편화가 더 큰 문제

-      프로세스 각각의 크기를 알지 못하기 때문에 내부 단편화가 심해진다.

 


가변 분할 기억장치 할당

-      미리 정한 크기가 아닌 항상 바뀌는 분할 방법

-      작업들이 필요로 하는 공간을 동적으로 할당

n  만약 20K가 나가고 18K가 들어오게 되면 외부 단편화가 된다.

n  대부분 외부에서 들어와서 공간이 남으면 외부 단편화

n  아예 들어갈 수가 없음

n  분할을 할 때마다 사용할 수 있는 공간이 줄어든다.

 


공백의 합병

-      남은 공간을 모은다.

-      인접한 빈 공간을 합병한다.

-      가변 분할에서는 이러한 작업을 해야 한다.

n  하지 않을 경우엔 사용할 수 있는 공간이 줄어든다.


 

기억장소의 집약(compaction)

-      비어 있는 공간을 모두 압축시켜서 남은 공간을 확보한다.

-      단점

n  시스템 자원을 낭비할 수 있음

u  사용자의 요청을 받지 못하는 경우

n  집약을 하는 도중에는 서비스를 불가능

n  주소 재배치

 


기억장소 배치 전략 (memory placement strategy)

-      최초 적합 기법

n  처음 남는 곳에 저장

n  가장 처음 비교 했을 때 들어갈 수 있으면 들어 감

-      최적 적합 기법

n  크기가 가장 비슷한 곳에 저장

n  조각을 최대한 조금 남기기 위한 방법

-      최악 적합 기법

n  가장 넓은 곳에 저장

n  굉장히 나쁜 것은 아님

n  공간을 많이 남겨서 다른 서비스를 해 줄 수 있음



기억장치 교체(Swapping)

-      문제가 생긴 경우

-      Swap Out(프로세스를 내보냄)

-      Swap In(나간 자리에 프로세스를 들여옴)

-      많은 프로세스를 한번에 서비스 하기 힘들기 때문에 바로바로 교환을 해준다.

-      프로세스를 들어왔다 나갔다 하는 시스템

 


'3학년 > 운영체제' 카테고리의 다른 글

Chapter4-2  (0) 2018.04.17
Chapter4-1  (0) 2018.04.17
Chapter2-3  (0) 2018.04.12
Chapter2-2  (0) 2018.03.28
Chapter 2-1  (0) 2018.03.22