전공 지식 정리/운영체제

#3 기억장치 관리

2022. 4. 20. 22:50

논리적 주소는 주소 프로그램이 실행되는 동안 CPU에 의해 생성된 것이다.

논리 주소는 물리적으로 존재하지 않는 가상 주소다.

물리적 주소는 메모리의 물리적 위치를 식별하는 기억장치가 취급하는 주소이다.

논리 주소는 MMU(기억장치관리기)라는 하드웨어 장치에 의해 해당 물리적 주소에 매핑된다.

 

논리적 주소 공간 : 프로그램에 의해 생성된 모든 논리 주소의 집합

물리적 주소 공간 : 이 논리적 주소에 상응하는 모든 물리적 주소의 집합

 

 

 

 

 

논리적 주소와 실제 주소의 다른 점을 기술하시오. 

 

논리적 주소와 실제 주소의 차이점은

첫 번째로 논리적 주소는 중앙처리장치(CPU)가 생성한다는 것이고,

물리적 주소는 기억장치에 존재하는 위치라는 것이다.

두 번째로 논리적 주소는 메모리 장치에 물리적으로 존재하지 않는 가상 주소이다.

하지만 물리적 주소는 물리적으로 엑세스 할 수 있는 기억장치의 위치이다.

세 번째로 논리 주소는 프로그램이 실행되는 동안 CPU에 의해 생성되는 반면,

물리적 주소는 MMU에 의해 계산된다.

 

 

 

어떤 경우에 오버레이가 유용한가? 어느 때에 주기억장치의 일부분이 오버레이 되는가?

오버레이는 프로그램 개발 시 어떤 영향을 미치며,

오버레이는 프로그램 수정 가능성에 어떤 영향을 미치는가?

 

주기억장치보다 더 큰 프로그램의 실행이 필요할 때 유용한 기법이다.

특정한 프로그램의 한 부분이 프로그램의 실행에 더 이상 필요하지 않을 때 다른 프로그램을

보조기억장치로부터 옮겨와서 필요없는 프로그램들이 사용하고 있던 기억장소를 차지해 오버레이된다.

오버레이는 프로그램 개발 시 미치는 영향은

프로그래머가 한정된 주기억장치를 확장하여 사용할 수 있는 방법을 제공한다는 것이다.

오버레이가 프로그램 수정 가능성에 미치는 영향은

사용자가 직접 오버레이 작업을 하는 것은 매우 신경 쓰이고 시간 소모가 크고,

복잡한 오버레이 구조를 가진 프로그램은 수정하기도 어렵다는 것이다.

 

 

 

배치 기법은 새로 들어온 프로그램과 데이터를 주기억장치의 어디에 넣을 것인가를 결정한다.

실행되기를 기다리고 있는 작업의 기억장치 필요조건이 곧바로 충족될 수 있다고 가정할 때,

그 작업을 적재하여 즉시 실행시킬 수 있는 배치 전략에 대해 기술하시오.

 

배치 전략은 입력되는 프로그램과 데이터를 주기억장치의 어느에 넣을 것인가를 결정하기 위해 사용된다.

가장 일반적으로 사용되는 세 가지 배치 전략이 있다.

최초 적합 기법 :

작업을 적재함에 있어, 그것을 수용할 수 있는 주기억장치의 첫 번째 유용한 공백을 우선적으로 선택하는 방법이다.

최적 적합 기법 :

어떤 작업을 적재할 기억 공간을 선택함에 있어,

그 작업에 가장 적합한 공간을 선택함으로써 기억장치의 단편화를 최소로 하는 방법이다.

즉, 남게 될 공백을 최소로 하는 방법이다.

최악 적합 기법 :

프로그램을 주기억장치 내에서 가장 알맞지 않은 공백, 즉 가장 큰 공백에 배치하는 방법이다.

왜냐면 큰 공백에 배치하면 배치 후 남게 될 공백 역시 크고, 다시 그 공백에 다른 프로그램을 배치할 수 있기 때문이다.

 

 

 

단편화에 대하여 설명하고, 이것을 극복하는 방법은 무엇인가?

 

단편화란 기억 장치의 빈 공간 또는 자료가 여러 개의 조각으로 나뉘는 현상을 말한다.

RAM에서 공간이 작은 조각으로 나뉘어 사용가능한 메모리가 존재하지만 할당이 불가능한 상태를 말한다.

기억공간의 효율화로 단편화를 극복하기 위한 방안으로 다음과 같은 방법들이 적용되고 있다.

우선 공백의 합병이 있다.

기억 공간의 공백이 발생하였을 때, 인접한 공백들을 결합해 하나의 큰 기억 공간으로 만드는 방법이다.

