본문 바로가기
컴퓨터공학/운영체제

[운영체제] 커널 영역

by 독서왕뼝아리 2023. 9. 9.

커널

OS엔 유저모드와 커널모드가 존재!!!!

프로그램 실행 중 인터럽트가 발생하거나 시스템콜을 호출하게 되면 커널 모드로 전환된다.

 

헉 커널이 핵심이란 뜻이다. 처음 알았다. 그만큼 운영체제에서 커널이 중요하다는 뜻이다!!!!!!

 

시스템 전반을 관리/감독하는 역할

하드웨어와 관련된 작업을 직접 수행

커널 모드

프로그램의 현재 cpu 상태를 저장함

커널이 인터럽트, 시스템콜 직접 처리 → 처리 완료되면 중단됐던 프로그램의 cpu 상태를 복원

왜 필요하죠?

시스템 보호하기 위해

 

 

OS event

OS 이벤트엔 세 종류가 있다. (사실 더 크게 보면 두 종류이다)

 

 

인터럽트

보통 하드웨어에 의해 발생, 소프트웨어도 발생 가능

 

(원문 : Trigger the processor to execute the corresponding interrupt handler routine)

프로세서는 인터럽트 pin(INT pin)을 가지고 있음. 인터럽트가 들어오면 상응되는 pin에서 interrupt handler routine을 실행

멀티 하드웨어를 가지고 있더라도 싱글 INT pin을 가지고 있음. 인터럽트 컨트롤러가 어느 디바이스가 인터럽트를 발생시켰는지 관제함.

  • 비동기 인터럽트 : 하드웨어 인터럽트, 에측 불가능한 이벤트 예로 I/O interrupt, keyboard event, network packet arrived, timer ticks 등이 있다.
  • 동기 인터럽트(=트랩) : 기준에 또는 시간에 맞춰 수행시키는 것, 명령어 실행 후 그 결과로 발생하는 경우가 많다. 예로 CPU가? 0으로 나누기, 타이머, Page fault, I/O 인터럽트 가 발생한 경우 등이 있다.

 

트랩

소프트웨어에 의해 발생

 

OS 루틴을 호출 또는 수학적 에러 catch

exception(internal event)과 시스템콜

 

동기 이벤트

Invoke OS functionality - it transfer the control to trap handler

 💡 뇌피셜
인터럽트는 비동기라 handler routine을 실행한다고 하고 트랩은 동기라 hanlder에게 제어권을 넘긴다는 것 같음

 

Exception

프로세스가 자동적으로 발생시킴

또 익셉션은 fault와 abort로 나뉨

fault는 회복 가능한 에러

abort는 회복 불가능하거나 어려운 에러