본문 바로가기
CS/OS

[운영체제] 페이징을 사용한 보호와 공유

by DenverAlmighty 2024. 12. 13.

 운영체제는 페이징 방식으로 보호와 공유 측면에서 추가적인 이점을 얻을 수 있다.

 

 

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)