운영체제(Operating System)
운영체제란?
운영체제란 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층을 말한다.▼
좁은 의미로는 커널이라고 말하고, 넓은 의미로는 커널뿐만 아니라 각종 주변 시스템 유틸리티를 포함한 개념을 말한다.
운영체제의 목적
운영체제의 목적은 크게 아래의 4가지가 있다.
- 컴퓨터 시스템의 자원을 효율적으로 관리
- 프로세서, 기억장치, 입출력 장치 등의 효율적 관리
- 사용자 및 운영체제 자신의 보호
- 프로세스, 파일, 메세지 등을 관리
컴퓨터 시스템의 자원들은 실행 도중에 추가되는 것들이 아니라 시작 전에 정해진 것들이다.▼
메모리나 저장공간, 그리고 CPU의 성능까지 컴퓨터가 켜져있는 동안에는 바뀌지 않는다.
위에 운영체제의 목적으로 큰 범주의 것들을 써놓았지만 결국에는 제한된 상황에서 최대의 성능을 내는 것이 운영체제의 목적이다.
그렇다면 운영체제가 최대의 성능을 내기 위해서는 효율성이 극대화 돼야한다고 생각하겠지만, 항상 효율성이 옳은 것은 또 아니다.
뒤에 다루겠지만 효율성을 강조하게 되면 특정 사용자나 프로그램이 차별을 당하게 될 수 있다.
예를 들면 특정 프로그램이 자원을 독식하게 되는 그런 문제가 있다.
이런 상황에서는 전체적으로 효율적일 수는 있어도 모든 프로그램이 잘 돌아가냐라는 질문에는 답을 못하게 된다.
그렇기에 운영체제는 효율성을 극대화하는 것도 중요하지만 사용자나 프로그램 간의 형평성 있는 자원 분배 또한 할 수 있어야한다.▼
이것 외의 다른 목적으로는 사용자가 컴퓨터 사용을 편리하게 사용할 수 있게 도와줌이 있다.
예를 들면 Graphic User Interface(GUI)와 같은 것들이 있다.
운영체제의 분류
운영체제는 크게 3가지 관점으로 그 종류를 구분할 수 있다.
한 번에 다룰 수 있는 작업의 개수, 한 번에 이용할 수 있는 사용자의 수, 처리 방식이 바로 그 3가지 관점이다.
단일작업 VS 다중작업
단일작업과 다중작업은 말 그대로 일을 한 번에 하나만 할 수 있냐와 한 번에 여러 일을 할 수 있냐를 뜻한다.
현대에는 다중작업이 기본이지만 옛날에는 하드웨어의 한계로 인해 그렇게 하지 못했다.
단일작업만 하는 운영체제로는 MS-DOS가 있고,
다중 작업을 하는 운영체제로는 UNIX, WINDOWS, MacOS가 있다.
(MacOS는 사실 UNIX를 기반으로 만들어지긴했다.)
그렇다고 현대에 단일작업을 하는 운영체제가 안쓰이는 것은 아니다.
특수한 목적을 갖고 있는 기기에서는 아직 단일 작업을 하는 운영체제를 사용한다고 한다.
단일 사용자 VS 다중 사용자
단일 사용자와 다중 사용자는 한 기기에 여러 명의 사용자가 동시에 접근할 수 있냐 없냐를 말한다.
개인용 PC라면 보통 단일 사용자를 기본으로 하지만, 서버용 컴퓨터에서는 다중 사용자를 지원한다.
단일 사용자를 다루는 운영체제로는 MS-DOS와 WINDOWS가 있다.
다중 사용자를 다루는 운영체제로는 UNIX와 NT SERVER가 있다.
처리 방식
처리 방식은 이후에 Scheduling에 대해서 배울 때 자세하게 다룰 것이다.
간단하게 이야기를 해보자면, 처리 방식에는 크게 Batch System, Time Sharing, Real Time 으로 3가지가 있다.
표로 보면 아래와 같다. ▼
Batch System | Time Sharing | Real Time | |
특징 | 작업 요청의 일정량을 모아서 한 번에 처리하는 시스템. | 시간을 분할하여 스케쥴링하여, 빠른 응답시간으로 사용자와 상호작용할 수 있는 시스템. | Deadline이 있어서 정해진 시간 내에 결과가 나오는 시스템. |
예시 | 초기 Punch Card 시스템 | 우리가 사용하는 PC | 원자로, 공장제어, 반도체 장비 |
처리 방식에 대한 이야기는 추후에 자세하게 다루겠다.
용어
알아두면 좋을 용어들 몇 가지를 이야기를 해보겠다.
Multitasking
여러 개의 프로그램을 동시에 수행하는 것을 말한다.
실제로는 동시에 라기 보다는 전환이 빠르다고 생각하면 편하다.
Multi Progoramming
Multiprogramming도 Multitasking과 거의 같은 말이지만 메모리를 강조한다.
여러 개의 프로그램을 동시에 돌리는 것은 맞지만, 메모리에 여러 프로그램이 올라감을 강조한다.
Time Sharing
Time Sharing은 위의 운영체제의 분류에서도 나온 것으로 시 분할 방식으로 여러 프로그램을 구동하는 것을 말한다.
이 역시 Multitasking과 크게 다를 것 없는 말이지만, CPU를 강조한다.
CPU의 시간을 분할하여 나누어 씀을 강조하는 말이다.
Multi Process
Multi Process는 여러 개의 프로세스라는 말로 Multitasking과 일맥상통하는 말이다.
Multi Processor
하지만 Multi Processor는 위의 4가지와는 하드웨어적으로 다른 말이다.
위의 4가지는 하나의 CPU를 전제로 말을 한다면 MultiProcessor는 여러 개의 CPU를 가졌다는 말로 하드웨어적으로 아예 다른 말이다.
'CS > 운영체제' 카테고리의 다른 글
CPU Scheduling (0) | 2024.03.04 |
---|---|
Process (0) | 2024.03.04 |
System Call (0) | 2024.01.31 |
Operating System’s Structure (0) | 2024.01.29 |