ݺߣ

ݺߣShare a Scribd company logo
İşlem Yönetimiİşlem (process) belli bir komut dizisini yerine getiren program parçasıdır. Bir işlemin yapısında; işlemin yazılı olduğumetin bölümü, bir sonraki işletilecek olan komutu gösteren sayaç, yerel değişkenler vb. geçici bilgileri tutan yığın(stack) bölümü ve genel değişken vb. bilgileri tutan veri bölümü bulunmaktadır. . Bazı işlemlerde işlemin çalıştığısürece kullandığı bir alan (heap) de bulunmaktadır.
İşlem Kontrol Bloğu (ProcessControlBlock): Her işlem işletim sistemi tarafından işlem kontrol bloğu tarafından gösterilir, yer alan öğeler ise şunlardır;  • İşlem durumu: İşlem yeni, çalışıyor, bekliyor, hazır veya bitti şeklindeolabilir.• Program sayacı: İşlemde çalıştırılacak bir sonraki komutu gösterir.• MİB kaydedicileri: İşlemci mimarisini göre kaydedicilerin sayısı ve türüdeğişmektedir. İşlemde kullanılan kaydediciler (AX, BX vb.) içerisindekibilgiler bir kesme geldiğinde mutlaka saklanmalıdır.
• MİB zamanlanma bilgisi: Burada işlemin önceliğini, zamanlama kuyruğundakiişaretçisi ve diğer zamanlama parametreleri ile ilgili bilgiler bulunmaktadır.• Bellek yönetimi bilgisi: İşletim sistemi tarafından kullanılan belleksistemleri; taban ve limit (tavan) kaydedicileri, sayfa tablosu veya bölümtablosu gibi bilgileri içermektedir.• Hesap bilgileri: İşlem tarafından kullanılan MİB ve diğer parametrelerinkulanım zamanlarını içermektedir.• G/Ç durum bilgisi: İşlem tarafından kullanılan G/Ç aygıtlarının listesi, açılandosyaların listesi vb. bilgileri içermektedir.
İşlem durumu (Processstate):Bir işlemin hangi durumda olduğunu gösteren ve işlemin ömrü boyunca değişkenbir durumu bulunmaktadır. Bunlar;• Yeni: İşlemin oluşturulduğunu gösterir.• Çalışıyor: İşlemin komutları yürütülmektedir.• Bekliyor: İşlem bir olayın gerçekleşmesini beklemektedir. Örneğin birG/Ç işlemi.• Hazır: İşlem bir işlemciye atanmak için beklemektedir.• Bitti: İşlem çalışmasını bitirdi.
İş Parçacıkları (Threads)İş parçacığı, işlemin bir parçasıdır.İşlemlerin Zamanlanması (ProcessSchedulers)İşlemler iş kuyruğuna (Jobqueue) alınmaktadır. Çalıştırılmaya hazır olan veya bekleyen işlemler hazır kuyruğana (readyqueue) alınarak MİB’ne gönderilir.‘Dağıtıcı (Dispatcher)’ çalıştırılacak olan bir işlemi seçerek MİB’ne gönderdikten sonra aşağıdaki olaylar meydana gelebilir;• İşlem bir G/Ç isteğinde bulunabilir ve böylece G/Ç kuyruğunayerleştirilir.• İşlem alt işlemler oluşturabilir ve bunların bitmesini bekleyebilir.• İşlem bir kesme oluştuğu için MİB’de çalışması durdurularak kesmeninbitiminin ardından kuyruğa alınarak MİB’ne gönderilebilir.
İşletim sistemi
Kilitlenme (Deadlock)Sonsuz döngü anlamına da gelmektedir. Değişik işlemlerin/iş parçacıklarının birbirlerinin alanlarını kullanmalarından ortaya çıkar. Örneğin bir işlem bir kaynağı (örneğin A dosyasını)kullanırken diğer bir kaynağı (örneğin B dosyasını) kullanmak istemektedir. Ancak aynızamanda başka bir işlem B dosyasını kullanırken A dosyasını kullanmak istemektedir.Bu durumda her iki işlem de istedikleri dosyaları alamayacakları için bu işlemlerbloklanacaklardır.Semafor (Semaphore):Latincede ‘deniz feneri’ anlamına gelen Semafor, negatif olmayan bir tamsayı olup işlemin başlangıç deyiminden itibaren wait ve signal işlemleri ile değeri değiştirilebilen bir değişkendir.İki ayrı işlem aynı anda bellekte yürütülürken kaynaklara aynı anda erişmeye çalışabilirler. Bu durumda kullanılan semafor, sistem kilitlenmelerine engel olur. Semaforlarişlemler arası iletişimi sağlayarak sonsuz döngülere ve sistem kilitlenmelerine engel olurlar.
Bloklama ve bloğu açma (BlockingandUnblocking)Bir wait işlemi eğer ilgili semaphore değeri 0 ise o işlemin bloke edilmesine neden olur. Semaphore’un değeri signal ile 1 olunca bloke kaldırılarak işlem çalışabilir hale getirilir.Örnek: İki işlemden bir tanesinin bir buffer’a çeşitli değerler aktardığını, diğerinin ise buradan bu bilgileri aldığını farz edelim. Buna verilecek bir örnek bir satır uzunluğundaki bir karakter dizisini her seferinde buffer’a atan bir işlem (process) ileher seferinde buffer’dan bir satır alıp bunu ekrana yazan bir işlem olabilir. Burada bir başka farz ediş ise tampon (buffer) büyüklüğünün kısıtlı olmasıdır (n satır tutulabildiği). Bu durumda bu iki işlem arasında senkronizasyon gereklidir:1. Eğer buffer dolu ise buraya bilgi aktarılmayacaktır.2. Eğer buffer boş ise buradan bilgi alınmayacaktır.
Monitör ProgramlarıMonitör programları paylaşılan nesneye ulaşmada meydana gelebilecek problemleri ortadan kaldırmaya yönelik olarak geliştirilmiştir. Yani izleyici programlardır.1. Paylaşılan nesneyi oluşturan veri2. Bu nesneye ulaşmak için kullanılan bir grup procedure3. Nesneyi başlangıç durumuna getiren bir program parçasından oluşmaktadır.Daha önceki buffer örneği için;1. Buffer alanı ve buraya işaret eden pointerler2. Depolama ve çıkarma işlemleri için kullanılan iki procedure3. Buffer işaretçilerini eski haline getiren bir program parçasıMonitör programları, wait ve signal işlemleri yanlış gerçekleştirildiğinde oluşansistem kilitlenmeleri engeller. Semaforlarla işlemler arası kombinasyonu sağlarlar vewait ve signal işlemleri arasındaki senkronizasyonu sağlarlar.

