SlideShare a Scribd company logo
1 of 75
Proses
Pembahasan
• Konsep Proses
• Penjadualan Proses
• Operasi-operasi pada Proses
• Cooperating Processes
• Interprocess Communication
• Komunikasi pada Sistem Client-Server
Konsep Proses
• Proses : suatu program yang sedang dieksekusi oleh proseor,
memerlukan resource, berada di memory 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
• Status posisi saat dieksekusi diperlukan krn prosesor melakukan
switching (berjumpalitan/akrobat) krn menjalankan banyak proses
• Dalam literatur, istilah job dan proses dan task sering dapat
dipertukarkan
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
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 (uniprosesor, single
prosesor, mono prosesor)
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
Diagram Status 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
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
Process Control Block (PCB)
Contoh tampilan Windows Task
Manager
Contoh list proses di Linux
Proses-proses dari Memori
Utama ke Register
CPU Switch dari Proses ke 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
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
Ready Queue dan I/O Device Queues
Representasi Process
Scheduling
= resource yang melayani queue
= queue (ready queue & device queue)
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
Status Proses - Scheduler
short-term scheduler
long-term scheduler
Diagram Perpindahan Proses
Baru terproses sebagian &
di swap-out sementara
Ready queue
I/O waiting queue
I/O
CPU
short-term scheduler
long-term scheduler
medium term
scheduler
end
Swap out
Swap in
new
Status Proses - Update
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 lama daripada untuk komputasi;
banyak terdapat CPU burst yang pendek
–CPU-bound process : proses-proses
yang melakukan lebih banyak komputasi;
beberapa CPU burst yang panjang
(frequensinya sering dan CPU
burst/pendek)
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
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
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
Proses Tree pada UNIX System
Process Termination
• suatu proses mengalami terminasi
akibat inisiatif child atau parent krn
adanya pengakhiran sub proses
• Proses terminasi normal (user end
close/task program)
• Proses terminasi tidak normal ( user
menutup paksa/abort/cancel proses
atau aplikasi)
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
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 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
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.
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
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;
}
Ilustrasi Producer-Consumer
Problem
0
11
0
11
producer
consumer
0
11
Ring-buffer
12 slots
out
in
in
out
in
out
Full
Half-full
Empty
Algoritma Producer-Consumer
(Pascal)
• Producer :
repeat
…
produce an item nextp
…
while in+1 mod n = out
do no-op;
buffer[in] := nextp;
in := in+1 mod n;
until false;
 Consumer :
repeat
while in = out do no-op;
nextc := buffer[out];
out := out+1 mod n;
…
consume the item in nextc
…
until false;
 Shared data
var n; type item = …; var buffer : array [0..n-1] of item;
in, out : 0..n-1; n := 0; out := 0;
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
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
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)
…
until false;
 Consumer :
repeat
…
receive(produser, nextc)
…
Consume(nextc)
…
until false;
Kekurangan Direct Comm.
• Modularitas terbatas
– Pengubahan nama proses perlu pengubahan
di seluruh call
– Perlu pemeriksaan jika terdapat nama yang
sama
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)
A
P Q
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
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
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
A
P1
P2
P3
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.
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
Komunikasi Client-Server
• Sockets
• Remote Procedure Calls
• Remote Method Invocation (Java)
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.
Komunikasi antar Socket
• Contoh standard port :
– TELNET menggunakan port 23
– FTP menggunakan port 21
– HTTP server menggunakan port 80
Ilustrasi Socket
Komunikasi Socket
Detail Komunikasi Socket
Sockets in Unix
Server membuat socket
menggunakan bind(), sehingga
dapat dimanfaatkan oleh clients
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 socket
to connect
to client
To send data
simply
using println
Client for time of day
Public 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);
}
…….
…..
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
Mekanisme RPC
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
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,
Contoh RPC
• Server hosts subroutines which can be called
from a client machine
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.
Kekurangan RPC
• Tidak fleksibel terhadap perubahan :
– Static relationship between client & server at
run-time.
• Berdasarkan prosedural /structured
programming yang sudah ketinggalan
jaman dibandingkan OOP.
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
Marshalling Parameters
- Local objects passed by copy (object serialization)
- Remote objects passed by reference
tugas
• Install Software untuk virtualisasi sistem operasi
dg Virtual box (vbox.org) atau Vmware
• Install 1 OS Linux client atau linux server di
software tersebut
• Jalankan banyak aplikasi di linux (guest OS)
tersebut, tampilkan proses yang sedang running
dg printah ps, tampilkan tree dari semua proses
yang ada
• Amati pid masing2 proses yg running
• End task beberapa proses dg kill
• Tampilkan lagi dg printah ps dan tampilkan tree
dari proses
END OF MODUL - 4

