반효경 교수님의 운영체제 강의를 듣고 정리한 게시글입니다.
컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층
한 번에 하나의 작업만 처리
한 명령의 수행이 끝내기 전에 다른 명령을 수행시킬 수 없다.
ex) MS-DOS
동시에 두 개 이상의 작업 처리
한 명령의 수행이 끝나기 전에 다른 명령이나 프로그램을 수행할 수 있다.
ex) UNIX, MS Windows
한 명의 사용자만 시스템 사용
ex) MS-DOS
동시에 여러 사용자들이 시스템 사용
ex) UNIX
데이터 처리에서 즉시성을 필요로 하지 않을 경우, 일정량 또는 일정 기간 데이터를 모아서 한꺼번에 처리
여러 작업을 수행할 때 컴퓨터 처리 능력을 일정한 시간 단위로 분할(time slicing)하여 사용
정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되어야하는 실시간 시스템을 위한 OS로 데드라인(Deadline) 존재
작업의 최소 단위로 프로세스(process), 스레드(thread) 모두 작업의 단위가 될 수 있다.
어떤 작업을 위해 실행할 수 있는 명령어의 집합인 파일
실행 중인 프로그램, 메모리에 적재되어 운영체제의 제어를 받는 상태
각 프로세스는 각각의 독립된 메모리 영역
프로세스의 실행단위, 프로세스는 하나 이상의 스레드를 가지고있다.
운영체제의 스케쥴링에 의해 task를 번갈아가며 수행하여 여러 작업(task)를 동시에 수행하는 것처럼 느끼게 하는 것
여러 프로그램이 메모리에 올라가 있음을 강조
➡ for CPU 이용률 극대화
CPU의 시간을 분할하여 나누어 쓴다는 의미를 강조
➡ for 응답 시간 최소화
하나의 프로그램을 여러개의 프로세스로 구성하여 multiprocessor를 이용하여 병렬적으로 작업을 수행하는 것
하나의 프로세스를 여러개의 스레드로 처리하여 프로세스를 효율적으로 실행하는 것
하나의 컴퓨터에 CPU(processor)가 여러 개 존재하고 있음을 의미
[보충 참고자료]
BillyTheKid님의 블로그 Murphy
Gyoogle님의 👶🏻신입 개발자 전공 지식&기술 면접 백과사전