proses

73
Company LOGO Proses Ida Nurhaida, ST., MT.

Upload: malory

Post on 23-Feb-2016

82 views

Category:

Documents


0 download

DESCRIPTION

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. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Proses

CompanyLOGO

ProsesIda Nurhaida, ST., MT.

Page 2: Proses

Pembahasan

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

Page 3: Proses

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

Page 4: Proses

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

Page 5: Proses

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

Page 6: Proses

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

Page 7: Proses

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

Page 8: Proses

Diagram Status Proses

Page 9: Proses

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

Page 10: Proses

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

Page 11: Proses

Process Control Block (PCB)

Page 12: Proses

Proses-proses dari Memori Utama ke Register

Page 13: Proses

CPU Switch dari Proses ke Proses

Page 14: Proses

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

Page 15: Proses

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

Page 16: Proses

Ready Queue dan I/O Device Queues

Page 17: Proses

Representasi Process Scheduling

= resource yang melayani queue

= queue (ready queue & device queue)

Page 18: Proses

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

Page 19: Proses

Status Proses - Scheduler

short-term scheduler

long-term scheduler

Page 20: Proses

Diagram Perpindahan Proses

Baru terproses sebagian &di swap-out sementara

Ready queue

I/O waiting queueI/O

CPU

short-term scheduler

long-term scheduler

medium term scheduler

end

Swap out

Swap in

new

Page 21: Proses

Status Proses - Update

Page 22: Proses

I/O vs CPU Bounds

• Proses-proses dapat dideskripsikan sbb :– I/O-bound process : proses-proses yang

dilakukan 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

Page 23: Proses

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

Page 24: Proses

Operasi pada 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

Page 25: 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

Page 26: Proses

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

Page 27: Proses

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

Page 28: Proses

Proses Tree pada UNIX System

Page 29: Proses

Process Termination

Suatu proses mengalami terminasi akibat inisiatif child atau parent

Page 30: Proses

Terminasi karena Child

• Proses mengeksekusi statement terakhir yang juga meminta OS untuk menghapusnya ( misalnya dengan exit() )– Data output dihasilkan child kepada parent

( misalnya sebagai return dari fork() )– Resource-resource proses didealokasi oleh

OS

Page 31: Proses

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

Page 32: Proses

Cooperating Processes• Independent process tidak dapat dipengaruhi oleh eksekusi

proses lain• Cooperating process dapat mempengaruhi dan dipengaruhi

oleh eksekusi proses lain• Keuntungan proses berkooperasi :

– Sharing informasi : 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

Page 33: Proses

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.

Page 34: Proses

Bounded – Buffer – Shared-Memory Solution

• Shared data#define BUFFER_SIZE 10typedef struct {

. . .} item;item buffer[BUFFER_SIZE];int in = 0;int out = 0;

• Hanya dapat menggunakan BUFFER_SIZE-1 elemen

Page 35: Proses

Bounded – Buffer – Producer Process

item nextProduced;

while (1) {while (((in + 1) % BUFFER_SIZE) ==

out); /* do nothing */

buffer[in] = nextProduced;in = (in + 1) % BUFFER_SIZE;

}

Page 36: Proses

Bounded – Buffer – Consumer Process

item nextConsumed;

while (1) {while (in == out)

; /* do nothing */nextConsumed = buffer[out];out = (out + 1) % BUFFER_SIZE;

}

Page 37: Proses

Ilustrasi Producer-Consumer Problem

011

011

producer

consumer

011

Ring-buffer12 slots

out

in

inout

in out

FullHalf-full

Empty

Page 38: Proses

Algoritma Producer-Consumer (Pascal)

• Producer :repeat

…produce an item nextp…while in+1 mod n = outdo no-op;buffer[in] := nextp;in := in+1 mod n;

until false;

Consumer :repeatwhile in = out do no-op;nextc := buffer[out];out := out+1 mod n;…consume the item in nextc…

until false;

Shared datavar n; type item = …; var buffer : array [0..n-1] of item; in, out : 0..n-1; n := 0; out := 0;

Page 39: Proses

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

Page 40: Proses

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

Page 41: Proses

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

Page 42: Proses

Operating System Concepts

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?

Page 43: Proses

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

Page 44: Proses

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

Page 45: Proses

Direct Communication

• Proses-proses harus menyebutkan pasangannya secara eksplisit– send(Q, message)

• Q adalah receiver– receive(P, message)

• P adalah sender P Q

Page 46: Proses

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

Page 47: Proses

Contoh Producer-Consumer

• Producer :repeat

…Produce(nextp)…send(consumer, nextp)…

until false;

Consumer :repeat

…receive(produser, nextc)…Consume(nextc)…

until false;

Page 48: Proses

Kekurangan Direct Comm.

• Modularitas terbatas– Pengubahan nama proses perlu pengubahan

di seluruh call– Perlu pemeriksaan jika terdapat nama yang

sama

Page 49: Proses

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

AP Q

Page 50: Proses

Sifat-sifat Communication Link Indirect Comm.

• Link ditetapkan saat dua proses men-share suatu mailbox

• Link dapat diasosiasikan dengan sejumlah proses

• Setiap pasang proses bisa men-share beberapa link

• Link bisa satu arah atau dua arah

Page 51: Proses

Operasi-operasi Indirect Comm.

• Proses memulai komunikasi dengan men-create mailbox

• Komunikasi berlangsung dengan pemanggilan perintah send & receive message melalui mailbox tersebut

• Saat proses hendak exit maka proses men-destroy mailbox

Page 52: Proses

Masalah pada Mailbox Sharing• Mailbox sharing

– P1, P2, and P3 share mailbox A.– P1, sends; P2 dan P3 receive.– Siapa yang mendapatkan message?