More Related Content

Similar to KOMUNIKASI PROSES

Sistem Operasi - 4 [Penjadwalan Proses SO]
Sistem Operasi - 4 [Penjadwalan Proses SO]Sistem Operasi - 4 [Penjadwalan Proses SO]
Sistem Operasi - 4 [Penjadwalan Proses SO]beiharira
 
IV. Proses-proses.ppt
IV. Proses-proses.pptIV. Proses-proses.ppt
IV. Proses-proses.pptRezzaFahlevvi
 
Dedi Purwanto - Proses - proses Sistem Operasi
Dedi Purwanto - Proses - proses Sistem OperasiDedi Purwanto - Proses - proses Sistem Operasi
Dedi Purwanto - Proses - proses Sistem Operasibelajarkomputer
 
Presentasi komputasi Pararel dan Terdistribusi
Presentasi komputasi Pararel dan TerdistribusiPresentasi komputasi Pararel dan Terdistribusi
Presentasi komputasi Pararel dan TerdistribusiRahmawan06
 
Modul 1 struktur sistem komputer
Modul 1   struktur sistem komputerModul 1   struktur sistem komputer
Modul 1 struktur sistem komputerHardiansyah S. Amel
 
Helen Alida Abilio - Manajemen proses
Helen Alida Abilio - Manajemen prosesHelen Alida Abilio - Manajemen proses
Helen Alida Abilio - Manajemen prosesbelajarkomputer
 
Helen Alida Abilio - Manajemen Proses
Helen Alida Abilio - Manajemen ProsesHelen Alida Abilio - Manajemen Proses
Helen Alida Abilio - Manajemen Prosesbelajarkomputer
 
20230529 CahyoSatrioW 1611502616 Tugas pertemuan 10.pptx
20230529 CahyoSatrioW 1611502616 Tugas pertemuan 10.pptx20230529 CahyoSatrioW 1611502616 Tugas pertemuan 10.pptx
20230529 CahyoSatrioW 1611502616 Tugas pertemuan 10.pptxCahyoSatrio4
 
Makalah Sistem operasi_UAS_Elmi Tiodata_210403010022.pdf
Makalah Sistem operasi_UAS_Elmi Tiodata_210403010022.pdfMakalah Sistem operasi_UAS_Elmi Tiodata_210403010022.pdf
Makalah Sistem operasi_UAS_Elmi Tiodata_210403010022.pdfElmitiodatacp
 
6.MANAJEMEN_MEMORI.ppt
6.MANAJEMEN_MEMORI.ppt6.MANAJEMEN_MEMORI.ppt
6.MANAJEMEN_MEMORI.pptudnsupriadi
 
02. proses pada so
02. proses pada so02. proses pada so
02. proses pada sokimerfan
 
Bernis Sagita - Manajemen proses
Bernis Sagita - Manajemen prosesBernis Sagita - Manajemen proses
Bernis Sagita - Manajemen prosesbelajarkomputer
 
Sistem operasi rangkuman
Sistem operasi rangkumanSistem operasi rangkuman
Sistem operasi rangkumanIputu Septianta
 
 Manajemen memory dan Swapping
 Manajemen memory dan Swapping Manajemen memory dan Swapping
 Manajemen memory dan SwappingEdho Pratama
 

Similar to KOMUNIKASI PROSES (20)

Sistem Operasi - 4 [Penjadwalan Proses SO]
Sistem Operasi - 4 [Penjadwalan Proses SO]Sistem Operasi - 4 [Penjadwalan Proses SO]
Sistem Operasi - 4 [Penjadwalan Proses SO]
 
