운영체제 : 컴퓨터 하드웨어 바로 윗단에 설치되는 소프트웨어
사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층이다.
운영체제가 없는 컴퓨터는 고철 덩어리에 불과하다. 사용자 입장에서 하드웨어를 다루기 쉽지 않으므로, 운영체제를 탑재해 손쉽게 사용할 수 있다.
운영체제도 하나의 소프트웨어로서 전원이 켜짐과 동시에 메모리에 올라간다. 하지만 운영체제처럼 규모가 큰 프로그램이 모두 메모리에 올라가면 메모리 공간 낭비가 심하다. 따라서 필요한 부분만을 메모리에 올려놓고, 그렇지 않은 부분은 필요할 때 메모리로 올려서 사용한다.
뒤에서 배울 운영체제의 핵심 기능인 컴퓨터 시스템 내의 자원을 효율적으로 관리하는 것
으로 운영체제를 자원 관리자
라고 부르기도 한다. 자원이란 CPU, 메모리, 하드디스크 등 하드웨어 자원뿐 아니라 소프트웨어 자원
까지를 통칭해서 부르는 말이다.
커널(협의의 운영체제) = 좁은 의미의 운영체제
: 운영체제 코드 중에서 핵심적인 부분으로 메모리에 항상 상주하는 운영체제의 부분
광의의 운영체제 = 넓은 의미의 운영체제
: 커널뿐 아니라 시스템을 위한 유틸리티들을 광범위하게 포함하는 개념
운영체제는 동시 작업 가능 여부, 사용자의 수, 처리 방식에 따라 분류할 수 있다.
동시에 두 개 이상의 프로그램을 처리할 수 있는 운영체제
예) UNIX, MS Windows 등에서는 한 명령의 수행이 끝나기 전에 다른 명령이나 프로그램을 수행할 수 있음
다중 작업을 처리할 때에는 여러 프로그램이 CPU와 메모리를 공유하게 된다.
시분할 시스템(time sharing system) : CPU의 작업시간을 여러 프로그램들이 조금씩 나누어 쓰는 시스템
다중 프로그래밍 시스템(multi programming system) : 메모리 공간을 분할해 여러 프로그램들을 동시에 메모리에 올려놓고 처리하는 시스템
대화형 시스템(interactive system) : 사용자 개개인의 관점에서 각 프로그램에 대한 키보드 입력의 결과를 곧바로 화면에 보여주는 시스템
운영체제를 분류하는 또 다른 기준으로는 다중 사용자에 대한 동시 지원 여부를 들 수 있다.
정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되어야하는 실시간 시스템을 위한 OS
일정 시간 안에 작업이 완료되지 못할 경우에는 동작 자체가 안되거나 큰 위험을 초래할 가능성이 있는 시스템에 사용된다.
ex) 원자로/공장 제어, 미사일 제어, 반도체 장비, 로보트 제어
실시간 시스템은 시간 제약의 중요성에 따라 다시 두 가지로 세분화 할 수 있다.
실시간 시스템의 개념 확장
본 포스팅은 이화여대 반효경교수님 운영체제 강의를 바탕으로 작성하였습니다.