Operating System Structure(운영체제 구조) Multiprogramming Multiprogramming은 효율성을 위해서 필요하다. Multiprogramming을 쓰지 않는다면 CPU는 놀 것이다. Multiprogramming은 job들을 구성해서 CPU가 항상 한가지를 실행 할 수 있도록 한다. Job scheduling(CPU scheduling)을 통해 한개의 job이 선택되고 실행된다. I/O가 발생해서 CPU가 기다려야 한다면 OS는 다른 job으로 switch 시킨다. 여기서 job이란 cpu가 실행할 일들 이라고 생각하면 된다. Timesharing(multitasking) CPU가 실행하는 job들을 자주 바꾸면서 user들은 각각의 job들이 모두 실행중인것 처럼..