본문 바로가기

운영체제(OS) 부수기

[운영체제 부수기] 1. 운영체제의 개념과 구조 쉽게 이해하기

 

운영체제(Operating System)의 개념

 

운영체제의 정의는 다음과 같다.

A software that operates a computer system , 다시 말해 컴퓨터 시스템을 운영하는 소프트웨어를 뜻한다.

 

그렇다면 여기서 하드웨어에 해당하는 컴퓨터(Computer)의 개념은 무엇일까?

 

컴퓨터의 정의는 A machine that processes the information, 즉 정보를 처리하는 기계를 컴퓨터라고 부른다.

 

더 나아가 정보(Information)의 개념을 살펴보자.

먼저 정보는 클로드 섀넌에 의해 정의되었고 그에 따르면 정보량은 계산을 통해 측정 가능한 대상이다.

또한 우리가 흔히 bit, byte라고 불리는 단위 또한 섀넌이 정보량의 단위를 측정하기 위해 만들어졌다고 한다.

(섀넌의 정보이론에 대한 설명은 EBS 강의를 통해 쉽고 자세하게 확인 가능하다.)

 

본론으로 돌아와 정보란 A quantative representation that measures the uncertainty, 즉 불확실성을 측정하여 수치적으로 표현한 것이라고 나타낼 수 있다.

 

컴퓨터의 정보처리

 

컴퓨터의 정보 처리 방법은 덧셈, 뺄셈을 기본으로 한다.

 

먼저 덧셈의 경우 반가산기, 전가산기의 방법을 활용한다. 뺄셈은 2의 보수 표현법을 사용한다.

곱셈은 덧셈의 반복으로 반대로 나눗셈은 뺄셈의 반복으로 계산 가능하다.

더 나아가 실수계산은 부동소수점 표현법을 활용하여 정밀도와 범위를 조절해 표현한다.

 

이러한 기본 연산을 바탕으로 수학적 함수(삼각함수), 미분, 적분, 디지털 신호 처리(사진 촬영/동영상 촬영) 등 복잡한 연산이 가능해진다.

 

그렇다면 컴퓨터가 만능일까? 컴퓨터가 처리할 수 있는 정보의 범위를 살펴보면 그 해답을 알 수 있다.

 

컴퓨터는 범용성(Universality)를 가지고 있다.

이는 기본 논리 게이트(NOT, AND, OR)를 통하는 모든 계산은 수행 가능하다는 뜻으로 이해할 수 있다.

그러나 NOT, AND, OR 게이트를 혼합하여 처리하는 것은 매우 복잡하기 때문에,

더욱 효율적으로 NAND 게이트만을 이용하여도 모든 계산이 가능하다.

 

이러한 맥락 하에서 범용 컴퓨터(general-purpose-computer)는 소트프웨어가 하고자 하는 모든 것을 지원하는 하드웨어라고 정의할 수 있다. 이론적으로는 튜링 완전 하다는 뜻이다.

 

튜링 완전(Turing-computalbe)이란 튜링 머신으로 계산 가능한 것을 의미한다.

그러나 실제적으로 컴퓨터는 물리적 제약(메모리, 처리속도) 등을 가지고 있기 때문에, 튜링 머신으로 계산이 가능하지 않은 정지 문제(Halting Problem)를 가지고 있다.

이는 컴퓨터의 계산가능성(Computable) 한계라고 한다.

 

컴퓨터의 역사 알아보기

 

컴퓨터의 역사는 엘런 튜링과 폰 노이만으로부터 시작한다. 엘런 튜링의 역사부터 살피기에는 너무 많으니 폰 노이만이 왜 컴퓨터의 아버지라고 불리는지 알아보자.

 

폰 노이만은 처음으로 내장형 프로그램 방식을 도입하면서 컴퓨터의 혁신을 만들어냈다. 

이 내장형 프로그램(stored-program)은 메모리에 프로그램(program)을 저장하는(store) 컴퓨터를 의미한다.

마치 우리가 책장에서 언제든지 책을 뽑아서 읽을 수 있는 것처럼 컴퓨터에서 사용할 프로그램을 컴퓨터 내부 메모리에 저장해두고 필요할 때마다 꺼내 쓸 수 있게 만든 것이다. 

 

 

해당 시스템은 이렇게 작동한다. 먼저 우리가 사용할 프로그램을 램(RAM)이라는 저장장치에 탑재한다. 다음으로 컴퓨터의 두뇌에 해당하는 CPU는 프로그램이 가지고 있는 명령어들을 하나씩 가져와서 인출(fetch)하여 실행(execute)한다. 이 과정을 반복하는 것을 인출-실행 사이클(fetch-execute cycle)이라고 부른다. 이 사이클을 가진 stored-prgram 컴퓨터를 처음 개발한 사람이 바로 폰 노이만이라는 것이다.

 

이와 같이 명령어를 차례로 실행하며 작동하는 컴퓨터 구조를 폰 노이만 아키텍처, 다시말해 ISA(Instruction Set Architecture)라고 부른다.

 

프로그램이란 무엇인가

 

프로그램은 set of instructions that tells a computer's hardware to perform a task, 특정 작업을 수행하기 위해 지시하는 컴퓨터의 하드웨어 명령어들의 집합이다. 우리가 레시피를 보며 요리하듯이 컴퓨터는 프로그램을 보고 일을 처리한다.

 

그렇다면 운영체제는 프로그램일까?

 

운영체제 또한 프로그램이다. 하지만 일반적인 프로그램과는 조금 다르다. 이는 운영체제(OS)에 대한 설명을 보면 쉽게 이해할 수 있다.

 

Operating System is a program running at all times on the computer to provide system service to application programs to manage processes, resources, user interfaces, and so on.

 

운영체제는 컴퓨터가 켜져 있는 동안 항상 실행되면서, 다른 프로그램들이 컴퓨터 자원을 사용할 수 있게 관리하고, 사용자가 컴퓨터와 소통할 수 있도록 도와준다. 따라서 일반적인 프로그램이 맡은 일을 제대로 작동할 수 있도록 관리하는 역할을 하는 것이다.

 

결과적으로 운영체제는 컴퓨터 시스템을 운영하고 관리하는 특별한 프로그램이라고 할 수 있다. 이것이 우리가 흔히 Windows, MacOS와 같은 운영체제 없이 컴퓨터를 사용할 수 없는 이유이다.

 

 

 

[참고] Siberschatz et. al., 「Operating System Concepts 10th Ed.