-
메모리 관리Computer Science/Operating System 2021. 1. 14. 01:26
질문
9.1 배경
- 심볼릭 주소를 실제 물리 주소로 바인딩 하는 작업은 어느 시점에 일어나나요?
- 컴파일 시간
- 적재 시간
- 실행 시간
- 논리 주소와 물리 주소, 가상 주소는 무엇인가요?
- 논리 주소 : CPU가 생성하는 주소
- 물리 주소 : 메모리가 취급하게 되는 주소
- 가상 주소 : 논리 주소와 물리 주소가 다를 때 논리 주소
- MMU(Memory Management Unit)이 하는 역할은 무엇인가요?
- 가상 주소를 물리 주소로 변환시켜 줍니다
- 재배치 레지스터란 무엇인가요?
- 가상 주소를 물리 주소로 변환시킬 때 기준이 되는 레지스터입니다
- 일반적으로 논리 주소 + 재배치 레지스터의 값이 물리 주소가 됩니다
9.2 연속 메모리 할당
- 운영체제와 다른 사용자 프로그램을 현재 수행중인 사용자 프로그램의 접근으로부터 보호하는 방법은 어떤 것이 있나요?
- 상한 레지스터와 재배치 레지스터의 값을 참조하여 지정한 범위 내에 없다면 다른 프로그램에 접근한 것이기 때문에 중지합니다
- 최초 적합이란?
- 첫 번째 사용 가능한 가용 공간에 할당합니다
- 최적 적합이란?
- 사용 가능한 공간 중에 가장 작은 것을 택합니다. 리스트가 크기 순으로 되어 있지 않다면 모든 리스트를 검색해야합니다.
- 최악 적합이란?
- 가장 큰 가용 공간을 택합니다. (다른 두 개에 비해 효율이 안좋음)
- 외부 단편화란 무엇인가?
- 프로세스를 메모리에 적재하고 제거하다보면 어떤 가용 공간은 작은 조각이 되어버립니다. 이런 조각들이 여러 곳에 분산되어 있어 프로세스를 적재할 수 없을 때 발생합니다
- 내부 단편화란 무엇인가?
- 프로세스를 메모리에 할당할 때 요구된 공간보다 조금씩 더 크게 할당합니다. 이 때 실제 할당 크기와 프로세스 크기의 차이만큼 사용하지 못하는 메모리가 발생합니다.
- Compaction(압축)이란?
- 메모리 모든 내용을 한군데로 몰고 모든 가용 공간을 다른 한군데로 몰아서 큰 블록을 만드는것
9.3 페이징
- 프레임과 페이지는 무엇인가요?
- 프레임 : 물리 메모리를 이루는 같은 크기의 블록
- 페이지 : 논리 메모리를 이루는 같은 크기의 블록
- 페이지 테이블이란 무엇인가요?
- 페이지 번호와 페이지 오프셋으로 구성되어 있음
- 페이지 번호는 물리 메모리의 각 프레임의 시작 주소를 저장하고 있으며 페이지 오프셋은 참조되는 프레임 안에서의 위치입니다.
CPU에 의해 생성된 논리주소를 물리주소로 변환하는 방법은?
- 페이지 번호 p를 추출하여 페이지 테이블의 인덱스로 사용
- 페이지 테이블에서 해당 프레임 번호 f를 추출
- 논리 주소의 페이지 번호 p를 프레임 번호 f로 바꿈
프레임 테이블이란 무엇인가요?
- 운영체제는 물리 메모리를 관리하기 위해 물리 메모리의 자세한 할당에 대해 파악하고 있어야 합니다
- 어느 프레임이 할당되어 있고, 어느 프레임이 사용 가능한지, 총 프레임이 몇 개나 되는지 같은 정보들이 저장되어 있습니다.
TLB(Translation Look-Aside Buffer)
- TLB는 어떻게 동작하나요?
- TLB가 없다면 페이지 테이블에서 물리 주소를 찾아서 메모리에 접근해야되기 때문에 2번의 메모리 액세스가 필요합니다.
- TLB는 매우 빠른 연관 메모리로 구성되어 있기 때문에 TLB에 페이지를 찾아달라고 요청이 들어오면 찾고자 하는 페이지를 동시에 여러 개의 내부 키와 비교합니다.
- 페이지 번호가 같은 것이 발견되면 그에 대응하는 프레임 번호를 알려줍니다.
- 메모리 액세스를 한 번만 해도 됩니다.
- TLB 미스가 일어났을 때 하는 일은?
- TLB에서 찾지 못했기 때문에 페이지 테이블에서 프레임 번호를 찾아서 메모리에 액세스합니다.
- Hit Ratio(적중률)은 무엇인가요?
- 접근하려는 메모리의 페이지 번호가 TLB에서 발견되는 비율입니다
- 실질 메모리 접근 시간은 어떻게 계산하나요?
- hit ratio * 메모리 접근 시간 + (1 - hit ratio) * 메모리 접근 시간
스와핑
- 스와핑이란 무엇인가?
- 프로세스가 실행되기 위해서는 메모리에 있어야 합니다. 하지만 프로세스의 일부분을 백업 저장장치에 저장했다가 실행을 계속하기 위해 다시 메모리로 돌릴 수 있습니다.
- 모든 프로세스의 물리 주소 공간의 크기의 총합이 시스템의 실제 물리 메모리 크기보다 큰 경우에도 스와핑을 이용하면 동시에 실행할 수 있습니다.
요약
- 메모리는 각각 고유한 주소를 가진 큰 바이트 배열로 구성됩니다
- 각 프로세스에 주소 공간을 할당하는 한 가지 방법은 기준 레지스터와 상한 레지스터를 사용하는 것입니다
- 심볼릭 주소 참조를 실제 물리 주소에 바인딩 하는 작업은 컴파일 시간, 적재 시간, 실행 시간에 발생할 수 있습니다.
- 연속 메모리 파티션을 할당할 때는 최초 적합, 최적 적합, 최악 적합 등의 방법이 있습니다.
- 물리 메모리는 프레임이라는 고정 크기 블록으로, 논리 메모리는 페이지라는 같은 크기의 블록으로 나뉩니다
'Computer Science > Operating System' 카테고리의 다른 글
대용량 저장장치 구조 (0) 2021.01.14 가상 메모리 (0) 2021.01.14 교착 상태 (0) 2021.01.14 동기화 도구들 (0) 2021.01.10 CPU 스케줄링 (0) 2021.01.10 - 심볼릭 주소를 실제 물리 주소로 바인딩 하는 작업은 어느 시점에 일어나나요?