목적 : 동빈나님의 유튜브를 보고 정리
운영체제
컴퓨터 사용자와 하드웨어 사이에서 중개자 역할을 해주는 프로그램
개요
컴퓨터 시스템의 처리 구조
User - Application(S/W) - OS - H/W
- 사용자와 하드웨어 사이에서 상호작용을 하는, 항상 수행되는 프로그램
시스템의 발전
- 일괄처리 시스템 -> 다중 프로그램, 시분할 시스템
일괄처리 시스템 (Batch System)
- 초기의 운영체제는 즉시 데이터를 처리할 수 있는 여건을 갖추지 못함
- 따라서 대안책으로써 비슷한 것들을 주기적으로 한 번에 묶어서 처리하는 Batch System을 도입
- I/O 장치 속도가 CPU의 속도보다 느리기 때문에 CPU가 idle 상태인 경우가 많음
- 상호 작용이 필요 없는 큰 단위의 작업들을 수행할 때 사용이 됨.
다중 프로그램 시스템 (Multi Programmed(ing) System)
- 하드 디스크, SSD에서 여러 개의 프로그램을 선택해서 메인 메모리(RAM)에 적재.
- 메모리 내에 있는 작업 중 하나를 선택해 차례대로 실행
- 작업이 I/O 등의 이유로 기다리는 상태에 도달할 경우 CPU는 다른 작업으로 넘어가서 수행
- 첫 번째 작업의 대기 상태가 끝나게 되면 현재의 작업을 중단하고 다시 첫 번째 작업이 CPU를 차지
시분할 시스템 (Time-Sharing System)
- 프로그램이 수행 되고 있을 때, 아주 짧은 주기로 CPU를 가각의 프로그램에 할당
- 프로그램이 수행되고 있는 동안에도 interact가 가능
- 매우 짧은 주기이기 때문에 사용자는 동시에 작동을 하고 있다고 느끼게 됨
- 리눅스를 예시로, 여러 사용자가 동시의 한 대의 컴퓨터에 접속을 해서 서로 다른 처리를 할 수 있도록 해줌
작업 스케쥴링
- 보조기억장치에 프로그램이 저장되어 있고, 그 중 일부를 선택하여 메모리에 적재하는 전략
CPU 스케쥴링