IV. Proses-proses.ppt
IV. Proses-proses.pptIV. Proses-proses.ppt
IV. Proses-proses.ppt
 
Dedi Purwanto - Proses - proses Sistem Operasi
Dedi Purwanto - Proses - proses Sistem OperasiDedi Purwanto - Proses - proses Sistem Operasi
Dedi Purwanto - Proses - proses Sistem Operasi
 
Presentasi komputasi Pararel dan Terdistribusi
Presentasi komputasi Pararel dan TerdistribusiPresentasi komputasi Pararel dan Terdistribusi
Presentasi komputasi Pararel dan Terdistribusi
 
MF427_06_103754.ppt
MF427_06_103754.pptMF427_06_103754.ppt
MF427_06_103754.ppt
 
Modul 1 struktur sistem komputer
Modul 1   struktur sistem komputerModul 1   struktur sistem komputer
Modul 1 struktur sistem komputer
 
Helen Alida Abilio - Manajemen proses
Helen Alida Abilio - Manajemen prosesHelen Alida Abilio - Manajemen proses
Helen Alida Abilio - Manajemen proses
 
Helen Alida Abilio - Manajemen Proses
Helen Alida Abilio - Manajemen ProsesHelen Alida Abilio - Manajemen Proses
Helen Alida Abilio - Manajemen Proses
 
Pert.3 proses dan thread
Pert.3 proses dan threadPert.3 proses dan thread
Pert.3 proses dan thread
 
20230529 CahyoSatrioW 1611502616 Tugas pertemuan 10.pptx
20230529 CahyoSatrioW 1611502616 Tugas pertemuan 10.pptx20230529 CahyoSatrioW 1611502616 Tugas pertemuan 10.pptx
20230529 CahyoSatrioW 1611502616 Tugas pertemuan 10.pptx
 
8. Proses
8. Proses8. Proses
8. Proses
 
Makalah Sistem operasi_UAS_Elmi Tiodata_210403010022.pdf
Makalah Sistem operasi_UAS_Elmi Tiodata_210403010022.pdfMakalah Sistem operasi_UAS_Elmi Tiodata_210403010022.pdf
Makalah Sistem operasi_UAS_Elmi Tiodata_210403010022.pdf
 
6.MANAJEMEN_MEMORI.ppt
6.MANAJEMEN_MEMORI.ppt6.MANAJEMEN_MEMORI.ppt
6.MANAJEMEN_MEMORI.ppt
 
Os ppt.3
Os ppt.3Os ppt.3
Os ppt.3
 
02. proses pada so
02. proses pada so02. proses pada so
02. proses pada so
 
Pertemuan3 1 so
Pertemuan3 1 soPertemuan3 1 so
Pertemuan3 1 so
 
Bernis Sagita - Manajemen proses
Bernis Sagita - Manajemen prosesBernis Sagita - Manajemen proses
Bernis Sagita - Manajemen proses
 
Sistem operasi rangkuman
Sistem operasi rangkumanSistem operasi rangkuman
Sistem operasi rangkuman
 
 Manajemen memory dan Swapping
 Manajemen memory dan Swapping Manajemen memory dan Swapping
 Manajemen memory dan Swapping
 
Pertemuan 6
Pertemuan 6Pertemuan 6
Pertemuan 6
 

Recently uploaded

1A. INTRODUCTION TO Good corporate governance .ppt
1A. INTRODUCTION TO Good corporate governance .ppt1A. INTRODUCTION TO Good corporate governance .ppt
1A. INTRODUCTION TO Good corporate governance .ppterlyndakasim2
 
2. PRINSIP KEUANGAN HIJAU- PELATIHAN GREEN FINANCE.pptx
2. PRINSIP KEUANGAN HIJAU- PELATIHAN GREEN FINANCE.pptx2. PRINSIP KEUANGAN HIJAU- PELATIHAN GREEN FINANCE.pptx
2. PRINSIP KEUANGAN HIJAU- PELATIHAN GREEN FINANCE.pptxerlyndakasim2
 
