A. Silberschatz: “A program that acts as an intermediary between a user of a computer and the computer hardware.”
Dietel: “Programs that make the hardware usable.”
Operating Systems Goals
자원의 효율적인 사용
예전에는 하드웨어가 비쌌고, 그 효율을 최대한 쓰기 위해서 만들어짐.
사용자 편의성
유저 입장에서 커맨드를 모르고도 사용할 수 있게끔
신뢰성, 접근성
Evolution of Operating systems
Batch system (한번에 하나의 프로그램만 처리할 수 있음)
multi-programmed batch system (cpu는 빠르지만 io가 느리기 떄문에 그 동안 cpu가 놀게 됨. 그 동안 cpu가 일을 수행하게끔. 이건 io할때동안만 다른 프로그램이 도는 것 )
Time sharing system(프로그램이 실행하는 시간까지 수행하자. 그래서 time slice라는 개념이 등장. 그 시간만큼 사용하고 레디큐의 뒤에 다시 삽입 : multiprocessing이라고 불리기도 함)
micro processor를 통해서 pc의 시대를 열음 → 하지만 성능이 상대적으로 부족하니까 여러개 연결해서 사용하자는 개념이 parallel system (값싼 micro processor를 연결해서 많은 task를 수행할 수 있게끔 사용) + Real time systems
Modern computing Paradigms
Traditional computing
Number crunching (숫자를 빨리 계산해서 하려고 하는 것)
Web-based computing
Information을 어떻게 retrieve 할 것인가하는 것이 문제가 됨. 정보를 어떻게 효율적으로 처리할 것인가. ex ) chat gpt
Embedded computing
ex) IoT
범용 컴퓨터 대비 resource에 대한 constraint가 된다. 특수 목적만 수행하는 것만 신경쓰면 됨.