ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 기술 면접 - 운영체제 (4)
    기술 면접 2021. 4. 19. 03:18

    가상 메모리

    실제 각 프로세스마다 충분한 메모리를 할당하기에는 메모리 크기가 한계가 있음

    • 폰 노이만 구조 기반이므로, 코드는 메모리에 반드시 있어야 함
    • 가상 메모리
      • 메모리가 실제 메모리보다 많아 보이게 하는 기술
      • 프로세스 간 공간 분리로, 프로세스 이슈가 전체 시스템에 영향을 주지 않을 수 있음

    가상 메모리 아이디어

    • 프로세스는 가상 주소를 사용하고, 실제 해당 주소에서 데이터를 읽고 쓸 때만 물리 주소로 바꿔주면 된다
      • Virtual Address : 프로세스가 참조하는 주소
      • Physical Address : 실제 메모리 주소
    • MMU(Memory Management Unit)
      • CPU에 코드 실행 시, 가상 주소 메모리를 물리 주소 값으로 변환해주는 하드웨어 장치

    image

    • CPU는 가상 메모리를 다루고, 실제 해당 주소 접근시 MMU 하드웨어 장치를 통해 물리 메모리 접근
      • 하드웨어 장치를 이용해야 주소 변환이 빠르므로 별도 장치를 둔다

    페이징 시스템

    페이징 개념

    • 크기가 동일한 페이지로 가상 주소 공간과 이에 매칭하는 물리 주소 공간을 관리
    • 페이지 번호를 기반으로 가상 주소 / 물리 주소 매핑 정보를 기록 / 사용
    • 프로세스의 PCB에 Page Table 구조체를 가리키는 주소가 들어있음
    • Page 테이블에는 가상 주소와 물리 주소간 매핑 정보가 있음

    페이지 테이블

    • 물리 주소에 있는 페이지 번호와 해당 페이지의 첫 물리 주소 정보를 매핑한 표
    • 가상 주소 v = (p, d)
      • p : 페이지 번호
      • d : 페이지 처음부터 얼마나 떨어져 있는가
    • Valid Bit
      • 이 페이지가 물리 주소에 매핑되어 있는가

    다중 단계 페이징 시스템

    image

    • 페이징 정보를 단계를 나누어서 생성
      • 필요없는 페이지는 생성하지 않으면, 공간 절약이 가능함

    image

    • 메모리에 2번 접근해야 함 -> 시간이 오래 걸린다 -> TLB 사용

    페이징 시스템과 공유 메모리

    • 프로세스 간 동일한 물리 주소를 가리킬 수 있음(공간 절약, 메모리 할당 시간 절약)

    image

    • 물리 주소 데이터 변경시
      • 물리 주소에 데이터 수정 시도 시, 물리 주소를 복사함

    B8D4EADA-2E81-4E7C-9389-CD5CD4652476

    • 프로세스 생성 시간 단축
    • 커널, 공유 메모리 등 공유 데이터는 물리 메모리를 공유
      • 단순히 page table 물리 주소만 바꿔주면 된다

    요구 페이징

    요구 페이징 개념

    • 프로세스 모든 데이터를 메모리로 적재하지 않고, 실행 중 필요한 시점에서만 메모리로 적재
    • 더 이상 필요하지 않은 페이지 프레임은 다시 저장 매체에 저장함 ( 페이지 교체 알고리즘이 필요하겠네 ! )

    페이지 폴트( page fault interrupt )

    • 어떤 페이지가 실제 물리 메모리에 없을 때 일어나는 인터럽트
    • 운영체제가 page fault가 일어나면, 해당 페이지를 물리 메모리에 적재한다

    image

    페이지 교체 정책

    • 운영체제가 특정 페이지를 물리 메모리에 올려야 하는데, 물리 메모리가 가득 찼다면
      • 기존 페이지 중 하나를 물리 메모리에서 저장 매체로 내리고
      • 새로운 페이지를 해당 물리 메모리 공간에 적재함

    어떤 페이지를 물리 메모리에서, 저장 매체로 내리지?

    FIFO 페이지 교체 알고리즘

    • 가장 먼저 들어온 페이지를 내리자
    • Queue 사용

    최적 페이지 교체 알고리즘(OPT)

    • 앞으로 가장 오랫동안 사용하지 않을 페이지를 내리자
    • 구현 어려움...

    LRU(Least Recently Used) 교체 알고리즘

    • 가장 오래 전에 사용된 페이지를 교체하자
    • 과거 기록을 기반으로 시도

    LFU(Least Frequently Used) 교체 알고리즘

    • 가장 적게 사용된 페이지를 내리자

    스래싱

    • 반복적으로 페이지 폴트가 발생해서, 과도하게 페이지 교체 작업이 일어나, 실제로는 아무일도 하지 못하는 상황

    세그멘테이션 기법

    • 세그멘테이션은 크기가 다른 segment 단위로 물리 메모리에 로딩함

    image

    내부 단편화 (페이지 기법일 때)

    • 페이지 블록만큼 데이터가 딱 맞게 채워져있지 않을 때 공간 낭비

    외부 단편화 ( 세그멘테이션 기법일 때 )

    • 물리 메모리가 원하는 연속된 크기의 메모리를 제공해주지 못하는 경우

    '기술 면접' 카테고리의 다른 글

    기술 면접 - 데이터 베이스 (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

    댓글

Designed by Tistory.