More Related Content

İşletim sistemi

  • 1. İşlem Yönetimiİşlem (process) belli bir komut dizisini yerine getiren program parçasıdır. Bir işlemin yapısında; işlemin yazılı olduğumetin bölümü, bir sonraki işletilecek olan komutu gösteren sayaç, yerel değişkenler vb. geçici bilgileri tutan yığın(stack) bölümü ve genel değişken vb. bilgileri tutan veri bölümü bulunmaktadır. . Bazı işlemlerde işlemin çalıştığısürece kullandığı bir alan (heap) de bulunmaktadır.
  • 2. İşlem Kontrol Bloğu (ProcessControlBlock): Her işlem işletim sistemi tarafından işlem kontrol bloğu tarafından gösterilir, yer alan öğeler ise şunlardır;  • İşlem durumu: İşlem yeni, çalışıyor, bekliyor, hazır veya bitti şeklindeolabilir.• Program sayacı: İşlemde çalıştırılacak bir sonraki komutu gösterir.• MİB kaydedicileri: İşlemci mimarisini göre kaydedicilerin sayısı ve türüdeğişmektedir. İşlemde kullanılan kaydediciler (AX, BX vb.) içerisindekibilgiler bir kesme geldiğinde mutlaka saklanmalıdır.
  • 3. • MİB zamanlanma bilgisi: Burada işlemin önceliğini, zamanlama kuyruğundakiişaretçisi ve diğer zamanlama parametreleri ile ilgili bilgiler bulunmaktadır.• Bellek yönetimi bilgisi: İşletim sistemi tarafından kullanılan belleksistemleri; taban ve limit (tavan) kaydedicileri, sayfa tablosu veya bölümtablosu gibi bilgileri içermektedir.• Hesap bilgileri: İşlem tarafından kullanılan MİB ve diğer parametrelerinkulanım zamanlarını içermektedir.• G/Ç durum bilgisi: İşlem tarafından kullanılan G/Ç aygıtlarının listesi, açılandosyaların listesi vb. bilgileri içermektedir.
  • 4. İşlem durumu (Processstate):Bir işlemin hangi durumda olduğunu gösteren ve işlemin ömrü boyunca değişkenbir durumu bulunmaktadır. Bunlar;• Yeni: İşlemin oluşturulduğunu gösterir.• Çalışıyor: İşlemin komutları yürütülmektedir.• Bekliyor: İşlem bir olayın gerçekleşmesini beklemektedir. Örneğin birG/Ç işlemi.• Hazır: İşlem bir işlemciye atanmak için beklemektedir.• Bitti: İşlem çalışmasını bitirdi.
  • 5. İş Parçacıkları (Threads)İş parçacığı, işlemin bir parçasıdır.İşlemlerin Zamanlanması (ProcessSchedulers)İşlemler iş kuyruğuna (Jobqueue) alınmaktadır. Çalıştırılmaya hazır olan veya bekleyen işlemler hazır kuyruğana (readyqueue) alınarak MİB’ne gönderilir.‘Dağıtıcı (Dispatcher)’ çalıştırılacak olan bir işlemi seçerek MİB’ne gönderdikten sonra aşağıdaki olaylar meydana gelebilir;• İşlem bir G/Ç isteğinde bulunabilir ve böylece G/Ç kuyruğunayerleştirilir.• İşlem alt işlemler oluşturabilir ve bunların bitmesini bekleyebilir.• İşlem bir kesme oluştuğu için MİB’de çalışması durdurularak kesmeninbitiminin ardından kuyruğa alınarak MİB’ne gönderilebilir.
  • 7. Kilitlenme (Deadlock)Sonsuz döngü anlamına da gelmektedir. Değişik işlemlerin/iş parçacıklarının birbirlerinin alanlarını kullanmalarından ortaya çıkar. Örneğin bir işlem bir kaynağı (örneğin A dosyasını)kullanırken diğer bir kaynağı (örneğin B dosyasını) kullanmak istemektedir. Ancak aynızamanda başka bir işlem B dosyasını kullanırken A dosyasını kullanmak istemektedir.Bu durumda her iki işlem de istedikleri dosyaları alamayacakları için bu işlemlerbloklanacaklardır.Semafor (Semaphore):Latincede ‘deniz feneri’ anlamına gelen Semafor, negatif olmayan bir tamsayı olup işlemin başlangıç deyiminden itibaren wait ve signal işlemleri ile değeri değiştirilebilen bir değişkendir.İki ayrı işlem aynı anda bellekte yürütülürken kaynaklara aynı anda erişmeye çalışabilirler. Bu durumda kullanılan semafor, sistem kilitlenmelerine engel olur. Semaforlarişlemler arası iletişimi sağlayarak sonsuz döngülere ve sistem kilitlenmelerine engel olurlar.
  • 8. Bloklama ve bloğu açma (BlockingandUnblocking)Bir wait işlemi eğer ilgili semaphore değeri 0 ise o işlemin bloke edilmesine neden olur. Semaphore’un değeri signal ile 1 olunca bloke kaldırılarak işlem çalışabilir hale getirilir.Örnek: İki işlemden bir tanesinin bir buffer’a çeşitli değerler aktardığını, diğerinin ise buradan bu bilgileri aldığını farz edelim. Buna verilecek bir örnek bir satır uzunluğundaki bir karakter dizisini her seferinde buffer’a atan bir işlem (process) ileher seferinde buffer’dan bir satır alıp bunu ekrana yazan bir işlem olabilir. Burada bir başka farz ediş ise tampon (buffer) büyüklüğünün kısıtlı olmasıdır (n satır tutulabildiği). Bu durumda bu iki işlem arasında senkronizasyon gereklidir:1. Eğer buffer dolu ise buraya bilgi aktarılmayacaktır.2. Eğer buffer boş ise buradan bilgi alınmayacaktır.
  • 9. Monitör ProgramlarıMonitör programları paylaşılan nesneye ulaşmada meydana gelebilecek problemleri ortadan kaldırmaya yönelik olarak geliştirilmiştir. Yani izleyici programlardır.1. Paylaşılan nesneyi oluşturan veri2. Bu nesneye ulaşmak için kullanılan bir grup procedure3. Nesneyi başlangıç durumuna getiren bir program parçasından oluşmaktadır.Daha önceki buffer örneği için;1. Buffer alanı ve buraya işaret eden pointerler2. Depolama ve çıkarma işlemleri için kullanılan iki procedure3. Buffer işaretçilerini eski haline getiren bir program parçasıMonitör programları, wait ve signal işlemleri yanlış gerçekleştirildiğinde oluşansistem kilitlenmeleri engeller. Semaforlarla işlemler arası kombinasyonu sağlarlar vewait ve signal işlemleri arasındaki senkronizasyonu sağlarlar.