İşlem ve iş parçacığı, işletim sistemlerinin temel kavramlarıdır, ancak nispeten soyuttur ve anlaşılması kolay değildir. Son zamanlarda bir malzeme okudum ve bunları net ve kolay bir şekilde açıklayabilecek iyi bir benzetme olduğunu gördüm.
1. Bilgisayarın çekirdeği, tüm hesaplama görevlerini üstlenen CPU'dur. Sürekli çalışan bir fabrika gibidir.
2. Fabrikanın gücünün sınırlı olduğu varsayıldığında, bir seferde yalnızca bir atölye tarafından kullanılabilir. Başka bir deyişle, bir atölye başladığında diğer tüm atölyeler durmalıdır. Bunun anlamı, tek bir CPU'nun bir seferde yalnızca bir görevi çalıştırabileceğidir.
3. Süreç, bir fabrikanın atölyesi gibidir, CPU'nun üstesinden gelebileceği tek bir görevi temsil eder. Herhangi bir zamanda, CPU her zaman bir işlemi çalıştırır ve diğer işlemler çalışmaz durumdadır.
4. Bir atölyede çok sayıda işçi olabilir. Bir görevi tamamlamak için birlikte çalışırlar.
5. İplikler atölyedeki işçiler gibidir. Bir süreç birden çok iş parçacığı içerebilir.
6. Atölyedeki alan işçiler tarafından paylaşılır Örneğin, birçok odaya her işçi erişebilir. Bu, bir işlemin bellek alanının paylaşıldığını ve her iş parçacığının bu paylaşılan belleği kullanabileceğini sembolize eder.
7. Bununla birlikte, her odanın boyutu farklıdır ve bazı odalarda tuvalet gibi en fazla bir kişi kalabilir. İçeride insanlar varken başka kimse giremez. Bu, bir iş parçacığı bazı paylaşılan bellek kullandığında, bu belleği kullanmadan önce diğer iş parçacığının bitmesini beklemesi gerektiği anlamına gelir.
8. Başkalarının girmesini önlemenin basit bir yolu, kapıya bir kilit eklemektir. Önce gelenler kapıyı kilitlediler ve daha sonra gelenler kilidi görüp kapıya dizildi, içeri girmeden önce kilidin açılmasını beklediler. Buna "karşılıklı dışlama" (Mutual exclusion, kısaltılmış Mutex) adı verilir ve bu, birden fazla iş parçacığının aynı anda bir bellek alanını okumasını ve yazmasını engeller.
9. Mutfak gibi aynı anda n kişinin konaklayabileceği odalar da bulunmaktadır. Diğer bir deyişle, kişi sayısı n'den büyükse, fazladan insanlar sadece dışarıda bekleyebilir. Bu, yalnızca sabit sayıda iş parçacığı tarafından kullanılabilen bir bellek alanı gibidir.
10. Şu anda çözüm, kapıya n anahtar asmaktır. İçeri girenler bir anahtar alır ve çıktıklarında anahtarı geri asarlar. Daha sonra gelenler anahtarın boş olduğunu ve kapıda sırada beklemeleri gerektiğini biliyorlardı. Bu yaklaşıma "semafor" (Semafor) adı verilir ve birden çok iş parçacığının birbiriyle çakışmamasını sağlamak için kullanılır.
Muteksin özel bir semafor durumu olduğunu görmek zor değildir (n = 1 olduğunda). Başka bir deyişle, birincisi yerine ikincisi kullanılabilir. Bununla birlikte, muteks nispeten basit ve verimli olduğu için, bu tasarım, kaynak tekeli garanti edilmesi gerektiğinde hala kullanılmaktadır.
11. İşletim sisteminin tasarımı bu nedenle üç noktada özetlenebilir:
(1) Birden çok işlem biçiminde, birden çok görevin aynı anda çalışmasına izin verilir;
(2) Çoklu okuma biçiminde, tek bir görevin yürütülmesi için farklı bölümlere bölünmesine izin verilir;
(3) Bir yandan süreçler ve iş parçacıkları arasındaki çatışmaları önlemek için bir koordinasyon mekanizması sağlayın ve diğer yandan kaynakların süreçler ve iş parçacıkları arasında paylaşılmasına izin verin.
Makalenin iyi yazıldığını düşünüyorsan, beğenir misin? İyileştirmeye değer bir şey olduğunu düşünüyorsanız, lütfen bana bir mesaj bırakın, eksiklikleri kesinlikle kontrol edip düzelteceksiniz, teşekkür ederim.
Teknik değişim qun: 185873940