그리고 기억장소의 집약이 있다.

현재 사용되고 있는 모든 기억 공간을 주기억장치의 한쪽으로 모음으로써, 분산되어 있는 단편화된 빈 공간들을 통합해 하나의 큰 기억 공간으로 만드는 방법이다. 이러한 기억장소의 집약을 일반적으로 쓰레기 수집이라고 부르기도 한다.

 

 

 

내부 단편화와 외부 단편화 사이의 차이점을 설명하고, 어떻게 다른지 설명하시오.

 

내부 단편화는 주기억장치 내 사용자 영역이 실행 프로그램보다 커서 프로그램 사용 공간을 할당 후

사용되지 않고 남아있는 공간이다.

반면 외부 단편화는 주기억장치 내 사용자 영역보다 실행 프로그램이 커서 프로그램이 할당될 수 없어

사용되지 않고 남아있는 공간이다.

내부 단편화의 경우 주기억장치 내 사용자 영역이 실행 프로그램보다 크지만,

외부 단편화는 주기억장치 내 사용자 영역이 실행 프로그램보다 작다.

 

내부 단편화란 메모리를 할당할 때 프로세스가 필요한 양보다 더 큰 메모리가 할당되어서

프로세스에서 사용하는 메모리 공간이 낭비되는 현상이다.

반면 외부 단편화란 어떤 분할이 사용되지 않고 이용 가능하지만 대기 중인 작업에게는 너무 작아서

사용할 수 없을 때에 발생하는 현상이다.

 

'전공 지식 정리 > 운영체제' 카테고리의 다른 글

#4 가상 메모리 관리  (0) 2022.06.14
#2 프로세스와 스레드 관리  (1) 2022.04.19
#1 운영체제 소개  (0) 2022.04.18
'전공 지식 정리/운영체제' 카테고리의 다른 글
  • #4 가상 메모리 관리
  • #2 프로세스와 스레드 관리
  • #1 운영체제 소개
daramG
daramG
dotori Java
daramG
다람쥐의 개발 블로그
daramG
전체
오늘
어제
  • 분류 전체보기 (193)
    • Java 코딩테스트 공부 (67)
      • Java 알고리즘 공부 (37)
      • Java 백준 문제풀이 (27)
      • Java 코테 나만의 팁 (3)
    • SQL Study (0)
      • Programmers SQL 문제풀이 (0)
      • SQLP 준비 (0)
    • 웹 개발 지식 정리 (0)
      • Servlet (0)
      • Java 정리 (0)
    • 자바 스프링 (45)
      • 스프링 공부 (4)
      • 스프링 게시판 프로젝트 (6)
      • 부트 블로그 JPA 프로젝트 (30)
      • react & springboot (5)
      • 스프링 오류창고 (0)
      • 리액트 + 스프링 프로젝트 (0)
      • pf (0)
      • pfError (0)
    • React (6)
      • React 정리 (3)
      • React 오류 창고 (3)
    • C++ 코딩테스트 공부 (중단) (20)
      • c++ 백준 문제풀이 (15)
      • c++ 알고리즘 공부 (5)
    • Unity (3)
      • Unity 공부 (3)
    • WebRTC (2)
      • WebRTC 강의학습 정리 (0)
      • WebRTC 프로젝트 (1)
    • 김영한님의 스프링 강의 학습 (10)
      • 스프링 강의 목차 (1)
      • 인텔리제이 & 스프링 기초 (1)
      • 스프링 핵심 원리 (8)
    • 전공 지식 정리 (40)
      • interview (0)
      • Java (0)
      • 운영체제 (4)
      • 데이터베이스 설계 (10)
      • 소프트웨어 공학 (3)
      • 유닉스 (14)
      • 디지털 논리회로 (0)
      • 인공지능 (7)
      • js (0)
      • etc (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 디지털 논리회로
  • Java 백준 문제풀이
  • 김영한 스프링 강의
  • 부트 jpa 게시판 프로젝트
  • 무서운 이야기
  • 김영한의 스프링 핵심 원리
  • 데이터베이스 설계
  • 노마드코더의 zoom클론코딩
  • 스프링 공부
  • 코테 알고리즘
  • C++ 알고리즘
  • java 알고리즘
  • Unity 공부
  • 스프링부트 블로그 프로젝트
  • 운영체제
  • java
  • 김영한 스프링 입문
  • Java 코테 나만의 팁
  • 인공지능
  • React&Spring 강의수강
  • 유닉스
  • 스프링 프로젝트
  • 백준 c++
  • 스프링부트 프로젝트

최근 댓글

최근 글

hELLO · Designed By 정상우.
daramG
#3 기억장치 관리
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.