본문 바로가기
🖥️ Computer Science

[쉽게 배우는 운영체제] ch.7 물리 메모리 관리 - 연습 & 심화 문제

by GroovyArea 2022. 11. 6.

연습 문제

1. 소스코드를 한 번에 번역하지 않고 한 행씩 번역하여 실행하는 방식을 무엇이라 하는가?

  • 인터프리터 방식

2. 프로그래머가 C나 자바로 소스코드를 작성하여 컴파일하면 일차적으로 만들어지는 코드는 무엇인가?

  • 목적코드

3. 컴파일할 때 코드에 라이브러리를 연결하지 않고 코드를 실행할 때 라이브러리를 가져와 실행하는 방식을 무엇이라 하는가?

  • 동적 라이브러리 (DLL)

4. 메모리 관리 정책 중 메모리가 꽉 찼을 때 메모리에 있는 어떤 프로세스를 내보낼지 결정하는 것은 무엇인가?

  • 재배치 정책

5. 32bit CPU를 사용하는 컴퓨터가 가질 수 있는 물리 메모리의 최대 크기는 얼마인가?

  • 4GB
  • 메모리 주소 레지스터 크기 : 32GB
  • 표현 범위 : 0 ~ 232 이므로 총 크기 232byte = 32GB

6. 절대 주소는 실제 물리 주소로, 메모리 관리자 입장에서 바라본 주소이다. 절대 주소와 관계 없이 사용자 입장에서 항상 0번지부터 시작하는 주소는 무엇인가?

  • 상대주소

7. 상대 주소를 절대 주소로 변환할 때 사용하는 레지스터는 무엇인가?

  • 재배치 레지스터

8. 프로세스의 크기가 물리 메모리보다 클 때 전체 프로세스를 메모리로 가져오는 대신 적당한 크기로 잘라서 가져오는 기법은 무엇인가?

  • 메모리 오버레이

9. 메모리 영역이 부족해서 쫓겨난 프로세스를 보관하는 저장장치의 특별한 공간은 무엇인가?

  • 스왑 영역

10. 가변 분할 방식에서 사용하지 못하는 작은 메모리 공간이 발생하는 현상을 무엇이라 하는가?

  • 외부 단편화

11. 고정 분할 방식에서 똑같이 나누어진 메모리 공간에 작은 조각이 발생하는 현상을 무엇이라 하는가?

  • 내부 단편화

12. 가변 분할 방식의 메모리 배치 방식 중 프로세스를 배치하기에 적당한 공간 가운데 가장 작은 공간에 배치하는 방식은 무엇인가?

  • 최적 배치

13. 가변 분할 방식의 메모리 배치 방식 중 첫 번째로 발견한 빈 공간에 프로세스를 배치하는 방식은 무엇인가?

  • 최초 배치

14. 가변 분할 방식의 메모리 배치 방식 중 가장 큰 공간에 프로세스를 배치하는 방식은 무엇인가?

  • 최악 배치

15. 가변 분할 방식에서 서로 떨어진 여러 개의 빈 공간을 합치는 작업을 무엇이라 하는가?

  • 조각 모음

16. 메모리 분할 방식 중 프로세스의 크기에 맞도록 1/2 크기로 잘라가면서 메모리를 나누어주는 방식은 무엇인가?

  • 버디 시스템 방식

심화 문제

1. 컴파일러와 인터프리터를 비교하여 설명하시오.

  • 컴파일러는 실행 전에 소스코드를 점검하여 오류를 수정하고 필요 없는 부분을 정리하여 최적화된 실행 파일을 만든다.
  • 변수는 미리 선언해야한다.
  • 인터프리터는 한 줄씩 위에서 아래로 실행되기 때문에 같은 일을 반복하는 경우나 필요 없는 변수를 확인할 수 없다.
  • 복잡한 프로그램에는 컴파일러는 사용하고 간단한 프로그램에는 인터프리터를 사용한다.

2. 컴파일 과정에 대해 설명하시오.

① 소스코드 작성 및 컴파일

  • 사용자가 고급언어인 자바, C언어로 작성한 소스코드를 컴파일하면 목적코드가 된다.

② 목적 코드와 라이브러리 연결

  • 목적코드가 만들어지면 라이브러리에 있는 코드를 목적 코드에 삽입하여 최종 실행 파일을 만든다.

