İşletim sistemleri bağlamındaki kesintilerle kastedilen nedir?


9

Yaz boyunca Silberschatz, Galvin Gagne (8. baskı) İşletim Sistemleri Kavramları'nı okumaya karar verdim . Beni şaşırtan bir konuya girdim - kesintiler ve işletim sistemleriyle ilgili rolleri.

Metin, bir işletim sisteminin "init" gibi bir ilk işleme başlayacağını ve daha sonra bir "olayın" oluşmasını bekleyeceğini ve bu olayın genellikle bir kesilme sinyali verdiğini söylüyor. Metin ayrıca kesintinin donanımdan veya yazılımdan gelebileceğini söylüyor. Bu biraz daha ayrıntılı olarak nasıl çalışır? İşletim sistemi kesintilerle mi sürülüyor?

Sadece büyük bir resim anlayışı arıyorum.

Yanıtlar:


8

İşletim sistemi "init" gibi bir işlem yürüttüğünde, bellek, G / Ç aygıtları vb. Gibi diğer alt sistemlere / aygıt yöneticilerine vb. Sinyaller gönderirdi. Kesme işlemi yalnızca işlemciye veya sisteme İşletim sisteminin hazır olduğu veya yeni girdisi vb. Olduğu için. Başlatma sırasında bazen işletim sistemi alt sistemlerin hazır olmasını bekler ve bu alt sistemlerden bir kesinti tam olarak bunu gösterir. Yani "olay" bununla ilgilidir.

Donanım veya yazılım kesintileri ile ilgili olarak, donanım kesintileri donanımdan gelenlerdir. Örneğin. Klavye vb. G / Ç aygıtları. Donanım kesintisi işlemcinin durumunu kaydetmesine ve kesme işleyicisinin yürütülmesine başlamasına neden olur. Öte yandan, yazılım kesintileri yönerge setindeki talimatlardır, bu da işlemcinin ayrıcalık seviyesini bağlam anahtarı olarak da bilinen kullanıcı süpervizöründen değiştirmesine neden olur. Bu ayrıntılar daha sonra ders kitabında ele alınacaktır.


4

Kesmeler, işletim sisteminin fare tıklaması gibi harici bir olayı fark etmesini sağlar. Daha iyi istisnalar olarak bilinen yazılım kesintileri, işletim sisteminin kod yürütülmesinden kaynaklanan sıfıra bölme hataları gibi olağandışı olayları işlemesine izin verir.

Olayların sırası genellikle şöyledir:

  1. Donanım, işlemciye bir kesinti sinyali verir
  2. İşlemci kesintiyi fark eder ve şu anda çalışan yazılımı askıya alır
  3. İşlemci, işletim sistemindeki eşleşen kesme işleyici işlevine atlar
  4. Kesme işleyici rotasını çalıştırır ve kesme işleminden döner
  5. İşlemci, daha önce çalışan yazılımda kaldığı yerden devam eder

İşletim sistemi için en önemli kesinti kronometre kesintisidir. Zamanlayıcı tic kesmesi, işletim sisteminin o anda çalışan kullanıcı işleminden periyodik olarak kontrolü yeniden kazanmasını sağlar. İşletim sistemi daha sonra başka bir işlem zamanlamaya, aynı işleme geri dönmeye, kat hizmetleri vb. Yapmaya karar verebilir. Zamanlayıcı kene kesintisi, önleyici çoklu görev kavramının temelini oluşturur.


4

Bir kesinti, başka ne olursa olsun, hemen işlenmesi gereken "olağandışı" bir olaydır . Tırnaklarda "olağandışı" diyorum, çünkü beklenmedik ya da kötü değiller, ancak CPU açısından "olağandışı" çünkü ilgisiz olabilecek kodu yürütürken meşgul oluyorlar.

CPU, kesintileri dinlemek için bazı mekanizmalara ve çeşitli türde kesintiler meydana geldiğinde "ne yapması gerektiğini" yapılandırmanın bir yoluna sahiptir. Bu, işletim sisteminin donanım aygıtları bir şey yaptığında (düzenli aralıklarla kesinti oluşturan çok önemli donanım saati dahil) bildirileceğini düzenlemesini sağlar. CPU'nun kesme işleme yapılandırması aracılığıyla, işletim sistemindeki belirlenen kod, kesinti olduğunda kontrol sahibi olur.

