CS/운영체제

User Mode, Kernel Mode, Interrupt

nolzaheo 2021. 8. 27. 16:51
728x90

현대 OS는 사용자 프로그램의 간섭으로부터 운영체제 및 프로세스 제어블록과 같은 주요 운영체제 테이블을 보호하기 위해 User Mode와 Kernel모드를 나누어 관리한다. 따라서 어플리케이션 프로그램들은 직접 I/O 장치에 접근할 수 없다.

 

User Mode

-권한을 덜 가진 모드

-사용자 프로그램들이 수행됨

-HW resource에 대해서는 모두 접근 가능

 

Kernel Mode

-더 많은 권한을 가진 모드

-User Mode가 접근할 수 있는 것들 외에 system resource에 대해서도 접근가능

user mode와 kernel mode

User Mode와  Kernel Mode의 구분

모드 비트(mode bit)로서 구분됨

mode bit가 1 일 경우 user mode, 0일 경우 kernel mode

User Mode와 Kernel Mode 전환은 interrupt를 통해 이루어진다.

 

인터럽트(interrupt)

CPU가 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 장치나 예외상황이 발생하여 처리가 필요할 경우에 마이크로프로세서에게 알려 처리할 수 있도록 하는 것

interrupt는 크게 HW interrupt와 SW interrupt로 나뉨

-HW interrupt : 하드웨어가 발생시키는 인터럽트로, CPU가 아닌 다른 하드웨어 장치가 cpu에 어떤 사실을 알려주거나 cpu 서비스를 요청해야 할 경우 발생

ex) I/O 인터럽트, 클럭 인터럽트(Time Quntum이 다 되어 running process를 전환해야 할 경우)

-SW interrupt : 소프트웨어가 발생시키는 인터럽트로 소프트웨어(사용자 프로그램)가 스스로 인터럽트 라인을 세팅함

ex) trap, system call, memory fault

 

인터럽트 처리 과정

PC(다음번에 실행할 명령어주소)를 PCB에 저장해두고 CPU제어를 인터럽트 서비스루틴에 넘김

인터럽트가 발생하면 CPU가 이것을 kernel의 인터럽트 핸들러에 전달함.

 

728x90

'CS > 운영체제' 카테고리의 다른 글

Process Abstraction / 프로세스 추상화  (0) 2021.08.27
OS , 커널 정의  (0) 2021.08.27
모노리틱 커널, 마이크로 커널, 하이퍼바이저  (0) 2021.08.25