목록2024/11 (34)
코드네임 :
[ 페이지 교체 ]: 메모리 프레임 중 하나를 선택하여 비우고, 이곳에 요청된 페이지를 적재하는 과정- 페이지 폴트 핸들러에서 실행되는 작업- 희생 프레임 (victim frame) : 비우기로 선택된 프레임- 희생 페이지 (victim page) : 희생 프레임에 들어있는 페이지- 희생 페이지는 swap-out, 요청 페이지는 swap-in [ 선입 선출 교체 알고리즘 (FIFO) ] ⬇️ 해결책들 !!1. [ 최적 페이지 교체 알고리즘 (OPT) ] 2. [ 최근 최소 사용 교체 알고리즘 ] 3. [ LRU 구현 : 카운터 이용 ] 4. [ LRU 구현 : 스택 이용 ] 5. [ LRU 구현 : LRU 근접 알고리즘 ] 6. [ LRU 구현 : 참조 비트 쉬프트 알고리즘 ]7. [ LRU 구현 :..
페이지 폴트와 스래싱 : 페이지 폴트가 발생하면 필연적으로 디스크 I/O 증가 [ 스래싱 ]: 페이징 폴트가 과다하게 방생하여 CPU 활용률이 대폭 감소하는 현상 [ 스래싱 원인 ]1. 다중 프로그래밍 정도가 과도한 경우 ( 메모리에 비해 너무 많은 프로세스 실행됨)2. 잘못된 메모리 할당 / 페이지 교체 알고리즘3. 기본적으로 메모리 량이 적을 때4. 우연히도 특정시간에 너무 많은 프로세스 실행 [ 지역성 ]: 실행 중인 프로세스가 동일한 값이나 관련 저장 위치를 자주 엑세스 하는 현상(균일하게 엑세스하는 것이 아닌 선호하는 특정 페이지만 집중적으로 참조하는 현상) [ Working Set Model - 작업 집합 모델 ]**Working Set Model(작업 집합 모델)**은 가상 메모리 관리에..
[ 요구 페이징 ]: 현재 실행에 필요한 일부 페이지만 메모리에 적재하고 나머지는 하드디스크에 두고, 페이지가 필요할 때 메모리에 적재하는 방식 (요구 : 페이지가 실행에 필요할 때 물리 메모리를 할당받고 디스크에 읽어 적재) [ 요구 페이징 구현의 전형적인 형태 ]- 운영체제는 첫 페이지만 물리 메모리에 적재하고,- 실행 중 프로세스가 다른 페이지를 필요로 할 때 그 때에 물리 메모리에 적재 [ 스왑 영역 ]: 메모리가 부족할 때 메모리를 비우고 페이지를 저장해두는 하드 디스크의 영역 [ fork()의 완전복사 & 쓰기 시 복사 ] **쓰기 시 복사(Copy-On-Write, COW)**란, 부모 프로세스와 자식 프로세스가 동일한 메모리 페이지를 공유하다가, 어느 한쪽에서 해당 페이지를 수정하려고 할 ..
(a) 프로세스가 물리 메모리보다 큰 경우설명:하나의 프로세스가 실행되려면 물리 메모리에 적재되어야 합니다. 그러나 프로세스가 사용하는 메모리 크기가 물리 메모리의 크기보다 클 경우, 프로그램을 한 번에 실행할 수 없습니다.(b) 여러 프로세스들의 총 크기가 물리 메모리보다 큰 경우설명:여러 프로세스가 동시에 실행되려면 모두 물리 메모리에 적재되어야 합니다. 하지만 이 프로세스들의 총 메모리 요구량이 물리 메모리보다 큰 경우, 모든 프로세스를 동시에 실행할 수 없습니다.⬇️[ 가상 메모리의 필요 ]: 물리메모리 크기 한계를 극복하는 해결책!! 가상 메모리는 프로그램의 일부(페이지 또는 세그먼트)를 물리 메모리에 적재하고, 나머지는 하드 디스크와 같은 보조 기억 장치에 보관합니다. 실행 중 필요한 부분만 ..
[ 페이징과 세그먼테이션의 장단점 취합 ]페이징 단정 : 내부 단편화 발생 가능페이징 장점 : 메모리 효율적 사용 + 작업크기가 동일하여 다양한 알고리즘을 개발세그먼 단점 : 외부 단편화 발생 가능세그먼 장점 : 가변적인 데이터 구조와 모듈 처리, 공유와 보호 자원 관리⬇️외부 단편화 문제를 제거하면서 할당 과정을 쉽게 해결
[ 페이징 ]ㄴ 고정크기, 분할메모리 할당 (아래 퀴즈)물리메모리 주소공간 최대크기 : 2^(비트크기)프로세스의 주소공간 크기 : 2^(비트크기)한 프로세스의 최대 페이지 개수 : 프로세스주소공간크기/페이지크기페이지 테이블 크기 : 비트 x 최대 페이지 개수 [ 페이징 구현 ]