한빛미디어의 <혼자 공부하는 컴퓨터 구조+운영체제>를 요약 정리했습니다.
-
스와핑 : 메모리에서 사용되지 않는 일부 프로세스를 보조기억장치로 내보내고, 실행할 프로세스를 메모리로 들여보내는 메모리 관리 기법
- 스왑 영역 : 프로세스들이 쫓겨나는 보조기억장치의 일부 영역
- 스왑 아웃 : 현재 실행되지 않는 프로세스가 메모리에서 스왑 영역으로 옮겨지는 것
- 스왑 인 : 스왑 영역에 있던 프로세스가 다시 메모리로 옮겨오는 것
-
메모리 할당
- 최초 적합 : 최초로 발견한 적재 가능한 빈 공간에 프로세스를 배치하는 방식
- 최적 적합 : 프로세스가 적재될 수 있는 가장 작은 공간에 프로세스를 배치하는 방식
- 최악 적합 : 프로세스가 적재될 수 있는 가장 큰 공간에 프로세스를 배치하는 방식
-
외부 단편화 : 프로세스를 할당하기 어려울 만큼 작은 메모리 공간들로 인해 메모리가 낭비되는 현상
- 압축 : 여기저기 흩어져 있는 빈 공간들을 하나로 모으는 방식으로 외부 단편화를 해결할 수 있으나 빈 공간들을 하나로 모으는 동안 시스템은 하던 일을 중지해야 하고, 메모리에 있는 내용을 옮기는 작업은 많은 오버헤드를 야기함
-
확인 문제 (p.400 ~ 401)
-
가상 메모리 : 실행하고자 하는 프로그램을 일부만 메모리에 적재하여 실제 물리 메모리 크기보다 더 큰 프로세스를 실행할 수 있게 하는 기술
- 페이징
- 메모리의 물리 주소 공간을 프레임 단위로 자르고, 프로세스의 논리 주소 공간을 페이지 단위로 자른 뒤 각 페이지를 프레임에 할당하는 가상 메모리 관리 기법
- 페이징에서도 스와핑을 사용할 수 있으며, 스왑 아웃은 페이지 아웃, 스왑 인은 페이지 인이라고 부름 (프로세스 전체가 스왑 아웃/인 되는 것이 아닌 페이지 단위로 스왑 아웃/인)
- 페이지 테이블 : 페이지 번호를 이용해 페이지가 적재된 프레임을 찾을 수 있도록 하여 물리 주소에 불연속적으로 배치되더라도 논리 주소에는 연속적으로 배치되도록 함
- 내부 단편화를 야기할 수 있음
-
페이지 테이블 베이스 레지스터(PTBR) : 각 프로세스의 페이지 테이블이 적재된 주소를 가리킴
-
TLB : 페이지 테이블 캐시 메모리로 CPU가 발생한 논리 주소에 대한 페이지 번호가 TLB에 있을 경우 TLB 히트, 아닌 경우 TLB 미스라고 함
-
페이지 테이블 엔트리 : 페이지 테이블의 각각의 행동
- 페이지 번호
- 프레임 번호
- 유효 비트 : 현재 해당 페이지에 접근 가능한지 여부를 알려줌 (메모리에 적재되어 있다면 1, 아니면 0)
- CPU가 유효 비트가 0인 메모리에 적재되어 있지 않은 페이지로 접근하는 경우 페이지 폴트라는 예외 발생
- 보호 비트 : 페이지 보호 기능을 위해 존재하는 비트로 읽고 쓰기가 가능한 페이지인지 읽기만 가능한 페이지인지를 나타냄 (R,W,X로 나누어짐)
- 참조 비트 : CPU가 이 페이지에 접근한 적이 있는지 여부를 나타내며 적재 이후 CPU가 읽거나 쓴 페이지는 참조 비트가 1로 세팅되고, 아닌 경우 0으로 유지됨
- 수정 비트 : 해당 페이지에 데이터를 쓴 적이 있는지 없는지를 알려줌 (변경된 적이 있으면 1, 아니면 0)
-
확인 문제 (p.422 ~ 423)
-
요구 페이징 : 페이지가 필요할 때에만 메모리에 적재하는 기법
- 페이지 교체
- FIFO : 메모리에 가장 먼저 올라온 페이지부터 내쫓는 방식
- 최적 페이지 교체 알고리즘 : 앞으로의 사용 빈도가 가장 낮은 페이지를 교체
- LRU 페이지 교체 알고리즘 : 가장 오랫동안 사용되지 않은 페이지를 교체
- 프레임 할당
-
스래싱 : 프로세스가 실제 실행되는 시간보다 페이징에 더 많은 시간을 소요하여 성능이 저해되는 문제
(즉, 지나치게 빈번한 페이지 교체로 인해 CPU 이용률이 낮아지는 문제)
-
프레임 할당 방식
- 균등 할당 : 모든 프로세스에 동일한 프레임을 배분하는 방식
- 비례 할당 : 프로세스 크기에 따라 프레임을 배분하는 방식
- 작업 집합 모델 : 작업 집합(실행중인 프로세스가 일정 시간 동안 참조한 페이지의 집합)의 크기만큼만 프레임을 할당하는 방식
- 페이지 폴트 빈도 : 페이지 폴트율에 상한선과 하한선을 정하고, 그 내부 범위 안에서만 프레임을 할당하는 방식
-
확인 문제 (p.437)