[운영체제] 4. 이중모드,하드웨어 보호

이호용·2021년 4월 3일
0

운영체제

목록 보기
3/12

아래 내용들은 양희재 교수님의 운영체제 강의를 듣고 정리한 내용입니다.

이중모드, 하드웨어 보호

1. [문제점] 한컴퓨터를 여러 사람이 사용한다. (여러 사람들이 서버 컴퓨터에 접속해서 같이 사용함)

  • 문제점
  • 한사람의 고의/실수로 서버를 날려버리면 모든 유저들이 서버를 사용 못한다.

2. [해결법] 사용자 프로그램은 STOP 등 치명적 명령 사용불가하게! – 사용자 (user) 모드 vs 관리자 (supervisor) 모드

  • stop이라는 명령을 서버에 내리면 멈춰버리는데, 이런 명령어들을 모든 사용자들이 접근가능하면 통제가 안된다. 그래서 만든게 이중모드 이다.
  • 이중 모드 (dual mode) : 관리자들만, stop같은 특권 명령어를 사용가능하게 만듬
  • 관리자 모드 = 시스템 모드 = 모니터 모드 = 특권 모드
  • Supervisor, system, monitor, priviliged mode

1. 이중 모드 (dual mode)

  • 레지스터에 모드를 나타내는 플래그(flag)를 저장해둔다
  • 이 플래그가, 운영체제 서비스 실행될 때는 관리자 모드 저장되어 운영체제가 끝날때 사용자 모드로 바뀐다.
  • 사용자 프로그램 실행될 때는 사용자 모드
  • 하드웨어/소프트웨어 인터럽트 발생하면 관리자 모드(예를들면 사용자 모드로 게임 프로그램을 돌리던중 데이터를 저장해야할 일이 생겨 하드웨어에 데이터를 남길려고할떄 인터럽트를 발생시켜 os에게 데이터를 저장해달라고 부탁을 한다.그러면 os가 데이터를 저장하는 식으로 진행한다. 만약 사용자모드로 데이터를 저장하게 하드웨어 접근을 풀어둔다면, 사용자가 마음대로 하드웨어(이때 말하는 컴퓨터는 하나의 컴퓨터에 여러 단말기를 생각하는게 이해하기 쉽다., 공공 컴퓨터의 데이터를 보는걸 방지한다는 말임.)를 뒤져볼수 있어서 위험하기에, 이러한 인터럽트 방식으로 os를 통해 저장하는 방식을 주로 이용하게 되었다.)
  • 운영체제 서비스가 끝나면 다시 사용자 모드

2. 하드웨어 보호

1. 입출력장치 보호

문제점

  • 서버 컴퓨터는 여러 사용자가 사용한다.
  • 만약 공공 프린터가 있는데, 이 공공프린터는 여러 피시들이 프린터 하겠다고 명령을 내릴수 있다. 그중 한사람이 프린터를 진행중인데 다른 유저가 reset명령이나 stop명령등을 날려버리면, 해당 프린트는 멈추게 된다. ㅠ..ㅠ 그래서 이러한 위험한 명령어는 os 관리자만 접근하게 해주어야한다.
  • 공공서버에 있는, 유저아이디를 본인이 아니면 접근하면 안된다. 이러한 관리도 os에서 사용자에 따라 해당 데이터가 접근 가능한지 불가능한지 결정해준다.(하드디스크)

해결법

  • 입출력 명령을 특권명령으로 : IN, OUT
  • 입출력을 하려면 운영체제에게 요청하고 (system mode 전환),
  • 운영체제가 입출력 대행, 마친 후 다시 user mode 복귀
  • 올바른 요청이 아니면 운영체제가 거부
  • 사용자가 입출력 명령을 직접 내린 경우?
  • Privileged instruction violation
  • 특권명령을 침범했다고 말을하고 (보통 이런 프로그램을 강제로 종료시킴)

2 메모리 보호

문제점

  • 다른 사용자 메모리 또는 운영체제 영역 메모리 접근
  • Multiprogramming,Time-sharing 시스템의 경우 하나의 램에 os와 여러개의 프로그램이 돌아가고 있다.
  • 그중 어느 한 프로그램에 나쁜 마음을 먹고 o/s를 침범해서 사용하면 해킹을 할수도 있게된다.
  • 다른 사용자 정보/프로그램에 대한 해킹
  • 운영체제 해킹

해결법

  • MMU 를 두어 다른 메모리 영역 침범 감시하도록 (Memory
    Management Unit) (램위에 os가 있고, 실행 프로그램마다 메모리 번지수가 정해져있는데, 본인 프로그램 메모리 번지수 외에는 다른 메모리 주소의 값들은 못 가져오도록 한다.)
  • MMU 설정은 특권명령: 운영체제만 바꿀 수 있다
  • 다른 사용자 또는 운영체제 영역 메모리 접근 시도?
    – Segment violation
  • 이것도 다른 메모리 침범하려고 해당프로그램을 종료시켜버린다.

3. CPU 보호

문제점

  • 한 사용자가 실수 또는 고의로 CPU 시간 독점
  • 예: while (n = 1) … ( 이러면 무한루프 빠짐.)
  • 다른 사용자의 프로그램 실행 불가
  • 램에 올라와 있는 하나의 프로그램만 돌아가고 있다.

해결법

  • Timer 를 두어 일정 시간 경과 시 타이머 인터럽트 발생
  • 인터럽트 > 운영체제 > 다른 프로그램으로 강제 전환
  • 인터럽트 덕분에 와일문에서 빠져나와 운영체제로 가게되고 운영체제에서 다른 프로그램이 동작할수 있게 해줌.

0개의 댓글