"Mengungkap Misteri Kemenangan di Xinslot: Situs Slot Online Gacor"
"Mengungkap Misteri Kemenangan di Xinslot: Situs Slot Online Gacor""Mengungkap Misteri Kemenangan di Xinslot: Situs Slot Online Gacor"
"Mengungkap Misteri Kemenangan di Xinslot: Situs Slot Online Gacor"HaseebBashir5
 
Slide tentang Akuntansi Perpajakan Indonesia
Slide tentang Akuntansi Perpajakan IndonesiaSlide tentang Akuntansi Perpajakan Indonesia
Slide tentang Akuntansi Perpajakan IndonesiaNovrinKartikaTumbade
 
Judul: Mengenal Lebih Jauh Tentang Jamintoto: Platform Perjudian Online yang ...
Judul: Mengenal Lebih Jauh Tentang Jamintoto: Platform Perjudian Online yang ...Judul: Mengenal Lebih Jauh Tentang Jamintoto: Platform Perjudian Online yang ...
Judul: Mengenal Lebih Jauh Tentang Jamintoto: Platform Perjudian Online yang ...HaseebBashir5
 
SV388: Platform Taruhan Sabung Ayam Online yang Populer
SV388: Platform Taruhan Sabung Ayam Online yang PopulerSV388: Platform Taruhan Sabung Ayam Online yang Populer
SV388: Platform Taruhan Sabung Ayam Online yang PopulerHaseebBashir5
 
Mengenal Rosa777: Situs Judi Online yang Populer
Mengenal Rosa777: Situs Judi Online yang PopulerMengenal Rosa777: Situs Judi Online yang Populer
Mengenal Rosa777: Situs Judi Online yang PopulerHaseebBashir5
 
tugas kelompok Analisis bisnis aplikasi bukalapak
tugas kelompok Analisis bisnis aplikasi bukalapaktugas kelompok Analisis bisnis aplikasi bukalapak
tugas kelompok Analisis bisnis aplikasi bukalapaksmkpelayarandemak1
 
Capital Asset Priceng Model atau CAPM 11
Capital Asset Priceng Model atau CAPM 11Capital Asset Priceng Model atau CAPM 11
Capital Asset Priceng Model atau CAPM 11Al-ghifari Erik
 
Memaksimalkan Waktu untuk Mendapatkan Kampus Impian melalui SBMPTN (1).pptx
Memaksimalkan Waktu untuk Mendapatkan Kampus Impian melalui SBMPTN (1).pptxMemaksimalkan Waktu untuk Mendapatkan Kampus Impian melalui SBMPTN (1).pptx
Memaksimalkan Waktu untuk Mendapatkan Kampus Impian melalui SBMPTN (1).pptxSintaDosi
 
SLIDE 2 BISNIS INTERNASIONAL.ppttttttttx
SLIDE 2 BISNIS INTERNASIONAL.ppttttttttxSLIDE 2 BISNIS INTERNASIONAL.ppttttttttx
SLIDE 2 BISNIS INTERNASIONAL.ppttttttttxdevina81
 
PPT-Business-Plan makanan khas indonesia
PPT-Business-Plan makanan khas indonesiaPPT-Business-Plan makanan khas indonesia
PPT-Business-Plan makanan khas indonesiaSukmaWati809736
 
MAKALAH MANAJEMEN BISNIS RIRIS DAN YUDI.docx
MAKALAH MANAJEMEN BISNIS RIRIS DAN YUDI.docxMAKALAH MANAJEMEN BISNIS RIRIS DAN YUDI.docx
MAKALAH MANAJEMEN BISNIS RIRIS DAN YUDI.docxYogiAJ
 
MODUL PEGAJARAN ASURANSI BELUM KOMPLIT 1
MODUL PEGAJARAN ASURANSI BELUM KOMPLIT 1MODUL PEGAJARAN ASURANSI BELUM KOMPLIT 1
MODUL PEGAJARAN ASURANSI BELUM KOMPLIT 1alvinjasindo
 
Perspektif Psikologi dalam Perubahan Organisasi
Perspektif Psikologi dalam Perubahan OrganisasiPerspektif Psikologi dalam Perubahan Organisasi
Perspektif Psikologi dalam Perubahan OrganisasiSeta Wicaksana
 
