본문 바로가기
IT 공부/운영체제(완)

운영체제 6 가상 메모리

by 랜턴K 2025. 3. 6.
반응형

연속 메모리 할당 ; 프로세스에 연속적인 메모리 공간을 할당하는 방식 
스와핑 ; 현재 실행되지 않는 프로세스에 다른 프로세스를 적재하여 실행
-> 스왑 영역 ; 프로세스들이 쫓겨나는 보조기억장치 일부 영역 
-> 스왑 아웃 ; 메모리에서 스왑영역으로 쫓겨나는 것 
-> 스왑 인 ; 스왑 영역 프로세스가 다시 메모리로 옮겨 오는 것 

메모리 할당 
- 최초 적합 ; 빈 공간을 순서대로 검색하다고 적재 가능 공간 발견 시, 배치 
- 최적 적합 ; 프로세스가 적재될 수 있는 가장 작은공간에 할당 
- 최악 적합 ; 프로세스가 적재될 수 있는 가장 큰 공간에 할당 

외부 단편화 ;
프로세들이 종료되기를 반복하면서 빈 공간들 발생
-> 큰 프로세스 적재가 어려운 작은 빈 공간 다수일 때 

외부 단편화 해결 방법 ; 압축 ? -> 메모리 조각 모음 
메모리 조각 모음을 하는 동안 시스템 하던 일 중지 필요 
오버헤드 야기
명확한 압축 방법 정의 어려움 

가상 메모리 ; 실행하고자 하는 프로그램 일부를 메모리에 적재 
-> 실제 물리 메모리 크기보다 더 큰 프로세스를 실행 가능 
-> 페이징 기법 / 세그멘테이션

페이징 ; 연속할당 때문에 생긴 일이기 때문에 -> 불연속 할당한다
- 페이지 ; 일정한 단위의 프로세스 
- 프레임 ; 페이지와 동일한 크기의 메모리 물리 주소 공간 

페이지 테이블 ; 불연속적인 페이지를 CPU가 바라보는 논리 주소 상에서 연속적으로 배치
- 프로세스마다 각자이 프로세스 테이블을 가짐 
- CPU 내 페이지 테이블 베이스 레지스터 -> 메모리에서 프로세스 테이블 조회 
- TLB : Translation Lookside Buffer ; 페이지 테이블 캐시

페이지 테이블 엔트리
- 유효 비트 ; 현재 해당 페이지에 접근 가능 여부 ; 메모리인지 / 보조기억장치인지
 ->메모리에 없는 걸 접근할 때 ; 페이지 폴트 예외 발생 
- 보호 비트 ; 읽기만 가능한지 / 읽고 쓰기가 가능한지 
- 참조 비트 ; CPU가 이 페이지에 접근한 적이 있는 지 없는 지 
- 수정 비트 ; 데이터를 쓴 적이 있는 지 없는 지 -> 보조기억장치에 쓰기 작업을 해야하는지 판별 

페이징의 또 다른 이점
- 쓰기 시 복사 ; 프로세스 간에 페이지를 공유 -> 쓰기를 할 때 복사가 됨
  -> 메모리 절약 / 프로세스 생성 시간 절약

계층적 페이징 ; 모든 페이지 테이블을 메모리에 두지 않고 / 페이지 테이블을 페이징 
-> 몇개의 페이징된 페이지 테이블을 보조기억장치에 적재  

요구 페이징 
- 모든 페이지를 적재하지 않고 필요한 페이지만 메모리에 적재 
- CPU가 페이지에 접근하는 명령어를 실행 -> 해당페이지가 메모리 있을 경우 실행 
-> 없을 경우, 요구 페이징
- 순수 요구 페이징 ; 메모리에 페이징 없이 실행하는 경우
 -> 페이지 폴트 ; 페이지 적재 후 작업 처리 

페이징 시스템 안정적 작동 위해 필요한 2가지 
- 페이지 교체 ; 페이지 적재하다 메모리가 찰 경우, 보조기억장치로 페이지를 보내는 알고리즘 
- 프레임 할당 ; 프레임을 잘 할당하는 알고리즘

페이징 교체 -> 페이지폴트를 적게 일으키는 알고리즘이 가장 좋다 
- 페이지 폴트 횟수로 평가 : 페이지 참조열 
FIFO 페이지 교체 알고리즘 ; FIFO로 내쫓는 알고리즘 
2차 기회 페이지 교체 알고리즘 ; 참조비트를 통해서 참조 여부=1, 1은 한 번더 기회를 줌
최적 페이지 알고리즘 ; 사용빈도가 가장 낮을 페이지를 교체 -> 낮을 페이지를 알수 없으므로 이론상
LRU 페이지 알고리즘 ; 가장 오랫동안 사용되지 않은 페이지를 교체

스래싱 & 페이지 할당 
기본적으로 프레임 수가 적으면, 페이지 폴트 발생 빈도 증가
페이지 교체 시간 > 프로세스 실행 시간 => 스래싱 
동시 실행 프로세스가 늘어난다고 해서 CPU 이용률이 계속 증가하지 않음
-> 프로세스가 어느정도 늘어나면 프레임 수가 적어져서 페이지 폴트가 빈번 발생 
근본 원인 -> 프로세스가 필요한 최소한의 프레임 수가 보장되지 않기 때문 
대안 -> 프로세스 별 적절한 프레임 할당이 필요 

어떻게 페이지 할당할까? 
- 균등할당? -> 당연히 좋은 방법 아님
- 비례할당 ; 프로세스 크기에 비례하여 할당 
              -> 크기가 작아도 실행하면서 많은 프레임필요한 경우도..
-작업 집합 모델 ; 일정기간 참조한 페이지 집합을 기억하여 집중 할당 
- 페이지 폴트 빈도 ; 페이지 폴트율이 높으면 프레임을 늘려줌 / 낮으면 프레임을 줄여줌 

반응형

'IT 공부 > 운영체제(완)' 카테고리의 다른 글

운영체제 7. 파일 시스템  (0) 2025.03.07
운영체제 5 교착 상태  (0) 2025.03.04
운영체제 4 프로세스 동기화  (0) 2025.02.27
운영체제 3 CPU 스케줄링  (0) 2025.02.26
운영체제 2 프로세스  (0) 2025.02.25