
컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층
협의의 운영체제 (커널) : 운영체제의 핵심 부분으로 메모리에 상주하는 부분운영체제 커널 : 컴퓨터를 부팅한 후부터 메모리 에 상주하는 부분광의의 운영체제 : 커널 뿐 아니라 각종 주변 시스템 유틸리티를 포함하는 개념시스템 유틸리티예를 들어 윈도우 운영체제를 설치하게 되면 윈도우 커널 뿐이 아니라 파일을 복사한다든지, 다양한 기능을 사용 할 수 있다. 이런
기능을 가진 것도 운영 체제의프로세스(최소한의 유틸리티)

운영체제는 하드웨어 의 자원을 효율적으로 관리하는 것이 주요한 역할이다.
컴퓨터의 자원은 이미 주어졌다. 어떤 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 스케줄링을 해야한다.메모리 는 한정되어 있는데 어떻게 쪼개어 쓸지에 대한 메모리 관리 를 해야한다.디스크 는 어떤 방식으로 파일을 보관할지를 디스크 스케줄링을 해야 한다. (쪼개서 보관할지, 일렬로 보관할지 .. )
나는 운영체제다 ... 나는 운영체제다 ... 나는 운영체제다 ..