컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층
협의의 운영체제 (커널)
: 운영체제의 핵심 부분으로 메모리에 상주하는 부분운영체제 커널
: 컴퓨터를 부팅한 후부터 메모리
에 상주하는 부분광의의 운영체제
: 커널
뿐 아니라 각종 주변 시스템 유틸리티를 포함하는 개념시스템 유틸리티
예를 들어 윈도우 운영체제를 설치하게 되면 윈도우 커널 뿐이 아니라 파일을 복사한다든지, 다양한 기능을 사용 할 수 있다. 이런
기능
을 가진 것도 운영 체제의프로세스
(최소한의 유틸리티)
운영체제는 하드웨어
의 자원을 효율적으로 관리하는 것이 주요한 역할이다.
컴퓨터의 자원은 이미 주어졌다. 어떤 CPU , 어떤 HDD , 어떤 램들과 같은 하드웨어
를 가지고 있다면 해당 자원들을 효율적으로 관리하는 것이 운영체제
다.
자원 관리 뿐이아니라 컴퓨터 시스템을 편리하게 사용 할 수 있는 환경을 제공한다.
위 사진에서 실제론 하나인 물리적인 컴퓨터
를 3명의 사용자가 사용 할 때 운영체제
는 추상화 된 기계
개념의 컴퓨터를 통해 사용자가 독립적으로 자기 컴퓨터에서만 실행이 되는 것처럼 느끼게 한다.
이 때 CPU
, RAM
등에서 여러 프로그램이 동시에 실행이 될 때의 자원을 효율적으로 분배하는 것이 운영체제
의 목적
정리 : 운영체제는 하드웨어의 자원을 효율적으로 관리한다.
단일 작업 (Single Tasking)
다중 작업 (Multi tasking)
단일 사용자 (single user)
- 예 : MS-DOS , MS Windows
다중 사용자 (multi user)
- 예 : UNIX , NT server
한 하드웨어를 단일 사용자만 사용 할 수 있는가, 다중 사용자들도 사용 할 수 있는가로 분류한다.
일괄 처리 (batch precessing)
시분할 (time sharing)
우리가 사용하는 컴퓨터는 대부분
시분할
운영체제
시분할 시스템의 주요 특징
다중 작업
: 여러 작업이 동시에 실행 될 수 있음
시분할
: CPU 의 시간을 작은 단위로 나누어 여러 작업에 할당한다. 각 작업은 짧은 시간동안 CPU 를 사용한 후 다음 작업으로 넘어가며, 이러한 방식으로 다수의 작업이 동시에 진행되는 것처럼 사용자는 느낌
시분할
: 사용자들에게 빠르고 실시간으로 응답하는 환경을 제공하며 사용자가 명령하면 마치 즉시 반응하여 결과를 제시하는 것 처럼 느낌
스케줄링
: CPU 스케줄링 알고리즘을 사용하여 여러 작업들을 효율적으로 관리하며 각 작업에 적절한 CPU 시간을 할당하여공평
하게 실행한다.
실시간 (real time)
실시간 시스템은 데드라인이 존재해서 정해진 시간 내에 반드시 실행이 보장
되어야 한다. (시분할은 데드라인
이 존재하지 않음)
실시간 시스템의 시스템 개념 확장
Hard Realtime System
(경성 실시간 시스템) : 데드라인이 지켜지지 않으면 큰 문제가 생기는 시스템 (공장 제어, 미사일 제어 등 ..)Soft Realtime System
(연성 실시간 시스템) : 데드라인이 지켜지지 않더라도 큰 문제가 생기지 않는 실시간 시스템 (예를 들어 초당 n 프레임의 실시간 스트리밍 등 .. )
정리
우리가 현재 사용하고 있는 운영체제는 멀티 태스킹이 가능하며 멀티 유저, 시분할 시스템의 운영 체제이다.
유사한 용어이지만 단어마다 뉘앙스가 조금은 다름
Multi-tasking
: 여러 프로그램을 동시에 실행이 가능한 경우 (하지만 이것은 하나의 CPU 가 엄청나게 빠른 속도로 순차적으로 프로세스를 처리하는 거임)Multi-programming
: 메모리에 여러 프로그램이 돌아가는 경우time-sharing
: 시분할 개념이며 CPU가 시간을 분할하여 여러 프로그램을 처리하는 경우Multi-process
: 여러 프로세스를 동시에 실행함 Multi-process
다중 처리기를 의미하며 하나의 컴퓨터에 CPU 가 여러 개 붙어있음을 의미한다. 병렬적으로 동시에 처리
대형 컴퓨터
를 위해 만들어짐어셈블리 언어
형태로 매우 어려운 언어였으며 기계가 이해 할 수 있도록 만든 언어가 C언어
이다. C언어 기반
Linux
도 UNIX의 일종
Linux
는공개 소프트웨어 정신
에 입각한오픈소스
운영체제
Linux
는 대형 컴퓨터보다는 개인 PC 에 적합
개인 사용자
를 위해 만들어짐메모리 : 640kb
)
GUI
: Graphical User Interface (그래픽 사용자 인터페이스) 의 약자이며
사용자가 마우스 등의 입력장치를 사용하여 그래픽 요소를 통해 시스템을 조작 할 수 있는 인터페이스
블안정성
: 초창기엔 불안했는데 지금은 괜찮다.하드웨어의 자원들을 관리하는게 운영 체제의 역할이다.
CPU
는 누구한테 CPU
를 줄지를 결정하는 CPU 스케줄링
을 해야한다.메모리
는 한정되어 있는데 어떻게 쪼개어 쓸지에 대한 메모리 관리
를 해야한다.디스크
는 어떤 방식으로 파일을 보관할지를 디스크 스케줄링
을 해야 한다. (쪼개서 보관할지, 일렬로 보관할지 .. )나는 운영체제다 ... 나는 운영체제다 ... 나는 운영체제다 ..