728x90
운영체제란 ?
- 사용자와 하드웨어 간의 상호작용을 위한 사용자 인터페이스 → 즉, 하드웨어 제어, 입출력 등의 관리를 수행
- CPU, MEM, I/O장치 등 하드웨어를 효율적으로 관리한다(자원 스케줄링 등) → 한정된 하드웨어 자원을 다수의 이용자가 공유할 수 있게 하기 위함
- 응용 프로그램이 동작할 수 있는 프로그래밍 인터페이스 또한 제공
- 프로그램에게 system call (커널 기능을 호출할 수 있게 해주는 기능)을 제공한다.
- 오류 복구 기능, 네트워크 기능 등등 …
운영체제의 목적
- 효율성 → Throughput, Turnaround Time의 최소화를 목적으로 한다.
- 주어진 문제를 정확하게 처리하는 신뢰도(Reliability) 향상을 목적으로 한다.
- 이용할 수 있는 시스템 자원의 정도를 의미하는 사용 가능도(Availability)의 향상을 목적으로 한다.
운영체제의 구조

운영체제의 기능
- 리소스 관리, 자원 스케줄링
- LAN, USB, 디스크 등 하드웨어 관리
- 네트워크 주소 할당, 네트워크 설정, 경로 설정 등의 네트워크 제어
- 파일 시스템 DB, 데이터 생성/저장/조회 등 데이터 관리, 파일 공유 시스템 등
- OS 가상화 기능 제공 (=Virtual Machine)
운영체제의 운용 기법
- 일괄 처리 시스템 (Batch Processing System)
- 초기 운영체제의 형태로, 여러 작업을 묶어서 한 번에 처리하는 방식
- OS가 작업을 처리하기 시작하면 결과가 나올 때까지 기다려야 한다
- 동기, 블로킹 방식
- 다중 프로그래밍 시스템 (Multi Programming System)
- CPU 스케쥴링을 통해 배치 시스템 처리 중 유휴 상태인 자원을 효율적으로 사용하기 위한 방식
- 하나의 작업이 입출력 중일 때 다른 작업을 할당하여 CPU 사용률과 처리량을 향상시키는 운용 기법
- 시분할 시스템 (Time Sharing System)
- time slice, time quantum 이라고 불리는 작업 시간동안 작업을 처리하고, 이 시간이 만료되면 다음 작업을 수행하는 방식

- time slice, time quantum 이라고 불리는 작업 시간동안 작업을 처리하고, 이 시간이 만료되면 다음 작업을 수행하는 방식
- 다중 처리 시스템(Multi-Processing System)
- 멀티코어로 돌린다 = 병렬 처리 시스템
- 비대칭적 다중 처리(Asymmetric Multi-processing) : 프로세서 간 주종관계
- Master CPU/Slave CPU가 존재하여 master에서 slave에 작업을 할당하는 방식
- 대칭적 다중 처리(Symmetric Multi-processing)
- SMP(Symmetric Multi-processing) : 일반적인 대칭 구조의 프로세서
- MPP(Massively Parralel Processing) : 프로세서들이 병렬로 작동하는 분산 메모리 구조
- 실시간 처리 시스템(Real Time Processing System)
- 요청에 timeout이 존재한다
- 시간적 제약의 엄격한 정도에 따라 나뉜다
- 경성 실시간 처리 시스템(Hard real time processing system) : 엄격함, 무기 제어, 산업 로봇등에 사용
- 연성 실시간 처리 시스템(Soft real time processing system) : 유연함, 시스템에 큰 영향을 미치지 않는 동영상 재생 시스템 등
- 다중 모드 시스템(Multi-Mode System)
- 위에 나온 일괄 처리, 다중 프로그래밍, 시분할, 다중 처리, 실시간 처리 시스템을 모두 혼용하여 사용할 수 있는 운용 시스템
- 분산 처리 시스템(Distribute Processing System)
- 여러 독립적인 컴퓨터(노드)가 네트워크로 연결되어 하나의 시스템처럼 동작하는 구조.
- 각 노드가 독립적인 CPU, 메모리, 디스크를 가지고 있으며, 필요할 때 서로 통신하며 작업을 나눔.
- 사용자나 응용 프로그램 입장에서는 분산되어 있다는 사실을 의식하지 않아도 됨 → 마치 한 대의 강력한 컴퓨터처럼 보임.

운영체제의 사례
- 윈도우(Windows)
- 1975년, 빌 게이츠(Bill Gates), 폴 앨런(Paul Allen), 마이크로소프트, 개인용, GUI
- 최신 버전 : Windows 11, 2024.10.01
- 맥(macOS)
- 스티브 잡스(Steve Jobs), 스티브 워즈니악(Steve Wozeniak), 애플, 유닉스/다윈 기반
- 스티브 잡스가 설립했던 NeXT에서 만든 NeXTSTEP 후속 운영체제
- 2016년 6월 13일 WWDC에서 Siera를 발표하면서 명칭이 OS X에서 macOS로 변경
- 리눅스(Linux)
- 리누스 토발즈(Linus B. Torvalds)는 자신의 386컴퓨터에서 유닉스에 호환되는 운영체제를 개발
- 1991년 9월 17일(0.01v, 공개 X) → 1991년 10월 5일(0.02v, 공개O, 뉴스그룹(comp.os.minix)
- 리차드 스톨만의 GNU프로젝트에서 애플리케이션 개발 → 패키지로 묶은 리눅스 배포판 릴리즈
- 데스크톱용 : Ubuntu, CentOS, Rocky …
- 유닉스(UNIX)
- 1969년 미국의 AT&T사의 벨 연구소의 켄 톰슨(Ken Tompson) 및 데니스 리치(Dennis Ritche), 시분할 운영체제
- C언어로 개발 → 이식성 좋음, 명령행 인터프리터, 계층적 파일 시스템, 장치와 프로세스 간 통신을 파일 매개체로 수행
- 유닉스 보급 → System V계열과 BSD계열 존재
- 안드로이드(Android)
- 2005년 구글이 인수한 후 2007년 11월에 OS로 무료 공개 → OHA에서 개발
- 리눅스 커널과 네이티브 환경에서 구동하는 C/C++ 라이브러리와 안드로이드 런타임 기반
- 기존의 VM이었던 달빅(Dalvik)을 더 이상 채용하지 않고 안드로이드 런타임이라는 새로운 가상 머신을 제공하여 자바/코틀린으로 개발된 어플리케이션을 구동
- iOS, watchOS, iPadOS, tvOS
- 애플의 디바이스용 운영체제
- 타이젠(Tizen)
- 리눅스 기반 오픈소스 모바일, 웨어러블 IVI 기기용 운영체제
- 임베디드 리눅스(Embedded Linux)
- 라즈비안(raspbian) : 라즈베리파이용 운영체제
- webOS : Palm → LG전자에서 개발중인 TV/IoT용 운영체제
- IVI : Windows Embedded Automotive, QNX, GENIVI, Android Auto, Apple Carpay 등등 …
- IoT용
- Linux기반 : Android Things, Ubuntu Core
- Windows IoT
- RTOS(실시간 운영체제) : FreeRTOS, VxWorks, QNX
- 경량OS

728x90