운영체제 개요 🎬
- 이화여대 반효경 교수님의 운영체제 강의를 듣고 작성하였습니다. 🙂
✔ 좁은 의미의 운영체제 (커널)
- 운영체제의 핵심 부분으로 메모리에 상주하는 부분
✔ 넓은 의미의 운영체제
- 커널 뿐 아니라 각종 주변 시스템 유틸리티를 포함한 개념
운영체제의 목적
운영체제의 목표중 가장 중요한 것은 컴퓨터 시스템의 자원(resource)을 효율적으로 관리하는 것이다. ✨
컴퓨터 시스템의 자원에는 CPU, 기억장치, 입출력 장치등이 존재한다.
운영체제는 CPU가 짧은 시간 간격으로 번갈아 가면서 실행되도록 관리한다.
메모리에는 여러 프로그램이 올라가기 때문에 프로그램이 쪼개서 할당되는데, 운영체제는 어떻게 얼만큼 할당할 것인지를 담당한다.
❗ 그러나, 메모리를 꼭 1/n로 할당하는 것은 효율적이지 않다.
어떤 프로그램에는 메모리를 조금 더 할당할 필요가 있다. 효율성 뿐만 아니라 형평성도 고려해야 한다.
운영체제의 분류
🙋♀️ 동시 작업 가능 여부에 따라
✔ 단일 작업
-
한 번에 하나의 작업만 처리
ex) MS-DOS 에서는 한 명령의 수행을 끝내기 전에 다른 명령을 수행시킬 수 없다.
✔ 다중 작업
-
동시에 두 개 이상의 작업 처리
ex) UNIX, MS Windows 등에서는 한 명령의 수행이 끝나기 전에 다른 명령이나 프로그램을 수행할 수 있다.
🙋♀️ 사용자의 수에 따라
✔ 단일 사용자
ex) MS-DOS, MS Windows
✔ 다중 사용자
ex) UNIX, NT Server
🙋♀️ 처리 방식에 따라
✔ 일괄처리 방식 (Batch Processing)
-
작업 요청의 일정량을 모아서 한꺼번에 처리 하는 것
-
작업이 완전 종료될 때까지 기다려야 한다.
ex) 초기 Punch Card 처리 시스템
✔ 시분할 방식 (Time Sharing) —> 현재 우리에게 가장 익숙한 것
-
여러 작업을 수행할 때 컴퓨터 처리 능력을 일정한 시간 단위로 분할하여 사용한다.
-
일괄 처리 시스템에 비해 짧은 응답 시간을 가진다.
ex) UNIX
✔ 실시간 방식 (Realtime)
-
정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되어야 하는 실시간 시스템을 위한 OS
-
요즘엔 일반적인 OS에서도 실시간 방식을 필요로 하고 있음 (네비게이션 같은 경우)
ex) 원자로/공장 제어, 미사일 제어, 반도체 장비, 로보트 제어
🐱👤현재의 OS: 다중 작업, 다중 사용자, 시분할 방식
✋ 용어 정리
✔ Multitasking
-
여러 프로그램이 동시에 실행되는 것 처럼 보이지만 실제 CPU에서는 매 순간에는 하나의 작업만 실행된다.
-
하나의 프로그램이 끝나기 전에 다른 프로그램 실행이 가능한 것
✔ Multiprogramming
- 메모리에 여러 프로그램이 동시에 올라가는 것
- 메모리 측면을 강조한 용어. Multitasking이 되려면 당연히 Multiprogramming이 되어야 한다.
✔ Time Sharing
- CPU 측면을 강조한 용어로, 포괄적으로는 위 용어들과 유사하다.
✔ Multiprocessor
- 하나의 컴퓨터에 CPU가 여러 개 붙어 있음을 의미한다.
- processor는 보통 CPU를 의미한다.