운영체제는 페이징 방식으로 보호와 공유 측면에서 추가적인 이점을 얻을 수 있다.
1. 보호
1) 보호(Protection)
모든 주소는 페이지 테이블을 경유한다. 그러므로 페이지 테이블 엔트리마다 r(read), w(write), x(execute) 비트를 두어 해당 페이지에 대한 접근제어가 가능해지고 해킹 등으로부터 보호할 수 있다.
cpu가 권한 없는 명령을 내리면 page table이 cpu에게 interrupt 신호를 보낸다. 그러면 cpu는 하던 일을 중지하고 OS에 특정 루틴으로가서 잘못된 시도를 하려는 프로세스를 강제 종료시킨다.
2. 공유
1) 공유(Sharing) : 메모리 낭비 방지
같은 프로그램을 쓰는 복수 개의 프로세스가 있다면, Code + date + stack에서 Code는 동일하므로 공유 가능하다.
위의 그림에서 context switching이 일어난 후 페이지 테이블에서 code 부분은 동일하게 사용한다.
단, non-self-modifying code 인 경우에만 가능하다. (= reentrant code 재진입 (가능) 코드) = pure code)
'CS > OS' 카테고리의 다른 글
[운영체제] 가상메모리 Virtual Memory (0) | 2024.12.13 |
---|---|
[운영체제] 세그멘테이션 Segmentation (0) | 2024.12.13 |
[운영체제] 페이징 Paging (0) | 2024.12.13 |
[운영체제] 가상 기억장치 (0) | 2024.12.13 |
[운영체제] 8. 연속 메모리 할당 (0) | 2024.12.13 |