Multitask Tekniğini Kullanalım!

brain   Multitask hakkında birçok makale ile karşılaşmamız mümkün. Çünkü multitask denildiği zaman yelpaze bir hayli geniş olmaktadır. Bu yazı dizisinde, multitask tekniğini kullanarak,  algoritma geliştirebilmek ve program yazabilmek adına tecrübelerimden bahsetmeyi ve örnekler ile pekiştirmeyi hedeflemekteyim.

   Multitask, algoritmik bir tekniktir. Donanım desteklemesi koşulu aranmaksızın her kod yazılan yerde, her plan yapılan yerde kullanılması mümkündür. Her  programlama dilinde kullanılabilinir.

  • Multitask ile karşılaşabileceğimiz birkaç  örnek verelim:

  • Satın almayı düşündüğümüz cep telefonunda aradığımız özelliklerin arasında, multitask özelliği var mı?. Müzik dinlerken aynı anda internette dolaşabilir miyim?   

          

  • Bilgisayarlarımıza, yoğun bir şekilde multitask yaptırmaktayız. İşletim sistemlerinin en göze çarpan özelliği, çoklu işlem yapabilmek. 

 

 

  • Multitask hakkında yaşantımızdan basit bir örnek verelim: 

   Düşünün ki, iş günü sabahı kalktınız ve evde yalnızsınız. Kahvaltı hazırlanacak, gömlek ütülenecek, önceki günden kalma dosyalar düzenlenecek çantanız toparlanacak.

Tüm bu işleri sırayla yapmak anlamsız olacaktır. Çay hazırlamak için suyun kaynamasını, hiç bir şey yapmadan beklemeyi, multitaska aykırı bir davranış gibi görebiliriz.

Not: Alt tarafı yeşil renkle işaretlenen kısımlar, hizalandığı süre boyunca anlık olarak işlenen kısımları ifade etmekte.

   Üstteki resimde görüldüğü sırada bu işleri yapmak, mantıklı tercihlerimizden olacaktır. Çay suyu koyulur ısınmaya bırakılır, tost makinesine ekmekler koyulur, ütüleme işlemi yapılır, tamamlanan tost işlemi sonlandırılır, çay gözden geçirilir, dosya düzenleme işlemi tamamlanır, çay işlemi sonlandırılır.

  • Önemli Bilgi:   Multitask, yapılacak işlerin zamana yayılması ile anlam kazanır. Yani, anlık olarak bakıldığında tüm anlık zaman birimlerinde tek bir işle ilgilenildiği rahatlıkla görülebilinir. Anlık olarak çoklu işlem yapmak, multiprocess deyimiyle karşımıza çıkar. Çok çekirdekli işlemcilerin anlık olarak birden fazla işlem yapabilmesi multiprocess ile açıklanabilinir. Multiprocess hakkında şimdilik bu kadarını bilmemiz kıyaslama için yeterli olacaktır.

 

Basit bir örnek: Bilgisayarlar, multitask tekniği ile kullanılmasaydı en fazla dos ortamında kullanılabilirdi. Paralel işlem yürütme yalnızca kullanıcı odaklı olabilirdi. Günümüzdeki kadar geçici hafıza boyutlarına ihtiyacımız olmazdı. Multitask tekniğinin bilgisayarlarda kullanılmama durumunu,  hipnoz olan insanın, yalnızca verdiğiniz komutları sırası ile yapması gibi düşünebiliriz.

  • Bu örneği ise daha ayrıntılı inceler isek;

multitask_minibus

   Resmi kabaca özetler isek, müşteriler dinleniyor, telefondaki kişi dinleniyor, etraftaki sesler dinleniyor,  hisler kontrol ediliyor, yol kontrol ediliyor. Bunların yanı sıra, araç kullanılıyor, müşteriye para veriliyor, telefonla konuşma yapılıyor. Bu kadarının analizini yapmak bizim için yeterli olacaktır.

 

   Multitask tekniğinin faydalarını anlamamız için bir kaç kıyaslama yapabiliriz. Şoför sadece telefonla konuşursa araç zamanında hareket etmemiş olacak veya sadece araç kullansa müşterilerle ilgilenmemiş olacak veya sadece müşterilerle ilgilense telefondaki kişiyle haberleşemeyecek. Bu örnek için kombinasyonlar bir hayli fazla.

   Peki nasıl oluyor da tüm bu işleri, kısıtlı zamana sığdırabiliyor? Haberleşme veri yolları yeterli sıklıkta kontrol ediliyor. Çevre ara birimleri yeterli sıklıkta yönetiliyor. Aynı zamanda, haberleşme veri yollarından gelecek olan veriler beklenmeyip, bu zaman aralıkları da değerlendiriliyor. Bu yöntemler ile, işlemciden maksimum verim alınmaya çalışılınır. Yeterli sıklık noktaları da yine işlemci tarafından hesaplanır.

   Bir işlemi bütün olarak düşünüp parçalara ayıralım. Müşterilerin dinlenmesi işlemini bir bütün gibi düşünüp M diye adlandıralım. M1) müşterilerden ses geliyor mu? M2) ses hangi taraftan geliyor? M3) hangi müşteriden ses geliyor? M4) müşteriden gelen ses ne anlama geliyor? M5)…   Şeklinde bir çok parçaya ayrılabilir.

   Telefonun dinlenmesini T işlemi, hislerin kontrolünü de H işlemi diye adlandırırsak, işlemcinin multitask çalışmasına; M1_T1_H1_M2_T2_H2_M3_T3_H3_ sıralayarak kabaca bir örnek vermiş olabiliriz.

   Örnek üzerinde görüldüğü gibi tüm işlemler aynı_zaman_aralığında yapılıyor. Ancak aynı_anda yapılmıyor.

   Çıkarılacak sonuçlardan bizim için en önemlisi: 

   T işleminden başka işleme geçiş yaparken, işlemci o an bulunduğu konumu ve işlem hakkında ki verileri hafızanın belirli bir bölgesine kayıt edip başka işleme gider. T işlemine geri dönerken, T işlemi için ayrılan hafıza okunup kalınan yerden devam edilir.

Devamı niteliğindeki yazım: “Multitask Temel Algoritma”

“Multitask Tekniğini Kullanalım!” için 2 yorum

Bir Cevap Yazın

Or

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir