1. 운영체제(Operating System, OS)란?
- 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층을 의미합니다.
만약 운영체제 없이 컴퓨터 하드웨어만 있다면 일반 사용자들이 사용하기가 매우 어렵기 때문에, 사용자들이 운영체제를 통해 하드웨어에 접근함으로써 쉽게 사용할 수 있습니다.
운영체제의 역할을 좀 더 이해하기 위해 두 가지 관점에서 역할을 살펴보겠습니다.
1. 시스템 관점 : 컴퓨터 시스템의 자원을 효율적으로 관리하게 해줍니다.
- 프로세서, 기억장치, 입출력 장치 등의 효율적 관리
- 사용자 간의 형평성 있는 자원 분배
- 주어진 자원으로 최대한의 성능 발휘
- 사용자 및 운영체제 자신의 보호
- 프로세스, 파일, 메시지 등을 관리
2. 사용자 관점 : 컴퓨터 시스템을 편리하게 사용할 수 있게 해줍니다.
- 운영체제는 동시 사용자/ 프로그래밍들이 각각 독자적 컴퓨터에서 수행되는 것 같은 환상을 제공
- 하드웨어를 직접 다루는 복잡한 부분을 운영체제가 대행
즉, 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공하는 것이 운영 체제의 목표입니다.
2. 운영 체제의 처리 방식에 따른 분류
(1) 시분할 (time sharing)
- 일반적인 범용시스템에 많이 쓰입니다.
- 여러 작업시 컴퓨터 처리 능력을 일정한 시간 단위로 분할하여 사용Interactive한 방식입니다.
- 일괄 처리 시스템에 비해 짧은 응답 시간을 가집니다.
(2) 실시간 (Realtime Os)
- 정해진 시간 안에 반드시 종료 되어야하는 작업 등에 쓰입니다. ex) 반도체 공장, 원자로/공장제어, 미사일 제어
(3) 일괄 처리(batch processing)
- 작업 요청의 일정량을 모아서 한꺼번에 처리합니다.
- 작업이 완전 종료될 때까지 기다려야 합니다.
3. 운영 체제의 예시
(1) 유닉스(UNIX)
대형 컴퓨터를 위해서 만들어진 운영 체제로 기본적으로 멀티태스킹, 여러 사용자를 지원합니다.
당시 어셈블리어로 만들기가 매우 복잡하고 어려워 유닉스를 편리하게 만들기 위해 C언어가 탄생하게 되었습니다.
(그렇기에 C언어는 기계어와 가깝다는 얘기를 많이 하는데, 하드웨어를 직접적으로 다루가 위해 탄생한 배경에서 그 이유를 알 수 있습니다.)
유닉스는 다음과 같은 특징이 있습니다.
- 높은 이식성 : 하나의 컴퓨터에 사용되던 유닉스를 다른 컴퓨터에 이식해도 C언어 컴파일을 통해 쉽게 이식 가능하다.
- 최소한의 커널 구조 : 핵심적인 부분만 커널에 넣음. 커널의 크기를 작게 만들어서 메모리를 적게 차지한다.
- 확장성이 좋다.
- 소스코드가 공개되어있어 학술적으로도 용이
- 프로그램 개발에 용이하다.
- 다양한 버전이 있다
- System V, FreeBSD, SunOS, Solaris
- Linux (개인이 쓰기에도 좋은 특징을 가지고 있음, Android OS도 Linux 커널을 쓰고있다.)
(2) Microsoft Windows
개인용 컴퓨터(단일 사용자)를 위해서 만들어진 운영체제입니다. Microsoft 사에서 1981년 IBM-PC를 위해 개발했습니다.
(초창기에는 DOS(Disk Operation System)로 등장하였는데, 당시 PC는 사양이 지금에 비해 상당히 저사양이였고 기술 발전에 대한 기대치가 낮아 윈도는 주 기억장치의 메모리를 적게 만들었습니다.(640KB) 이후, DOS를 기반으로 MS Windows가 만들어졌습니다.)
MS Windows는 다음과 같은 특징이 있습니다
- MS사의 다중 작업용 GUI 기반 운영체제
- Plug and Play, 네트워크 환경 강화
- DOS용 응용 프로그램과 호환성 제공
- 풍부한 지원 소프트웨어
참고자료
[KOCW 이화여대 반효경 교수님]
https://core.ewha.ac.kr/publicview/C0101020140305142403394515?vmode=f
[Operating System Concepts - Abraham Silberschatz]
https://www.yes24.com/Product/Goods/89496122