관리 메뉴

나만을 위한 블로그

[혼공컴운] 14. 가상 메모리 본문

책/혼자 공부하는 컴퓨터 구조 + 운영체제

[혼공컴운] 14. 가상 메모리

참깨빵위에참깨빵 2024. 1. 6. 23:26
728x90
반응형
연속 메모리 할당

 

스와핑

 

메모리상의 빈 공간에 다른 프로세스를 올려서 실행하는 방식

스왑 영역 : 프로세스들이 쫓겨나는 보조기억장치의 일부 영역

스왑 아웃 : 지금 실행중이 아닌 프로세스가 메모리에서 스왑 영역으로 이동하는 것

스왑 인 : 스왑 영역의 프로세스가 다시 메모리로 이동하는 것

 

스와핑을 쓰면 프로세스들이 요구하는 메모리 주소 공간의 크기가 실제 메모리 크기보다 커도 프로세스들을 동시 실행 가능

메모리 할당

 

빈 메모리 공간에 프로세스를 연속 할당하는 방식

 

  • 최초 적합 : OS가 메모리 안의 빈 공간을 순서대로 검색하다 적재할 수 있는 공간을 찾으면 그곳에 프로세스 배치
  • 최적 적합 : OS가 빈 공간을 모두 검색하고 프로세스가 적재될 수 있는 가장 작은 곳에 프로세스 배치
  • 최악 적합 : OS가 빈 공간을 모두 검색하고 프로세스가 적재될 수 있는 가장 큰 곳에 프로세스 배치

 

외부 단편화

 

연속 메모리 할당은 외부 단편화 문제를 갖고 있어서 메모리를 효율적으로 쓰는 방법이 아님

프로세스들이 메모리에 연속 할당되는 곳에는 프로세스가 실행, 종료를 반복하면서 메모리 사이에 빈 공간이 생긴다. 이 공간보다 큰 프로세스를 적재하기 어려운 상황이 발생하고 메모리 낭비로 이어지게 된다. 이 현상을 외부 단편화라고 함

 

외부 단편화 해결 방안 : 메모리 압축, 가상 메모리 기법 중 페이징 기법

 

페이징을 통한 가상 메모리 관리

 

페이징

 

프로세스의 논리 주소 공간을 페이지라는 일정 단위로 자르고 메모리 물리 주소 공간을 프레임이라는 페이지와 같은 크기의 일정 단위로 자르고, 페이지를 프레임에 할당하는 가상 메모리 관리 기법

페이징에서도 스와핑 사용 가능함. 페이징에서의 스왑 아웃(인) = 페이지 아웃(인)

 

페이지 테이블 엔트리

 

페이지 테이블의 각 행

유효 비트 : 현재 해당 페이지에 접근 가능 여부. 프레임 번호 다음으로 중요 정보. 페이지가 메모리에 올라가 있으면 1, 아니면 0

페이지 폴트 : CPU가 유효 비트가 0인 메모리에 올라가지 않은 페이지로 접근할 때 발생하는 예외

보호 비트 : 페이지 보호 기능을 위해 존재하는 비트

 

페이지 교체, 프레임 할당

 

요구 페이징

 

프로세스를 메모리에 적재할 때 처음부터 모든 페이지를 적재하지 않고 필요한 페이지만 적재하는 기법

순수 요구 페이징 : 메모리에 어떤 페이지도 적재하지 않고 무작정 실행

페이지 교체 알고리즘 : 없앨 페이지를 결정하는 방법

 

  • FIFO 페이지 교체 알고리즘 : 메모리에 먼저 올라온 페이지부터 제거
  • 최적 페이지 교체 알고리즘 : CPU에 의해 참조되는 횟수를 고려하는 페이지 교체 알고리즘. 사용 빈도가 가장 낮은 페이지를 교체
  • LRU 페이지 교체 알고리즘 : 가장 오랫동안 쓰이지 않은 페이지를 교체하는 알고리즘

 

스래싱 : 프로세스의 실제 실행 시간보다 페이징에 더 많은 시간을 써서 성능이 저해되는 문제

반응형
Comments