160 likes | 396 Views
Proses Kontrolü. İşlemci Zamanlayıcısı. 0. 8149. 100. İşlemci Zamanlayıcısı. Komut adres yazmacı. 5000. Proses A. 8000. Proses B. 12000. Proses C. Proseslerin İzlenimi. Proses A Proses B Proses C. Başlangıç adresi. 5000 5001 5002 5003 5004 5005 5006 5007. 8000 8001
E N D
İşlemci Zamanlayıcısı 0 8149 100 İşlemci Zamanlayıcısı Komut adres yazmacı 5000 ProsesA 8000 ProsesB 12000 ProsesC
Proseslerin İzlenimi Proses A Proses B Proses C Başlangıç adresi 5000 5001 5002 5003 5004 5005 5006 5007 8000 8001 8002 8003 8004 8005 8006 8007 8107 8108 8109 8008 12000 12001 12002 12121 12122 12123 12600 12601 12602 12603 12604 12003
Tüm Proseslerin İzlenimi 100 101 102 103 104 105 100 101 102 103 104 105 12000 12001 12002 İşlemci Zamanlayıcısı İşlemci Zamanlayıcısı Sayfa hatası 100 101 102 103 104 105 İşlemci Zamanlayıcısı 12121 12122 12123 5000 5001 5002 Zamanaşımı Sayfa hatası 5003 5004 5005 5006 5007 100 101 102 103 104 105 100 101 102 103 104 105 İşlemci Zamanlayıcısı İşlemci Zamanlayıcısı İş bitti 100 101 102 103 104 105 8107 8108 8109 8000 8001 8003 8004 8005 İşlemci Zamanlayıcısı Sayfa hatası 100 101 102 103 104 105 I/O İsteği İşlemci Zamanlayıcısı 8006 8007 100 101 102 103 104 105 Sayfa hatası İşlemci Zamanlayıcısı
İki konumlu Proses Modeli • Prosesin Başlaması • Bir prosesin sisteme yüklenmesi • Kullanıcın sisteme girmesi • Bir prosesin başka bir proses yaratması • Yazıcı • Başlatılan bir proses iki konumdan birinde olabilir • Çalıştırılıyor • Çalıştırılmıyor İşlemci zamanlayıcısı işi başlatır Çıkış Çalıştırılmıyor Çalıştırılıyor Başlat Durakla
Prosesin tamamlanması için bazı sebepler • Proses normal olarak biter • Zaman aşımına uğrar • Yeterince bellek olmayabilir • Bellekte kendine ayrılan yerden başka yerlere ulaşma çabası • Koruyucusu hatası • Sadece okuma izni olan bir dosyaya yazma işlemi • Aritmetik hata • Beklenen/İzin verilenden fazla bir olayın tamamlanmasını beklemek • I/O hatası • Geçerli olmayan komutu çalıştırmaya çalışma • İmtiyazlı komutu çalıştırmaya çalışma • Verinin hatalı kullanımı
Çalıştırılamayacak Prosesler Kuyruğu İşlemci zamanlayıcısı işi başlatır • Çalıştırılmıyor • CPU verilse hemen çalıştırılabilinir • Engellenmiş • I/O isteğinin tamamlanmasını bekliyor • İşlemci zamanlayıcısı işlemciyi engellenmiş proseslere veremez çünkü bu durumda işlemcinin çalıştırabileceği bir komut yok Çıkış Çalıştırılmıyor Çalıştırılıyor Başlat Durakla İşlemci zamanlayıcısı işi başlatır Başlat Çıkış Kuyruk İşlemci Durakla
İşlemci zamanlayıcısı işi başlatır Yeni Hazır Çalıştırılıyor Çıkış Başlat Tamamlandı Zaman aşımı I/O tamamlandı I/O bekle Engellenmiş Beş konumlu model • Çalıştırılıyor • Çalışmaya hazır • Engellenmiş • Yeni • Tamamlanmış
Hazır ve Engellenmiş Prosesler Kuyrukları İşlemci zamanlayıcısı işi başlatır Başlat Tamamlandı Hazır Prosesler Kuyruğu İşlemci Zaman aşımı I/O bekle I/O tamamlandı Engellenmiş Prosesler Kuyruğu
Engellenmiş Prosesler Kuyrukları Başlat Tamamlandı Hazır Prosesler Kuyruğu Dispatch İşlemci Time out İşlem 1 Bekleme İşlem 1 Tamamlandı Engellenmiş Prosesler Kuyruğu-1 İşlem 2 Bekleme İşlem 2 Tamamlandı Engellenmiş Prosesler Kuyruğu-2 . . . Engellenmiş Prosesler Kuyruğu-n İşlem n Bekleme İşlem n Tamamlandı
Askıya Alınmış Prosesler • İşlemci I/O birimlerinden çok daha hızlı olduğu için bir çok proses I/O nun tamamlanmasını bekliyor olabilir • Bu prosesler diske yazılırsa bellek de yer açılır • Engellenmiş konumdaki prosesler diske yazılırsa askıya alınmış konumuna geçer İşlemci zamanlayıcısı işi başlatır Yeni Hazır Çalıştırılıyor Çıkış Başlat Tamamlandı İşlem Tamamlandı Zaman aşımı Etkinleştir İşlem Bekleme Engellenmiş Askıya Alınmış Askıya al
İki Askıya Alınmış Konumu Yeni Askıya Al Başlat Başlat İşlemci zamanlayıcısı işi başlatır Hazır Çalıştırılıyor Çıkış Hazır/ Askıya alınmış Tamamlandı Etkinleştir Askıya al Zaman aşımı İşlem Tamamlandı İşlem tamamlandı İşlem Bekleme Engellenmiş Engellenmiş/ Askıya alınmış Askıya al Etkinleştir • İki yeni konum • Engellenmiş, askıya alınmış • Hazır, askıya alınmış
ProsesOluşturma • Özgün bir proses tanıtıcısı ata • Proses için bellek de bir yer ayır • Proses kontrol bloğunun ilk değerlerini yaz • İşletim sisteminin kullandığı veri kurumlarına ekle
İşlemciyi bir prosesten alıp diğerine verme • Saat işkesmesi • Proses en fazla kullanabileceği zamanı aştı • Zaman aşaması (zaman dilimini aştı) • I/O işkesmesi • Bellek hatası • İstenen adres sanal bellekte (ana bellekte değil) • Kapan • Hata • Proses çıkış konumuna zorlanabilir
Proses konumu değiştiğinde • İşlemcideki tüm yazmaçların değerlerini (komut adres yazmacı dahil olmak üzere) kaydet • İşlemcideki prosesin ana bellekteki proses kontrol bloğunu güncelleştir • Proses kontrol bloğunu uygun kuyruğa ekle (hazır veya engellenmiş) • Başka bir prosesi seç • Bellek idaresinde kullanılan veri yapılarını güncelleştir • Seçilen prosesin proses kontrol bloğunu kullanarak işlemcinin yazmaçlarını yaz