본문 바로가기
Computer Science/운영체제

Protection (보호)

by Luinesse 2024. 1. 17.
반응형

운영체제에는 여러 문제 발생을 막기위한 Protection이 존재합니다. 대표적으로 다음 3가지가 있습니다.

  • I/O Protection
  • Memory Protection
  • CPU Protection

이러한 보호가 존재하는 이유는, 고의든 아니든 I/O나 OS상 시스템 변경 혹은 CPU의 Timer Interrupt의 변경 등등이 일어나게되면, 아무리 변경된 내용이 더 빠를지 언정 문제가 있을지 없을지 검증되지 않았기에 운영체제에서 이를 막아두어야 하기 때문입니다.

 

먼저 I/O Protection 입니다. I/O Protection은 사용자가 I/O 명령어를 사용할 수 없게하고 OS가 처리하게 하는 작업입니다.

이를 위해 Dual Mode를 활용하여 CPU의 상태를 System Mode(Kernel Mode, Supervisor Mode), User Mode로 나누어서 사용합니다.

User Mode에서는 다른 일반적인 명령어들의 처리가 가능하지만, I/O 명령어가 들어온다면, Mode를 System Mode로 변경하여 작업합니다.

 

System Mode에서만 사용할 수 있는 명령어를 Privileged Instruction(특권 명령어, 예약어)라고 부릅니다.

 

두번째로 Memory Protection 입니다. 프로그램이 주기억장치에 저장되어있고, OS 또한 프로그램이기에 주기억장치에 저장되어 있습니다. 이때 어떠한 프로그램이 Base register나 Limit Register의 값을 변경하여, OS에 접근 혹은 다른 프로그램에 영향을 주는 것을 제한하는 작업을 Memory Protection 이라고 합니다.

 

이를 위해 프로그램 P1의 주소는 다음 처럼 제한이 걸려있습니다.

 

Base Register <= P1의 주소 <= Base Register + Limit Register

 

이때, Base Register와 Limit Register의 값 변경 또한 I/O Protection때 처럼 Privileged Instruction으로 지정합니다.

만일, P1의 주소가 조건을 벗어나게 되면 Memory Protection Violation(메모리 보호 위반) 에러로 강제 종료됩니다.

 

마지막으로 CPU Protection 입니다. CPU는 △t의 시간을 돌아가며 프로그램에 서비스하는데, 이것을 취소하게 만드는 것을 방지합니다. 따라서, Disable Timer Interrupt Instruction(Timer Interrupt를 발생하지 않게 함)을 Privileged Instruction으로 지정하여 시분할 시스템 상 에러를 방지합니다.

반응형

'Computer Science > 운영체제' 카테고리의 다른 글

Critical Section (임계구역)  (0) 2024.01.19
스레드  (0) 2024.01.19
CPU Scheduling Algorithm  (0) 2024.01.18
Context Switch (문맥교환)  (0) 2024.01.18
운영체제의 프로그램 관리  (0) 2024.01.17