본문 바로가기

OS 관련/운영체제

인터럽트 기반 운영 체제

안녕하세요.


운영체제에서 두번째 글을 쓰게 되네요.


첫번째 글도 제대로 마무리 짓지 못했는데 다음글을 쓰려니 기분이 묘하네요 ㅎㅎ

원래 무언갈 마무리 짓는다는 것은 그것과 이별하는 느낌이라 슬퍼서 그런가 봐요..

이 이별을 감당할 수 있을 정도로 성장했을때, 첫번째 글을 마무리 짓도록 하겠습니다.



 이번 글의 주제는 인터럽트 기반의 운영체제 입니다.


 현대의 운영체제는 대부분이 인터럽트 기반의 시스템이라고 할 수 있습니다.

그렇다면, 이 인터럽트가 뭔지 부터 정확히 하고 넘어가야 할것 같네요.



인터럽트(interrupt)



방금 구글에서 검색해서 가져온 위키백과의 따끈따끈한 PNG 파일 입니다.

역시 위키백과답게 어렵게도 써놨습니다..

 

 간단하게 말하면 인터럽트란 가로채기라고 생각하시면 됩니다.


1)외부적이든 2)소프트웨어적으로든 아니면 3)CPU내부적으로든 어떠한 상황이 발생하면 이를 CPU가 가로채서 이 문제 부터 해결하는 것 입니다.

 

 예를들어서 마우스를 움직인다면 외부에서 전기적인 신호가 CPU에 들어오게 되고, 이를 감지한 CPU는 OS에서 마우스가 움직였을 때, 행동해야할 일을 찾아서 그 일을 먼저 해걸 하는것입니다.

 

 위의 예에서 마우스가 움직임으로서 전기적인 신호를 보내 CPU에 알리고 그 상황을 우선적으로 처리하게 하는 것 까지가 인터럽트라고 할 수 있습니다.


그렇다면 처리하기 위해 할 일은 무엇이라고 할까요?



인터럽트 서비스 루틴(interrupt Service Routine, ISR)


 네, 그렇습니다. 


처리하기 위해 하는 일을 인터럽트 서비스 루틴이라고 부릅니다. 


CPU는 인터럽트가 발생하게 되면 OS에서 발생한 인터럽트에 해당하는 인터럽트 서비스 루틴을 찾고, 그 내부의 기능을 우선적으로 처리하게 됩니다. 

 

 다시 한번, 마우스로 예를 들면 마우스 이동으로 인해 외부 인터럽트가 발생하면 인터럽트 서비스 루틴의 코드에 의해 마우스의 좌표가 이동하게 됩니다. 이외에도 키보드라든가 다른 하드웨어 장치, 소프트웨어등 OS에는 많은 인터럽트 서비스 루틴에 관한 코드를 가지고 있습니다.


 컴퓨터의 부팅 후 평소의 OS는 대기상태로 있다가 인터럽트가 발생해야 동작을 하기 시작합니다. 


즉, OS가 하는 대부분의 일은 인터럽트에 의해 발생하고, 이러한 이유로 현재의 운영체제를 인터럽트 기반의 운영체제라고 부르게 된것입니다.


 이 인트럽트는 위의 1) 2) 3) 에서 언급 했듯이 총 3가지의 인터럽트로 나뉘는데, 


1) 외부 인터럽트

2) 소프트웨어 인터럽트

3) 내부 인터럽트


위 와 같습니다. 


이 3가지의 인터럽트는 다음 글에서 다루도록 하겠습니다.


 언제나 그렇듯 글의 잘못된 내용이나 수정해야 할 부분이 있다면 댓글로 알려주시면 감사하겠습니다. 특히나 지금은 술먹고 글을 쓴 상태라 실수했을까봐 걱정되네요 ㅎㅎ 다음엔 술안먹고 쓸게요 안녕 ㅎㅎ 



 


'OS 관련 > 운영체제' 카테고리의 다른 글

인터럽트의 종류  (0) 2018.05.16
운영체제(OS)의 정의/목적  (0) 2018.04.17