İşlem durumu - Process state

İçinde çoklu görev bilgisayar sistem süreçler çeşitli işgal edebilir eyaletler. Bu farklı durumlar, bu şekilde tanınmayabilir. işletim sistemi çekirdek. Bununla birlikte, süreçlerin anlaşılması için faydalı bir soyutlamadır.

Çeşitli işlem durumları, bir durum diyagramı, durumlar arasındaki olası geçişleri gösteren oklarla - görülebileceği gibi, bazı işlemler ana bellekte (sarı) ve bazıları ikincil bellekte (yeşil) saklanır.

Birincil işlem durumları

Aşağıdaki tipik işlem durumları her türden bilgisayar sisteminde mümkündür. Bu durumların çoğunda, işlemler şurada "depolanır": ana hafıza.

Oluşturuldu

Bir süreç ilk oluşturulduğunda, "yaratıldı"veya"yeni"durum. Bu durumda, süreç" hazır "durumuna kabul edilmeyi bekler. Kabul, uzun vadeli veya kabul ile onaylanacak veya geciktirilecektir, planlayıcı. Tipik olarak çoğu masaüstü bilgisayar sistemler, bu kabul otomatik olarak onaylanacaktır. Ancak gerçek zamanlı işletim sistemleri bu kabul gecikebilir. Gerçek zamanlı bir sistemde, çok fazla işlemin "hazır" durumuna kabul edilmesi aşırı doygunluğa ve aşırı çekişme Sistem kaynaklarının azalması, süreç son tarihlerinin karşılanamamasına yol açar.

hazır

"Hazır" veya "bekleyen" bir işlem yüklendi ana hafıza ve infaz edilmeyi bekliyor İşlemci (içerik dağıtıcı veya kısa vadeli programlayıcı tarafından CPU'ya değiştirilecek). Sistemin yürütülmesinin herhangi bir noktasında birçok "hazır" işlem olabilir; örneğin, tek işlemcili bir sistemde, herhangi bir anda yalnızca bir işlem yürütülebilir ve diğer tüm "eşzamanlı olarak yürütülen" işlemler bekleyecektir. yürütme.

Bir hazır kuyruk veya sırayı çalıştır kullanılır bilgisayar planlama. Modern bilgisayarlar, aynı anda birçok farklı programı veya işlemi çalıştırabilir. Bununla birlikte, CPU bir seferde yalnızca bir işlemi idare edebilir. CPU için hazır olan işlemler bir kuyruk "hazır" işlemler için. Bir sabit sürücüden bilgi yüklemek veya internet bağlantısında beklemek gibi bir olayın gerçekleşmesini bekleyen diğer işlemler hazır kuyruğunda değildir.

Koşu

Bir işlem, yürütülmek üzere seçildiğinde çalışma durumuna geçer. İşlemin talimatları, sistemin CPU'larından (veya çekirdeklerinden) biri tarafından yürütülür. Başına en fazla bir çalışan işlem vardır İşlemci veya çekirdek. Bir işlem iki moddan birinde çalışabilir, yani çekirdek modu veya Kullanıcı modu.[1][2]

Çekirdek modu

  • Çekirdek modundaki işlemler, hem çekirdek hem de kullanıcı adreslerine erişebilir.
  • Çekirdek modu, aşağıdakilerin yürütülmesi dahil donanıma sınırsız erişim sağlar ayrıcalıklı Talimatlar.
  • Çeşitli talimatlar (örneğin G / Ç talimatlar ve durdurma talimatları) ayrıcalıklı ve yalnızca çekirdek modunda çalıştırılabilir.
  • Bir sistem çağrısı bir kullanıcı programından çekirdek moduna geçilir.

Kullanıcı modu

  • Kullanıcı modundaki işlemler kendi talimatlarına ve verilerine erişebilir ancak çekirdek talimatlarına ve verilerine (veya diğer işlemlere ait olanlara) erişemez.
  • Bilgisayar sistemi bir kullanıcı uygulaması adına çalıştığında, sistem kullanıcı modundadır. Ancak, bir kullanıcı uygulaması şuradan bir hizmet istediğinde işletim sistemi (aracılığıyla sistem çağrısı ), sistem, isteği yerine getirmek için kullanıcıdan çekirdek moduna geçmelidir.
  • Kullanıcı modu, çeşitli yıkıcı arızaları önler:
    • İzole edilmiş sanal adres alanı kullanıcı modunda her işlem için.
    • Kullanıcı modu, diğer işlemleri bu şekilde etkilememesi için her işlemin ayrı ayrı yürütülmesini sağlar.
    • Herhangi bir donanım cihazına doğrudan erişime izin verilmez.

Engellendi

Bir süreç, bir bloke durum veya olayda harici bir değişiklik olmadan devam edemeyeceğini belirtir. Örneğin, yazıcı mevcut değilse, yazıcı gibi bir G / Ç cihazına yapılan çağrıda bir işlem engellenebilir. İşlemler ayrıca, kullanıcı girdisi gerektirdiklerinde veya atomik olarak yürütülmesi gereken kritik bir bölüme erişim gerektirdiklerinde genellikle bloke olurlar. Bu tür kritik bölümler, semafor veya muteks gibi bir senkronizasyon nesnesi kullanılarak korunur.

Sonlandırılmış

Bir süreç olabilir sonlandırılmış, ya "çalıştırma" durumundan yürütmeyi tamamlayarak ya da açıkça öldürülerek. Bu iki durumda da, işlem "sonlandırıldı" durumuna geçer. Altta yatan program artık çalışmıyor, ancak süreç işlem tablosu olarak zombi süreci ana süreci çağırana kadar Bekle sistem çağrısı okumak için çıkış durumu, bu noktada süreç işlem tablosundan kaldırılır ve sonunda sürecin ömrü sona erer. Ebeveyn aramazsa Bekle, bu işlem tablosu girişini tüketmeye devam eder (somut olarak işlem tanımlayıcı veya PID) ve bir kaynak sızıntısı.

Ek işlem durumları

Destekleyen sistemlerdeki işlemler için iki ek durum mevcuttur sanal bellek. Bu durumların her ikisinde de, işlemler ikincil bellekte "depolanır" (tipik olarak bir hard disk ).

Değiştirildi ve bekliyorum

(Olarak da adlandırılır askıya alındı ​​ve bekliyor.) Sanal belleği destekleyen sistemlerde, bir işlem çıkarılabilir, yani ana bellekten çıkarılabilir ve programlayıcı tarafından harici depolamaya yerleştirilebilir. Buradan, süreç bekleme durumuna geri döndürülebilir.

Değiştirildi ve engellendi

(Olarak da adlandırılır askıya alındı ​​ve engellendi.) Engellenen işlemler de değiştirilebilir. Bu durumda, işlem hem değiştirilir hem de engellenir ve takas ve bekleme süreciyle aynı koşullar altında yeniden değiştirilebilir (bu durumda, işlem bloke durumuna geçecek ve hala beklemede olabilir) bir kaynağın kullanılabilir olması için).

Ayrıca bakınız

Referanslar

  1. ^ Abraham Silberschatz; Peter Baer Galvin; Greg Gagne (2008-07-29). İşletim Sistemi Kavramları. ISBN  978-0470128725.
  2. ^ Maurice J. Bach (1986). UNIX işletim sisteminin tasarımı. Prentice-Hall, Inc. Upper Saddle River, NJ, ABD © 1986. ISBN  0-13-201799-7.
  • Stallings, William (2005). İşletim Sistemleri: iç bileşenler ve tasarım ilkeleri (5. baskı). Prentice Hall. ISBN  0-13-127837-1.
Özellikle bölüm 3, bölüm 3.2, "işlem durumları", şekil 3.9 "askıya alma durumlarıyla işlem durumu geçişi" dahil