본문 바로가기

운영체제

컴퓨터의 3층 구조와, 운영체제 작동의 핵심 키워드

컴퓨터의 3층 구조

컴퓨터는 크게, 하드웨어와 소프트웨어로 구성된다. 하드웨어는 피지컬 영역이라고 하고, 소프트웨어는 로지컬 또는 버츄얼 영역이라고 한다. 버츄얼 영역이고 하는 이유는 하드웨어 영역을 소프트웨어로 구현한 것이 가상화라고 불리기 때문이다.

좀 더 자세하게 컴퓨터를 나눠보면 1.하드웨어, 2.커널, 3.유저 3개의 층으로 구성되어 있다.

운영체제는 커널과 유저 층에서 작동한다. 운영체제는 한글2020같은 소프트 웨어라고 생각하면 된다. 다만, 위로는 App이 잘 작동하도록 도와주고, 하드웨어 영역을 관리하고 제어하는 시스템이다. 컴퓨터에서 작동하는 여러개의 프로세스들을 오류가 나지 않게 작동하게 하는 것이 운영체제의 역할이다.

운영체제 작동의 핵심 키워드 3개

Interrupt란,

CPU가 일을 수행하고 있는데, 잠깐 멈춰보라고 신호를 주는 것이다.

컴퓨터는 주변기기와 통신를 하여, 사람이 명령한 일을 처리하고 결과를 나타낸다. Interrupt는 컴퓨터는 주변기기와 통신(=I/O, 입출력)이 필요할 때 발생하여, CPU를 잠시 멈추고 통신을 하게한다.

Java 프로세스를 사용하여, Hello World를 모니터 화면에 출력하는 흐름을 통해, 운영체제 키워드에 대해서 알아보자.

먼저 Java 에서 print(”Hello World”)를 작성한다. 즉 Java API를 유저모드에 전달하여, 하고 싶은 일을 운영체제에 알린다.

그 다음 System Call을 통해 해당 명령,파일이 커널모드에 진입한다. 커널모드에 진입한 명령은 디바이스 드라이버에서 CPU에 인터럽트를 발생시켜, 주변기기를 작동시킬 준비를 한다. 이 때 발생하는 인터럽트는 **IRQ(interrupt request lines)**이다. IRQ에는 주변기기에 해당하는 고유 번호가 존재하여 CPU에게 해야할 일을 알린다. 예를 들어 사운드 카드는 IRQ 5번에 해당한다.

IRQ를 통해 명령을 받은 CPU는 비디오카드를 작동시켜 연결되어 있는 모니터에 Hello World를 띄어준다.

추가

블러킹아이오는 프로세스에서 CPU를 통해 주변기기를 작동시킨 후, 그 결과, 리스폰스를 받을 때까지 프로세스가 다음 동작을 하지 않고 기다리는 것을 의미하고, (=I/O 작업이 진행되는 동안 유저 프로세스는 자신의 작업을 중단한 채 대기하는 방식)

논블러킹아이오는 리스폰스가 도착하지 않아도, 본인이 해야할 다음 동작을 하는 프로세스를 의미한다. (= I/O 작업이 진행되는 동안 유저 프로세스의 작업을 중단시키지 않는 방식)