이중모드, 하드웨어 보호

hwakyungChoi·2020년 10월 22일
0

이중모드

한 컴퓨터를 여러 사람이 동시에 사용하는 환경

- 또는 한 사람이 여러 개의 프로그램을 동시에 사용
- 한 사람이 여러 프로그램을 사용하는 환경
- 한 사람의 고의/실수 프로그램이 전체 영향 
	- 서버 컴퓨터에 실수가 되면 다른 유저에게 영향
	- STOP,HALT,RESET 등 => 오직 관리자만 사용하게 한다고 생각
    	=> 이중 모드의 등장(사용자 모드, 관리자 모드)
    

사용자 프로그램은 STOP 등 치명적 명령 사용 불가하게!

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

특권 명령(privileged instructions)

-  관리자 모드에서만 내릴 수 있는 명령
-  STOP,HALT,RESET,SET_TIMER,SET_HW...
 

이중 모드(dual mode)

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

일반적 프로그램의 실행

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

이중 모드는 보호와 관련이 있음

하드웨어 보호

입출력장치 보호 (input/output device protection)

  • 사용자의 잘못된 입출력, 정보 등에 방해
  • ex) 실 사용자가 아닌 다른 사용자가 중간에 방해 방지
  • ex) 프린트 혼선, 리셋 등
  • ex) 다른 사람의 파일 읽고 쓰기 (하드 디스크)

  • 해결법
    - 입출력 명령을 특권명령으로 :IN,OUT
    • 입출력을 하려면 운영체제에게 요청하고(system mode 전환),
    • 운영체제가 입출력 대행을 마친 후 다시 user mode 복귀
    • 올바른 요청이 아니면 운영체제가 거부 (OS가 컨트롤 해줌)
  • 사용자가 입출력 명령을 직접 내린 경우?
    - privileged instruction violation

메모리 보호(memory protection)

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

  • 해결법
    - CPU에서 Memory로 Address가 있는데 자르게 함 => 자기 영역에 못 들어 감
    • Address bus에 문지기를 세워 주소를 낼 적에 조건에 맞는 값만 통과하게 함
      -> base, limit 사이의 범위만 통과 (base,limit 값은 OS가 설정하고 변경은 특권 모드에서만 가능)
    • MMU를 투어 다른 메모리 영역 침범 감시하도록(Memory Management Unit)
      -MMU 설정은 특권 명령: 운영체제만 바꿀 수 있다
  • 다른 사용자 또는 운영체제 영역 메모리 접근 시도?
    - segment violation

CPU 보호

  • CPU protection

0개의 댓글