운영체제 , 인터럽트

이한수·2022년 2월 3일
0

OS

목록 보기
1/10
post-thumbnail

혼자 공부한 내용을 정리하기 위한 용도로 작성하였다.

인터럽트 내용을 정리하기 전에 간단하게 운영체제란 무엇인지 적고 넘어가려고 한다.

컴퓨터 시스템은 하드웨어 , 운영체제 , 응용 프로그램 및 사용자로 구분할 수 있다.

하드웨어는 cpu,메모리등을 말하며 연산을 수행하기 위해 필요한 자원들을 제공한다.

응용프로그램은 워드 프로세서 , 컴파일러, 웹브라우저등 우리가 일반적으로 사용하는 프로그램들을 말한다.

그럼 운영체제란 무엇일까??

사용자가 사용하려는 응용 프로그램에서 필요한
하드웨어 자원들의 사용을 제어하고 조정한다.
즉 , 쉽게 말해 응용 프로그램들은 실행되기 위해서 하드웨어 자원을 필요로 하는데 이때 직접 하드웨어에 요청하는 것이 아닌 운영체제에게 요청을 하여 하드웨어 자원을 배분 받고 사용한다고 보면 된다.
뿐만 아니라 문서등을 하드디스크에 저장하는 역할 또한 수행하며 , 컴퓨터의 부적절한 사용을 방지하기 위해 사용자 프로그램의 수행을 제어하는 역할을 한다. (특히 입출력 장치에 깊이 관여)

운영체제 표기를 지금부터 os로 바꾸겠다.

앞서 얘기한 os는 사실 명령어의 집합이다.
이 명령어들이 수행 되기 위해서는 os도 메모리에 적재되어야 하는데 ,
그럼 언제 적재 될까??

우리가 컴퓨터의 전원을 킬 때 cpu는 가장 먼저 ROM 내부의
POST(Power On Self Test)를 읽어오는데
내 CPU의 용량이 무엇인지 , 마우스등 장치가 연결되어있는지 등을 확인한다.
그 후에 부트스트랩 프로그램을 실행하여 , 하드디스크 안에 설치되어있는 OS정보를 읽어 메인메모리(RAM영역)로 가져온다 ( 이 과정을 부팅이라고 한다)

그 순간부터 os가 역할을 수행하며 , 컴퓨터가 꺼지기 전까지 메모리에 계속 올라와있어 이를 메모리에 레지던트한다고 표현하기도 한다.

무튼 서론이 길었는데 이러한 운영체제 내부의 명령어들은 평상시에는 작동하지 않다가 인터럽트가 발생하면 동작을 수행하기에 인터럽트 기반이라고 한다.

인터럽트란??

CPU가 프로그램을 실행시키는 와중에 , 그 작업을 중단하고 요청된 동작을 수행하도록 하는것이라 볼 수 있다.
이 인터럽트가 발생되면 cpu하드웨어에는 인터럽트 요청라인 이라는 선이 있다.
이때 cpu는 하나의 명령어 실행을 완료할때 마다 이 선을 감지하는데 ,
신호가 감지될시 인터럽트 요청을 읽고 해당 인터럽트와 관련된 os안에 ISR(Interrupt Service Rootine)을 실행한다.

ISR(Interrupt Service Rootine)는 Interrupt Handler 라고도 한다.

더 자세하게 얘기하자면 , cpu는 인터럽트 요청라인에서 인터럽트 번호를 읽은 후에 인터럽트 벡터에서 번호에 해당하는 주소값을 참조하여 ISR을 수행하게 된다.
인터럽트 처리가 완료되면 cpu는 기존에 중단했던 작업을 다시 수행한다.

인터럽트 벡터??
인터럽트는 매우 빈번하게 발생하므로 빠르게 처리되어야 하므로,
필요한 속도를 제공하기 위해 각 인터럽트들에 번호를 부여하고 각각 수행되어야할 ISR의 주소값들을 매핑하여 테이블형태로 구성해놓은 것을 말한다.

이러한 인터럽트는 또 크게 하드웨어 인터럽트와 소프트웨어 인터럽트로 나눌 수 있는데 ,

하드웨어 인터럽트의 경우 디스크 컨트롤러나 주변장치로부터 발생된다.

반면에
소프트웨어 인터럽트는 트랩 또는 예외 혹은 사용자 프로그램의 특정 요청 때문에 발생하는 것을 말한다.

양희재 교수님의 강의와 Operating System Concepts라는 책을 참고하여 공부하였다.

profile
성실하게

0개의 댓글