메모리(RAM) 점유율의 상승하면?
- 메인 드라이브에 가상메모리 영역을 설정
- 해당 영역을 메모리처럼 사용
- 낮은 단계에 가상 메모리가 잡힐수록 엑세스 속도가 느려짐
- 이 같은 이유로 RAM 메모리가 많을수록 좋다는 것
가상 메모리
- 주메모리 RAM이 여유가 없어 오염되는 경우를 방지하기 위해 사용
- 하나의 프로세스 중 일부는 RAM에 물리 주소를, 일부는 디스크에 가상 주소를 할당
- 프로그램이 작동하면서 가상 주소와 물리 주소의 내용을 스위칭해가면서 프로그램을 실행
- 메모리 관리 장치 MMU를 통해 가상 메모리 주소를 실제 메모리주소로 변환
페이징 Paging
- 프로세스를 물리적 단위로 동일한 크기로 분할하여 메모리에 할당
- 페이지 - 고정 사이즈의 가상 메모리 내 프로세스 조각
- 프레임 - 고정 사이즈의 주 메모리 내 프로세스 조각
페이징 테이블
- 메인 메모리의 시작 주소값과 페이지 번호가 매핑되어 있는 테이블
- 이를 통해 가상 메모리가 물리 메모리 주소값을 추적할 수 있다
페이징의 장단점
- 장점
- 연속성으로부터 자유로움
- 외부 단편화가 발생하지 않음
- 단점
세그멘테이션 Segmentation
- 프로세스를 논리적 단위로 나누어 서로 크기가 다름
세그멘테이션 테이블
- 분할 방식을 제외하고서는 페이징과 똑같이 테이블에 매핑되어 있다
세그멘테이션 장단점
- 장점
- 내부 단편화 문제 해소
- 프로세스를 기능별로 분류했기 때문에, 보호 및 공유가 가능
- 단점
단편화 Fragmentation
- 메모리 공간에 사용되지 않는 작은 공간이 발생하는 현상
내부 단편화 Internal Fragmentation
- 프로세스가 메모리를 할당할 때 필요한 양보다 더 큰 단위로 할당
- 할당은 10k 만큼 받았지만 실제 필요량은 7K
- 3k를 낭비
- 페이징 기법을 사용할 때 발생
외부 단편화 External Fragmentation
- 여유 공간의 총합은 충분하지만 실제로는 분할되어 있어 가용할 수 없는 경우
- 세그멘테이션 기법을 사용할 때 발생
CPU도 작업량이 증가하면?
- CPU는 멀티프로그래밍, 멀티태스킹으로 동작
- 작업량이 많아져 부하가 걸리면 하나의 프로세스를 처리하는 데 시간이 오래걸릴 수 있음
- 정지상태로 걸리면 다음 프로세스로 넘어가기는 할 것
출처