1 / 74

Proses

Proses. Pembahasan. Konsep Proses Penjadualan Proses Operasi-operasi pada Proses Cooperating Processes Interprocess Communication Komunikasi pada Sistem Client-Server. Konsep Proses.

Download Presentation

Proses

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. Proses

  2. Pembahasan Konsep Proses Penjadualan Proses Operasi-operasi pada Proses Cooperating Processes Interprocess Communication Komunikasi pada Sistem Client-Server

  3. Konsep Proses Proses : suatu program yang sedang dieksekusi dan memiliki status jalannya eksekusi yaitu minimal informasi-informasi sbb : Program counter : menunjukkan instruksi berikutnya yang akan dieksekusi Register : data hasil eksekusi antara Stack : tempat penyimpanan temporary data yang dibutuhkan selama program dieksekusi Data section : mengandung variabel global dari suatu proses Dalam literatur, istilah job dan proses dan task sering dapat dipertukarkan

  4. Perkembangan Konsep Proses Konsep proses berkembang sejalan dengan modus operasi sistem komputer : Fase-fase monoprogramming : pada suatu saat di memori hanya sebuah program yang sedang dijalankan (mungkin disertai suatu monitor proses) Fase-fase multiprogramming : pada suatu saat di memori bisa terdapat beberapa program yang sedang dijalankan

  5. Konsep Proses Monoprogramming Program oleh proses monitor (atau operator) di-load ke memori, dieksekusi (kontrol diberikan pada proses), dan selesai (sukses atau abort), kemudian kontrol dikembalikan ke proses monitor (atau operator) Status proses direkam dan di-print hanya diperlukan untuk keperluan debugging

  6. Konsep Proses Modern Karena adanya sejumlah program yang di-load dimemori dalam status sedang dijalankan, maka setiap saat jumlah aktual proses yang dieksekusi maksimum sama dengan jumlah CPU Untuk pembahasan konsep proses selanjutnya akan berdasarkan paradigma ini

  7. Status Proses Selama eksekusinya proses berada dalam salah satu dari status-status berikut ini : New : proses sedang di-create Running : instruksi-instruksi sedang dieksekusi Waiting : proses sedang menunggu terjadinya event-event tertentu Ready : proses menunggu di-assign ke prosesor Terminated : proses selesai eksekusi

  8. Diagram Status Proses

  9. Process Control Block (PCB) Agar suatu proses yang running, lalu waiting/ready, dan kemudian running kembali dapat meneruskan proses tanpa kehilangan konteks maka diperlukan struktur data untuk menyimpan informasi dan status proses, disebut Process Control Block (PCB) Satu blok digunakan untuk satu proses dan isinya bisa bervariasi dari proses ke proses

  10. Informasi dalam PCB Informasi Manajemen Memori Posisi program di memori, dll Informasi Accounting Jumlah waktu eksekusi/elapse, time limit, account/job number, dll Informasi Status I/O List dari I/O device yang dialokasi proses, list file yang status sedang dibuka (baca/tulis), dll

  11. Process Control Block (PCB)

  12. Contoh tampilan Windows Task Manager

  13. Contoh list proses di Linux

  14. Proses-proses dari Memori Utama ke Register

  15. CPU Switch dari Proses ke Proses

  16. Scheduling Proses Dalam multiprogramming sejumlah proses yang running secara concurrent menggunakan resources : CPU dan devices Jika hanya ada satu prosesor (uniprosesor) maka hanya satu proses setiap saat yang benar-benar running dan yang lainnya menunggu (waiting) dalam queue atau melakukan aktifitas I/O

  17. Queue untuk Scheduling Job queue berisi seluruh proses di dalam sistem Ready queue berisi proses-proses yang berada di memori dan siap (ready)/ menunggu (wait) untuk dieksekusi Device queue – proses-proses yang menunggu giliran penggunaan device tertentu Proses berpindah antara bermacam-macam queue

  18. Ready Queue dan I/O Device Queues

  19. Representasi Process Scheduling = queue (ready queue & device queue) = resource yang melayani queue

  20. Scheduler Long-term scheduler (job scheduler) Memilih proses yang mana yang harus dibawa ke dalam ready queue Menentukan degree of multiprogramming Lebih jarang (second, minute)  (may be slow) Short-term scheduler (CPU scheduler) Memilih proses mana yang harus dieksekusi berikutnya dan mengalokasi CPU untuknya Lebih sering (milisecond)  (must be fast) Medium-term scheduler : swap proses In dan Out antara memori dan swap-device untuk mengubah karakteristik dari proses dalam penggunaan memori atau I/O device

  21. Status Proses - Scheduler long-term scheduler short-term scheduler

  22. Diagram Perpindahan Proses Baru terproses sebagian & di swap-out sementara CPU Ready queue I/O I/O waiting queue Swap out Swap in medium term scheduler new end long-term scheduler short-term scheduler

  23. Status Proses - Update

  24. I/O vs CPU Bounds Proses-proses dapat dideskripsikan sbb : I/O-bound process : proses-proses yang melakukan I/O dalam jumlah waktu yang lebih banyak daripada untuk komputasi; banyak terdapat CPU burst yang pendek CPU-bound process : proses-proses yang melakukan lebih banyak komputasi; beberapa CPU burst yang panjang

  25. Context Switch Saat CPU dipindahkan dari suatu proses ke proses yang lain sistem harus menyimpan status dari proses lama dan me-load status proses yang baru Tugas ini dilakukan oleh context switch Waktu untuk context-switch merupakan overhead (waktu sistem “terbuang” saat switching) Jumlah waktu ini bergantung pada dukungan Hardware

  26. Operasi pada Proses-proses Dalam multiprogramming akan ada proses yang baru mulai, dan ada proses yang selesai, disamping proses-proses yang sedang running Untuk dapat dimanage maka diperlukan mekanisme tertentu untuk menangani aktifitas create dan terminate proses

  27. Proses Creation Mekanisme “ayah-anak” atau “parent-child” : proses “parent” meng-create proses “child” yang juga dapat meng-create proses-proses lainnya membentuk pohon (tree) dari proses-proses Pada fase-fase awal : code dari user program di-load ke memori, control dialihkan ke program, proses berjalan hingga selesai/abort, dan control kembali ke monitor

  28. Modus-modus saat Create Proses (1) Dalam hal resource sharing Parent & child men-share semua resource Child men-share subset dari resource-resource milik parent Parent & child tidak men-share apa pun Dalam hal eksekusi Parent & child dieksekusi secara concurrent Parent menunggu hingga child terminate

  29. Modus-modus saat Create Proses (2) Dalam hal address space : Child menduplikasi milik parent Child memiliki suatu program yang akan di-load ke dalamnya Contoh UNIX System call fork() meng-create proses baru System call execve() digunakan setelah itu untuk mengganti memory space dari proses dengan program yang baru

  30. Proses Tree pada UNIX System

  31. Process Termination suatu proses mengalami terminasi akibat inisiatif child atau parent

  32. Terminasi karena Child Proses mengeksekusi statement terakhir yang juga meminta OS untuk mengahapusnya ( misalnya dengan exit() ) Data output dihasilkan child kepada parent ( misalnya sebagai return dari fork() ) Resource-resource proses didealokasi oleh OS

  33. Terminasi karena Parent Parent mengakhiri eksekusi proses-proses child ( misalnya dengan abort() ) Child telah menggunakan jumlah resource melebihi dari yang telah dialokasi Task yang diberikan pada child sudah tidak diperlukan lagi Parent telah exit OS tidak mengijinkan child untuk berlanjut jika parent terminate Cascading termination

  34. Cooperating Processes Independent process tidak dapat dipengaruhi oleh eksekusi proses lain Cooperating process dapat mempengaruhi dan dipengaruhi oleh eksekusi proses lain Keuntungan proses berkooperasi : Sharinginformasi : Menggunakan informasi(resource) yang sama untuk beberapa proses Peningkatan kemampuan komputasi (Computation Speedup) : Suatu task tertentu bisa dipecah menjadi beberapa cooperating processes sehingga bisa dikerjakan secara paralel sehingga menjadi lebih cepat selesai Modularitas : Pembuatan suatu sistem yang moduler dengan memecahkan fungsi-fungsi dari sistem tersebut menjadi beberapa proses atau thread Convenience : User bisa dengan mudah mengerjakan sesuatu yang berbeda dalam waktu yang sama

  35. Producer-Consumer Problem “Producer” merupakan proses yang menghasilkan informasi yang akan dikonsumsi oleh proses “Consumer”. Contoh : Compiler memproduksi assembly code yang dikonsumsi oleh Assembler Assembler memproduksi Object yang dikonsumsi oleh Loader Sebagai perantara digunakan suatu buffer Unbound-buffer : tidak ada batas kapasitas Bounded-buffer : buffer berukuran tetap Consumer harus menunggu jika buffer kosong dan Producer harus menunggu jika buffer penuh.

  36. Bounded-Buffer – Shared-Memory Solution Shared data #define BUFFER_SIZE 10 typedef struct { . . . } item; item buffer[BUFFER_SIZE]; int in = 0; int out = 0; Hanya dapat menggunakan BUFFER_SIZE-1 elemen

  37. Bounded-Buffer – Producer Process item nextProduced; while (1) { while (((in + 1) % BUFFER_SIZE) == out) ; /* do nothing */ buffer[in] = nextProduced; in = (in + 1) % BUFFER_SIZE; }

  38. Bounded-Buffer – Consumer Process item nextConsumed; while (1) { while (in == out) ; /* do nothing */ nextConsumed = buffer[out]; out = (out + 1) % BUFFER_SIZE; }

  39. Ilustrasi Producer-Consumer Problem out in out producer Empty in 0 0 0 Half-full Full out 11 11 11 consumer Ring-buffer 12 slots in

  40. Algoritma Producer-Consumer (Pascal) Producer : repeat … produce an item nextp … whilein+1 modn = out dono-op; buffer[in] := nextp; in := in+1 mod n; untilfalse; • Shared data var n; type item = …; var buffer : array [0..n-1] of item; in, out : 0..n-1; n := 0; out := 0; • Consumer : repeat whilein = outdono-op; nextc := buffer[out]; out := out+1 mod n; … consume the item in nextc … untilfalse;

  41. Interprocess Communication (IPC) Menyediakan mekanisme yang memungkinkan proses-proses berkomunikasi dan mensinkronisasi aksi-aksinya Message System – komunikasi tanpa memerlukan penggunaan shared variabel milik proses user

  42. Operasi-operasi IPC Operasi-operasi yang disediakan Send(message) Receive(message) Message dapat berukuran tetap atau variabel Ukuran tetap; implementasi fisik lebih simple, tapi lebih sulit bagi user dalam pemrograman Ukuran variabel; pemrograman lebih mudah tapi implementasi fisik lebih sulit

  43. Communication Link Bila P dan Q hendak berkomunikasi mereka perlu menetapkan suatu communication link di antara mereka lalu melakukan tukar-menukar message melalui send/receive IPC dalam implementasinya memerlukan communication link Secara fisik, contohnya shared memory, hardware bus Secara logic, contohnya logical properties

  44. Implementasi Menjawab pertanyaan-pertanyaan : Cara penetapan link Bisa berasosiasi dengan > 2 proses Jumlah link yang ditetapkan antara 2 proses Kapasitas link Ukuran message : tetap atau variabel Arah link : satu arah (unidirectional) atau dua arah (bi-directional) Satu arah : proses hanya send (atau receive) dan hanya satu yang receive

  45. Metodologi Direct vs. Indirect Communication Symmetric vs. Asymmetric Communication Automatic vs. Explicit Buffering Send by Copy vs. Send by Reference Fixed Sized vs. Variabel Sized Message

  46. Direct Communication Proses-proses harus menyebutkan pasangannya secara eksplisit send(Q, message) Q adalah receiver receive(P, message) P adalah sender P Q

  47. Sifat-sifat Communication Link Direct Comm. Link ditetapkan secara otomatis Link diasosiasikan dengan pasangan proses yang sedang berkomunikasi tsb Antara sepasang proses hanya bisa ada 1 link Link bisa satu arah tapi biasanya dua arah

  48. Contoh Producer-Consumer Producer : repeat … Produce(nextp) … send(consumer, nextp) … untilfalse; • Consumer : repeat … receive(produser, nextc) … Consume(nextc) … untilfalse;

  49. Kekurangan Direct Comm. Modularitas terbatas Pengubahan nama proses perlu pengubahan di seluruh call Perlu pemeriksaan jika terdapat nama yang sama

  50. Indirect Communication Message-message dikirim dan diterima melalui suatu mailbox (juga disebut port) Masing-masing mailbox memiliki id yang unik Proses-proses hanya dapat berkomunikasi jika mereka men-share mailbox send(A, message) Kirim message ke dalam mailbox A receive(A, message) Terima message dari dalam mailbox A P Q A

More Related