2017년 3월 19일 일요일

06. 운영체제의 기본 동작 원리-2


2) 이중 모드(Dual Mode)

 * 다중 사용자 프로그래밍 환경(서버 시스템) 혹은 개인 PC의 다중 프로그래밍 시스템(Multiprogramming System)에서 특정 사용자의 프로그램이 고의 또는 실수로 시스템 전체 혹은 다른 사용자에게 영향을 미치는 것을 방지하기 위해 방법.
 * 다른 사용자의 프로그램을 보호하고 시스템 전체의 안정된 운용을 위한 것임.
 * 사용자 모드(User Mode)와 특권 모드(Privileged Mode)로 구분함.
  : 하나의 프로그램(프로세스)은 사용자 모드와 특권 모드가 끊임 없이 전환되면서 실행됨.
  : 특권 명령
   - 하드웨어의 동작, 시스템의 통합 환경 변경 등 개별 유저가 실행해선 안되는 명령
   - 사용자 모드에서는 실행 불가
   - 오직 특권 모드에서 시스템에 의해서만 실행가능한 명령
   - 예) STOP, HALT, RESET

 (1) User Mode (사용자 모드)
  : 사용자 프로그램이 실행되는 상태
  : 일반적으로는 사용자 모드 상태이나 실행중 필요에 의해 순간순간 특권 모드로 강제 전환된다.
  : 사용자 모드에서 특권 명령을 실행하려 하면 인터럽트가 걸려서 해당 프로그램을 강제로 종료 시킴.

 (2) Privileged Mode(특권 모드)
  : Supervisor, System, Monitor, Kernel Mode 라고도 함.
  : 프린터, 읽기, 저장 등은 모두 특권 모드에서 실행됨.
  : 시스템 종료 및 리부팅, 시스템 환경 설정 등

 (3) 이중 모드의구현 원리
  : CPU Register에 모드를 나타내는 플래그(flag)를 둔다.
  : 운영체제 서비스가 실행될 때는 특권 모드로 전환(플래그 1)
  : 사용자 프로그램 실행될 때는 사용자 모드로 전환(플래그 0)
  : 인터럽트(하드웨어 또는 소프트웨어)가 발생하면 특권 모드로 전환(플래그 1)
  : 운영체제 서비스가 끝나면 다시 사용자 모드로전환(플래그 0)
  : User Mode: 키보드, 마우스 입력
             -> System Mode: ISR 처리
                     -> User Mode: 저장, 출력 명령
                                   -> System Mode: ISR 처리
                                              -> User Mode: ...

댓글 없음:

댓글 쓰기