ESTETIK!!! WA 0821 7001 0763 (FORTRESS) Bahan Pintu Aluminium Coklat di Denpa...
ESTETIK!!! WA 0821 7001 0763 (FORTRESS) Bahan Pintu Aluminium Coklat di Denpa...ESTETIK!!! WA 0821 7001 0763 (FORTRESS) Bahan Pintu Aluminium Coklat di Denpa...
ESTETIK!!! WA 0821 7001 0763 (FORTRESS) Bahan Pintu Aluminium Coklat di Denpa...FORTRESS
 
DRAFT Penilaian Assessor _MIiii_UIM.pptx
DRAFT Penilaian Assessor _MIiii_UIM.pptxDRAFT Penilaian Assessor _MIiii_UIM.pptx
DRAFT Penilaian Assessor _MIiii_UIM.pptxnairaazkia89
 
UNIKBET : Bandar Slot Pragmatic Play Bisa Deposit Ovo 24 Jam Online Banyak Bonus
UNIKBET : Bandar Slot Pragmatic Play Bisa Deposit Ovo 24 Jam Online Banyak BonusUNIKBET : Bandar Slot Pragmatic Play Bisa Deposit Ovo 24 Jam Online Banyak Bonus
UNIKBET : Bandar Slot Pragmatic Play Bisa Deposit Ovo 24 Jam Online Banyak Bonusunikbetslotbankmaybank
 
Tajuk: SV388: Platform Unggul Taruhan Sabung Ayam Online di Indonesia
Tajuk: SV388: Platform Unggul Taruhan Sabung Ayam Online di IndonesiaTajuk: SV388: Platform Unggul Taruhan Sabung Ayam Online di Indonesia
Tajuk: SV388: Platform Unggul Taruhan Sabung Ayam Online di IndonesiaHaseebBashir5
 
LAPORAN PKP yang telah jadi dan dapat dijadikan contoh
LAPORAN PKP yang telah jadi dan dapat dijadikan contohLAPORAN PKP yang telah jadi dan dapat dijadikan contoh
LAPORAN PKP yang telah jadi dan dapat dijadikan contohkhunagnes1
 

Recently uploaded (20)

1A. INTRODUCTION TO Good corporate governance .ppt
1A. INTRODUCTION TO Good corporate governance .ppt1A. INTRODUCTION TO Good corporate governance .ppt
1A. INTRODUCTION TO Good corporate governance .ppt
 
2. PRINSIP KEUANGAN HIJAU- PELATIHAN GREEN FINANCE.pptx
2. PRINSIP KEUANGAN HIJAU- PELATIHAN GREEN FINANCE.pptx2. PRINSIP KEUANGAN HIJAU- PELATIHAN GREEN FINANCE.pptx
2. PRINSIP KEUANGAN HIJAU- PELATIHAN GREEN FINANCE.pptx
 
"Mengungkap Misteri Kemenangan di Xinslot: Situs Slot Online Gacor"
"Mengungkap Misteri Kemenangan di Xinslot: Situs Slot Online Gacor""Mengungkap Misteri Kemenangan di Xinslot: Situs Slot Online Gacor"
"Mengungkap Misteri Kemenangan di Xinslot: Situs Slot Online Gacor"
 
Slide tentang Akuntansi Perpajakan Indonesia
Slide tentang Akuntansi Perpajakan IndonesiaSlide tentang Akuntansi Perpajakan Indonesia
Slide tentang Akuntansi Perpajakan Indonesia
 
Judul: Mengenal Lebih Jauh Tentang Jamintoto: Platform Perjudian Online yang ...
Judul: Mengenal Lebih Jauh Tentang Jamintoto: Platform Perjudian Online yang ...Judul: Mengenal Lebih Jauh Tentang Jamintoto: Platform Perjudian Online yang ...
Judul: Mengenal Lebih Jauh Tentang Jamintoto: Platform Perjudian Online yang ...
 
SV388: Platform Taruhan Sabung Ayam Online yang Populer
SV388: Platform Taruhan Sabung Ayam Online yang PopulerSV388: Platform Taruhan Sabung Ayam Online yang Populer
SV388: Platform Taruhan Sabung Ayam Online yang Populer
 