• Solusi– Batasi link diasosiasikan hanya untuk

max 2 proses– Hanya mengijinkan satu proses setiap

saat yang meng-eksekusi operasi receive

– Sistem memilih siapa receiver-nya – Sender menyebutkan siapa receiver-

nya

AP1

P2

P3

Page 53: Proses

Sinkronisasi

• Message passing dapat dibedakan menjadi :– blocking – non-blocking

• Blocking adalah synchronous• Non-blocking adalah asynchronous• Primitif send and receive dapat blocking

or non-blocking.

Page 54: Proses

Buffering untuk Link

• 3 kemungkinan cara implementasi– Zero capacity – tidak ada buffer

• Sender harus menunggu sampai muncul receiver dan sebaliknya (sinkronisasi - rendezvous)

– Bounded capacity – bisa berisi max n message• Sender harus menunggu jika penuh

– Unbounded capacity – tak terbatas• Sender tidak pernah menunggu

Page 55: Proses

Komunikasi Client-Server

• Sockets• Remote Procedure Calls• Remote Method Invocation (Java)

Page 56: Proses

Socket

• Socket didefinisikan sebagai suatu endpoint for communication.

• Sebuah programming interface ke OS yang memungkinkan proses untuk saling berkomunikasi ke proses lainya

• Eksekusi TCP/UDP berlangsung di level kernel, socket bertindak sebagai jembatan ke user space.

• Merupakan gabungan IP address dan port• Socket 161.25.19.8:1625 menunjukkan bahwa

port 1625 pada host 161.25.19.8• Komunikasi terdiri dari pasangan socket.

Page 57: Proses

Komunikasi antar Socket

• Contoh standard port :– TELNET menggunakan port 23– FTP menggunakan port 21– HTTP server menggunakan port 80

Page 58: Proses

Ilustrasi Socket

Page 59: Proses

Komunikasi Socket

Page 60: Proses

Detail Komunikasi Socket

Page 61: Proses

Sockets in UnixServer membuat socket menggunakan bind(), sehingga dapat dimanfaatkan oleh clients

Page 62: Proses

Server for time of day (in Java)Public class Server { public static void main (String[], args) throws IOException { Socket client = null; // connection-oriented socket PrintWriter pout = null; ServerSocket sock = null;

try { sock = new ServerSocket (5155); // now listen for connections while (true) { client = sock.accept (); // we have a connection pout = new PrintWriter (client.getOutputStream(), true); // write the Date to the socket pout.println( new Java.util.Date().toString());

pout.close(); client.close(); …..

New socketto connectto client

To send data simply using println

Page 63: Proses

Client for time of dayPublic class Client { public static void main (String[], args) throws IOException { InputStream in = null; BufferedReader bin = null; Socket sock = null;

try { // make connection to socket sock = new Socket (“127.0.0.1”, 5155); in = sock.getInputStream (); bin = new BufferedReader (new InputStreamReader (in));

String line;

while ( (line = bin.readLine ()) != null) System.out.println (line); } ……. …..

Page 64: Proses

Remote Procedure Calls (RPC) (1)

• Remote Procedure Call (RPC) membuat abstraksi pemanggilan prosedur antara proses dalam sistem jaringan (network)

• Stubs – client-side proxy untuk procedure aktual pada server

• Client-side stub mengalokasikan server dan mengirimkan marshalls parameter

• Server-side stub menerima message, membuka parameter marshall, dan menjalankan procedure pada server

Page 65: Proses

Mekanisme RPC

Page 66: Proses

Remote Procedure Calls (RPC) (2)

• Dalam sistem single-processor :– message send = pemanggilan fungsi– reply = function return– sender mengaktifkan receiver dengan

message sebagai argument, dan sender wait untuk mendapatkan reply dari function return

• Skema RPC ini dilakukan juga pada proses-proses yang running di komputer berlainan

Page 67: Proses

Mekanisme IPC

• Sebelum mekanisme IPC digunakan, data harus di-packaging ke dalam format transimisi. Langkah ini dinamakan marshalling

• Proxy bertanggung jawab untuk marshalling data, kemudian mengirimkan data dan meminta instans dari komponen (remote)

• Stub menerima request, unmarshall data, dan memanggil method yang diminta. Kemudian proses mengembalikan nilai yang diinginkan

• Contoh : COM (Component Object Model) - Microsoft, CORBA (Common Object Request Broker Architecture - OMG)

Page 68: Proses

Contoh RPC

• Server hosts subroutines which can be called from a client machine

Page 69: Proses

Kelebihan RPC• Relatif mudah digunakan :

– Pemanggilan remote procedure tidak jauh berbeda dibandingkan pemanggilan local procedure. Sehingga pemrogram dpt berkonsentrasi pd software logic, tidak perlu memikirkan low level details seperti socket, marshalling & unmarshalling.

• Relatively portable :– S/W developed using RPC is easier to be ported

compared to sockets.• Robust :

– Sejak th 1980-an RPC telah banyak digunakan dalam pengembangan mission-critical application yg memerlukan scalability, fault tolerance, & reliability.

Page 70: Proses

Kekurangan RPC• Tidak fleksibel terhadap perubahan :

– Static relationship between client & server at run-time.

• Berdasarkan prosedural /structured programming yang sudah ketinggalan jaman dibandingkan OOP.

Page 71: Proses

Remote Method Invocation (RMI)• Remote Method Invocation (RMI) adalah

mekanisme Java yang sama dengan RPC• RMI memungkinkan program Java pada satu

komputer untuk memanggil suatu method pada remote object

Page 72: Proses

Marshalling Parameters

- Local objects passed by copy (object serialization)- Remote objects passed by reference

Page 73: Proses

END OF MODUL - 4