Computer Science/Operating System

[운영체제] 운영체제의 역할

HJChung 2021. 2. 6. 15:45

대표적인 운영체제로는 Windows OS, Mac OS, UNIX계열 OS가 있다. 

UNIX계열의 OS는 UNIX와 사용법이나 OS구조가 유사한 것들을 말하며 이 중 가장 유명한 것이 LINUX OS이다. 

(프로그래머, 전공자라면 이 LINUX OS에 대해 잘 알고 있어야 한다. 이에 대한 내용은 추후에 <운영체제>를 다 공부한 후 <시스템 프로그래밍>을 배우면서 공부해볼 것이다.) 

 

운영체제(Operating System; OS)의 역할

1. 시스템 자원(System Resource) 관리자

여기서 시스템 자원이라는 것은 컴퓨터 하드웨어라고 보면 쉽다. 이런 시스템 자원들은 자신 혼자서는 아무것도 할 수 없으며 이런 것들을 관리하는 소프트웨어가 OS이다. 

예를 들어, 

- CPU(중앙처리장치) => 각 프로그램이 얼마나 CPU를 사용할지를 결정할 수 없다. 이를 해주는 것이 OS이다. 

- Memory(DRAM, RAM) => 각 프로그램이 어느 주소에 저장되어야 하는지, 어느 정도의 메모리 공간을 확보해주어야 하는지를 결정할 수 없다. 이를 해주는 것이 OS이다. 

- I/O Devices(입출력장치): Monitor, Mouse, Keyboard, Network  => 스스로 표시, 작동 될 수 없다. 이를 해주는 것이 OS이다. 

- 저장 매체: SSD, HDD  => 어떻게, 어디에 저장할지를 결정 할 수 없다. 이를 해주는 것이 OS이다.

등이 있다. 

 

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

운영체제가 없다면 사용자는 컴퓨터에 명령을 할 수 없다. 이렇게 운영체제는 사용자와 컴퓨터간의 커뮤니케이션을 중재한다. 

3. 컴퓨터와 하드웨어 뿐만 아니라 응용 프로그램도 관리(제어)한다.

우선 응용 프로그램이란 뭘까?

일반적으로 프로그램 = 소프트웨어라고 알고 있다. 이 소프트웨어는 운영체제와 응용 프로그램로 나눌 수 있다.

운영체제는 지금 계속 알아보고 있는 것이고, 응용 프로그램은 Application(일반 PC에서의 프로그램 ex) 엑셀, 파워포인트.. 등) , App(스마트폰에서 응용프로그램) 등을 말한다. 

이런 응용 프로그램은 누구나 만들 수 있다. 그런데 만약 그 응용 프로그램의 소스 코트에 무한 반복문이 있거나, 이를 잘 못 작성해서 프로그램이 다운될 수 있다면? CPU를 독점해는 응용 프로그램이라면? 이러한 것을 막을 '관리'가 필요하다. 

앞서 운영체제가 응용 프로그램을 관리한다고 하였다. 어떻게 관리해준다는 것일까? 

1. 응용 프로그램을 실행시킨다. 

2. 응용 프로그램간의 권한을 관리해준다. (ex. 관리자 권한으로 실행하는 등..)

3. 응용 프로그램을 사용하는 사용자도 관리해준다. (ex. PC을 처음 켤 때, 로그인 한 후에야 응용 프로그램을 사용할 수 있는 등..)

 


지금까지 살펴 본 운영체제의 역할로 본 운영체제의 목표는

'사용자가 사용하는 응용 프로그램이 효율적으로, 적절하게 동작하도록 지원하는 것'이다. 

그래서 운영체제는 '응용 프로그램이 요청하는 시스템 리소스를 효율적으로 분배하고, 지원하는 소프트웨어'라고 볼 수 있다.