Bir işletim sisteminin iç işleyişi hakkında tamamen bilgim yok, ancak birçok işlevin yaklaşık davranışını az çok tahmin edebiliyorum. Yine de anlayamadığım bir şey, çoklu görev.
Teorik olarak, işletim sistemi, çalışan çeşitli programlara küçük aralıklar için CPU'ya göre zamanı yönetir. Ama bu nasıl belli değil gerçekten çalışıyor.
İşletim sisteminin programımı başlatmak istediğini varsayalım. Makine kodu, belirli bir adresten başlayarak RAM'de bir yere yüklenir. Sanırım bu adrese bir atlama yapılmalı, kodumun yürütülmesine izin verilmeli. Ancak bu şekilde, işletim sistemi geri atlayana kadar kontrolü geri alamaz.
Temel olarak, bu işi yapmanın sadece iki yolunu hayal edebiliyorum, ancak ikisi de gerçekten uygun görünmüyor:
İşletim sistemi, gerçekleştirmek istediğim makine talimatlarını okuyabilir ve doğrudan yürütmek yerine taklit edebilir. Bunun nasıl çalışacağını bilmediğim için kasıtlı olarak belirsizim, ama programı önemli ölçüde yavaşlatacak gibi görünüyor.
Alternatif olarak, bir sistem çağrısı yapana kadar işletim sistemi bekleyebilir. O anda kontrolü yeniden kazanır ve ne kadar süredir çalıştığımı kontrol edebilir ve zaman paylaşımını yapabilir. Bu işe yarayabilir, ancak sistem çağrılarını içermeyen uzun bir hesaplama yapabileceğim ve her şeyi bir süre asabileceğim için güvenilir görünmüyor.
Yani, her iki mekanizmanın da çok iyi işlemediği görülüyor. Çoklu görev gerçekte nasıl yapılır?
interrupt
INT
talimat yürütmesi mümkün değildir . Bir şey hala benim için gizemli