운영체제는 시스템 소프트웨어의 한 유형이다.
컴퓨터의 전체 리소스와 작업을 관리할 수 있도록 설계되었고
컴퓨터에 있는 모든 프로그램의 실행을 제어하고 모니터링한다.
운영체제는 컴퓨터 소프트웨어와 하드웨어를 개선하는 데 도움이 된다.
사용자에게 모든 애플리케이션을 사용자 친화적으로 만드는 인터페이스를 제공하며,
OS서비스를 하드웨어 환경에 도달할 수 있게 하는 많은 수의 장치 드라이버 또한 제공된다.
즉, 우리가 컴퓨터에서 사용하는 수많은 애플리케이션은 이 운영체제의 도움이 필요하며
그 중 하드웨어에 대한 통제가 필요한 소프트웨어들이 적절하게 통제할 수 있도록
사이에서 통신 채널의 역할을 해준다.
이러한 통신 채널의 역할은 소프트웨어들의 적절한 하드웨어 간접통제 뿐만 아니라,
직접 접근하지 못하게 하여 보안성을 강화하고, 효율적인 자원관리가 가능해진다.
자원 관리: 컴퓨터에서 실행되는 다양한 프로그램과 프로세스 간에 메모리,
CPU 시간 및 기타 하드웨어 자원을 관리하고 할당한다.
프로세스 관리: 프로세스와 프로그램을 시작, 중지, 관리하는 역할을 한다.
프로세스 스케줄링을 제어하고 리소스를 할당한다.
메모리 관리: 컴퓨터의 주 메모리를 관리하고 메모리 사용을 최적화하기
위한 메커니즘을 제공한다.
작업 관리: 다양한 작업이나 사용자가 사용한 시간과 리소스를 추적한다.
파일 관리: 파일과 디렉토리의 생성, 삭제, 조작을 포함하여 파일 시스템을
구성하고 관리하는 역할을 한다.
장치 관리: 프린터, 키보드, 마우스, 디스플레이와 같은 입출력 장치를 관리,
장치와 컴퓨터 간의 통신을 가능하게 하는 드라이버와 인터페이스를 제공한다.
네트워킹: 네트워크 연결을 설정하고 관리, 네트워크 프로토콜을 처리,
네트워크를 통해 프린터와 파일 등의 리소스를 공유한다.
사용자 인터페이스: 사용자가 컴퓨터 시스템과 상호 작용할 수 있도록 하는 사용자 인터페이스를 제공합니다.
백업 및 복구: 시스템 장애, 오류 또는 재해 발생 시 데이터를 백업하고 복구하기 위한 메커니즘을 제공.
가상화: 여러 운영 체제 또는 애플리케이션을 단일 물리적 머신에서 실행할 수 있는
가상화 기능을 제공.
성능 모니터링: 병목 현상 식별, 리소스 사용 최적화, 시스템 로그 및 메트릭 분석 등
시스템 성능을 모니터링하고 최적화하기 위한 도구를 제공.
시분할: 자원을 공정하고 효율적으로 할당하는 시분할 메커니즘을 제공함으로써
여러 사용자가 컴퓨터 시스템과 자원을 동시에 공유할 수 있도록 합니다.
시스템 호출: 애플리케이션이 운영 체제와 상호 작용하고 리소스에
액세스할 수 있도록 하는 일련의 시스템 호출을 제공.
오류 감지 도구: 오류 메시지와 기타 디버깅 및 오류 감지 방법을 포함하는
메서드가 포함되어 있다.
단일 사용자 운영체제 - 한 번에 한 명의 사용자만 시스템을 사용
개인 PC용인 Windows 와 MacOS
다중 사용자 운영체제 - 여러 사용자가 동시에 시스템 자원을 사용
서버, 메인프레임, 클라우드 시스템으로 사용하는 UNIX, Linux, Winow Server
단일 태스크 운영체제 - 한 번에 하나의 작업만 실행 가능
단순 작업에 적합한 MS-DOS
다중 태스크 운영체제 - 여러 작업을 동시에 실행 가능
복잡한 작업 처리가 가능한 Windows, MacOS, Linux
일괄처리 운영체제 - 작업을 모아서 한번에 처리
데이터 분석, 대규모 작업처리에 사용, 초기 메인프레임 컴퓨터 운영체제
시분할 운영체제 - 여러 사용자가 시스템을 공유, 각 사용자에게 CPU 시간할당
효율적 자원사용 및 빠른 응답시간을 제공하는 UNIX, Linux
실시간 운영체제 - 작업이 정해진 시간안에 반드시 처리되어아 한다
항공기 제어 시스템, 의료기기, 로봇 공학에 사용되는 VxWorks, RTOS, QNX
네트워크 운영체제 - 네트워크 상에서 자원을 공유하고 통신을 지원
파일 서버, 데이터베이스 서버로 사용되는 Novell NetWare, Window Server
분산 운영체제 - 여러 시스템이 협력하여 작업을 분담, 하나의 시스템으로 보임
클라우드 컴퓨팅, 데이터 센터에 사용하는 Google File System, Hadoop
임베디드 운영체제 - 특정 하드웨어 장치를 위해 설계된 소형 운영체제
스마트폰, IoT, 가전제품에 사용되는 Android, FreeRTOS
컴퓨터 시스템의 하드웨어 및 소프트웨어 리소스를 제어하는 운영 체제는,
사용자와 컴퓨터 하드웨어 장치 사이를 연결하고 메모리, 파일 시스템, 입출력,
장치 제어 등을 할당하여 프로그램을 실행한다.