İşletim sistemlerinde iki tür kaynak vardır.
1.Preemptable Resource
2.Nonpreemptable Resource
Preemptable Resource'da, herhangi bir anda bazı process'lerden kaynağı zorla alabilirsiniz. Örneğin yazıcıların hafızalarını düşünün.A process'i yazıcıyı alıkoyabilir, ardından B de alıkoyabilir ve gönderilen kuyruğa girer. Karmaşık işlemler yaptırılabilir.
Nonpreemptable'da ise işlem başlayınca bir process'ten alıp diğerine veremezsiniz. CD Writer ya da scanner'ı düşünebilirsiniz. A process'i belli bir anda scanner'ı kullanmak isteyebilir. İşin bir kısmını yaptıktan sonra, gelen bilgiyi CD'ye kaydetmek isteyebilir. Ancak scanner B process'ine tahsis edilmiştir. A process'i sleep moduna geçer ve bekler. Tabi B process'i de scanner'ı beklerse, geçmiş olsun, nur topu gibi bir deadlock'ımız olur. :)
Son olarak bir kaynağı kullanmak için kullanılan adımları belirtelim. Üç aşamada gerçekleşir:
1.Process istekte bulunur
2.Process kaynağı kullanır
3.Process kaynağı bırakır. :)
Önemli birşey bekleyenleri hayal kırıklığına uğratan 3 madde oldu sanırım. :D
Process istekte bulunduğunda, işletim sistemi vermezse ne olabilir peki? İşletim sistemi process'i bloke edebilir. Veyahut hata kodu ile kaynağı kullanamayacağını söyleyebilir.
Birazdan görüşürüz.
Hiç yorum yok:
Yorum Gönder