운영체제란?
하드웨어, 시스템 리소스를 제어하고 프로그램에 대한 서비스를 지원하는 시스템 소프트 웨어
- 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층
1. 운영체제의 목표
1) 컴퓨터 시스템을 편리하게 사용할 수 있는 환경 제공
동시 사용자와 프로그램이 독자적 컴퓨터에서 수행되는 것처럼 느껴지게 한다. 하드웨어를 직접 다루는 복잡한 부분은 운영체제가 대행한다.
2) 컴퓨터 시스템의 자원을 효율적으로 관리
한정된 메모리와 CPU 자원으로 가장 좋은 성능을 낼 수 있는지 판단하고 관리하는 역할을 한다.
2. 운영체제의 분류
1) 동시 작업이 가능 여부
- 단일 작업
한 번에 하나의 작업만 처리
MS-DOS -> 프로그램 하나만 가능
- 다중 작업 ✔️
동시에 두 개 이상의 작업을 처리
UNIX, MS Windows 등 현재 운영체제
2) 사용자 수
- 단일 사용자
ex) MS-DOS(단일 작업은 당연히 단일 사용자만 가능), MS Windows
- 다중 사용자 ✔️
ex) UNIX, NT server
3) 처리 방식
- 일괄처리 (batch processing)
작업을 모아서 한 번에 처리
- 시분할 (time sharing) ✔️
여러 작업을 수행할 때 일정한 시간 단위로 분할하여 사용
- 실시간 (Realtime OS)
정해진 시간 안에 작업 종료가 반드시 보장됨
특정한 목적을 가진 시스템에서 사용 ex) 미사일 제어, 원자로 제어
➡️ 현대 대부분 운영체제는 다중 작업, 다중 사용자, 시분할 방식으로 운영
3. 운영체제의 예시
1) UNIX
- 멀티 태스킹 가능
- C언어로 작성
- 소스코드 공개
- 이식성이 높음
- 최소한의 커널 구조
- 파생된 버전 중 Linux
2) DOS
3) MS Windows
- 다중 작업용 운영체제
- DOS와 호환성
- 픙부한 자원 소프트웨어
4. 운영체제의 구조 및 역할
CPU
- CPU에 어떤 프로그램을 할당할지
- CPU 스케줄링
Memory
- 한정된 메모리를 쪼개서 사용하는 방법
- ex) 과거 이력으로 메모리에 자주 올라오는 것을 예측하여 쫒아냄
- 메모리 관리
Disk
- 디스크에 파일 보관
- 헤드의 움직임을 최소화하면서 많은 요청을 빠르게 처리하는 방법을 고려
- 디스크 스케줄링
I/O Device
- 각기 다른 입출력 장치와 정보 주고받기
- CPU에 요청할 입출력이 있으 경우
Interrupt
를 통해 요청
- 입출력 관리
5. 추가적인 정리 ➕
1) 비슷한 용어 정리
- 멀티 태스킹 : 한 번에 여러 작업을 수행하는 것 (실제로는 여러 작업을 돌아가며 수행)
- 멀티 프로그래밍 : 메모리에 여러 프로그램이 동시에 올라가는 것
- 타임 쉐어링 : CPU의 시간을 나누어 사용하는 것
- 멀티 프로페서 : 하나의 컴퓨터에 여러 CPU가 있는 것
- 멀티 스레드 : 하나의 프로세스를 여러 개의 스레드로 동시에 작업하는 것
2) 커널
컴퓨터의 자원을 관리하는 역할을 수행하는 운영체제의 핵심 프로그램
- 컴퓨터의 물리적 자원(하드웨어)과 추상화 자원을 관리
- 커널을 사용자와 상호작용을 지원하지 않기 때문에 커널에 명령어를 전달하고 싶으면 쉘을 사용해야 한다.
쉘(Shell) : 사용자가 컴퓨터에게 전달하는 명령을 해석하는 프로그램. 즉, 커널과 사용자간의 다리 역할을 수행
3) BIOS
운영 체제 중 가장 기본적인 소프트웨어이자 컴퓨터의 입출력을 처리하는 펌웨어
- 사용자가 컴퓨터를 켜면 시작되는 프로그램
- 주변 장치(하드웨어)와 운영체제(소프트웨어) 사이의 데이터 흐름을 관리
- 넓은 의미로 컴퓨터에 탑재된 프로그램 중에서 하드웨어와 가장 낮은 수준에서 입출력을 담당하는 프로그램을 가리킨다.
4) 펌웨어
펌웨어
특정 하드웨어 장치에 포함된 소프트웨어로, 소프트웨어를 읽어 실행하거나, 수정하는 것도 가능한 장치를 뜻함
- 하드웨어의 제어와 구동을 담당하는 일종의 운영체제
- ROM이나 PROM에 저장되어 하드웨어보단 교환하기 쉽고 소프트웨어보단 어렵다.
- 펌웨어로 동작하는 기기로 리모콘을 예시로 들 수 있다. + 스마트폰, 네비게이션 프로그램, 가전제품 프로그램 등
VS 임베디드 시스템 (embedded system, 내장형 시스템)
기계나 기타 제어가 필요한 시스템에 대해, 제어를 위한 특정 기능을 수행하는 컴퓨터 시스템으로 장치 내에 존재하는 전자 시스템
- 전체 장치의 일부분으로 구성되며 제어가 필요한 시스템을 위한 두뇌 역할을 하는 특정 목적의 컴퓨터 시스템
- 특정되지 않은 목적을 수행하는 컴퓨터와 대조
- ex) 스마트폰, 전자제품, 게임기 등
- 하드웨어 장치의 롬이나 플래시 메모리에 내장하는 소프트웨어를 펌웨어라 하므로 장치에 특정 목적으로 존재하는 시스템이 임베디드 시스템 실제 내장된 소프트웨어는 펌웨어로 볼 수 있다.
참고 링크
운영체제 스터디 - 운영체제란
반효경 교수님 강의 - Introduction
위키피디아 - 운영체제
커널과 셀
위키피디아 - 펌웨어
위키피디아 - BIOS
위키피디아 - 임베디드 시스템
굿