7.[os] 물리 메모리 관리

메모리 관리의 복잡성

  • 과거의 일괄 처리 시스템에서는 한 번에 한 가지 작업만 처리했기 때문에 메모리 관리가 어 렵지 않았다. 그러나 오늘날의 시분할 시스템에서는 운영체제를 포함한 모든 응용 프로그램 이 메모리에 올라와 실행되기 때문에 메모리 관리가 복잡하다.

컴파일러

  • 컴파일러는소스코드를 컴퓨터가 실행할 수 있는 기계어로 번역한 후 한꺼번에 실행할 수 있 도록 해주는 언어 번역 프로그램이다. 오류를 발견하고 코드를 최적화하기 위해 컴파일러를 사용한다. 사용자가 소스코드를 작성하면 컴파일러는 컴파일->목적 코드와 라이브러리 연 결->동적 라이브러리를 포함하여 최종 실행의 순서로 작동한다.

메모리 관리자의 정책

  • 가져오기 정책: 프로세스가 필요로 하는 데이터를 언제 메모리로 가져올지 결정하는 정책
  • 배치 정책: 가져온 프로세스를 메모리의 어떤 위치에 올려놓을지 결정하는 정책
  • 재배치 정책: 메모리가 꽉 찼을 때 메모리 내에 있는 어떤 프로세스를 내보낼지 결정하는 정책

절대 주소와 상대 주소

  • 절대주소: 실제 물리 주소를 가리키며 메모리 관리자 입장에서 바라본 주소
  • 상대주소: 사용자 영역이 시작되는 주소를 0번지로 변경하여 사용하는 주소

5. 메모리 오버레이

  • 프로세스의 크기가 실제 메모리(물리 메모리)보다 클 때 전체 프로세스를 메모리에 가져오는 대신 적당한 크기로 잘라서 가져오는 기법이다.

스왑

  • 메모리가 모자라서 쫓겨난 프로세스저장장치의 특별한 공간, 즉 스왑 영역에 모아두는 기법
  • 스왑 영역에서 메모리로 데이터를 가져오는 작업은 스왑인, 메모리에서 스왑 영역으로 데이터를 내보내는 작업은 스왑아웃이라고 한다.

메모리 분할 방식

  • 가변 분할 방식: 프로세스의 크기에 따라 메모리를 나누는 것
  • 고정 분할 방식: 프로세스의 크기와 상관없이 메모리를 같은 크기로 나누는 것

외부 단편화와 내부 단편화

  • 외부 단편화: 할당할 프로세스의 크기보다 메모리에 남아 있는 조각이 작아서 할당이 불가 능한 현상을 말한다.

  • 내부 단편화: 각 메모리 조각에 프로세스를 배치하고 공간이 남는 현상을 말한다.

가변 분할 방식의 메모리 배치 방식

  • 최초 배치: 메모리에서 적재 가능한 공간을 순서대로 찾다가 첫 번째로 발견한 공간에 프로세스를 배치하는 방법이다.
  • 최적 배치: 메모리의 빈 공간을 모두 확인한 후 적당한 크기 가운데 가장 작은 공간에 프로세스를 배치하는 방법이다.
  • 최악 배치: 최적 배치와 정반대로, 빈 공간을 모두 확인한 후 가장 큰 공간에 프로세스를 배치하는 방법이다.

조각 모음

  • 단편화가 발생하면 이미 배치된 프로세스를 옆으로 옮겨 빈 공간들을 하나의 큰 덩어리로 만드는 것을 밀한다.

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

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

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

    • 동적 라이브러리 (DLL)
  4. 메모리 관리 정책 중 메모리가 꽉 찼을 때 메모리에 있는 어떤 프로세스를 내보낼지 결정하는 것은 무엇인가?

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

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

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

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

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

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

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

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

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

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

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

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

Did you find this article valuable?

Support Software Engineer at Your Service by becoming a sponsor. Any amount is appreciated!