Tüm sistem çağrıları engelleniyor mu?


13

Bir sistem çağrısında meydana gelen kullanıcı-boşluk ve çekirdek-boşluk arasındaki geçişi açıklayan bir makale okuyordum . Makale diyor

Bir uygulama, kullanıcı modu yürütülmesine devam etmeden önce sistem çağrısının tamamlanmasını bekler.

Şimdi, şu ana kadar bazı sistem çağrıları olduğunu varsayarak oldu blockingdiğerleri ise non-blocking. Yukarıdaki yorumla, şimdi kafam karıştı. Bu, tüm sistem çağrılarının engellendiği anlamına mı geliyor yoksa bir kavramı yanlış mı anladım?


@Ankit Lütfen düzenlemeyi neden geri aldığınızı açıklayın. Bir gönderinin ayrıntılarını iyileştirmek için düzenlemenin SE ile ilgili standart bir politika olduğunu ve örtük bir eleştiriyi ima etmediğini unutmayın.
Raphael

@Raphael Üzgünüm kardeşim! Sadece etrafta dolaşıyordum ve geri dönüşü yanlışlıkla ittim ve daha sonra önceki sürümü bulamadım. Aslında, düzenlemenizi gerçekten beğendim. : P
Ankit

@Raphael Geri aldım. Aslında revizyon sistemi tarafından duped aldım ('makale' bir bağlantı olduğunu tanımadı). Düzenlemeler için teşekkürler.
Ankit

@Ankit: Yardımcı olabildiğime sevindim!
Raphael

Yanıtlar:


15

"Engelleme" terimini aşırı yüklüyorsunuz.

Çekirdeğe yaptığınız herhangi bir bağlam anahtarı, uygulamanız devam etmeden önce kullanıcı moduna geri dönmesini beklemeniz gerekir. Bu genellikle 'engelleme' olarak adlandırılan şey değildir.

Geçerli çekirdek tasarımında engelleme çağrıları, çekirdeğin yalnızca istek tamamlandığında (veya hata oluştuğunda) döndüğü çağrılardır. Bu çağrılar genellikle daha uzun zaman alır ve genellikle sürecinizin zamanlanmasına neden olur. Örneğin, birçok GÇ çağrısı engelleniyor.

Asenkron G / Ç sağlayan sistem çağrısı vardır ve bunlar tıkanmaz. Burada hala bir bağlam anahtarı olduğunu unutmayın, sadece uygulama çağrının eşzamansız doğasına bakmak zorundadır.

Makalede, bu bağlam geçişini ileri geri (istisnasız sistem çağrıları) ortadan kaldırmayı ve tüm çağrıları eşzamansız hale getirmeyi amaçladığı görülmektedir.


Aslında bir araştırma makalesi. İşte URL: eecg.toronto.edu/~livio/papers/flexsc-osdi10.pdf
Ankit

2
@Ankit: Lütfen soruyu düzenleyin ve oraya ekleyin.
Aryabhata
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.