페이징 - 페이지 테이블, 주소변환
메인 메모리를 효율적으로 쓰기 위해 프로세스를 일정한 크기인 페이지로 나눠서 사용하는 페이징이 나타났다. 페이징의 문제점은 내부 단편화다. 페이지 크기가 메모리에 딱 맞아 떨어지지 않을 경우 발생한다. 다행인 점은 외부 단편화 보단 그 값이 매우 적다는 것이다. 내부 단편화는 커봤자 페이지 크기 - 1byte 이기 때문이다.
세그먼테이션 - 세그먼트 테이블, 주소변환
세스먼테이션은 페이징과 다르게 프로세스를 논리적 단위로 자른다. 예를 들면 코드 영역, 데이터 영역, 스택 영역 등으로. 페이징 할 경우 cpu와 메인 메모리 사이에서 주소를 변환해주던 페이지 테이블 처럼, 세그먼트 테이블이 존재한다.
세그먼테이션은 보호와 공유 부분에서 페이징보다 우월하다. 그러나 큰 단점은 바로 외부 단편화다. 따라서 이를 해결하기 위해서 세그먼트를 페이징할 수 있다. 이러면 세그먼트의 장점인 보호와 공유, 그리고 페이징의 장점인 외부 단편화 문제 해결을 가질 수 있다. 단점은 cpu와 메인 메모리 사이에 필요한 테이블이 하나 더 늘었다는 것이다.
가상메모리
물리 메모리 크기 한계를 극복할 수 있다. 실행에 필요한 부분만 메모리에 올려두면 되기 때문이다.
요구 페이징이라는 것이 있다. 요구 페이징은 페이징한 프로세스 중 현재 사용되지 않는 페이지들은 배킹 스토어(보조기억장치 영역)에 저장해둔다. 그리고 cpu가 요구하면 이를 가져다 준다. 작동하는 순서는 cpu가 현재 없는 페이지를 요구하면 MMU가 cpu에게 인터럽트하고, cpu는 os에 이를 요청한다. os는 요청받은 페이지를 메인 메모리에 올리고, 주소가 MMU에 등록되고, 시행된다. 요구 페이징에는 pure demand paging과 prepaging이 있다. 스와핑과 비교한다면 스와핑은 프로세스 전체가 메인 메모리와 배킹 스토어를 왔다 갔다 한다면, demand paging 은 페이지 단위로 동일한 작업이 이루어진다.
'운영체제 (OS)' 카테고리의 다른 글
2022.04.29 kocw 운영체제 강의 (11/13) (0) | 2022.04.29 |
---|---|
2022.04.28 kocw 운영체제 강의 (10/13) (0) | 2022.04.28 |
2022.04.26 (8/13) (0) | 2022.04.26 |
2022.04.25 kocw 운영체제 강의 (7/13) (0) | 2022.04.25 |
2022.04.22 kocw 운영체제 강의 (6/13) (0) | 2022.04.22 |