sistem operasi - · pdf filememori hanya sebuah program yang sedang dijalankan ... •...
TRANSCRIPT
10/17/2012
1
PROSES-PROSES
SISTEM OPERASI
http://blogriki.wordpress.com
Pembahasan
• Konsep Proses• Penjadualan Proses• Operasi-operasi pada Proses• Cooperating Processes• Interprocess Communication• Komunikasi pada Sistem Client-Server
10/17/2012
2
Konsep Proses
• Proses : suatu program yang sedang dieksekusi danmemiliki status jalannya eksekusi yaitu minimalinformasi-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
Perkembangan Konsep Proses
• Konsep proses berkembang sejalan denganmodus 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 dimemori bisa terdapat beberapa program yang sedangdijalankan
10/17/2012
3
Konsep Proses Monoprogramming
• Program oleh proses monitor (atau operator) di-load ke memori, dieksekusi (kontrol diberikanpada proses), dan selesai (sukses atau abort),kemudian kontrol dikembalikan ke proses monitor(atau operator)
• Status proses direkam dan di-print hanyadiperlukan untuk keperluan debugging
Konsep Proses Modern
• Karena adanya sejumlah program yang di-loaddimemori dalam status sedang dijalankan,maka setiap saat jumlah aktual proses yangdieksekusi maksimum sama dengan jumlahCPU
• Untuk pembahasan konsep proses selanjutnyaakan berdasarkan paradigma ini
10/17/2012
4
Status Proses
• Selama eksekusinya proses berada dalamsalah 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
10/17/2012
5
Process Control Block (PCB)
• Agar suatu proses yang running, laluwaiting/ready, dan kemudian running kembalidapat meneruskan proses tanpa kehilangankonteks maka diperlukan struktur data untukmenyimpan informasi dan status proses,disebut Process Control Block (PCB)
• Satu blok digunakan untuk satu proses danisinya 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
10/17/2012
6
Process Control Block (PCB)
Proses-proses dari Memori Utama keRegister
10/17/2012
7
CPU Switch dari Proses ke Proses
Scheduling Proses
• Dalam multiprogramming sejumlah proses yangrunning secara concurrent menggunakanresources : CPU dan devices
• Jika hanya ada satu prosesor (uniprosesor) makahanya satu proses setiap saat yang benar-benarrunning dan yang lainnya menunggu (waiting)dalam queue atau melakukan aktifitas I/O
10/17/2012
8
Queue untuk Scheduling
• Job queue berisi seluruh proses di dalamsistem
• Ready queue berisi proses-proses yang beradadi memori dan siap (ready)/ menunggu (wait)untuk dieksekusi
• Device queue – proses-proses yang menunggugiliran penggunaan device tertentu
• Proses berpindah antara bermacam-macamqueue
Ready Queue dan I/O Device Queues
10/17/2012
9
Representasi Process Scheduling
= resource yang melayani= resource yang melayaniqueuequeue
= queue (ready queue & device queue)= queue (ready queue & device queue)
Scheduler• Long-term scheduler (job scheduler)
– Memilih proses yang mana yang harus dibawa ke dalamready 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 Outantara memori dan swap-device untuk mengubahkarakteristik dari proses dalam penggunaan memoriatau I/O device
10/17/2012
10
Status Proses - Scheduler
shortshort--termtermschedulerscheduler
longlong--termtermschedulerscheduler
Diagram Perpindahan Proses
Baru terproses sebagian &di swap-out sementara
Baru terproses sebagian &di swap-out sementara
Ready queueReady queue
I/O waiting queueI/O waiting queueI/OI/O
CPUCPU
shortshort--termtermschedulerscheduler
longlong--termtermschedulerscheduler
medium termmedium termschedulerscheduler
enendd
Swap outSwap outSwap inSwap in
newnew
10/17/2012
11
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 banyakdaripada untuk komputasi; banyak terdapat CPUburst yang pendek
– CPU-bound process : proses-proses yang melakukanlebih banyak komputasi; beberapa CPU burst yangpanjang
10/17/2012
12
Context Switch
• Saat CPU dipindahkan dari suatu proses keproses yang lain sistem harus menyimpanstatus dari proses lama dan me-load statusproses yang baru
• Tugas ini dilakukan oleh context switch• Waktu untuk context-switch merupakan
overhead (waktu sistem “terbuang” saatswitching)
• Jumlah waktu ini bergantung pada dukunganHardware
Operasi pada Proses-proses
• Dalam multiprogramming akan ada prosesyang baru mulai, dan ada proses yang selesai,disamping proses-proses yang sedang running
• Untuk dapat dimanage maka diperlukanmekanisme tertentu untuk menanganiaktifitas create dan terminate proses
10/17/2012
13
Proses Creation
• Mekanisme “ayah-anak” atau “parent-child” :proses “parent” meng-create proses “child”yang juga dapat meng-create proses-proseslainnya membentuk pohon (tree) dari proses-proses
• Pada fase-fase awal : code dari user programdi-load ke memori, control dialihkan keprogram, 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
10/17/2012
14
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 prosesdengan program yang baru
Proses Tree pada UNIX System
10/17/2012
15
Process Termination
• suatu proses mengalami terminasi akibatinisiatif child atau parent
Terminasi karena Child
• Proses mengeksekusi statement terakhir yangjuga meminta OS untuk mengahapusnya (misalnya dengan exit() )– Data output dihasilkan child kepada parent (
misalnya sebagai return dari fork() )– Resource-resource proses didealokasi oleh OS
10/17/2012
16
Terminasi karena Parent
• Parent mengakhiri eksekusi proses-proseschild ( 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) yangsama untuk beberapa proses
– Peningkatan kemampuan komputasi (Computation Speedup) :Suatu task tertentu bisa dipecah menjadi beberapa cooperatingprocesses sehingga bisa dikerjakan secara paralel sehinggamenjadi lebih cepat selesai
– Modularitas : Pembuatan suatu sistem yang moduler denganmemecahkan fungsi-fungsi dari sistem tersebut menjadibeberapa proses atau thread
– Convenience : User bisa dengan mudah mengerjakan sesuatuyang berbeda dalam waktu yang sama
10/17/2012
17
Producer-Consumer Problem
• “Producer” merupakan proses yang menghasilkaninformasi 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 danProducer harus menunggu jika buffer penuh.
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-1elemen
10/17/2012
18
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;
}
10/17/2012
19
Ilustrasi Producer-Consumer Problem
0
11
011
producer
consumer
0
11
Ring-buffer12 slots
out
in
inout
in out
FullHalf-fullEmpty
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 :Consumer :repeatrepeat
whilewhile inin == outout dodo nono--opop;;nextcnextc :=:= bufferbuffer[[outout];];outout :=:= outout+1 mod+1 mod nn;;……consume the item inconsume the item in nextcnextc……
untiluntil falsefalse;;
Shared dataShared datavarvar n;n; typetype item = …;item = …; varvar buffer :buffer : arrayarray [0..n[0..n--1]1] ofof item;item;in, out : 0..nin, out : 0..n--1; n := 0; out := 0;1; n := 0; out := 0;
10/17/2012
20
Interprocess Communication (IPC)• Menyediakan mekanisme yang
memungkinkan proses-proses berkomunikasidan mensinkronisasi aksi-aksinya
• Message System – komunikasi tanpamemerlukan penggunaan shared variabelmilik 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
10/17/2012
21
Communication Link
• Bila P dan Q hendak berkomunikasi– mereka perlu menetapkan suatu communication link di
antara mereka lalu melakukan tukar-menukar messagemelalui send/receive
• IPC dalam implementasinya memerlukancommunication 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
10/17/2012
22
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 harusmenyebutkan pasangannyasecara eksplisit– send(Q, message)
• Q adalah receiver– receive(P, message)
• P adalah senderPP QQ
10/17/2012
23
Sifat-sifat Communication Link DirectComm.
• 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 :Consumer :repeatrepeat
……receive(produser, nextc)receive(produser, nextc)……Consume(nextc)Consume(nextc)……
untiluntil falsefalse;;
10/17/2012
24
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 diterimamelalui 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
APP QQ
10/17/2012
25
Sifat-sifat Communication Link IndirectComm.
• Link ditetapkan saat dua proses men-sharesuatu mailbox
• Link dapat diasosiasikan dengan sejumlahproses
• Setiap pasang proses bisa men-sharebeberapa link
• Link bisa satu arah atau dua arah
Operasi-operasi Indirect Comm.
• Proses memulai komunikasi dengan men-create mailbox
• Komunikasi berlangsung dengan pemanggilanperintah send & receive message melaluimailbox tersebut
• Saat proses hendak exit maka proses men-destroy mailbox
10/17/2012
26
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
AP1P1
P2P2
P3P3
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.
10/17/2012
27
Buffering untuk Link
• 3 kemungkinan cara implementasi– Zero capacity – tidak ada buffer
• Sender harus menunggu sampai muncul receiver dansebaliknya (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)
10/17/2012
28
Socket• Socket didefinisikan sebagai suatu endpoint for
communication.• Sebuah programming interface ke OS yang
memungkinkan proses untuk saling berkomunikasi keproses lainya
• Eksekusi TCP/UDP berlangsung di level kernel, socketbertindak 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
10/17/2012
29
Ilustrasi Socket
Komunikasi Socket
10/17/2012
30
Detail Komunikasi Socket
Sockets in UnixServer membuat socketmenggunakan bind(), sehinggadapat dimanfaatkan oleh clients
10/17/2012
31
Server for time of day (in Java)Public class Server {public static void main (String[], args) throws IOException {Socket client = null; // connection-oriented socketPrintWriter pout = null;ServerSocket sock = null;
try {sock = new ServerSocket (5155);// now listen for connectionswhile (true) {
client = sock.accept ();
// we have a connectionpout = new PrintWriter (client.getOutputStream(), true);
// write the Date to the socketpout.println( new Java.util.Date().toString());
pout.close();client.close();
…..
New socketto connectto client
To send datasimplyusing println
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 socketsock = 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);
}…….…..
10/17/2012
32
Remote Procedure Calls (RPC) (1)
• Remote Procedure Call (RPC) membuatabstraksi pemanggilan prosedur antara prosesdalam sistem jaringan (network)
• Stubs – client-side proxy untuk procedureaktual pada server
• Client-side stub mengalokasikan server danmengirimkan marshalls parameter
• Server-side stub menerima message,membuka parameter marshall, danmenjalankan procedure pada server
Mekanisme RPC
10/17/2012
33
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 untukmendapatkan 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 kedalam format transimisi. Langkah ini dinamakan marshalling
• Proxy bertanggung jawab untuk marshalling data, kemudianmengirimkan data dan meminta instans dari komponen (remote)
• Stub menerima request, unmarshall data, dan memanggil methodyang diminta. Kemudian proses mengembalikan nilai yangdiinginkan
• Contoh : COM (Component Object Model) - Microsoft, CORBA(Common Object Request Broker Architecture - OMG)
10/17/2012
34
Contoh RPC
• Server hosts subroutines which can be called from aclient machine
Kelebihan RPC• Relatif mudah digunakan :
– Pemanggilan remote procedure tidak jauh berbedadibandingkan pemanggilan local procedure. Sehinggapemrogram dpt berkonsentrasi pd software logic, tidakperlu 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 dalampengembangan mission-critical application yg memerlukanscalability, fault tolerance, & reliability.
10/17/2012
35
Kekurangan RPC• Tidak fleksibel terhadap perubahan :
– Static relationship between client & server at run-time.
• Berdasarkan prosedural /structuredprogramming yang sudah ketinggalan jamandibandingkan 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 padaremote object
10/17/2012
36
Marshalling Parameters
- Local objects passed by copy (object serialization)- Remote objects passed by reference