-
기술 면접 - 운영체제 (4)기술 면접 2021. 4. 19. 03:18
가상 메모리
실제 각 프로세스마다 충분한 메모리를 할당하기에는 메모리 크기가 한계가 있음
- 폰 노이만 구조 기반이므로, 코드는 메모리에 반드시 있어야 함
- 가상 메모리
- 메모리가 실제 메모리보다 많아 보이게 하는 기술
- 프로세스 간 공간 분리로, 프로세스 이슈가 전체 시스템에 영향을 주지 않을 수 있음
가상 메모리 아이디어
- 프로세스는 가상 주소를 사용하고, 실제 해당 주소에서 데이터를 읽고 쓸 때만 물리 주소로 바꿔주면 된다
- Virtual Address : 프로세스가 참조하는 주소
- Physical Address : 실제 메모리 주소
- MMU(Memory Management Unit)
- CPU에 코드 실행 시, 가상 주소 메모리를 물리 주소 값으로 변환해주는 하드웨어 장치
- CPU는 가상 메모리를 다루고, 실제 해당 주소 접근시 MMU 하드웨어 장치를 통해 물리 메모리 접근
- 하드웨어 장치를 이용해야 주소 변환이 빠르므로 별도 장치를 둔다
페이징 시스템
페이징 개념
- 크기가 동일한 페이지로 가상 주소 공간과 이에 매칭하는 물리 주소 공간을 관리
- 페이지 번호를 기반으로 가상 주소 / 물리 주소 매핑 정보를 기록 / 사용
- 프로세스의 PCB에 Page Table 구조체를 가리키는 주소가 들어있음
- Page 테이블에는 가상 주소와 물리 주소간 매핑 정보가 있음
페이지 테이블
- 물리 주소에 있는 페이지 번호와 해당 페이지의 첫 물리 주소 정보를 매핑한 표
- 가상 주소 v = (p, d)
- p : 페이지 번호
- d : 페이지 처음부터 얼마나 떨어져 있는가
- Valid Bit
- 이 페이지가 물리 주소에 매핑되어 있는가
다중 단계 페이징 시스템
- 페이징 정보를 단계를 나누어서 생성
- 필요없는 페이지는 생성하지 않으면, 공간 절약이 가능함
- 메모리에 2번 접근해야 함 -> 시간이 오래 걸린다 -> TLB 사용
페이징 시스템과 공유 메모리
- 프로세스 간 동일한 물리 주소를 가리킬 수 있음(공간 절약, 메모리 할당 시간 절약)
- 물리 주소 데이터 변경시
- 물리 주소에 데이터 수정 시도 시, 물리 주소를 복사함
- 프로세스 생성 시간 단축
- 커널, 공유 메모리 등 공유 데이터는 물리 메모리를 공유
- 단순히 page table 물리 주소만 바꿔주면 된다
요구 페이징
요구 페이징 개념
- 프로세스 모든 데이터를 메모리로 적재하지 않고, 실행 중 필요한 시점에서만 메모리로 적재
- 더 이상 필요하지 않은 페이지 프레임은 다시 저장 매체에 저장함 ( 페이지 교체 알고리즘이 필요하겠네 ! )
페이지 폴트( page fault interrupt )
- 어떤 페이지가 실제 물리 메모리에 없을 때 일어나는 인터럽트
- 운영체제가 page fault가 일어나면, 해당 페이지를 물리 메모리에 적재한다
페이지 교체 정책
- 운영체제가 특정 페이지를 물리 메모리에 올려야 하는데, 물리 메모리가 가득 찼다면
- 기존 페이지 중 하나를 물리 메모리에서 저장 매체로 내리고
- 새로운 페이지를 해당 물리 메모리 공간에 적재함
어떤 페이지를 물리 메모리에서, 저장 매체로 내리지?
FIFO 페이지 교체 알고리즘
- 가장 먼저 들어온 페이지를 내리자
- Queue 사용
최적 페이지 교체 알고리즘(OPT)
- 앞으로 가장 오랫동안 사용하지 않을 페이지를 내리자
- 구현 어려움...
LRU(Least Recently Used) 교체 알고리즘
- 가장 오래 전에 사용된 페이지를 교체하자
- 과거 기록을 기반으로 시도
LFU(Least Frequently Used) 교체 알고리즘
- 가장 적게 사용된 페이지를 내리자
스래싱
- 반복적으로 페이지 폴트가 발생해서, 과도하게 페이지 교체 작업이 일어나, 실제로는 아무일도 하지 못하는 상황
세그멘테이션 기법
- 세그멘테이션은 크기가 다른 segment 단위로 물리 메모리에 로딩함
내부 단편화 (페이지 기법일 때)
- 페이지 블록만큼 데이터가 딱 맞게 채워져있지 않을 때 공간 낭비
외부 단편화 ( 세그멘테이션 기법일 때 )
- 물리 메모리가 원하는 연속된 크기의 메모리를 제공해주지 못하는 경우
'기술 면접' 카테고리의 다른 글
기술 면접 - 데이터 베이스 (2) (0) 2021.04.20 기술 면접 - 데이터 베이스 (1) (0) 2021.04.20 기술 면접 - 운영체제 (3) (0) 2021.04.19 기술 면접 - 운영체제 (2) (0) 2021.04.19 기술 면접 - 운영체제 (1) (0) 2021.04.19