26 Kasım 2020 Perşembe

Preemptive Scheduling Nedir? - Geçişli Zamanlama

Giriş
Preemptive scheduling Türkçe' ye "Geçişli Zamanlama" olarak tercüme edilmiş. Ben de bazen aynı tabiri kullanacağım.

Preemptive Scheduling multitasking yapan işletim sistemleri konusunda karşımıza çıkan bir konu. Günümüzdeki çoğu işletim sistemi bu yöntemi kullanıyor
Linux and most modern OSes use preemptive multitasking ...
Multitasking Ne Demek
Multitasking, tek bir işlemcinin çok hızlı şekilde process'ler arası geçiş yapıp hepsini sırayla çalıştırması demek. Böylece sanki tüm process'ler çalışıyormuş izlenimi doğuyor.

Multiprocessing Ne Demek
Elimizde birden fazla işlemcinin olması durumunda olur. 

- Symmetric Multiprocessing kullanılıyorsa işletim sistemine adanmış bir işlemci vardır. Diğer uygulamalar geri kalan işlemciler tarafından çalıştırılır

- Asymmetric Multiprocessing kullanılıyorsa işletim sistemine adanmış bir işlemci yoktur. Tüm işlemciler her şeyi çalıştırırlar.

Preemptive Scheduling Nedir?
Kısaca, önceliği yüksek olan bir process hazır (ready) hale gelirse, çalışmakta olan önceliği düşük uygulama zorla durdurulur ve önceliği yüksek olan uygulamaya zaman tanınır. (preemption). 

Yani zorla güzellik yapılır :) 

Preemption İçin Uygulamanın İşbirliği Gerekmez
Her şey tamamen işletim sistemin kontrolünde olduğu için uygulamanın işbirliği gerekmez. Açıklaması şöyle
Linux is a preemptive multitasking operating system, i.e. it multitasks without requiring running programs’ cooperation.
Preemption İçin Kernel'ın Çalışması Gerekir
Preemption İçin Kernel en az bir işlemci tarafından çalıştırılıyor olmalıdır. Açıklaması şöyle
Note that the kernel can be configured to not control a subset of a system’s CPUs itself; but at least one CPU in the system must always be under the kernel’s control.
Çünkü kernel belli aralıklarla preemptive scheduling yapar. Açıklaması şöyle
Basically in preemptive multitasking the kernel will be fired periodically from a timer, and whenever the kernel is in control (when the timer interrupt happens or a system call is invoked) the kernel will save the current process' context and then switch to the next process' context. That's called a context switch where the whole state of the process including all thread information, register values... are saved and restored to make the process continue to run from the exact point it was preempted without even knowing it hasn't run continuously.
Cooperative Multitasking İle Farkı Nedir?
Açıklaması şöyle
... the kernel has complete control over the time each process is allowed to run and will preempt a process if it runs for too long, unlike cooperative multitasking where a process will pass control whenever it likes
Execution Times vs Response Times
Şeklen şöyle. Şekilde Medium Priority iş 2 defa Preemption'a yani Geçişli Zamanlamaya uğruyor. Yani 2 Execution Time yaptıktan sonra iş bitiyor. Dolayısıyla Response Time daha farklı bir süre.
Açıklaması şöyle
The response time for a job is the time between when it becomes active and the time it completes.






Hiç yorum yok:

Yorum Gönder