📖 운영체제란?
운영체제(Operating System)는 컴퓨터 시스템의 하드웨어, 소프트웨어적인 자원들을 효율적으로 운영 및 관리함으로써 사용자가 컴퓨터를 편리하고, 효과적으로 사용할 수 있도록 하는 시스템 소프트웨어입니다. 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층 즉, 중개자 역할을 해주는 프로그램입니다.
💎 운영체제의 역할 및 목적
- 자원관리
컴퓨터 시스템 자원 효율적 관리
(시스템 자원 - CPU, Memory, I/O장치와 같은 하드웨어 자원과 프로세스, 파일 메시지 등의 소프트웨어 자원) - 자원 보호
프로그램이나 다른 사용자가 데이터를 삭제하거나 중요 파일에 접근하지 못하게 컴퓨터 자원들 보호 - 인터페이스 제공
하드웨어 인터페이스와 사용자 인터페이스 제공하여 편리하게 사용하도록 지원
<운영체제의 목적>
응답시간 (Turnaround Time) | 작업 의로 후 시스템에서 결과가 얻어질 때까지의 시간 |
처리능력 (Throughput) | 시스템의 생산성을 나태내는 단위. 일정시간 동안 처리하는 일의 양 |
사용 가능도(Availability) | 시스템을 얼마나 빠르게 사용할 수 있는가의 정도 |
신뢰도 (Reliability) | 주어진 문제를 얼마나 정확하게 처리하는가의 정도 |
🔍 운영체제 종류
운영체제의 경우 크게 임베디드, 서버, 모바일, 데스크톱의 4개의 시장으로 나뉘어 있습니다. 임베디드의 경우 리눅스 계열, 서버는 유닉스 계열, 모바일은 안드로이드, 데스크톱은 윈도즈가 점유율이 가장 높습니다.
1. Windows
MS사에서 개발한 컴퓨터용 운영체제. 데스크톱 OS 중 가장 많은 점유율을 차지합니다. 점유율이 높은 만큼 사용자에게 최적화가 가장 잘되어있는 운영체제이지만 개발자를 위한 환경은 부족한 부분이 많아 개발을 할 때는 잘 사용하지 않습니다.
2. Linux
리누스 토르발스가 커뮤니티 주체로 개발한 컴퓨터 운영체제입니다.
다중 사용자, 다중 작업, 다중 스레드를 지원하는 네트워크 운영체제이며 무료 오픈소스입니다.
3. Unix
70년대 초 벨 연구소 직원 켄 톰슨, 데니스 리치, 더글러스 매클로이 등이 개발.
멀티태스킹과 다중 사용자 방식의 시분할 운영체제이고 현대적 컴퓨터 대부분의 운영체제의 원형이 된 운영체제라고 볼 수 있습니다. 서버 운영에 필수적인 CLI에 특화되어 있어 서버 시장에서 인기가 많습니다.
💻 운영체제의 유형
일괄처리 시스템(Batch processing system)
유사한 작업들끼리 일정량 또는 일정 시간 묶어서 처리하는 방식. 컴퓨터 시스템을 효율적으로 사용할 수 있지만 하나의 작업이 모든 자원을 독점하므로 CPU 유휴 시간이 줄어듦
ex) 초기 Punch Card 처리 시스템, ORM카드 등등
다중 프로그래밍 시스템(Multi programming system)
하나의 CPU와 주기억 장치를 이용하여 여러 개의 프로그램을 동시에 처리하는 방식. CPU와 대화하면서 처리가 가능하여 CPU 사용률과 처리량이 증가
시분할 시스템(Time sharing system)
시간을 분할하여 여러 사용자들에게 컴퓨터 자원을 번갈아가며 할당하면 사용자는 자신이 컴퓨터를 독점하고 있다는 느낌을 주게 됨.
실시간 시스템(Real-Time system)
단말기의 요청을 즉시 처리하여 결과를 반환하는 시스템.
ex) 원자로 / 공장 제어, 미사일, 반도체 장비, 로봇 제어와
다중처리 시스템(Multi-processing system)
여러 대의 CPU와 하나의 주기억장치를 이용하여 여러 개의 프로그램을 동시에 처리하는 방식. 단일 운영체제에 의해 관리되며, 하나의 CPU가 고장 나더라도 시스템의 신뢰성과 안정성을 보장할 수 있음
분산 컴퓨팅(Distributed computing)
넷상으로 연결된 여러 대의 컴퓨터들의 처리 능력을 이용하여 복잡한 계산 문제를 해결하려는 분산 처리 모델
🔨 운영체제의 기능
- 프로세스 관리 : OS에서 동시에 실행되는 많은 프로세스를 효율적으로 관리
- 파일 관리 : 파일 생성, 수정, 삭제, 조작, 백업 등등
- 네트워크 관리 : 네트워크 서비스 성능, 오류분석, 프로비저닝, 품질관리 등등
- 메인 메모리 관리 : 메모리 추적, 프로세스에 따른 메모리 할당
- 보조 스토리지 관리 : 스토리지 할당, 여유 광간 관리, 디스크 스케줄링
- 입출력 장치 관리 : 버퍼 캐싱 시스템 제공, 장치 드라이버 제공
- 보안 관리 : 시스템 보호 및 오류로 인한 시스템 손상 방지
- 명령어 해석 시스템 : 사용자와 시스템 간의 인터페이스. 인터프리터, 쉘 등등
- 프로세서, 메모리, 입출력 장치, 파일 및 정보 등의 자원 관리
- 시스템 자원 보호 기능
- 효율적인 자원 관리 및 분배를 위한 스케쥴링 기능
- 사용자와 시스템 간의 편리한 인터페이스 제공
- 각종 시스템 하드웨어와 네트워크 관리 및 제어
- 데이터 관리, 공유
- 시스템의 오류 검사 및 복구
- 입출력에 대한 보조기능
- 가상 계산기 능력 제공
'⚙️OS' 카테고리의 다른 글
[OS] 컴퓨터 시스템의 구조 (0) | 2021.10.30 |
---|---|
[OS] 프로세스(Process)와 스레드(Thread) 차이 (멀티 프로세스, 멀티 스레드) (0) | 2021.10.17 |
[OS] 스핀락(Spinlock), 뮤텍스(Mutex), 세마포어(Semaphore)의 특징과 차이점 (0) | 2021.04.15 |
[운영체제 OS] 스케줄러의 종류 (단기, 중기, 장기 스케줄러) (0) | 2020.05.12 |
[운영체제 OS] 다단계 큐 스케줄링(MLQ), 다단계 피드백 큐 스케줄링(MFQ) (0) | 2020.05.12 |