[면접을 위한 CS 지식 노트] 운영체제

재오·2023년 4월 11일
1

CS

목록 보기
11/35
post-thumbnail

OS란?

OS는 컴퓨터의 하드웨어를 관리해주는 역할을 한다. 컴퓨터의 하드웨어에는 CPU, Memory, Storage, I/O device가 있다. 그중 CPU와 메모리는 프로그램의 수행을 제어한다. 운영체제는 응용프로그램과 하드웨어 사이에 있다. OS를 거치지 않고서야 하드웨어에 접근할 수 없다. 여기서 OS를 거친다는 의미는 OS에서 제공하는 System call을 호출하여 이 함수를 통해 하드웨어에 접근하게 해주는 것이다.

Kernel

OS의 핵심파트이며 보통 Linux kernel 이라 부른다. Android OS 안에도 Linux kernel이 존재한다.

I/O operation

모든 I/O 디바이스에는 controller 가 존재한다. 이 controller는 깡통 같은 기계 안에 들어있는 보드를 의미한다. 보드인 controller에서 메모리로 왔다갔다 하는게 I/O operation이다. I/O operation을 수행하라고 하는 역할은 CPU가 한다.

DMA(Direct Memory Access)

CPU의 간섭 없이 I/O operation을 하는 것이 DMA 이다. I/O와 프로그램 수행이 동시에 일어날 수 있게끔 하고 I/O하는 동안에 다른 일을 할 수 있다. 그리고 I/O가 끝난 것을 CPU에게 알려주는 것을 interrupt라고 한다.

Interrupt 생성과 동작

interrupt를 생성하는 것은 source이다. 이 source 마다 함수로 만드는 것이 ISR Handler이다. Handler가 이미 kernel안에 있어야만 한다. 여기서 ISR을 등록해주는 것이 핵심이다. 딜레이 없이 source가 입력되면 interrupt가 발생하고 무조건적으로 Handler가 수행된다.
예를 들어 B라는 interrupt가 발생하면 kernel 안에 있는 interruptB를 수행한다.
Interrupt Vector 안에는 sourceHandler가 있다. source가 발견되면 벡터를 look up해서 주소가 담긴 Handler을 확인한다. 주소를 저장해놔야 interrupt 발생하기 이전에 위치로 다시 돌아가서 원래 하던 일을 수행할 수 있게끔 해준다.

profile
블로그 이전했습니다

2개의 댓글

comment-user-thumbnail
2023년 4월 11일

좋은 글 감사합니다 !

1개의 답글