Mengenal Rosa777: Situs Judi Online yang Populer
Mengenal Rosa777: Situs Judi Online yang PopulerMengenal Rosa777: Situs Judi Online yang Populer
Mengenal Rosa777: Situs Judi Online yang Populer
 
tugas kelompok Analisis bisnis aplikasi bukalapak
tugas kelompok Analisis bisnis aplikasi bukalapaktugas kelompok Analisis bisnis aplikasi bukalapak
tugas kelompok Analisis bisnis aplikasi bukalapak
 
Capital Asset Priceng Model atau CAPM 11
Capital Asset Priceng Model atau CAPM 11Capital Asset Priceng Model atau CAPM 11
Capital Asset Priceng Model atau CAPM 11
 
Memaksimalkan Waktu untuk Mendapatkan Kampus Impian melalui SBMPTN (1).pptx
Memaksimalkan Waktu untuk Mendapatkan Kampus Impian melalui SBMPTN (1).pptxMemaksimalkan Waktu untuk Mendapatkan Kampus Impian melalui SBMPTN (1).pptx
Memaksimalkan Waktu untuk Mendapatkan Kampus Impian melalui SBMPTN (1).pptx
 
SLIDE 2 BISNIS INTERNASIONAL.ppttttttttx
SLIDE 2 BISNIS INTERNASIONAL.ppttttttttxSLIDE 2 BISNIS INTERNASIONAL.ppttttttttx
SLIDE 2 BISNIS INTERNASIONAL.ppttttttttx
 
PPT-Business-Plan makanan khas indonesia
PPT-Business-Plan makanan khas indonesiaPPT-Business-Plan makanan khas indonesia
PPT-Business-Plan makanan khas indonesia
 
MAKALAH MANAJEMEN BISNIS RIRIS DAN YUDI.docx
MAKALAH MANAJEMEN BISNIS RIRIS DAN YUDI.docxMAKALAH MANAJEMEN BISNIS RIRIS DAN YUDI.docx
MAKALAH MANAJEMEN BISNIS RIRIS DAN YUDI.docx
 
MODUL PEGAJARAN ASURANSI BELUM KOMPLIT 1
MODUL PEGAJARAN ASURANSI BELUM KOMPLIT 1MODUL PEGAJARAN ASURANSI BELUM KOMPLIT 1
MODUL PEGAJARAN ASURANSI BELUM KOMPLIT 1
 
Perspektif Psikologi dalam Perubahan Organisasi
Perspektif Psikologi dalam Perubahan OrganisasiPerspektif Psikologi dalam Perubahan Organisasi
Perspektif Psikologi dalam Perubahan Organisasi
 
ESTETIK!!! WA 0821 7001 0763 (FORTRESS) Bahan Pintu Aluminium Coklat di Denpa...
ESTETIK!!! WA 0821 7001 0763 (FORTRESS) Bahan Pintu Aluminium Coklat di Denpa...ESTETIK!!! WA 0821 7001 0763 (FORTRESS) Bahan Pintu Aluminium Coklat di Denpa...
ESTETIK!!! WA 0821 7001 0763 (FORTRESS) Bahan Pintu Aluminium Coklat di Denpa...
 
DRAFT Penilaian Assessor _MIiii_UIM.pptx
DRAFT Penilaian Assessor _MIiii_UIM.pptxDRAFT Penilaian Assessor _MIiii_UIM.pptx
DRAFT Penilaian Assessor _MIiii_UIM.pptx
 
UNIKBET : Bandar Slot Pragmatic Play Bisa Deposit Ovo 24 Jam Online Banyak Bonus
UNIKBET : Bandar Slot Pragmatic Play Bisa Deposit Ovo 24 Jam Online Banyak BonusUNIKBET : Bandar Slot Pragmatic Play Bisa Deposit Ovo 24 Jam Online Banyak Bonus
UNIKBET : Bandar Slot Pragmatic Play Bisa Deposit Ovo 24 Jam Online Banyak Bonus
 
