등장 배경에는 하드웨어가 무어의 법칙에 따라 성능이 좋아지면서 싸지면서 상대적으로 사람의 인건비가 더 비싸지게 되었다. 그래서 사람의 생산성을 높이는 것에 관심을 가지기 시작해서 Time Sharing Systems가 등장한 것이다.
목표는 사람의 생산성을 증가시키는 것이고, 그렇게 하기 위해 프로그램을 실행해서 submission 을 기다리는게 아니라 프로그램이 실행 중에 사람과 뭔가 interactive 한 일들을 할 수 있게 한 것이다. 그래서 Batch Multiprogramming에서는 JCL을 이용해서 Job sequencing을 자동화했다면, Time sharing에서는 커맨드 명령어를 터미널에 입력해서 프로그램과 계속 소통하는 형태를 취하게 되었다.
이것은 CPU가 충분히 빨라서, 그 CPU를 여러 사람이 같이 사용할 수 있도록 한 것이다. 그렇게 하기 위해 각 사용자는 terminal을 가지고 있는데, 터미널에 접속할 수 있는 모니터와 키보드를 가진 장치를 하나 가지고 있다고 생각하면 된다. 예시로 VT-100이라는 것이 있다. 사용자가 서버에 접속해서 CPU를 사용한다고 볼 수도 있다. 여러 많은 사용자가 서버에 연결되어 있을 테고, 어떻게 분배를 하느냐는 가장 직관적인 방법이 사용되었다. 시간을 쪼개서 각 사용자에게 할당 하는 것이다. 전공책에서는 각 사용자에게 0.2초의 시간을 할당했다고 했는데 이 때 0.2초를 time slice라고 한다. time slice를 다 사용하게 되면 OS에서 뺏어서 다른 사용자에게 CPU를 사용할 수 있게 한다. 이 작업에는 커널이 개입한다. 이렇게 time slice를 다 사용해서 뺏어버리는 걸 Preemption(선점)이라고 한다. 각각의 사용자가 각기 다른 프로그램을 돌릴테고, 그러면 각각 사용자를 서로 다른 프로그램이라고 생각해도 될 것이다. 그래서 어떤 표현이 사용되었나면, Job이 끝나면 다른 Job으로 스위치되고, 끝난 Job은 ready-list로 들어간다고 되어있다.
사용자의 입장에서는 마치 나 혼자 컴퓨터를 사용하는 듯한 생각이 들정도로 부드럽게 전환이 되었다고 한다.
위의 그림에서 A는 6초가 걸리는 Job이고 B는 2초가 걸려야 끝나는 Job이다. Time-slice가 있을 때와 없을 때를 비교한 사진이다. 중요한 것은 평균 응답시간(Average response time)과, 평균 종료시간(Average turnaround time)을 계산해 봐야한다. 평균 응답시간 계산 법은 프로그램 실행되고 Job이 반응할 때의 시간을 다 더해주고 평균을 내면 된다. Time-slice 가 없을 때는 (0 + 6)/2 해서 3초다. Time-slice가 있으면 (0 + 1)/2 = 0.5초다. 응답시간 측면에서 엄청난 개선이 이루어졌다. 어쨋든 프로세스의 작업이 다 끝나지 않았는데도 OS가 리소스를 뺏어가는 것을 Preemption이라고 다시 한번 강조한다. 사실 프로세스가 전환하는 것은 kernal mode에서 진행이 되는데 저 그림에서는 user와 kernal 모드를 바꾸는 시간은 생략되었다.
Turnaround time은 프로그램이 실행되고 Job이 종료될 때 시간을 평균내면 된다. 각각 7초, 6초이다. 이것도 역시 개선이 이루어졌다.
근데 내가 여기서 헷갈리기 시작한게 Average turnaround time과 이전 글에서 썼던 Mean response time이다. 둘이 같은데??
어쨋든 이런 Time sharing systems를 기반으로 1970년대 초에 등장한 OS가 바로 UNIX이다. 그리고 이 UNIX을 기반으로 Linux, Mac OS X 등이 등장하게 되었다. C언어로 구현되었다.
'필기 > OS' 카테고리의 다른 글
[운영체제] OS의 역할, OS의 발전 (0) | 2022.03.27 |
---|---|
[운영체제] I/O 디바이스, APIC (0) | 2022.03.27 |
[운영체제] Interrupt는 무엇일까? (0) | 2022.03.24 |
[운영체제] Instruction Fetch, Decode and Execute. (0) | 2022.03.24 |
[운영체제] 개념, Memory에 대해, Register 일부. (0) | 2022.03.24 |
댓글