CS16 [OS] Mechanism: Address Translation CPU를 가상화할 때 LDE(Limited Direct Execution) 매커니즘을 활용했었던게 기억나시나요??CPU를 user mode와 kernel mode의 2가지 모드와, system call, trap, interrupt등이 발생했을 때는 운영체제가 개입하여 알맞은 일을 처리해주었었습니다. 이 때 운영체제는 하드웨어의 지원을 받아 효율적인 가상화를 제공함과 동시에, 프로세스에게 통제권을 온전히 주는 것이 아닌 time interrupt같은 것을 통해서 통제권을 유지했습니다. CPU 가상화에서 효율성(Efficiency)과 통제(Control) 그리고 보호(Protection)가 운영체제에게 중요했던 만큼 메모리 가상화에서도 여전합니다. 또한, 프로그램들이 자신의 address space를 원하.. 2024. 11. 14. [OS] The Abstraction: Address Space 저번글로서 이제 CPU의 가상화가 끝났고, 이제부터는 '메모리의 가상화'에 대해서 다룰 차례다. 한번 그 역사 흐름부터 살펴보자. 옛날에는 컴퓨터가 매우 비쌋기 때문에, 사람들은 컴퓨터를 더 효과적으로 공유하길 원했습니다. 이렇게 해서 다중 프로그래밍의 시대가 열리게 되었고, 여러개의 프로세스가 실행되기 시작합니다. 그래서 CPU의 가상화, 시분할(time sharing)의 시대가 도래하게 되었습니다. 예전에는 시분할을 하면서 Context switching을 할 때, 모든 state들을 디스크에 저장한 후, 다른 프로세스의 상태를 불러와서 실행하는 식으로 공유를 했었는데, 이 방법은 너무 느리다는 단점이 있습니다. 메모리 전체 내용을 디스크에 저장하는 것은 딱 봐도 성능이 너무 떨어집니다..따라서 프.. 2024. 11. 14. [OS] Scheduling: Proportional Share 앞장에서 MLFQ 스케줄링 방식을 살펴봤었습니다. MLFQ는 turnaround time과 response time 두가지 토끼를 모두 잡는 것을 목표로 한 스케줄링 방식이었습니다. 이번장에서 다룰 Proportional share(fair-share) 스케줄링 방식은 이름에서부터 알 수 있듯이 Fairness, 공정함에 초점을 맞춘 스케줄링입니다. 즉, 각 작업이 CPU를 사용하는 시간의 특정 비율을 보장받을 수 있도록 해주는 스케줄링 방식입니다. 이 Proportional share의 초기 예시로 Lottery Scheduling이 널리 알려져있습니다. 이 Lottery Scheduling의 기본 개념은 매우 간단합니다.일정 간격으로 복권을 추첨해서, 당첨된 프로세스가 다음에 실행되게 된다(스케줄링 .. 2023. 12. 16. [OS] Scheduling: Multi Level Feedback Queue (MLFQ) 이전 글에서 프로그램을 실행해보기도 이전에 프로그램의 실행 시간을 아는 것은 현실적으로 불가능한 이야기이므로 SJF와 STCF같은 정책들이 Optimal하지만 다른 방법을 탐색했어야했습니다. 따라서 "실행 시간을 몰라도 SJF/STCF처럼 효율적이고, Round Robin처럼 공정한 스케줄링 정책은 없는 걸까 "라는 의문을 남긴채 글을 마무리했었습니다. 그 의문을 해소하고자 Multi-Level Feedback Queue(MLFQ)가 등장하게 됩니다.MLFQ의 목적은 두가지입니다.turnaround time(반환 시간)의 최적화 like SJF(or STCF)response time(반응 시간)의 최적화 like RR즉, 반환시간과 반응시간 두가지의 성능 지표 모두를 노려보는 방법입니다. MLFQ: B.. 2023. 12. 11. 이전 1 2 3 4 다음