관리 메뉴

caLAB

[운영체제 1주차] 하루 30분 컴퓨터 과학 공부하기 본문

개발 공부/컴퓨터 과학

[운영체제 1주차] 하루 30분 컴퓨터 과학 공부하기

도이(doi) 2021. 8. 30. 22:26
728x90

운영 체제의 정의와 역할 

운영체제란?

컴퓨터 하드웨어를 관리하는 프로그램.

컴퓨터 하드웨어를 잘 관리하여 성능을 높이고 사용자에게 편의성을 제공.

*컴퓨터 하드웨어 : 프로세서, 메모리, 디스크, 키보드, 마우스, 모니터, 네트워크...

 

컴퓨터의 구조는 크게 processor, memory, disk로 구성되어 있다.

processor는 우리가 잘 알고 있는 cpu이다.

memory는 rom, ram으로 구성되어 있다. rom은 비휘발성 메모리로 전원을 꺼도 데이터가 지워지지 않는다.

ram은 휘발성 메모리로 전원을 끄게 되면 지워진다. 따라서, rom에서 하드디스크를 뒤져서 os를 ram으로 가져온다. 이를 '부팅'이라고 한다.

disk는 프로그램을 저장하고 있는 공간이다.

컴퓨터 구조

 

운영체제는 관리 프로그램이다. 프로세서, 메모리, 디스크, 입출력 장치를 관리합니다.

커널(Kernel)과 명력 해석기(Shell)로 구성되어 있다. 커널은 핵이라는 뜻을 가지고 있으며, 핵심적인 역할을 하는 것이라고 생각하면 된다. 주로 공부하게 될 부분이다. 명령 해석기는 우리가 잘 알고 있는 shell로 os바깥 부분에 위치하여 사용자의 입력을 해석한 후에 실행한다. 

 

운영체제는 자원인 하드웨어를 관리하며, 어플리케이션을 하드웨어에 할당하는 역할을 한다. 

따라서, 컴퓨터의 운영체제가 컴퓨터의 성능에 영향을 미치게 된다. 

운영체제 관계도


일괄처리부터 시분할시스템까지 운영체제 변천 역사

컴퓨터의 역사는 1940년대 말부터 시작된다. 

초기에는 운영체제가 없었고 그 이후에 순차적 과정을 거쳐서 현재의 운영체제의 형태를 갖추게 되었다.

 

1. 운영체제 x

2. Batch Processing System (일괄처리)

3. Multiprogramming System (다중프로그래밍)

4. Time-Sharing System(시공유 시스템) - 현대

 

운영체제가 없었을 때는 컴퓨터 운영자가 따로 있어서 프로그래머가 작성한 코드를 컴퓨터에 입력하도록 도와주는 역할을 하는 사람이 따로 존재하였다. 이에 불편함을 느껴 Batch Processing System(일괄처리 시스템)이 등장하는데 이것이 최초의 운영체제의 형태이다. 일괄처리 시스템은 메모리에 한개의 프로그램만 올려서 작업을 하였는데 느린 메모리에 비하여 빠른 cpu로 자원의 낭비가 심하였다.(메모리 처리 속도가 느려서 상대적으로 속도가 빠른 cpu가 놀게되는...) 이에 대한 해결책으로 Multiprogramming System 즉, 다중프로그래밍 처리 방식이 나온다. 이는 메모리에 여러개의 프로그램들을 올려놓는 것이다. 이후 현재 사용하고 있는 Time-Sharing System 시공유 시스템이 등장하는데, 이는 다중프로그래밍에서 더 발전되어 프로그램을 쪼개서 돌아가면서 처리하기 때문에 마치 동시에 여러가지 일을 하는 것처럼 보이게 한다. 

 

Time-Sharing System

