1. 운영체제의 의미
컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층
좁은의미로 OS는 커널을 가리킨다. (보통 커널만을 이야기하기도 한다. ) 커널은 항상 메모리에 상주한다. 넓은의미로 OS는 커널을 포함해서 주변 시스템들 , 각종 유틸리티들을 포함하는 개념이다.
2. 운영체제의 목적
하드웨어 바로 윗단에 설치되고, 소프트웨어 바로 아랫단에 설치된다. → 하드웨어를 효율적으로 관리해주는 것이 가장 중요한 역할이다.
1) 컴퓨터 시스템의 자원을 효율적으로 관리
- 자원이라는 것은 프로세서, 기억장치, 입출력 장치 (하드웨어 자원) 등을 효율적으로 관리하는 것이다.
- 주어진 자원으로 최대한의 성능을 낼 수 있도록 한다. → 효율성
- 효율성만 추구하다보면 특정 사용자가 차별받을 수 있는데, 이러한 불이익을 방지하기 위해서 형평성있게 자원 분배를 하도록 한다.
- 소프트웨어 자원 또한 효율적으로 관리한다. → 프로세스, 파일, 메시지 등이 소프트웨어 자원에 속한다.
- 사용자와 운영체제 자신을 보호한다.
아주 짧은 시간 간격으로 CPU를 할당하는 과정을 반복해서, 사람이 느끼기에는 자기 프로그램만이 CPU를 점유해서 쓰는 것처럼 느끼게 한다. 여러프로그램이 실행될 수 있도록 메모리를 적절히 분배한다
2) 사용자가 편리하게 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공한다.
3. 운영체제의 분류
1) 동시 작업 가능 여부
- 단일 작업 (single tasking) : 한번에 하나의 작업만 처리. ex) MS-DOS 운영체제는 프로그램 하나를 돌려놓으면 다른 프로그램을 입력할 수 있는 방법이 없다. 엘리베이터같은 경우는 기능이 하나밖에 없음 아직도 단일 작업만 지원
- 다중 작업 (multi tasking) : 동시에 두 개 이상의 작업 처리 현재의 운영체제는 대체로 다중 작업을 지원한다.
2) 사용자의 수
- '컴퓨터 한대를 동시에 n명이 접속해서 사용할 수 있는가?' 가 분류기준이다.
a. 단일 사용자
ex) MS-DOS, MS Windows (but 요즘은 윈도우도 원격으로 접속하여 여러 계정의 접근을 허용하기도 한다.)
b. 다중 사용자
다중사용자를 지원하기 위해서는 OS에서 보안기능도 추가가 되어야 할 것이다. 사용자간 형평성있게 자원을 분배하는 기능도 추가되어야 할 것이다. ex) UNIX
3) 처리 방식
- 일괄 처리 (batch processing)
어떤 작업이 주어졌을 때 바로바로 처리하는 것이 아니라, 작업을 모아서 한꺼번에 처리하는 방식이다.
현대 운영체제에서는 찾아보기 어려움
사용자는 interactive 한 결과를 받을 수 없다. - 시분할 (time sharing) -> 범용적으로 사용되는 운영체제!!
- 여러 작업을 수행할 때 운영체제가 작은 시간 단위로 나누어서 분할하여 사용한다.
- 각각의 사용자 입장에서는 interactive한 결과를 받을 수 있다. 짧은 응답시간을 가지는 특징이 있다.
- 정확한 시간을 지켜서 응답을 하는 시스템은 아니다. (사용자가 많아지게 되면 응답시간이 길어질 수도 있다. )→ 범용 운영체제 - 실시간 (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 기반 운영 체제
- 단일 사용자이면서 단일 작업을 지원해주는 운영체제에서 출발함.
'Computer Science > 운영체제' 카테고리의 다른 글
[운영체제] Process와 Thread의 차이 (0) | 2023.03.30 |
---|---|
[운영체제] 세마포어와 뮤텍스 알고리즘 (1) | 2023.01.16 |
[운영체제] 인터럽트 (Interrupt) (0) | 2023.01.08 |
[운영체제] CPU 스케줄링 & 선점/비선점 스케줄링 알고리즘 (0) | 2023.01.08 |
[운영체제] 용어 정리 Multitasking/Multiprocess/Time sharing/Multiprocess /Multiprocessor (0) | 2023.01.01 |