740 likes | 1.03k Views
Proses. Ida Nurhaida, ST., MT. Pembahasan. Konsep Proses Penjadualan Proses Operasi-operasi pada Proses Cooperating Processes Interprocess Communication Komunikasi pada Sistem Client-Server . Konsep Proses.
E N D
Proses Ida Nurhaida, ST., MT.
Pembahasan • Konsep Proses • Penjadualan Proses • Operasi-operasi pada Proses • Cooperating Processes • Interprocess Communication • Komunikasi pada Sistem Client-Server
KonsepProses • Proses : suatu program yang sedangdieksekusidanmemiliki status jalannyaeksekusiyaitu minimal informasi-informasisbb : • Program counter : menunjukkaninstruksiberikutnya yang akandieksekusi • Register : data hasileksekusiantara • Stack : tempatpenyimpanan temporary data yang dibutuhkanselama program dieksekusi • Data section : mengandungvariabel global darisuatuproses • Dalamliteratur, istilahjobdanprosesdantask seringdapatdipertukarkan
PerkembanganKonsepProses • Konsepprosesberkembangsejalandengan modus operasisistemkomputer : • Fase-fasemonoprogramming : padasuatusaatdimemorihanyasebuah program yang sedangdijalankan (mungkindisertaisuatu monitor proses) • Fase-fase multiprogramming : padasuatusaatdimemoribisaterdapatbeberapa program yang sedangdijalankan
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
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
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
Process Control Block (PCB) • Agar suatuproses yang running, lalu waiting/ready, dankemudian running kembalidapatmeneruskanprosestanpakehilangankonteksmakadiperlukanstruktur data untukmenyimpaninformasidan status proses, disebut Process Control Block (PCB) • Satublokdigunakanuntuksatuprosesdanisinyabisabervariasidariproseskeproses
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
Scheduling Proses • Dalam multiprogramming sejumlahproses yang running secara concurrent menggunakan resources : CPU dan devices • Jikahanyaadasatuprosesor (uniprosesor) makahanyasatuprosessetiapsaat yang benar-benar running dan yang lainnyamenunggu (waiting) dalamqueueataumelakukanaktifitas I/O
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
Representasi Process Scheduling = queue (ready queue & device queue) = resource yang melayani queue
Scheduler • Long-term scheduler (job scheduler) • Memilihproses yang mana yang harusdibawakedalam ready queue • Menentukandegree of multiprogramming • Lebihjarang (second, minute) (may be slow) • Short-term scheduler (CPU scheduler) • Memilihprosesmana yang harusdieksekusiberikutnyadanmengalokasi CPU untuknya • Lebihsering (milisecond) (must be fast) • Medium-term scheduler : swap prosesIn danOutantaramemoridan swap-device untukmengubahkarakteristikdariprosesdalampenggunaanmemoriatau I/O device
Status Proses - Scheduler long-term scheduler short-term scheduler
Baruterprosessebagian & di swap-out sementara CPU Ready queue I/O I/O waiting queue Diagram Perpindahan Proses Swap out Swap in medium term scheduler new end long-term scheduler short-term scheduler
I/O vs CPU Bounds • Proses-prosesdapatdideskripsikansbb : • I/O-bound process : proses-proses yang dilakukanI/O dalamjumlahwaktu yang lebihbanyakdaripadauntukkomputasi; banyakterdapat CPU burst yang pendek • CPU-bound process : proses-proses yang melakukanlebihbanyakkomputasi; beberapa CPU burst yang panjang
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
OperasipadaProses • Dalam multiprogramming akanadaproses yang barumulai, danadaproses yang selesai, disampingproses-proses yang sedang running • Untukdapatdimanagemakadiperlukanmekanismetertentuuntukmenanganiaktifitas create dan terminate proses
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
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
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
Process Termination Suatuprosesmengalamiterminasiakibatinisiatifchildatauparent
Terminasi karena Child • Prosesmengeksekusi statement terakhir yang jugameminta OS untukmenghapusnya( misalnyadenganexit() ) • Data output dihasilkan child kepada parent ( misalnyasebagai return darifork() ) • Resource-resource prosesdidealokasioleh OS
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
Cooperating Processes • Independent processtidakdapatdipengaruhioleheksekusiproses lain • Cooperating processdapatmempengaruhidandipengaruhioleheksekusiproses lain • Keuntunganprosesberkooperasi : • Sharinginformasi : Menggunakaninformasi(resource) yang samauntukbeberapaproses • Peningkatankemampuankomputasi (Computation Speedup) : Suatu task tertentubisadipecahmenjadibeberapacooperating processessehinggabisadikerjakansecaraparalelsehinggamenjadilebihcepatselesai • Modularitas : Pembuatansuatusistem yang modulerdenganmemecahkanfungsi-fungsidarisistemtersebutmenjadibeberapaprosesatauthread • Convenience : User bisadenganmudahmengerjakansesuatu yang berbedadalamwaktu yang sama
Producer-Consumer Problem • “Producer” merupakanproses yang menghasilkaninformasi yang akandikonsumsiolehproses “Consumer”. Contoh : • Compiler memproduksi assembly code yang dikonsumsioleh Assembler • Assembler memproduksi Object yang dikonsumsioleh Loader • Sebagaiperantaradigunakansuatu buffer • Unbound-buffer : tidakadabataskapasitas • Bounded-buffer : buffer berukurantetap • ConsumerharusmenunggujikabufferkosongdanProducerharusmenunggujikabufferpenuh.
Bounded – Buffer – Shared-Memory Solution • Shared data #define BUFFER_SIZE 10 typedefstruct { . . . } item; item buffer[BUFFER_SIZE]; int in = 0; int out = 0; • Hanyadapatmenggunakan BUFFER_SIZE-1 elemen
Bounded – Buffer – Producer Process item nextProduced; while (1) { while (((in + 1) % BUFFER_SIZE) == out) ; /* do nothing */ buffer[in] = nextProduced; in = (in + 1) % BUFFER_SIZE; }
Bounded – Buffer – Consumer Process item nextConsumed; while (1) { while (in == out) ; /* do nothing */ nextConsumed = buffer[out]; out = (out + 1) % BUFFER_SIZE; }
out in out producer Empty in 0 0 0 Half-full Full out 11 11 11 consumer Ring-buffer 12 slots in Ilustrasi Producer-Consumer Problem
Algoritma Producer-Consumer (Pascal) • Shared data var n; type item = …; var buffer : array [0..n-1] of item; in, out : 0..n-1; n := 0; out := 0; • Producer : repeat … produce an item nextp … whilein+1 modn = out dono-op; buffer[in] := nextp; in := in+1 mod n; untilfalse; • Consumer : repeat whilein = outdono-op; nextc := buffer[out]; out := out+1 mod n; … consume the item in nextc … untilfalse;
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
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
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
Implementation Questions • How are links established? • Can a link be associated with more than two processes? • How many links can there be between every pair of communicating processes? • What is the capacity of a link? • Is the size of a message that the link can accommodate fixed or variable? • Is a link unidirectional or bi-directional? Operating System Concepts
Implementasi • Menjawabpertanyaan-pertanyaan : • Cara penetapan link • Bisaberasosiasidengan > 2 proses • Jumlah link yang ditetapkanantara 2 proses • Kapasitas link • Ukuran message : tetapatauvariabel • Arah link : satuarah (unidirectional) atauduaarah (bi-directional) • Satuarah : proseshanya send (atau receive) danhanyasatu yang receive
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
Direct Communication • Proses-proses harus menyebutkan pasangannya secara eksplisit • send(Q, message) • Q adalah receiver • receive(P, message) • P adalah sender P Q
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
Contoh Producer-Consumer • Producer : repeat … Produce(nextp) … send(consumer, nextp) … untilfalse; • Consumer : repeat … receive(produser, nextc) … Consume(nextc) … untilfalse;
Kekurangan Direct Comm. • Modularitas terbatas • Pengubahan nama proses perlu pengubahan di seluruh call • Perlu pemeriksaan jika terdapat nama yang sama
P Q A Indirect Communication • Message-message dikirimdanditerimamelaluisuatu mailbox (jugadisebutport) • Masing-masing mailbox memiliki id yang unik • Proses-proseshanyadapatberkomunikasijikamereka men-share mailbox • send(A, message) • Kirim message kedalam mailbox A • receive(A, message) • Terima message daridalam mailbox A
Sifat-sifat Communication Link Indirect Comm. • Link ditetapkansaatduaproses men-share suatu mailbox • Link dapatdiasosiasikandengansejumlahproses • Setiappasangprosesbisa men-share beberapa link • Link bisasatuarahatauduaarah