③ 동적 라이브러리를 포함하여 최종 실행

  • 동적 라이브러리 방식은 함수가 변경되어도 새로 컴파일할 필요가 없기 때문에 함수가 변경되었을 때는 새로운 라이브러리만 사용하여 실행하면 된다.

3. 메모리 관리자가 수행하는 세 가지 작업에 대해 설명하시오.

  • 메모리 관리자는 메모리를 관리하는 역할을 한다. 정확한 명칭은 메모리 관리 유닛(Memory Manage Unit, MMU)라는 하드웨어이다.
  • 첫째, 가져오기 작업(Fetch)은 프로세스와 데이터를 메모리에 가져오는 작업이다.

    • 사용자가 요청하면 프로세스와 데이터를 모두 메모리로 가져오는데, 가져오는 프로세스나 데이터가 메모리 용량보다 클 경우 필요할 때 마다 수시로 가져와 사용할 수 있다.
    • 또한 사용자의 요청이 없더라도 앞으로 필요할 것이라고 예상되는 데이터를 미리 가져오기도 한다.
  • 둘째, 배치 작업(Placement)은 가져온 프로세스와 데이터를 메모리의 어떤 부분에 올려놓을지 결정하는 작업이다.

    • 메모리 관리의 복잡성이 달라지기 때문에 배치 작업전에 메모리를 어떤 크기로 자를 것인지가 매우 중요하다.
  • 셋째, 재배치 작업은 꽉 차 있는 메모리에 새로운 프로세스를 가져오기 위해 오래된 프로세스를 내보내는 작업이다.


4. 절대 주소와 상대 주소에 대해 설명하시오.

  • 절대 주소는 실제 물리적 주소(Physical Address)를 가르키는 주소이다.

    • 메모리 주소 레지스터가 사용하는 주소로, 컴퓨터에 꽂힌 램 메모리의 실제 주소를 말한다. 절대 주소 사용시 매번 운영체제 영역을 확인해야 한다.
  • 상대 주소(Relative Address)는 사용자 영역이 시작되는 번지를 0번지로 변경하여 사용하는 주소 지정 방식이다.

    • 사용자 프로세스 입장에서 바라본 주소이며, 절대 주소와 관계없이 항상 0번지부터 시작한다.
    • 프로세스 입장에서 상대 주소가 사용할 수 없는 영역의 위치를 알 필요가 없고, 주소가 항상 0부터 시작하기 때문에 편리하다.

5. 가변 분할 방식의 장단점을 설명하시오.

  • 장점은 프로세스를 한 덩어리로 처리하여 하나의 프로세스를 연속된 공간에 배치 할 수 있다.

  • 단점은 메모리 관리가 복잡하다. 프로세스가 끝나는 시간도 동일하지 않은 경우가 많기 때문에 메모리에 빈 공간이 생겨도 그 공간을 쓸 수 없다.


6. 고정 분할 방식의 장단점을 설명하시오.

  • 장점은 메모리를 일정한 크기로 나누어 관리하기 때문에 메모리 관리가 수월하다. 메모리 통합같은 부가적인 작업을 할 필요가 없다.

  • 단점은 쓸모없는 공간으로 인해 메모리 낭비가 발생할 수 있다. 일정하게 나누어진 공간보다 작은 프로세스가 올라올 경우 메모리 낭비가 발생한다.


7. 버디 시스템에 대해 설명하시오.

  • 버디 시스템 방식은 가변 분할 방식과 고정 분할 방식의 중간 구조이다.

  • 작동 방식 :

    • 첫째, 프로세스의 크기에 맞게 메모리를 1/2로 자르고 프로세스를 메모리에 배치한다.
    • 둘째, 나뉜 메모리의 각 구역에는 프로세스가 1개만 들어간다.
    • 셋째, 프로세스가 종료되면 주변의 빈 조각과 합쳐서 하나의 큰 덩어리를 만든다.
  • 특징

    • 가변 분할 방식처럼 메모리가 프로세스 크기대로 나뉨.
    • 고정분할 방식처럼 하나의 구역에 다른 프로세스가 들어갈 수 없음.
    • 메모리의 한 구역 내부에 조각이 생겨 내부 단편화가 발생한다.
반응형