Computer Science/운영체제

[운영체제] 운영체제의 뜻, 목적, 분류

minjiwoo 2023. 1. 1. 20:28
728x90

1. 운영체제의 의미 

컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층
좁은의미로 OS는 커널을 가리킨다. (보통 커널만을 이야기하기도 한다. ) 커널은 항상 메모리에 상주한다. 넓은의미로 OS는 커널을 포함해서 주변 시스템들 , 각종 유틸리티들을 포함하는 개념이다.


2. 운영체제의 목적 

하드웨어 바로 윗단에 설치되고, 소프트웨어 바로 아랫단에 설치된다. → 하드웨어를 효율적으로 관리해주는 것이 가장 중요한 역할이다.

1) 컴퓨터 시스템의 자원을 효율적으로 관리

  • 자원이라는 것은 프로세서, 기억장치, 입출력 장치 (하드웨어 자원) 등을 효율적으로 관리하는 것이다.
  • 주어진 자원으로 최대한의 성능을 낼 수 있도록 한다. → 효율성
  • 효율성만 추구하다보면 특정 사용자가 차별받을 수 있는데, 이러한 불이익을 방지하기 위해서 형평성있게 자원 분배를 하도록 한다.
  • 소프트웨어 자원 또한 효율적으로 관리한다. → 프로세스, 파일, 메시지 등이 소프트웨어 자원에 속한다.
  • 사용자와 운영체제 자신을 보호한다.

아주 짧은 시간 간격으로 CPU를 할당하는 과정을 반복해서, 사람이 느끼기에는 자기 프로그램만이 CPU를 점유해서 쓰는 것처럼 느끼게 한다. 여러프로그램이 실행될 수 있도록 메모리를 적절히 분배한다

2) 사용자가 편리하게 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공한다.


3. 운영체제의 분류

1) 동시 작업 가능 여부

  1. 단일 작업 (single tasking) : 한번에 하나의 작업만 처리. ex) MS-DOS 운영체제는 프로그램 하나를 돌려놓으면 다른 프로그램을 입력할 수 있는 방법이 없다. 엘리베이터같은 경우는 기능이 하나밖에 없음 아직도 단일 작업만 지원
  2. 다중 작업 (multi tasking) : 동시에 두 개 이상의 작업 처리 현재의 운영체제는 대체로 다중 작업을 지원한다.

2) 사용자의 수
- '컴퓨터 한대를 동시에 n명이 접속해서 사용할 수 있는가?' 가 분류기준이다. 

a. 단일 사용자
ex) MS-DOS, MS Windows (but 요즘은 윈도우도 원격으로 접속하여 여러 계정의 접근을 허용하기도 한다.)

b. 다중 사용자
다중사용자를 지원하기 위해서는 OS에서 보안기능도 추가가 되어야 할 것이다. 사용자간 형평성있게 자원을 분배하는 기능도 추가되어야 할 것이다. ex) UNIX

3) 처리 방식

  1. 일괄 처리 (batch processing)
    어떤 작업이 주어졌을 때 바로바로 처리하는 것이 아니라, 작업을 모아서 한꺼번에 처리하는 방식이다.
    현대 운영체제에서는 찾아보기 어려움
    사용자는 interactive 한 결과를 받을 수 없다. 

  2. 시분할 (time sharing) -> 범용적으로 사용되는 운영체제!! 
    - 여러 작업을 수행할 때 운영체제가 작은 시간 단위로 나누어서 분할하여 사용한다.
    - 각각의 사용자 입장에서는 interactive한 결과를 받을 수 있다. 짧은 응답시간을 가지는 특징이 있다.
    - 정확한 시간을 지켜서 응답을 하는 시스템은 아니다. (사용자가 많아지게 되면 응답시간이 길어질 수도 있다. )→ 범용 운영체제

  3. 실시간 (real time)
    - 시분할과 실시간이 비슷해보이는 측면이 있지만, 실제 개념적으로는 다르다.
    - 정해진 시간안에 반드시 종료되는 것이 보장되어야 하는 실시간 시스템을 위한 OS이다. → 특수한 목적을 가진 상태에서 작업이 데드라인 안에 처리되도록 함.   ex) 미사일 제어, 반도체 장비, 원자로/공장 제어, 로봇제어 … 
    - Hard realtime system (데드라인을 지키지 못할 경우 치명적인 문제 발생) 과 Soft realtime system (데드라인을 지켜야 하지만 지키지 못할 경우 치명적인 문제가 발생하지는 않는 경우) 이 있다. 


4. 운영체제의 예
 

1) UNIX 
- 대형 컴퓨터를 위해 만들어짐 
- 기본적으로 multi tasking을 지원한다. 
- UNIX 운영체제를 만들기 위해서 C언어가 등장했으며, UNIX는 C언어로 대부분 작성되었음. (-> C언어는 다른 고급언어에 비해서 기계어와 가깝다. 따라서 운영체제에 적합!)
- 커널의 크기를 최소한으로 만들었음. 핵심적인 기능만 커널에 넣었음. 
- 대부분 C언어로 작성되어 있어서 높은 이식성을 가지고 있음. (기계어 집합이 전혀 다른 컴퓨터에도 이식하기 쉽다.)
- 오픈 소스 

ex) Linux, Solaris, SunOS ... 

2) DOS 
단일 사용자용 운영체제이며, 640KB까지만 지원
하드웨어가 발전하면서 DOS는 점차 쓰이지 않게 됨 

3)MS Windows 
- 개인용 PC를 위해 만들어짐 
- GUI 기반 운영 체제 
- 단일 사용자이면서 단일 작업을 지원해주는 운영체제에서 출발함. 

 

728x90