본문 바로가기

Programming/Operating System

운영체제 정리 2

Chapter 2 System Structure(1)

 

 

- Mode bit - 

 

사용자 프로그램의 잘못된 수행으로 다른 프로그램 및 운영체제에 피해가 가지 않도록 보호 장치가 필요하다.

Mode bit을 통해 하드웨어적으로 두 가지 모드의 Operation을 지원한다.

 

사용자 모드 (1): 사용자 프로그램 수행

모니터 모드 (0): OS 코드 수행 (모니터 모드 = 커널 모드 = 시스템 모드)

 

* 보안을 위협할 수 있는 중요한 명령어는 모니터 모드에서만 수행 가능한 '특권명령'으로 규정

 

* Interrupt나 Exception 발생시, 하드웨어가 Mode bit을 0으로 바꾼다

 

* 사용자에게 CPU를 넘기기 전, Mode bit을 1로 설정한다

 

 

- Timer -

 

*정해진 시간이 흐른 뒤 운영체제에게 제어권이 넘어가도록 Interrupt를 발생시킨다.

 

*타이머의 매 클럭 마다 1씩 감소한다

 

*타이머 값이 0이 되면 타이머 인터럽트가 발생한다

 

*특정 프로그램의 CPU 독점을 막는다

 

Time Sharing 구현 위해 널리 사용됨

현재 시간 계산 용도로도 사용됨

 

- I/O Device Controller -

 

* 해당 I/O 장치 유형을 관리하는 일종의 작은 CPU

 

* 제어 정보를 위해 Control Register, Status Register를 가짐

 

* Local buffer를 가짐 (일종의 Data Register)

 

I/O는 실제 장치(Device)와 Local Buffer 사이에서 일어난다. Device Controller는 I/O가 끝났을 경우에

Interrupt로 CPU에 그 사실을 알린다.

 

Device Driver -> Software

: OS 코드 중 각 장치별 처리 루틴

 

Device Controller -> Hardware

: 각 장치를 통제하는 일종의 CPU

 

- I/O의 수행 -

 

* 모든 I/O 명령은 특권명령이다

 

사용자 프로그램의 I/O 방법

-> 시스템 콜(System Call): 사용자 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출하는 행위

* 사용자 프로그램은 운영체제에 I/O 요청

 

* Trap 사용하여 Interrupt Vector의 특정 위치로 이동

 

* 제어권이 Interrupt Vector가 가리키는 Interrupt Service Routine으로 이동

 

* 올바른 I/O 요청인지 확인 후 수행

 

* I/O 완료 시, 제어권을 System Call 다음 명령으로 옮긴다 -> Hardware Interrupt

 

- Interrupt -

* Interrupt 된 시점의 Register와 Program Counter를 저장한 뒤 CPU의 제어를 Interrupt Service Routine에 넘긴다

 

Interrupt의 의미

* Interrupt(Hardware Interrupt) => 일반적인 Interrupt의 의미

-> Hardware가 발생시킨 Interrupt

 

* Trap(Software Interrupt)

-> Exception: 프로그램이 오류를 범한 경우

-> System Call: 프로그램이 커널 함수를 호출하는 경우

 

*Interrupt Vector: 해당 Interrupt의 처리 주소를 갖고 있다

 

*Interrupt Service Routine: 해당 Interrupt를 처리하는 커널 함수

 

'Programming > Operating System' 카테고리의 다른 글

운영체제 정리 3  (0) 2020.09.22
운영체제 정리 1  (2) 2020.07.22