2-3 보안(Protection)

10000001a·2021년 4월 8일
0

운영체제 정리

목록 보기
6/6

OS의 수많은 역할 중 하나에는 보안이 있다.

대표적으로 OS가 보호하는 것은 다음과 같다

  1. I/O
  2. Memory
  3. CPU

I/O Device Protection

  • 입력장치로부터 정보를 받아오는 명령어
  • 출력장치로부터 정보를 받아오는 명령어
  • 입출력 장치를 제어하는 명령어

위와같은 명령어들은 유저 프로그램에 사용 권한을 줄 경우 다른 사용자들이 피해를 입을 수 있다.
따라서 특권 명령(Privileged Instruction)으로 등록되어있다.
유저 프로그램은 해당 명령어를 사용할 수 없고, SW Interrupt를 통해 OS에게 해당 명령어의 사용을 요청해야한다.

Memory Protection

  • 특정 process가 다른 process 영역에 있는 명령어를 읽으려 하는 경우
  • process가 ISR을 변경하려는 경우

Multiprogramming system이나 Time sharing system에서는 여러 프로세스를 메인 메모리에 올려놓는다.
이 때 위와 같은 문제가 발생할 수 있다.

예를 들어 CPU가 Process A를 실행하고 있을 때 Process A의 코드가 Process B의 영역에 있는 명령어에 접근하려 한다면 이는 프로세스 간 침범이므로 막아야만 한다.
이를 막는 방법으로는 CPU가 MEM으로 접근하는 통로인 Address Bus에 문지기 코드를 삽입하는 것이다.
문지기 코드는 base와 limit을 통해 프로세스가 차지하고 있는 메모리 주소 값을 알고있다. 이를 통해 접근하려는 메모리 주소가 CPU가 실행중인 프로세스의 메모리 주소인지를 확인하고, 아니라면 Internal Interrupt를 건다. => SEGMENT VIOLATION

CPU PROTECTION

  • CPU 보호가 필요한 이유
    하나의 컴퓨터를 여러 사용자가 같이 사용하기 때문에
    하나의 유저가 여러 프로그램을 돌리기 때문에
    고의 혹은 실수로 특정 프로그램이 CPU를 독점할 수 있다.

CPU PROTECTION을 해결해주는 것으로 Timer Interrupt가 존재한다.

Timer Interrupt는 CPU에 일정 주기마다 Interrupt를 건다. Timer의 ISR은 특정 프로그램에 CPU의 시간이 몰려있지 않은지 확인하고 몰려있다면 CPU가 할당하는 시간을 강제로 재조정하여 다음 프로그램을 실행하게 한다.

profile
잘 부탁드립니다!

0개의 댓글