위의 이미지는 시공유 시스템에 대해서 표현한 그림이다. 만약 메모리에 n개의 프로그램이 올라가 있고 cpu가 1/100초로 처리한다고 할 때 n개의 프로그램은 1/100초씩 돌아가면서 처리된다. 한 프로그램은 초 당 100/n 번 처리되기 때문에 마치 동시에 처리되고 있는 것처럼 보인다. 예를들어서 3개의 프로그램이 동시에 돌아가고 있을 때 cpu는 한 프로그램을 초 당 약 33번 처리하게 된다. <1번 프로그램> - <2번 프로그램> - <3번 프로그램> 처리가 반복된다.

 

*컴퓨터의 규모별 분류

슈퍼컴퓨터 - 서버 - 워크스테이션 - PC - HandHeld - Embeded 

 

주로, 컴퓨터는 커다란 네트워크에 연결되어 여러 대의 pc를 사용하고, 큰 데이터를 처리하기 위해서 서버가 여러 대 있는 구조이다.


최근의 고급 운영체제, 인터럽트에 기반한 현대 운영체제

 

시공유 시스템 이후 고등 운영체제가 등장하게 되는데 이에 대해서는 짤막하게 설명하고 넘어가겠다.

이번에 운영체제를 공부하면서 주로 다룰 것은 시공유 시스템을 사용하는 운영체제이다.

 

- 다중 프로세서 시스템

- 분산 시스템

- 실시간 시스템

 

컴퓨터의 기본적인 구조는 프로세서와 메모리로 이루어져 있는 '폰 노이만 구조'이다.

폰 노이만 구조

다중 프로세서 시스템은 하나의 메모리에 여러개의 프로세서가 연결되어있다. 장비는 성능이 높아질 수록 가격이 급격하게 상승하기 때문에 저사양의 장비를 여러개 사용하는 것이 더 비용이 저렴하다. 또한, 프로세서가 여러개이기 때문에 하나의 프로세서가 죽어도 다른 프로세서가 작업을 처리할 수 있다. 

다중 프로세서 시스템

분산 시스템은 여러개의 컴퓨터를 연결하여 사용하는 것이다. 근거리 통신망인 LAN으로 컴퓨터들을 연결하여 사용한다.

분산 시스템

실시간 시스템은 군사, 항공, 우주 산업 등 실시간으로 빠르게 시간 제약을 두고 작업 해야 되는 것을 위한 시스템이다.

 

현대 운영체제는 인터럽트 기반 시스템이다.

인터럽트의 사전적 정의는 '가로 채기'이다. 부팅이 끝난 후에 운영체제는 메모리에 상주하여 이벤트를 기다린다.(IDLE상태) 여기서 말하는 이벤트는 하드웨어(마우스, 키보드)의 신호이다. 운영체제는 하드웨어의 input을 받을 때 인터럽트가 실행되어 프로그램을 구동하게 된다. 간단한 마우스 input을 받는 모식도를 아래 그려서 설명해보겠다.

마우스로 .hwp프로그램을 실행할 때 발생하는 현상

마우스를 클릭하게 되면 마우스가 cpu의 interruptor에 전기적 신호를 전달한다. 이 전기적 신호는 메모리로 가서 os에 있는 mouse interruptor service routine이라는 운영체제에 작성된 코드에 접근하여 마우스의 위치가 있던 곳에 있는 프로그램을 실행하라는 명령을 받아서 disk에 있는 .hwp프로그램을 메모리에 올리도록 명령한다. 이것이 우리가 .hwp프로그램을 실행할 때 발생하는 일련의 현상이다. 

인터럽트 기반 운영체제

위의 과정에서 처럼 os에는 다양한 interruptor service routine 코드를 가지고 있고 하드웨어 혹은 소프트웨어 인터럽트에 따라서, disk에 있는 프로그램을 구동하게 된다. iterruptor service routine에는 프로그램 실행 뿐만 아니라 마우스가 움직이는 대로 화면의 커서가 움직이게 하는 등 다양한 interruptor system들이 있다. 

728x90
반응형
Comments