Tajuk: SV388: Platform Unggul Taruhan Sabung Ayam Online di Indonesia
Tajuk: SV388: Platform Unggul Taruhan Sabung Ayam Online di IndonesiaTajuk: SV388: Platform Unggul Taruhan Sabung Ayam Online di Indonesia
Tajuk: SV388: Platform Unggul Taruhan Sabung Ayam Online di Indonesia
 
LAPORAN PKP yang telah jadi dan dapat dijadikan contoh
LAPORAN PKP yang telah jadi dan dapat dijadikan contohLAPORAN PKP yang telah jadi dan dapat dijadikan contoh
LAPORAN PKP yang telah jadi dan dapat dijadikan contoh
 

KOMUNIKASI 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 oleh proseor, memerlukan resource, berada di memory 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 • Status posisi saat dieksekusi diperlukan krn prosesor melakukan switching (berjumpalitan/akrobat) krn menjalankan banyak 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 (uniprosesor, single prosesor, mono prosesor)
  • 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
  • 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
  • 12. Contoh tampilan Windows Task Manager
  • 13. Contoh list proses di Linux
  • 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 = resource yang melayani queue = queue (ready queue & device 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 short-term scheduler long-term scheduler
  • 22. Diagram Perpindahan Proses Baru terproses sebagian & di swap-out sementara Ready queue I/O waiting queue I/O CPU short-term scheduler long-term scheduler medium term scheduler end Swap out Swap in new
  • 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 lama daripada untuk komputasi; banyak terdapat CPU burst yang pendek –CPU-bound process : proses-proses yang melakukan lebih banyak komputasi; beberapa CPU burst yang panjang (frequensinya sering dan CPU burst/pendek)
  • 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 krn adanya pengakhiran sub proses • Proses terminasi normal (user end close/task program) • Proses terminasi tidak normal ( user menutup paksa/abort/cancel proses atau aplikasi)
  • 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 : – 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
  • 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; }
  • 40. Algoritma Producer-Consumer (Pascal) • Producer : repeat … produce an item nextp … while in+1 mod n = out do no-op; buffer[in] := nextp; in := in+1 mod n; until false;  Consumer : repeat while in = out do no-op; nextc := buffer[out]; out := out+1 mod n; … consume the item in nextc … until false;  Shared data var n; type item = …; var buffer : array [0..n-1] of item; in, out : 0..n-1; n := 0; out := 0;
  • 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) … until false;  Consumer : repeat … receive(produser, nextc) … Consume(nextc) … until false;
  • 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) A P Q
  • 51. 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
  • 52. 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
  • 53. 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 A P1 P2 P3
  • 54. 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.
  • 55. 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
  • 56. Komunikasi Client-Server • Sockets • Remote Procedure Calls • Remote Method Invocation (Java)
  • 57. 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.
  • 58. Komunikasi antar Socket • Contoh standard port : – TELNET menggunakan port 23 – FTP menggunakan port 21 – HTTP server menggunakan port 80
  • 62. Sockets in Unix Server membuat socket menggunakan bind(), sehingga dapat dimanfaatkan oleh clients
  • 63. 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 socket to connect to client To send data simply using println
  • 64. Client for time of day Public 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); } ……. …..
  • 65. 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
  • 67. 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
  • 68. 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,
  • 69. Contoh RPC • Server hosts subroutines which can be called from a client machine
  • 70. 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.
  • 71. Kekurangan RPC • Tidak fleksibel terhadap perubahan : – Static relationship between client & server at run-time. • Berdasarkan prosedural /structured programming yang sudah ketinggalan jaman dibandingkan OOP.
  • 72. 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
  • 73. Marshalling Parameters - Local objects passed by copy (object serialization) - Remote objects passed by reference
  • 74. tugas • Install Software untuk virtualisasi sistem operasi dg Virtual box (vbox.org) atau Vmware • Install 1 OS Linux client atau linux server di software tersebut • Jalankan banyak aplikasi di linux (guest OS) tersebut, tampilkan proses yang sedang running dg printah ps, tampilkan tree dari semua proses yang ada • Amati pid masing2 proses yg running • End task beberapa proses dg kill • Tampilkan lagi dg printah ps dan tampilkan tree dari proses