Programming/운영체제

이중모드, 하드웨어 보호

1. 이중모드

  • 한 컴퓨터를 여러 사람이 동시에 사용하는 환경
  • 또는, 한 사람이 여러 개의 프로그램을 동시에 사용하는 환경

위와 같은 환경에서 한 사람/프로그램의 고의/실수가 전체에 영향을 끼칠 수 있다. EX) STOP, HALT, RESET 등

그래서 사용자 프로그램의 STOP 등 치명적인 명령의 사용을 불가능하게 만든다.

이러한 맥락에서 나온 것이 바로 이중모드이다.

  • 이중모드(dual mode)
  • 사용자(user) 모드  vs 관리자(supervisor) 모드
  • 관리자모드 = 시스템모드 = 모니터모드 = 특권모드
  • Supervisor, system, monitor, privileged mode

특권 명령(privileged instructions)

  • STOP, HALT, RESET, SET_TIMER, SET_HW

  1) 이중 모드(dual mode)

  • 레지스터에 모드를 나타내는 플래그(flag)
  • 운영체제 서비스가 실행될 때는 관리자모드
  • 사용자 프로그램이 실행될 때는 사용자 모드
  • 하드웨어/소프트웨어 인터럽트 발생하면 관리자 모드
  • 운영체제 서비스가 끝나면 다시 사용자 모드

일반적인 프로그램 실행

  • 프로그램 적재(on memory)
  • user mode > (키보드, 마우스) > system mode(ISR) > user mode > (모니터, 디스크, 프린터) >  system mode(ISR) > user mode

2. 하드웨어 보호

이중 모드는 보호(protection)와 관련이 있다.

  1) 하드웨어 보호

  • 입출력장치 보호 (Input/Output device protection)
  • 메모리 보호(Memory protection)
  • CPU 보호 (CPU protection)

    a. 입출력장치 보호

사용자의 잘못된 입출력 명령은 다른 사용자의 입출력, 정보에 방해가 될 수 있다.

예: 프린트 혼선, 리셋 등

예: 다른 사람의 파일 읽고 쓰기(하드디스크)

 

해결법:

  • 입출력 명력을 특권명령으로 : IN, OUT
  • 입출력을 하려면 운영체제에게 요청하고 (system mode 전환)
  • 운영체제가 입출력 대행, 마친 후 다시 user mode 복귀
  • 올바른 요청이 아니면 운영체제가 거부

사용자가 입출력 명령을 직접 내린 경우엔 보통 O/S가 프로그램을 강제종료시킨다.

(= Privilege Instruction violation, 특권 명령을 침범했다)

    b. 메모리 보호

다른 사용자 메모리 또는 운영체제 영역 메모리 접근

  • 우연히 또는 고의로
  • 다른 사용자 정보/프로그램에 대한 해킹
  • 운영체제 해킹

해결법:

  • MMU를 두어 다른 메모리 영역 침범 감시하도록(Memory Management Unit)
  • MMU 설정은 특권명령이므로 운영체제만 바꿀 수 있다.

다른 사용자 또는 운영체제 영역 메모리에 접근을 시도하는 경우엔 보통 O/S가 프로그램을 강제종료시킨다.

(= Segement violation)

 

    c. CPU 보호

한 사용자가 실수 또는 고의로 CPU 시간을 독점할 경우 다른 사용자 프로그램의 실행이 불가능할 수 있다.

EX) while(n = 1)...

 

해결법:

  • Timer를 두어 일정 시간 경과시 타이머 인터럽트
  • 인터럽트 > 운영체제 >  다른 사용자 프로그램으로 강제 전환