CS/OS

[OS] 운영체제가 도대체 뭘까?

Deveun 2021. 7. 17. 16:47

출처: http://educationcomputerscience.blogspot.com/2016/05/define-operating-system-and-explain-its.html

우리가 흔히 알고있는 Windows, Linux, MaxOS, Android, IOS, Ubuntu 등등.. 운영체제(OS)는 많은 종류들이 있다.

그렇다면 OS란 무엇이고 어떤 기능들을 수행하는지 한 번 알아보자.  

 

 

운영체제(OS: Operating System)란,

A software that operates a computer system
The one program running at all times on the computer

 

한마디로 표현하자면 컴퓨터 시스템을 운영하기위한 소프트웨어 이다.

OS는 컴퓨터를 켜면 제일 먼저 실행되어 항상 동작하는 프로그램으로, 컴퓨터가 정보를 처리할 수 있도록 한다.

예를 들어, OS는 프로그램의 명령어들을 실행하며 동작하도록 하고, I/O 기기들을 제어하기도 한다.

즉, HW와 프로그램 사이에서 동작을 관리하는 인터페이스 역할을 수행한다고 보면 된다.

 

출처: Operating System Concepts, 10th Ed. Abraham Silberschatz

운영체제를 통해서 프로그램이 수행되는 순서를 간단하게 설명하면 아래의 세 단계로 나뉜다.

 

(1) 사용자가 실행시킨 프로그램(=명령어의 집합)을 Memory에 올린다. (load)

(2) Memory의 명령어를 CPU에 가져간다. (fetch)

(3) CPU의 register가 명령어를 수행한다. (execute)

 

 

 

운영체제의 주요 기능

 

(1) 여러 프로그램을 동시에 처리 (Concurrency)

: 컴퓨터 시스템 구조와 컴퓨팅 환경에는 여러가지가 있는데, 운영체제는 이 각각의 구조에서 CPU를 가장 효율적으로 사용하며 여러가지 프로그램을 동시에 처리할 수 있도록 하는 scheduling 작업을 수행한다. (increasing CPU utilization)

 

더보기

- Symmetric multiprocessing (SMP)

: 메모리 1개 CPU N개. 여러개의 CPU에서 작업을 수행할 수 있는 구조로, 비용이 비싸다.

- Multi-core design

: 메모리 1개 CPU 1개. CPU 내부에 core를 여러개 두어 각각의 core에서 작업을 수행하도록 한다.

- Multiprogramming

: 여러개의 프로그램을 동시에 Memory에 올려(load) CPU의 사용효율을 증진시키는 방법

- Multi-tasking

: Multiprogramming에서 파생된 개념으로, CPU에서 빠른속도로 context switching 하며 Memory의 작업을 수행하여 여러개의 프로그램이 동시에 실행되도록 하는것.

 

더보기

- Traditional Computing

- Mobile Computing
   ex) Android, IOS .. 

- Client-Server Computing

   ex) Client는 주로 Windows같은 GUI로 모든 유저들이 쉽게 사용할 수 있는 OS를 사용. Server는 GUI는 없지만 좀 더 복잡하고 보안이 뛰어난 Linux와 같은 OS를 주로 사용.

- Peer-to-Peer Computing

- Cloud Computing

- Real-Time Embedded Systems (RTOS)

   ex) Rasberry Pi OS .. 

 

(2) 적절하지 않은 프로그램 동작을 차단 (Protection and security)

: 시스템에 user modekernel mode를 나누어 일반 프로그램은 kernel mode를 통해서만 system call을 가능하다. 이를 통해, 프로그램이 다른 프로그램에 부적절한 영향을 끼칠 수 없도록 한다. (to ensure that an incorrect program cannot cause other programs to execute incorrectly)

 

(3) I/O 작업 제어

: OS는 입출력 하드웨어의 작업을 관리하는 역할을 수행한다. 이 때 CPU에 interrupt를 일으키거나 메모리와 직접 데이터 Transfer를 일으키는 DMA(Direct Memory Access) 방식이 있다.

 

(4) 프로그램 실행 환경을 제공

- GUI나 CLI와 같은 User Interface 제공

- 에러 탐지

- 리소스 관리

등등 ..