1 / 63

BÖLÜM 4

BÖLÜM 4. EŞ ZAMANLI İŞLEMLER. Kapsam. İşlem Kavramı İşlem Düzenleme Prosesler üzerinde gerçekleştirilen işlemler Proses İletişimi. İşlem(process) Kavramı. Bir işletim sistemi programlar işletir: Toplu işletimde  jobs (işler)

Télécharger la présentation

BÖLÜM 4

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. BÖLÜM 4 EŞ ZAMANLI İŞLEMLER

  2. Kapsam... • İşlem Kavramı • İşlem Düzenleme • Prosesler üzerinde gerçekleştirilen işlemler • Proses İletişimi

  3. İşlem(process) Kavramı • Bir işletim sistemi programlar işletir: • Toplu işletimde  jobs (işler) • Zaman Paylaşımlı Sistemlerde  kullanıcı programları ya da görevler • İşlem=Yürütümdeki program • Bir program çalıştırılabilir bir dosya belleğe yüklendiği anda işlem halini alır. (komut satırından yada mouse+click yöntemi ile) • Bir çok kullanıcı aynı web browser programını işletiyor olabilir bunların hepsi ayrı proseslerdir.

  4. Bir proses şunları içerir • Program Counter (process registers) • Stack(function parameters, return address, local variables ) • Data Area (global variables) • CPU state (bir ya da daha çok thread) • Kaynaklar (açık dosyalar, işleyici programlar vs)

  5. İşlem Durumları (Current activity) • New: Yeni bir proses yaratılıyor • Running: Prosese ait talimatlar işletiliyor • Waiting: Proses herhangi bir olay için bekliyor • Ready: Proses CPU için bekliyor • Terminated: Proses işletimini tamamlıyor

  6. Proseslerin Durum Diagramları

  7. İşlem Kontrol Blok (PCB)/Task Control Block • İşletim Sisteminde her proses kendi PCB’si ile temsil edilir. PCB içeriği: • İşlem durum bilgisi • Program counter’ı • CPU register’lar • Bellek bilgisi • Hesaplama bilgisi • I/O durum bilgisi • CPU kullanım bilgisi

  8. PCB

  9. Process Control Block (PCB) Process ID (PID) Parent PID • This is an abstract view • Windows implementation of PCB is split in multiple data structures … Next Process Block PCB List of open files Handle Table Image File Name Thread Control Block (TCB) List of ThreadControl Blocks Next TCB Program Counter … Registers …

  10. Process Block (!process) Physical address of Page Directory root of the process’sVirtual AddressDescriptor tree

  11. Linux da Proses Temsili • Task_struct in <linux/sched.h> • long state /*state of the process*/ • struct sched_entity se; /*scheduling information*/ • struct task_struct *parent /*this process’s parent*/ • struct list_head children; /*this process’s children*/ • struct files_struct *files /*list of open files*/ • struct mm_struct *mm /*address space of process*/ • Linux kernel’da tüm aktif prosesler task_struct yapısı double links list kullanılarak tutulur. • Örn. Proses durumu değiştiriliyor • currentstate = new state

  12. İşlem Düzenleme Kuyrukları • Sisteme dahil olan prosesler kuyruklara alınırlar. • İş Kuyruğu (Job Queue): Sistemdeki tüm proseslerin kuyruğu • Hazır Kuyruğu (Ready Queue): Ana bellekte, CPU için bekleyen proseslerin kuyruğu • Aygıt Kuyrukları (Device Queue): G/Ç cihazları için bekleyen proseslerin kuyruğu

  13. Değişik Kuyruk Yapıları

  14. Proses Düzenleme

  15. Düzenleyiciler • Long Term (Job) Düzenleyici: Sisteme dahil olan proseslerden hangilerinin hazır kuyruğuna seçileceğine karar verir. • Short Term (CPU) Düzenleyici: Hazır kuyruğundan hangi prosesin seçilip CPU’ya gönderileceğine karar verir.

  16. Medium Term Düzenleyici

  17. Düzenleyiciler • Temel fark: çalışma sıklıklarıdır. • Long Term multiprogramming’in derecesini (bellekteki proses sayısını) düzenler. • Prosesler iki şekilde tanımlı olabilirler: • I/O Bound: CPU üzerinde çok az zaman işletilir. İşletiminden fazla zamanı I/O işlemleri için geçirir. • CPU Bound: Daha az sıklıkta I/O isteği yapar.

  18. CPU ve I/O Bursts … load val inc val read file CPU burst wait for I/O I/O burst inc count add data, val write file CPU burst wait for I/O I/O burst load val inc val read from file CPU burst wait for I/O I/O burst

  19. Optimizasyon kriterleri • Maximize CPU utilization • Maximize throughput • Minimize turnaround time • Minimize waiting time • Minimize response time

  20. Dispatcher • Dispatcher modulü, CPU kontrolünü Short-term düzenleyici tarafından seçilmiş olan thread’e verir; şu basamaklardan oluşur: • İçerik anahtarlaması (switching context) • User moda geç (switching to user mode) • Kullanıcı programında uygun yere zıplamak (yeniden başlatmak için) • Dispatch latency (gecikme zamanı)– dispatcher’ın bir thread’i durdurup diğerini başlatmasına kadar geçen süre.

  21. İçerik Anahtarlaması

  22. Proses yaratma • İşlem tablosunda bu işlem için bir kısım yaratılır • Bu işlemin adı veya numarası  işletim sistemin sakladığı işlemler listesine eklenir. • İşlem isimlendirilir. Örneğin UNIX işletim sistemi işlemleri tamsayılarla isimler (30127 gibi). • İşleme öncelik değeri verilir. • İşleme başlangıçta ihtiyaç duyduğu kaynaklar tahsis edilir.

  23. UNIX’de Proses Yaratma • fork sistem çağrısı ile yaratılır • çağrıyı yapan proses: parent proses • Yaratılan proses: child proses • pid=fork() • Her iki proses de aynı bağlama sahip • Parent prosese child ın kimlik değeri döner • Child prosese 0 değeri döner • 0 numaralı prosesi açılışta çekirdek tarafından yaratılır; fork ile yaratılmayan tek prosestir.

  24. UNIX’de Proses Yaratma • fork sistem çağrısı yapıldığında çekirdeğin yürüttüğü işlemler: • proses tablosunda (varsa) yer ayırılır (maksimum proses sayısı belli) • Child prosese yeni bir kimlik numarası atanır (sistemde tek) • Parent prosesin bağlamının kopyası çıkarılır. • Parent’achild’ın kimliğini, child’a da 0 değerini döndürür

  25. UNIX’de Proses Sonlanması • exit sistem çağrısı ile • exit(status) • “status” değeri parent prosese aktarılır • Tüm kaynakları geri verilir • Dosya erişim sayaçları düzenlenir • Proses tablosu kaydı silinir.

  26. Proses Yaratma (fork) • int main() • { • Pid_t pid; • /* fork another process */ • pid = fork(); • if (pid < 0) { /* error occurred */ • fprintf(stderr, "Fork Failed"); • exit(-1); • } • else if (pid == 0) { /* child process */ • execlp("/bin/ls", "ls", NULL); • } • else { /* parent process */ • /* parent will wait for the child to complete */ • wait (NULL); • printf ("Child Complete"); • exit(0); • } • }

  27. Proses Yaratma

  28. Linux Process Tree

  29. Windows/ create process

  30. Windows’da Processes Tree

  31. Process-Based Windows Code:System Startup Processes smss.exe Session ManagerThe first “created” process Takes parameters from \HKEY_LOCAL_MACHINE\System\CurrentControlSet \Control\Session ManagerLaunches required subsystems (csrss) and then winlogon csrss.exe Windows subsystem winlogon.exe Logon process: Launches services.exe & lsass.exe; presents first login prompt When someone logs in, launches apps in \Software\Microsoft\Windows NT\WinLogon\Userinit services.exe Service Controller; also, home for many Windows-supplied servicesStarts processes for services not part of services.exe (driven by \Registry\Machine\System\CurrentControlSet\Services ) lsass.exe Local Security Authentication Server userinit.exe Started after logon; starts Explorer.exe (see \Software\Microsoft\Windows NT\CurrentVersion\WinLogon\Shell) and exits (hence Explorer appears to be an orphan) explorer.exe and its children are the creators of all interactive apps

  32. İşlemi Kesme • Bir Kesme Oluştuğunda: • OS denetimi eline alır. • OS kesilen işlemin durumunu saklar. • OS, kesmeyi analiz eder ve kontrolü kesmeyi işlemek için uygun olan yordama geçirir.

  33. Kesme Tipleri • IBM işlemcilerde • SVC kesmeleri: G/Ç yapma, daha fazla bellek alma, sistem operatörleri ile iletişim kurma gibi özel sistem hizmetleri için kullanıcının ürettiği bir istektir. • G/Ç Kesmeleri: CPU ‘ ya kanal veya aygıtın durumunun değiştiğini bildirirler. • Dış Kesmeler: Kesme saatindeki sürenin dolması, operatör tarafından sistem konsolundaki kesme düğmesine basılması veya çok kullanıcılı sistemlerde başka bir işlemciden bir sinyal gelmesi gibi durumlarda oluşur. • Yeniden Başlatma Kesmeleri : Operatör konsolunun yeniden başlat düğmesine basıldığında veya çok kullanıcılı sistemler başka bir işlemciden gelen başlat komutu geldiğinde görünürler. • Program Kontrol Kesmeleri : Sıfıra bölme veya kullanıcının ayrıcalıklı bir komutu kullanması, geçersiz bir işlemi yürütmeye kalkması gibi çalışıyor işlemi tarafından oluşan hatalardan kaynaklanır. • Makina Kontrol Kesmeleri : Bozuk donanımın sebep olduğu kesmelerdir.

  34. PSW (Program Status Word) • Program Durum Sözcüğü(PSW) komut yürütme sırasını denetler ve bu işlem durumu hakkında çeşitli bilgi içerir. Üç tip PSW vardır: • güncel PSW: yürütülecek bir sonraki komutun adresi saklanır. Kesme tiplerinin aktif/pasif olma bilgilerini tutar. • yeni PSW ve eski PSW

  35. PSW... • Bir kesme olduğunda eğer işlemci bu tip kesme için pasif değilse, o zaman donanım PSW'leri aşağıdaki gibi değiştirir: • Kesmenin tipine bağımlı olarak güncel PSW eski PSW'ye konulur (A) • Yeni PSW güncel PSW'ye konulur.(B) • Bu PSW değişimlerinden sonra, güncel PSW o anda uygun kesme işlemcisinin(IH) adresini içerir. Daha sonra kesme işlemcisi kesme'yi çalıştırır.

  36. Birlikte Çalışan Prosesler • Bağımsız Proses: Sistemdeki başka proseslerin çalışmalarından etkilenmez. • Birlikte Çalışan Proses: Diğer proseslerin çalışmasından etkilenebilirler. • Birlikte çalışmanın avantajları: • Bilgi paylaşımı • Bilgi işleme hızında artış • Modülerlik • Uygunluk

  37. Üretici-Tüketici Problemi • Üretici ve tüketicinin bir arada çalışabilmesi için buffer havuzları oluşturmalıyız. • Bu havuzları üretici doldurmalı , tüketici boşaltmalı. Bu sayede üretici , tüketici diğer taraftan havuzu boşaltırken havuzu doldurabilmeli. • Üretici proses bir veriyi tüketici proses için üretir ve tüketici proses bu veriyi kullanır.

  38. ... • Üretici ve tüketicinin sınırlı bir veri alanına (buffer) erişebildiklerini varsayalım. • Üretici üretmiş olduğu ürünü (veriyi) Buffer’da boş yer varsa koyabilir. Yer yok ise tüketicinin Buffer’dan bir veriyi almasını beklemek durumundadır. • Tüketici ise ancak Buffer boş değilse veri tüketebilir, aksi taktirde üreticinin Buffer’a veri girmesini bekmelesi gerekir. • Unbounded (sınırlanmamış) – buffer üretici tüketici probleminde bufferların sayısında bir sınır yoktur. Tüketici yeni ürünler bekler , ve gelenleri tüketir , sadece ürün bitince bekler fakat üretici daima yeni ürün üretip koyabilir. Bounded producer / consumer probleminde ise n adet sabit buffer vardır. Üretici n buffer dolunca bekler , tüketici n adet buffer boşalınca bekler.

  39. Sınırlı Buffer Durumu • Paylaşılan veri: #define BUFFER_SIZE 10 Typedef struct { . . . } item; item buffer[BUFFER_SIZE]; int in = 0; int out = 0;

  40. Sınırlı Buffer Durumu (Insert) while (true) { /* Produce an item */ while (((in + 1) % BUFFER SIZE ) == out) ; /* do nothing -- no free buffers */ buffer[in] = item; in = (in + 1) % BUFFER SIZE; {

  41. Sınırlı Buffer Durumu (Remove) while (true) { while (in == out); // do nothing -- nothing to consume // remove an item from the buffer item = buffer[out]; out = (out + 1) % BUFFER SIZE; return item; {

  42. İletişim Modelleri

  43. Interprocess Communication (IPC) • IPC özelliği iki operasyon sağlar: • Send(P,message) send a message to process P • Receive (Q,message) receive a message from process Q • <256 byte kısa mesajlar göndericiden alıcıya kopyalanır. • Geniş mesajlar shared memory segment üzerinden erişilir. • Server (kernel) client’ın adres alanına direk olarak yazabilir. • Buradaki link şu özelliklere sahiptir. • İletişim isteyen 2 proses arasında otomatik link kurulur. İletişim için sadece prosesler birbirlerinin tanımını bilirler. • Link tam olarak 2 proses arasındadır. • Bir çift prosesin iletişimi için 1 adet link vardır. • Link tek yönlüdür.

  44. Dolaylı İletişim • Send ( A , message) Send a message to mailbox A • Receive (A, message) Receive a message from mailbox A • Burada link şu özelliklere sahiptir. • Prosesler sadece ortak mailboxları varsa link kurabilirler • Link birden fazla proses arasında kurulabilir. • Her iletişimdeki proses çifti için değişik sayıda aynı mailboxu kullanan link bulunabilir. • Link tek yönlü veya çift yönlü olabilir

More Related