사용자의 하드웨어, 시스템 리소스를 제어하고 프로그램에 대한 일반적 서비스를 지원하는 시스템 소프트웨어이다.
개념도는 아래와 같다.

예시 : 멀티태스킹을 통해 여러 프로그램을 동시에 실행 (예: 브라우저에서 유튜브를 보면서 워드 작업)
예시 : SSD와 함께 최적화된 OS 스케줄링으로 부팅 시간 단축 (예 : Windows의 빠른 시작 기능)
예시 : 시스템 충돌 발생 시 자동 복구 기능 제공 (예 : 윈도우의 블루스크린 후 자동 재부팅)
예시 : GUI(그래픽 인터페이스) 제공 (예 : macOS의 Dock, Windows의 시작 메뉴)
예시 : 프린터 드라이버를 통해 인쇄 작업 처리 (예 : 문서 인쇄 시 프린터로 데이터 전송)
예시 : 사용자 계정 권한 설정 및 보안 기능 제공 (예 : 관리자 권한이 필요한 프로그램 실행 시 UAC 창 표시)
예시 : 가상 메모리를 활용하여 RAM이 부족할 때 디스크를 사용 (예 : Windows의 페이징 파일)
예시 : 프로세스 스케줄링으로 CPU 자원을 효율적으로 배분 (예 : 백그라운드에서 업데이트 진행 중에도 게임 실행 가능)
예시 : 파일 시스템을 통해 데이터 저장 및 접근 관리
예시 : 명령어 입력 시 실행 (예 : 터미널에서 ls 입력 시 파일 목록 출력)
Microsoft사 제품으로 유료로 다양한 라이선스 정책이 적용되어 있다. 주로 중소 규모 및 개인용 PC의 OS로 사용된다.
IBM, HP, Sun사의 제품으로 유료로 다양한 라이선스 정책이 적용되어 있다. 주 로 대용량 처리, 안전성이 요구되는 서버(Server) 제품군에 사용된다.
Linux Torvalds사의 제품으로 무료이다. 중대 규모 서버에 사용된다.
Apple사 제품으로 하드웨어의 번들(Budle)이다. 스마트폰 및 태블릿 PC에 사용 된다.
Google사 제품으로 무료이다. 스마트폰 및 태블릿 PC에 사용된다.
텍스트 기반의 인터페이스
키보드를 사용하여 명령 입력
명령어를 입력하여 직접적인 조작 수행
사용자가 명령어의 문법과 옵션을 숙지해야 함
명령어와 옵션을 입력하여 실행
자동화 및 스크립트 작성이 용이
그래픽 요소(아이콘, 버튼, 창)를 이용한 시각적 인터페이스
마우스와 키보드를 사용하여 조작
아이콘 클릭, 드래그앤드롭, 창 전환 등 직관적인 조작
사용자가 명령어를 몰라도 쉽게 작업 가능
마우스를 사용하여 프로그램 실행 및 설정 변경
다양한 애플리케이션을 동시에 실행 가능 (멀티태스킹 지원)
윈도우 CMD창에 help 입력
help의 매개변수로 명령어 이름을 넣으면 그 명령어에 대한 설명이 나온다.

systeminfo를 사용 했을 때


리눅스(우분투)는 Ctrl + Alt + T를 사용하여 Linux 터미널에 접속한다.

사용중인 리눅스 종류 및 버전 확인 방법

리눅스 OS 경우 GUI 기반 환경에서의 기본 명령어를 입력한 후 관련 내용을 확인한다.
리눅스(우분트) 경우 Desktop 버전이 아닌 Server 버전으로 구축한 경우 CLI 레벨로 구축이 되나, 관리하는 과정에서 GUI 레벨의 패키지가 필요한 경우 GUI를 설치 하기 전 apt-get 도구의 Upgrade를 진행한다.(충돌이나 오류를 방지하기 위함이다.)
GUI 명령어 실행을 위해서 startx 명령어를 입력하면 xwindow 환경이 실행되면서 GUI 환경으로 전환된다.
GUI로 변경하는 경우 5로 runlevel를 조정한다.

CPU를 통해 수행되는 사용자 및 시스템 프로그램
시스템의 작업 단위
한 프로세스의 수행이 순차적인 방법으로 진행
어느 한순간에 많아야 하나의 명령어만 프로세스를 대표하여 수행하게 됨
현재 실행 중인 하나의 프로그램으로 프로세스가 포함하고 있는 내용
(가) 프로세스 문맥: 상태 워드나 레지스터들
(나) 기억장치 문맥: 데이터 세그먼트, 코드 세그먼트, 실행 스택 등
(다) 프로세스와 연관된 속성들
병행 프로세스의 개념
(가) 프로그램 그 자체가 프로세스는 아님
(나) 하나의 프로그램 = 수동적(Passive)인 단위
(다) 하나의 프로세스 = 능동적(Active)인 단위
병행 프로세스의 형태

1. 형태 1 (병렬 실행)
p와 q 프로세스가 나란히 실행된다.
두 프로세스가 독립적으로 실행되며 서로 간섭하지 않는다.
멀티코어 CPU 환경에서는 실제 병렬 실행이 가능하다.
2. 형태 2 (인터리빙 실행)
p와 q 프로세스가 번갈아가며 실행된다.
작은 단위의 작업들이 교차 실행되며, 마치 시분할(time-sharing) 방식처럼 보인다.
단일 코어 CPU에서 스케줄링 기법을 통해 여러 프로세스를 동시에 실행하는 것처럼 보이게 만든다.
3. 형태 3 (중첩 실행)
p가 실행되다가 중간에 q가 실행된 후 다시 p가 이어서 실행된다.
p가 q의 실행을 기다리는 구조로, 동기화가 필요한 경우에 사용된다.
예를 들어, p가 데이터를 준비한 후 q가 이를 처리하는 경우가 해당된다.
컴퓨터 시스템 내에 하나의 프로세스가 존재하는 동안 그 프로세스는 계속해서 여러 사건들에 의해 일련의 상태 변화를 거침
구분
제출(Submit) 상태
보류(Hold) 상태
준비(Ready) 상태
실행(Running) 상태
대기(Waiting) 상태
완료(Complete) 상태

chrome.exe (크롬 브라우저 설치 파일)
python script.py (파이썬 스크립트)
사용자가 크롬을 두 번 실행하면 chrome 프로세스가 2개 생성됨.
메모장을 실행하면 notepad.exe 프로세스가 생성됨.
python script.py를 실행하면 python.exe 프로세스가 실행됨.