관리 메뉴

개발자비행일지

운영체제의 정의 및 역할 본문

▶ Computer Science

운영체제의 정의 및 역할

Cyber0946 2018. 11. 27. 16:01

본 내용은 패스트 캠퍼스의 컴퓨터 공학 강의를 수강하고, 개인 복습 및 정리 목적으로 작성한 내용입니다. 


운영체제(Operating System)이란 컴퓨팅 사고의 집합체이며, 컴퓨터 소프트웨어의 동작원리를 전반적으로 다루는 과목이라고 할 수 있다. 

하지만 이런 커다락 목표와 막연한 개념으로 많은 전공자들이 핵심을 파악하는데 어려움을 겪고 있다고 생각한다. 


필자가 학습을 통해 정리한 운영체제란 컴퓨터 시스템을 내가 원하는 목적(문서작업, 영상시청, 인터넷 서핑 등)에 맞게 사용할 수 있게 도와주는 관리자 소프트웨어 라고 할 수 있다. 

운영체제가 있기 때문에 우리가 시스템자원(CPU, Memory, 입력장치, 출력장치, 보조기억장치) 등의 세부 동작이나 원리를 모르더라도 마우스 클릭, 키보드 키 입력 등을 통해서 우리가 원하는 목적에 맞는 응용프로그램을 실행시키고, 프로그램을 이용해서 작업을 할 수 있는 것이다. 


자 다음으로는 운영체제의 역할에 대해 알아보자.

운영체제는 크게 다음 3가지의 역할을 수행한다. 

 

1. 시스템 자원 관리자

2. 사용자와 컴퓨터 간의 커뮤니케이션 지원

3. 컴퓨터 하드웨어와 응용프로그램 간의 커뮤니케이션 지원



좀 더 자세히 알아보자.

먼저 시스템 자원 관리자의 역할이라는 것은 무엇일까?

여기서 시스템 자원(System Resource)란 우리가 컴퓨터 하면 상상할 수 있는 컴퓨터 구성 요소들을 말한다. CPU, Memory, 입력장치, 출력장치, 저장매체를 말한다. 

여기서 각 하드웨어 장치들은 스스로 할 수 있는게 없다는 것을 알 수 있다. 

이 장치들은 전기 입력 신호가 들어오면 정해진 행동을 하도록 되어 있을 뿐 어떤 신호를 줄지에 대한 것은 정해져 있지 않다. 

CPU를 예를 들어보면 CPU는 스스로 어떤 프로그램에게 자신을 할당해 주어야 되는지 결정할 수 없다. 단지 자신에게 들어온 명령을 해석하고 연산하고 그 결과를 반환 해 줄 뿐이다. 

다음으로 Memory는 각 프로그램에서 실행중에 사용해야 되는 데이터가 어느 주소에 저장되어야 하는지 얼마만큼을 사용해야 되는지를 결정할 수 없다. 단지 실행중에 필요한 데이터를 저장하고 불러올 수 있는 공간을 제공해줄 뿐이다. 

저장매체(HDD/SSD)는 파일을 어떻게 어디에 저장할지 스스로 결정할 수 없으며, 단지 저장할 수 있는 공간을 제공할 뿐이다.

입력장치 그리고 출력 장치는 입력된 명령을 어떤 프로그램에게 제공해야되는지, 입력된 명령을 어떻게 출력해야되는지 알 수 없다. 단지 데이터를 입력 받고 출력할 뿐이다. 


각 장치들이 스스로 할 수 없는 이러한 상황에 대해서 이 장치들을 관리해서 우리가 원하는 명령(의도에 맞는 프로그램)을 실행할 수 있도록 관리해 주는것이 시스템 자원 관리자의 역할을 하는 운영체제이다.


그 다음 사용자와 컴퓨터 간의 커뮤니케이션을 지원하는 역할이라는 것은 다음과 같다.

여러분은 인터넷으로 서핑을 하고 싶을 때, 어떻게 하는가??

단순하게 브라우져를 실행하고, 검색창에 검색을 해서 그 결과를 사용하지 않는가??

이것이 가능하도록, 사용자가 컴퓨터 시스템이 어떻게 동작하는지 잘 모르더라도, 간단한 조작을 통해서 컴퓨터를 사용할 수 있도록 운영체제가 그 중간에서 둘의 커뮤니케이션을 지원하고 있다. 우리가 사용하는 아이콘, 우리가 사용하는 명령창의 명령어 등이 운영체제가 지원하는 커뮤니케이션의 결과이다. 


마지막 하드웨어와 응용프로그램 간의 커뮤니케이션을 지원하는 역할이라는 것은 다음과 같다. 

우리가 사용하는 응용프로그램(게임, 아래한글, 엑셀, 유튜브 등)은 응용프로그램이 컴퓨터 시스템 자원을 사용해야지 정상적으로 동작한다. 운영체제는 실행되는 응용프로그램들과 하드웨어 자원(CPU, 메모리, 저장매체, 입출력 장치, 네트워크 카드)등의 자원을 여러 응용프로그램들이 최소한의 대기시간을 가지고 끊임없이 동작할 수 있도록 중간에서 하드웨어와 응용프로그램이 커뮤니케이션 할 수 있도록 지원해 주는 역할을 한다. 


그 기능에는 시스템 콜, 즉 운영체제에서 지원하는 프로그램을 통해서 우리가 어떤 프로세스가 실행될지 관리하고, 주기억장치의 메모리를 관리하며, 파일 시스템 관리 , 그리고 키보드 입력이 어떤 응용프로그램에게 제공되어야 하는지, 그 결과가 모니터로 나와야하는지 스피커로 나와야하는지 등을 운영체제가 중간에서 커뮤니케이션을 지원함으로써 원할하게 동작 할 수 있게 해준다.


즉!! 정리해서 말하면 우리가 컴퓨터를 통해서 원하는 일을 할 수 있도록 뒤에서 묵묵하게 일하고 있는 프로그램이 바로 운영체제 라고 할 수 있다. 프로그램을 우리의 목적에 맞게 실행 할 수 있도록 해주는 환경이 되는 프로그램 그것이 바로 운영체제이다.