728x90
2-1. 가상 메모리
가상 메모리: 물리 메모리 크기보다 큰 주소 공간을 제공하는 메모리 관리 기법
- 각 프로세스에 독립적인 가상 주소 공간 제공
- 물리 메모리와의 매핑은 운영체제가 관리
- 메모리 보호 및 효율적 사용 목적
(1) 스와핑
스와핑: 프로세스 단위로 메모리를 보조 저장장치로 이동시키는 기법
- 메모리 부족 시 비활성 프로세스 디스크 이동
- 필요 시 다시 메모리로 적재
- 컨텍스트 스위칭 비용 증가 요인
(2) 페이지 폴트
페이지 폴트: 접근한 페이지가 물리 메모리에 존재하지 않는 상황
- 가상 주소 접근 시 발생
- 디스크에서 해당 페이지 적재
- 페이지 테이블 갱신 후 명령 재실행
성능 저하 주요 원인
2-2. 스레싱
스레싱: 페이지 교체 작업 과다로 인한 시스템 성능 급락 상태
- CPU 사용률 급감
- 실행 시간 대부분을 페이지 교체에 소비
메모리 부족 상태의 대표적 증상
(1) 작업 세트
작업 세트: 일정 시간 동안 실제로 참조되는 페이지 집합
- 지역성 개념 기반
- 프로세스 정상 실행에 필요한 최소 페이지 단위
작업 세트 미충족 시 스레싱 발생 가능성 증가
(2) PFF
PFF(Page Fault Frequency): 페이지 폴트 빈도 기반 메모리 할당 제어 기법
- 페이지 폴트 빈도 증가 시 프레임 추가
- 페이지 폴트 빈도 감소 시 프레임 회수
스레싱 방지 목적의 동적 조절 방식
2-3. 메모리 할당
메모리 할당: 프로세스에 물리 메모리를 배정하는 방식
(1) 연속 할당
연속 할당: 하나의 연속된 물리 메모리 영역을 프로세스에 할당하는 방식
고정 분할 방식
- 메모리를 고정 크기로 분할
- 구현 단순
- 내부 단편화 발생
가변 분할 방식
- 프로세스 크기에 맞게 동적 분할
- 외부 단편화 발생
- 압축 필요 가능성
(2) 불연속 할당
불연속 할당: 프로세스를 분산된 메모리 영역에 나누어 할당하는 방식
페이징
- 고정 크기 페이지 단위 분할
- 내부 단편화 발생 가능
- 외부 단편화 없음
세그멘테이션
- 논리적 의미 단위 분할
- 외부 단편화 발생
- 구조적 이해 용이
페이지드 세그멘테이션
- 세그먼트 내부를 페이지 단위로 관리
- 외부 단편화 완화
- 주소 변환 구조 복잡
2-4. 페이지 교체 알고리즘
페이지 교체 알고리즘: 페이지 폴트 발생 시 교체 대상 페이지 선택 정책
(1) 오프라인 알고리즘
오프라인 알고리즘: 미래 참조를 알고 있다고 가정한 최적 알고리즘
- 가장 늦게 사용될 페이지 교체
- 실제 구현 불가
- 성능 비교 기준
(2) FIFO
FIFO: 가장 먼저 적재된 페이지 교체 방식
- 구현 단순
- 참조 패턴 미반영
- 벨라디의 역설 발생 가능
(3) LRU
LRU: 가장 오래 사용되지 않은 페이지 교체 방식
- 지역성 기반
- 성능 우수
- 구현 비용 부담
NUR
- LRU 근사 기법
- 참조 비트·수정 비트 활용
(4) LFU
LFU: 참조 횟수가 가장 적은 페이지 교체 방식
- 장기 사용 빈도 반영
- 오래된 참조 기록 문제
728x90
'What I Learned > etc.' 카테고리의 다른 글
| [CS] 운영체제와 컴퓨터 (0) | 2025.12.23 |
|---|---|
| [CS] IP주소 (0) | 2025.12.18 |
| PDF 파일에 있는 메타데이터 없애기 (0) | 2025.08.20 |
| [git] 내 레포에 다른 레포 코드 클론하기 (0) | 2025.07.15 |
| [리눅스/puTTY] 리눅스에서 파일 복사 붙여넣기 (0) | 2025.01.14 |