스와핑
: 프로세스를 보조기억장의 일부 영역으로 쫓아내고, 당장 필요한 프로세스를 적재하는 메모리 관리기법
페이징
: 외부 단편화(연속적 메모리 할당 중 프로세스가 실행되고 삭제되면서 메모리가 충분함에도 불구하고 프로세스를 실행할 수 없는 상태)를 막기 위해 프로세스를 페이지 단위로 나눈것
: 단, 내부 단편화가 발생할 수 있음(페이지 내부에 빈 메모리가 발생)
페이지 테이블
: 프레임과 페이지 매핑 정보를 담고 있는 표 형태의 데이터
: 프로세스마다 페이지 테이블을 가지고 있다.
페이지 테이블 베이스 레지스터(PTBR)
: 각 프로세스의 페이지 테이블 위치를 가리키는 레지스터(베이스 레지스터)
페이지 테이블의 캐시메모리(TLB)
: 페이지 테이블이 메모리에 적재되면 페이지의 위치를 찾느라 한번, 프레임에 접근하기 위해 한번 총 2번씩 메모리에 접근하게 됨으로 캐시 테이블로 적재해서 성능을 향상 시킨다.
페이지 폴트(Page Fault)
: 접근하려는 페이지가 보조기억장치에 있을 경우
* 페이지 폴트가 발생했을때
: 작업 내역 백업 -> 페이지 폴트 루틴 실행 -> 유효비트 1로 변경 -> 접근하려는 페이지 접근
페이지 테이블의 비트
- 유효비트 : 접근하려는 페이지가 메모리(ddr5)에 있는지 보조기억장치(rom)에 있는지 (페이지 폴트)
- 보호비트 : 접근하려는 페이지 권한(read only, write, exe)
- 참조비트 : 접근한적이 있는지
- 수정비트 : 쓰기 작업을 한적이 있는 페이지인지
스래싱
: 지나친 페이징 폴트로 인해 너무 많은 시간을 소요해서 성능이 떨어짐
: 프로세스 적재가 높을수록 특정 구간에서 성능이 떨어진다
페이지 교체 알고리즘
: 페이지 폴트를 적게 일으킬 수 있도록 메모리에 적재하거나, 보조 기억장치로 내보낼 페이지를 교체하는 알고리즘
* 페이지 폴트가 적게 발생했다는 것을 아는 방법은 참조하는 페이지 중 연속된 페이지를 생략한 페이지열을 확인하면된다. => 페이지 참조열
- FIFO 페이지 교체 알고리즘
: 가장 먼저 메모리에 적재된 페이지를 보조 기억장치로 내보낸다(페이지 아웃).
* 단점 : 프로그램 실행 내내 유지해야하는 페이지일 수 있잖아
- 2차 기회 FIFO 페이지 교체 알고리즘
: FIFO 페이지 교체 알고리즘 변형
가장 오랜 페이지부터 페이지 아웃
+
-> 단, 참조 비트가 1인 경우 0으로 변경하고 한번 더 기회를 부여
-> 참조 비트가 0이면 페이지 아웃
- 최적 페이지 교체 알고리즘
: 앞으로 쓸 일이 없는 페이지를 교체(비현실적)
- LRU 페이지 교체 알고리즘
: 가장 적게 참조했었던 페이지를 페이지 아웃한다.
가상 메모리
: 프로세스의 일부만 적재하여 실제 물리 메모리보다 큰 프로세스를 실행하는 기술
'FastCampus UpStage AI > 운영체제' 카테고리의 다른 글
리눅스 실습 (0) | 2024.10.23 |
---|---|
운영체제 - 프로세스 동기화 (0) | 2024.10.21 |
운영체제 - CPU 스케쥴링 (0) | 2024.10.21 |
운영체제 - 리눅스 + 프로세스/스레드 (1) | 2024.10.21 |