[쉽게 배우는 운영체제](조성호, 한빛아카데미, 2018)의 내용과 목차를 기반으로 하여 여러 참고 자료와 함께 공부하며 스스로 이해한 내용을 정리했습니다.
작업에 필요한 프로그램과 데이터를 동시에 입력해야 작업이 가능하다.
모든 작업을 한꺼번에 처리해야 하고 프로그램 중간에 데이터 입력/수정을 할 수 없다.
키보드와 모니터의 개발로 가능해졌다.
작업 중간에 중간 결과물을 보여주고, 출력하거나 또는 작업의 흐름을 바꾸는 것도 가능해졌다.
일괄 작업 시스템은 입출력이 거의 없어서 작업 시간을 예측할 수 있었으나, 대화형은 사용자가 언제 반응할지 모르는 등의 이유로 작업 시간 예측이 어려워졌다.
다중 프로그래밍(multiprogramming): 하나의 CPU로 여러 작업을 동시에 수행하는 것으로, 일괄 작업 시스템에 비해 고효율이다.
이는 시간을 매우 잘게 쪼개어 여러 작업에 나누어 주어 여러 작업이 동시에 이루어지는 것처럼 보이게 하는 것으로 컴퓨터 내부에서 구현되었고, 따라서 시분할 시스템(time sharing system, multitasking system)이라고 한다.
잘게 나뉜 시간 조각을 타임 슬라이스(time slice) 또는 타임 퀀텀(time quantum)이라고 한다.
단점으로 작업들을 동시에 처리하기 위한 추가 작업이 필요한 점과 중요한 작업이 제 시간에 끝나는 것을 보장할 수 없다는 점이 있다.
멀티프로그래밍 수준(level/degree of multiprogramming): 시분할 시스템에서 동시 프로그래밍되는 작업의 개수
시분할 시스템에서 여러 작업을 동시에 할 수 있다는 것은 한 사람이 작업을 여러 개 동시에 할 수 있거나, 여러 사람이 동시에 작업할 수 있다는 의미도 된다. 즉 다중 사용자 시스템(multi-user system)을 가능하게 했다.
모든 컴퓨터가 동일한 분산 시스템에서 나아가 작업을 요청하는 클라이언트와 작업을 처리하는 서버의 이중 구조로 나누는 구조이다.
서버에 이용자가 몰릴 때 서버 과부하가 생길 수 있다.
데몬: 서버에서 멈추지 않고 계속 작동하는 프로그램
peer: 말단 노드로 이용자의 컴퓨터
p2p는 이 말단 노드 사이를 서버를 거치지 않고 연결하는 것으로 서버 부하가 적다
메신저, 파일 공유
https://parksb.github.io/article/5.html
사진: https://onlinesmarttrainer.blogspot.com/2020/02/distributed-systems.html