운영체제는 컴퓨터 시스템의 하드웨어, 소프트웨어적인 자원들을 효율적으로 운영 및 관리 함으로써 사용자가 컴퓨터를 편리하고, 효과적으로 사용할 수 있도록 하는 시스템 소프트웨어이다. 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층, 중개자 역할을 해주는 프로그램.
운영체제의 역할
- 자원관리
- 컴퓨터 시스템 자원 효율적 관리(CPU, Memory, I/O) 프로세스, 파일 메시지
- 자원 보호
- 프로그램이나 다른 사용자가 데이터를 삭제하거나 접근못하게 하는 것
- 인터페이스 제공
- 하드웨어 인터페이스와 사용자 인터페이스를 제공해 편리하게 사용하도록 지원
운영체제의 목적
- 응답시간: 작업 의로 후 시스템에서 결과를 얻기까지의 시간
- 처리능력: 시스템 생산성을 나타내는 단위, 일정시간 동안 처리하는 일의 양
- 사용가능도: 시스템 빠르기의 척도
- 신뢰도: 주어진 문제를 정확하게 처리하는가의 척도
크게 임베디드, 서버, 모바일, 데스크톱 4가지로 나뉘어짐
- Windows
MS사에서 개발한 컴퓨터용 운영체제. 데스크톱 OS 중 가장 많은 점유율을 차지합니다. 점유율이 높은 만큼 사용자에게 최적화가 가장 잘되어있는 운영체제이지만 개발자를 위한 환경은 부족한 부분이 많아 개발을 할 때는 잘 사용하지 않습니다.
- Linux
리누스 토르발스가 커뮤니티 주체로 개발한 컴퓨터 운영체제입니다.
다중 사용자, 다중 작업, 다중 스레드를 지원하는 네트워크 운영체제이며 무료 오픈소스입니다.
- Unix
70년대 초 벨 연구소 직원 켄 톰슨, 데니스 리치, 더글러스 매클로이 등이 개발.
멀티태스킹과 다중 사용자 방식의 시분할 운영체제이고 현대적 컴퓨터 대부분의 운영체제의 원형이 된 운영체제라고 볼 수 있습니다. 서버 운영에 필수적인 CLI에 특화되어 있어 서버 시장에서 인기가 많습니다.
- 일괄처리 시스템
- 유사한 작업끼리 일정량 또는 일정 시간 묶어서 처리해서 시스템을 효율적으로 사용하나 모든 자원을 독점하므로 CPU유휴 시간이 줄어듬
- 다중 프로그래밍 시스템
- 하나의 CPU와 주기억 장치를 이용하여 여러 개의 프로그램을 동시에 처리하는 방식, CPU의 사용률과 처리량 증가
- 시분할 시스템
- 시간을 분할해 여러 사용자에게 자원을 번갈아가며 할당함
- 실시간 시스템
- 단말기 요청을 즉시 처리해 결과를 반환
- 다중처리 시스템
- 여러대의 CPU와 하나의 주기억 장치를 이용해 여러 개의 프로그램을 동시에 처리하는 방식, 단을 운영체제로 관리하며 CPU가 하나 고장나더라도 시스템의 신뢰성, 안정성 보장
- 분산 컴퓨팅
- 넷상으로 여러 컴퓨터의 처리능력을 이용해 복잡한 계산문제를 해결함.
운영체제 기능
1. 프로세스 관리: OS에서 동시에 실행되는 프로세스를 효율적 관리
2. 파일 관리: 생성, 수정, 삭제, 백업
3. 네트워크 관리: 서비스 성능, 오류분석, 프로비저닝, 품질관리
4. 메인 메모리 관리: 메모리 추적, 프로세스에 따른 메모리 할당
5. 보조 스토리지 관리: 스토리지 할당, 여유 광간 관리, 디스크 스케줄링
6. 입출력 장치 관리: 버퍼 캐싱 시스템 제공, 장치 드라이버 제공
7. 보안 관리: 시스템 보호 및 오류로 인한 시스템 손상 방지
8. 명령어 해석 시스템: 사용자와 시스템 간의 인터페이스, 인터프리터, 쉘
- 프로세서, 메모리, 입출력 장치, 파일 및 정보 등의 자원 관리
- 시스템 자원 보호 기능
- 효율적인 자원 관리 및 분배를 위한 스케쥴링 기능
- 사용자와 시스템 간의 편리한 인터페이스 제공
- 각종 시스템 하드웨어와 네트워크 관리 및 제어
- 데이터 관리, 공유
- 시스템의 오류 검사 및 복구
- 입출력에 대한 보조기능
- 가상 계산기 능력 제공