• ibm 7094'te, bir görev i/o'dan bir veri beklerken, işlemci boş boş otururdu. cpu'yu yoran bilimsel işlemlerde, dışardan veri girişi cok nadir oldugu için bu boşa harcanan vakit gözardı edilebilirdi ancak ticari veri işlemelerinde, girdi/cikti beklemeleri toplam işlem süresinin %80-90'ınını oluşturuyordu. bu probleme getirilen çözüm ise belleği her bölüme bir görev düşecek şekilde bölümlemekti. bir görev girdi için beklerken başka bir görev cpu'yu kullanabilmeliydi. eğer yeterli sayida görev verilirse işlemciye, işlemcinin %100 meşgul olması saglanabilirdi ancak bellekte aynı anda birden fazla görev bulundugunda bunları birbirinden koruyacak bir donanım da bulunmalıydı. işte system 360 ve takip eden seriler, hem multiprogramming hem de bu koruma mekanızmasıyla gelmişti.

    (operating systems: design and implementation (andrew s. tanenbaum) )
  • multiprogramming mantığını şöyle de gösterebiliriz. yapılacak işlemlerin süreleri t1,t2,t3....tn olduğunu düşünürsek (input/output dahil) multiprogramming kullanan prosesörler'in işlemi bitirme süresi* t<=t1+t2+t3+...+tn olacaktır. ancak single cycle processor kullanıyor ve eğer hiç bir şekilde process'leri üst üste bindiremiyorsanız o zaman eşitlik söz konusu olur ki günümüz bilgisayarlarında böyle bişi söz konusu değildir.

    görsel açıdan bakarsak:
    t1: |----cpu----|---i/o--|-----cpu----|---i/o----|
    t2: |-------cpu----|------i/o--|------cpu----|-----i/o----| olsun

    sistemin kullanım durumu en kötü durumda t1 +t2 olur:
    |----cpu----|---i/o--|-----cpu----|---i/o----|-------cpu----|------i/o--|------cpu----|-----i/o----|

    multiprogramming t1 cpu kullanılmadığı zaman kullanması için t2 'ye görev verir ve böylece daha hızlanmış olur bilgisayar:
    |----cpu----|---i/o--|xxxxx|-----cpu----|---i/o----|
    |xxxxxxxxx|-------cpu----|------i/o--|xx|------cpu----|-----i/o----|

    not: single cycle processor için geçerli bu şemamsı leonardolar.
  • tek işlemci ile birden fazla programın çalıştırılmasıdır. bu programların çalışma öncelikleri ya da i/o öncelikleri olabilir. multiprocessing ile karıştırılmamalıdır.
hesabın var mı? giriş yap