Bir kesme işleyicisi çalışmaya başladığında bilgisayar çok hoş olmayan bir durumdadır (bir uygulama programcısı için); makine başka bir şey yapmakla meşguldü (ki bu her şey olabilir ) ve şimdi işletim sistemine "bir şey oldu" bildirildi. Kesintiyi makinenin herhangi bir yerinde olması gereken yerden gerçekten işlemek için gereken diğer bilgileri toplamak ve CPU'da çalışan "herhangi bir şey" olabileceğini rahatsız etmeden gerekli işlemleri yapmak zorundadır. İşletim sistemi şu anda hangi uygulama işleminin çalışmakta olduğunu değiştirmek isterse, daha sonra geri yükleyebilmek için bağlamı yeterince kaydetmesi gerekir (yine, bu bağlamı bozmadan), sonra başka bir bağlam yükleyin ve CPU'nun normal şekilde kalmasına izin verin bu bağlamda icra.

Belirtildiği gibi, kesintiler donanım cihazlarından bildirim almak için kullanılır (tek alternatif, periyodik olarak kontrol etmek olacaktır), zamanı takip etmek ve bir uygulama işleminden kontrolü yeniden kazanma garantisini (hangi uygulamanın çalıştığını değiştirmek için) elde etmek için kullanılır geçersiz talimatlar uygulayarak uygulama işlemlerinden kurtarma ve aynı zamanda uygulamaların işletim sistemi isteklerinde bulunmalarını sağlama. Bu sonuncular sistem çağrıları olarak bilinir. Uygulamaların makineyi ve birbirlerini karıştırmasını önlemek için, normalde makineyle "kullanıcı modunda" çalışırlar; Bu her şeyi yapmak anlamına gelirbaşka (dosyaları okuma / yazma, daha fazla bellek isteme, cihazlara erişme vb.) uygulamanın bir sistem çağrısı yapması gerekir; temel olarak, işletim sisteminin arayacağını bildiği bir yerde ne yapmak istediği hakkında bazı bilgiler bırakarak, daha sonra doğru türde bir kesintiye neden olan bir CPU talimatı yürüterek yapar. İşletim sistemi daha sonra uygulamanın ne yapmaya çalıştığını görebilir ve bu isteği yerine getirip getirmeyeceğini belirleyebilir. İşletim sisteminin herhangi bir sürecin sürece dahil olacağının garantisi, süreç dışındaki herhangi bir şeyi etkileyen her şeyi yapma girişimine erişim politikalarının uygulanabilmesinin tek yoludur.

Yani, esasen, işletim sistemi kesintiler tarafından yönlendirilir. "Soyut" bir işletim sistemi makineyi "normal çalışma" durumuna getirir ve bir noktada kontrolü "normal" bir işleme bırakır. Normal şartlar altında, işletim sistemi yalnızca kesintileri ele alarak kontrolü yeniden kazanır; ancak kesinti olmadan ilginç bir şey olmadığı için, işletim sistemi temelde her şeyi her zaman kontrol eder.


3

İşletim sistemi kesintiler tarafından yönlendirilir. Bunun anlamı şudur ki:

Yürütülecek işlem, hizmet verecek G / Ç aygıtı ve yanıt verilecek kullanıcı yoksa, bir işletim sistemi sessizce oturacak ve bir şeyler olmasını bekleyecektir. Olaylar neredeyse her zaman bir kesme veya tuzak oluşmasıyla işaret edilir, tuzak geçersiz bir talimat verildiğinde üretilen bir donanım kesintisidir ve daha sonra kontrolü işletim sistemine geri döndürür.

Geçersiz bir talimat örneği, bir programın izni olmadan başka bir programın bellek alanına erişmeye çalışmasıdır.


kesintilerin her zaman tanımladığınız gibi kötü veya geçersiz bir şey olması gerekmez

bazı hata veya geçersiz talimatlar nedeniyle oluşturulan bildiğim kadarıyla tuzak kesme tanımlamak. Beni bilgilendiren için teşekkür ederim
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.