1. Sistem Operasi - Proses -
S ISTEM O PERASI
- P ROSES -
Arya Adhyaksa Waskita
Fakultas Ilmu Komputer
Universitas Pembangunan Nasional Veteran Jakarta
17 Maret 2012
2. Sistem Operasi - Proses -
AGENDA
1 R EVIEW
2 OVERVIEW & O BYEKTIF
3 KONSEP
4 P ENJADWALAN
5 O PERASI PADA PROSES
6 K ERJASAMA P ROSES
7 I NTERPROCESS C OMMUNICATION
8 P ENERAPAN IPC
3. Sistem Operasi - Proses -
Review
O UTLINE
1 R EVIEW
2 OVERVIEW & O BYEKTIF
3 KONSEP
4 P ENJADWALAN
5 O PERASI PADA PROSES
6 K ERJASAMA P ROSES
7 I NTERPROCESS C OMMUNICATION
8 P ENERAPAN IPC
4. Sistem Operasi - Proses -
Review
P ERTEMUAN KE -2
Layanan sistem operasi, Struktur sistem operasi:
meliputi pengelolaan: Layer
process Mikrokernel
file Modular
device
Mesin virtual:
information
communication memberi layanan
perangkat keras untuk
Diberikan oleh: aplikasi dan sistem operasi
System Call VMWare, VirtualBox,
System Program JVM,...
5. Sistem Operasi - Proses -
Overview & Obyektif
O UTLINE
1 R EVIEW
2 OVERVIEW & O BYEKTIF
3 KONSEP
4 P ENJADWALAN
5 O PERASI PADA PROSES
6 K ERJASAMA P ROSES
7 I NTERPROCESS C OMMUNICATION
8 P ENERAPAN IPC
6. Sistem Operasi - Proses -
Overview & Obyektif
P ROSES
Mempelajari konsep proses: program yang sedang dieksekusi
Mempelajari berbagai fitur proses:
penjadwalan
creation & termination
komunikasi
Komunikasi client-server
Socket
RPC (Remote Procedure Call)
RMI (Remote Method Invocation)
7. Sistem Operasi - Proses -
Konsep
O UTLINE
1 R EVIEW
2 OVERVIEW & O BYEKTIF
3 KONSEP
4 P ENJADWALAN
5 O PERASI PADA PROSES
6 K ERJASAMA P ROSES
7 I NTERPROCESS C OMMUNICATION
8 P ENERAPAN IPC
8. Sistem Operasi - Proses -
Konsep
KONSEP
Salah satu layanan sistem operasi: tempat
eksekusi program
Proses: program yang sedang dieksekusi, bisa
berupa
sistem batch
time shared
Meliputi:
program counter : alamat instruksi yang akan
dieksekusi selanjutnya
stack: data sementara (parameter, variabel lokal,
returned address)
data: variabel global
heap: lokasi memory yang dialokasi secara
dinamis saat eksekusi program
9. Sistem Operasi - Proses -
Konsep
KONDISI PROSES
new: sedang dibuat
running: instruksi sedang dieksekusi
waiting: menunggu sebuah event terjadi
ready: siap dieksekusi oleh CPU
terminated: selesai eksekusi
10. Sistem Operasi - Proses -
Konsep
D IAGRAM KONDISI PROSES
G AMBAR : Diagram process state
11. Sistem Operasi - Proses -
Konsep
PCB (Process Control Block)
Informasi terkait proses, meliputi:
kondisi proses (process state)
program counter
register CPU
info terkait penjadwalan CPU
info pengelolaan memory
akuntansi
info status I/O
12. Sistem Operasi - Proses -
Konsep
P ERPINDAHAN ANTAR PROSES
G AMBAR : Diagram perpindahan antar proses
13. Sistem Operasi - Proses -
Penjadwalan
O UTLINE
1 R EVIEW
2 OVERVIEW & O BYEKTIF
3 KONSEP
4 P ENJADWALAN
5 O PERASI PADA PROSES
6 K ERJASAMA P ROSES
7 I NTERPROCESS C OMMUNICATION
8 P ENERAPAN IPC
14. Sistem Operasi - Proses -
Penjadwalan
KONSEP
Multiprogramming: selalu ada proses (program yang sedang dieksekusi)
Multitasking: time shared, varian multiprogramming
Penjadwalan meliputi:
antrian
penjadwal
context switch
15. Sistem Operasi - Proses -
Penjadwalan
A NTRIAN
D EFINITION
Proses yang masuk ke sistem akan
Job queue diantri di sini
Ready queue Berisi semua proses dalam sistem
Device queue Setiap antrian disimpan sebagai linked
list, memiliki pointer ke PCB pertama dan
terakhir pada antrian
16. Sistem Operasi - Proses -
Penjadwalan
A NTRIAN
D EFINITION
Job queue
Berisi proses yang ada pada memori
Ready queue utama
Device queue Ready & waiting state
17. Sistem Operasi - Proses -
Penjadwalan
A NTRIAN
D EFINITION
Job queue
Berisi proses yang sedang menunggu
Ready queue aktifitas I/O
Device queue Setiap device memiliki antriannya sendiri
18. Sistem Operasi - Proses -
Penjadwalan
I LUSTRASI
G AMBAR : Ready queue & beberapa device queue
19. Sistem Operasi - Proses -
Penjadwalan
D IAGRAM ANTRIAN
G AMBAR : Diagram antrian
20. Sistem Operasi - Proses -
Penjadwalan
P ENJADWAL
Proses bermigrasi antar antrian, perlu penjadwal yang mengatur proses
migrasi
Batas proses:
CPU bound: komputasi lebih dominan
I/O bound: proses I/O lebih dominan
kinerja terbaik → seimbang
21. Sistem Operasi - Proses -
Penjadwalan
P ENJADWAL
Long term scheduler / job scheduler:
memilih proses untuk masuk ke ready queue
mengendalikan derajat multiprogramming, jika seimbang process creation
≈ process termination
bekerja pada job queue
Short term scheduler / CPU scheduler:
memilih proses untuk dieksekusi di CPU
bekerja lebih sering daripada long term scheduler
bekerja pada ready & device queue
22. Sistem Operasi - Proses -
Penjadwalan
P ENJADWAL
Time-shared (multitasking): medium term scheduler (proses swapping)
G AMBAR : Medium term scheduler
23. Sistem Operasi - Proses -
Penjadwalan
Context switch
Ketika CPU berpindah dari eksekusi satu proses ke proses lain, state
proses harus disimpan → context switch
Konteks proses direpresentasikan oleh PCB
Overhead→ tidak ada pekerjaan saat context switch, tergantung pada
mesin
24. Sistem Operasi - Proses -
Operasi pada proses
O UTLINE
1 R EVIEW
2 OVERVIEW & O BYEKTIF
3 KONSEP
4 P ENJADWALAN
5 O PERASI PADA PROSES
6 K ERJASAMA P ROSES
7 I NTERPROCESS C OMMUNICATION
8 P ENERAPAN IPC
25. Sistem Operasi - Proses -
Operasi pada proses
P EMBUATAN (Creation)
Parent of process create child, and so on→membuat pohon proses
Setiap proses memilki identitas: pid (process identifier)
Berbagi sumber daya antara parent-child
berbagi semuanya
berbagi sebagian
tidak berbagi
Eksekusi parent-child:
bersamaan
parent menunggu child
26. Sistem Operasi - Proses -
Operasi pada proses
I LUSTRASI
G AMBAR : Pohon proses
27. Sistem Operasi - Proses -
Operasi pada proses
P EMBUATAN (Creation)
Ruang memory (address space):
ruang di mana proses dapat menyimpan dan membaca data
saling bebas antar proses
antar parent-child:
berbagi
duplikasi
Contoh UNIX:
fork SC: membuat proses baru
exec SC: menghapus memory yang sebelumnya digunakan kemudian
mengalokasi memory untuk proses yang baru
28. Sistem Operasi - Proses -
Operasi pada proses
I LUSTRASI
G AMBAR : Pembuatan proses
29. Sistem Operasi - Proses -
Operasi pada proses
I LUSTRASI : FORK
#include <sys/types.h>
#include <stdio.h>
#include <unistd.h>
int main(int argc, char *argv[]) {
int pid; /*fork another process*/ pid=fork();
if(pid<0) { /*error ocuured*/
fprintf(stderr, "Fork Failedn");
exit(-1);
}
else if(pid==0) { /*child process*/
execlp("/bin/ls","ls",NULL);
}
else { /*parent process*/
/*parent will wait for the child to complete*/
printf("PID=%dn",pid);
wait(NULL);
printf("Child Completen");
exit(0);
}
}
30. Sistem Operasi - Proses -
Operasi pada proses
I LUSTRASI : WIN 32
#include <stdio.h>
#include <windows.h>
int main(void) {
STARTUPINFO si;
PROCESS_INFORMATION pi;
//allocate memory
ZeroMemory(&si,sizeof(si));
si.cb=sizeof(si);
ZeroMemory(&pi,sizeof(pi));
//create child process
if(!CreateProcess(NULL, //use command line
"C:WINDOWSsystem32mspaint.exe", //command line
NULL, //don’t inherit process handle
NULL, //don’t inherit process handle
FALSE, //disable handle inheritance
0, //no creation flag
NULL, //use parent’s environment block
NULL, //use parent’s existing directory &si, &pi)) {
fprintf(stderr, "Create Process Failed"); return -1;
}
//parent will wait for the child to complete
WaitForSingleObject(pi.hProcess,INFINITE); printf("Child Complete");
}
31. Sistem Operasi - Proses -
Operasi pada proses
I LUSTRASI : JAVA
import java.io.*;
public class forking {
public static void main(String args[]) throws IOException {
if(args.length!=1) {
System.err.println("Usage: java forking <command>n");
System.exit(0);
}
ProcessBuilder pb=new ProcessBuilder(args[0]); Process proc=pb.start();
InputStream is=proc.getInputStream();
InputStreamReader isr=new InputStreamReader(is);
BufferedReader br=new BufferedReader(isr);
String line;
while((line=br.readLine())!=null) {
System.out.println(line);
}
br.close();
}
}
32. Sistem Operasi - Proses -
Operasi pada proses
T ERMINASI
Instruksi terakhir dieksekusi kemudian meminta OS untuk menghapus
proses (exit)
data dari child dikirim ke parent (wait)
resources: di-dealokasi
Parent dapat menghentikan proses child (abort)
resource yang diperlukan melampaui yang tersedia
child tidak lagi diperlukan
parent terminates (normal atau tidak), sedang OS tidak mengijinkan child
dieksekusi tanpa proses (cascading termination)
33. Sistem Operasi - Proses -
Kerjasama Proses
O UTLINE
1 R EVIEW
2 OVERVIEW & O BYEKTIF
3 KONSEP
4 P ENJADWALAN
5 O PERASI PADA PROSES
6 K ERJASAMA P ROSES
7 I NTERPROCESS C OMMUNICATION
8 P ENERAPAN IPC
34. Sistem Operasi - Proses -
Kerjasama Proses
L ATAR BELAKANG
penggunaan bersama (sharing) informasi
peningkatan kecepatan
modularitas
kenyamanan
35. Sistem Operasi - Proses -
Kerjasama Proses
I LUSTRASI : cooperating process
Producer-consumer:
program cetak menghasilkan karakter yang dikonsumsi printer
kompilator menghasilkan assembly code yang dikonsumsi assembler
assembler menghasilkan modul obyek yang dikonsumsi loader
Agar producer-consumer berjalan bersama: diperlukan buffer yang
sesuai
unbounded: producer dapat membuat berapapun proses
bounded: producer harus menunggu jika buffer penuh
36. Sistem Operasi - Proses -
Interprocess Communication
O UTLINE
1 R EVIEW
2 OVERVIEW & O BYEKTIF
3 KONSEP
4 P ENJADWALAN
5 O PERASI PADA PROSES
6 K ERJASAMA P ROSES
7 I NTERPROCESS C OMMUNICATION
8 P ENERAPAN IPC
37. Sistem Operasi - Proses -
Interprocess Communication
P ENDAHULUAN
Proses:
saling bebas (independent)
saling kerjasama (cooperating) → membutuhkan IPC
Model:
shared memory
message passing
38. Sistem Operasi - Proses -
Interprocess Communication
I LUSTRASI
G AMBAR : Model IPC
39. Sistem Operasi - Proses -
Interprocess Communication
I LUSTRASI
G AMBAR : Bounded buffer
40. Sistem Operasi - Proses -
Interprocess Communication
I LUSTRASI : Bounded-buffer shared memory
Shared data
#define BUFFER_SIZE 10
typedef struct {
...
} item;
item buffer[BUFFER_SIZE];
int in = 0;
int out = 0;
Hanya dapat mengunakan sejumlah BUFFER_SIZE elemen
41. Sistem Operasi - Proses -
Interprocess Communication
P ERTUKARAN PESAN
Mekanisme pada proses mengkomunikasi dan men-sinkronisasi aksinya
Komunikasi tanpa shared variables
Fasilitas:
send(pesan)→ukuran pesan bisa konstan atau variabel
received(pesan)
Jika proses P dan Q akan berkomunikasi:
jalur komunikasi harus dibangun
mempertukarkan pesan melalui send dan received
42. Sistem Operasi - Proses -
Interprocess Communication
KOMUNIKASI PADA IPC: L ANGSUNG
Nama proses harus eksplisit:
send (P, pesan) – mengirim pesan ke proses P
receive(Q, pesan) – menerima pesan dari proses Q
jalur komunikasi:
dibangun secara otomatis
setiap jalur menghubungkan tepat satu pasang proses
setiap proses terhubung ke tepat satu jalur
unidirectional atau bidirectional
43. Sistem Operasi - Proses -
Interprocess Communication
KOMUNIKASI PADA IPC: T IDAK L ANGSUNG
Pesan dipertukarkan melalui mailbox
mailbox memiliki identitas
hanya dapat berkomunikasi melalui mailbox yang digunakan bersama
jalur komunikasi:
dibangun hanya jika ada mailbox yang digunakan bersama
setiap jalur menghubungkan banyak proses
setiap proses terhubung ke banyak jalur
unidirectional atau bidirectional
Operasi:
send (A, pesan) – mengirim pesan ke mailbox A
receive(A, pesan) – menerima pesan dari mailbox A
44. Sistem Operasi - Proses -
Interprocess Communication
M ASALAH PADA KOMUNIKASI TIDAK LANGSUNG
Pesan dari mailbox ke siapa?
Solusi:
mengadopsi jalur komunikasi langsung: setiap pasang proses memiliki
satu mailbox
proses menerima pesan bergantian
memberi notifikasi, siapa penerimanya
45. Sistem Operasi - Proses -
Interprocess Communication
S INKRONISASI
Blocking / non-blocking
Blocking:
pengirim: tidak boleh mengirim pesan sebelum pesan terdahulu diterima
penerima: tidak boleh mengakses buffer sebelum terisi (ada pesan)
Non-blocking (asinkron)
pengirim: mengirim secara kontinu
penerima: menerima pesan valid atau null (mengakses buffer kosong)
46. Sistem Operasi - Proses -
Interprocess Communication
B UFFER
Opsi kapasitas:
tidak punya kapasitas (kosong): pengirim harus menunggu penerima siap
terbatas: pengirim harus menuggu jika buffer penuh
tak terbatas: pengirim dapat selalu mengiri pesan
47. Sistem Operasi - Proses -
Penerapan IPC
O UTLINE
1 R EVIEW
2 OVERVIEW & O BYEKTIF
3 KONSEP
4 P ENJADWALAN
5 O PERASI PADA PROSES
6 K ERJASAMA P ROSES
7 I NTERPROCESS C OMMUNICATION
8 P ENERAPAN IPC
48. Sistem Operasi - Proses -
Penerapan IPC
P ENDAHULUAN
Socket
Remote Procedure Call
Remote Method Invocation
49. Sistem Operasi - Proses -
Penerapan IPC
S OCKET
Endpoint communication
Gabungan IP address dan port
Socket 161.25.19.8:1625 adalah port 1625 pada host 161.25.19.8
G AMBAR : Komunikasi socket
50. Sistem Operasi - Proses -
Penerapan IPC
I LUSTRASI : S OCKET SERVER
import java.net.*;
import java.io.*;
public class DateServer {
public static void main(String args[]) throws IOException {
try {
ServerSocket soc=new ServerSocket(6013);
while(true) {
Socket client=soc.accept();
PrintWriter pout=new PrintWriter(client.getOutputStream(),true);
pout.println(new java.util.Date().toString());
client.close();
}
}
catch(IOException ioe) {
System.err.println();
}
}
}
51. Sistem Operasi - Proses -
Penerapan IPC
I LUSTRASI : S OCKET CLIENT
import java.net.*;
import java.io.*;
public class DateClient {
public static void main(String args[]) throws IOException {
try {
Socket soc=new Socket("192.168.11.97",6013);
InputStream in=soc.getInputStream();
BufferedReader bin=new BufferedReader(new InputStreamReader(in));
String line; while((line=bin.readLine())!=null) {
System.out.println(line);
}
soc.close();
}
catch(IOException ioe) {
System.err.println(ioe);
}
}
}
52. Sistem Operasi - Proses -
Penerapan IPC
RPC
Pemanggilan prosedur antar proses melalui jaringan
Komunikasi dibangun melalui stub:
client side
server side
53. Sistem Operasi - Proses -
Penerapan IPC
I LUSTRASI
G AMBAR : Komunikasi RPC
54. Sistem Operasi - Proses -
Penerapan IPC
RMI
Mekanisme yang sama dengan RPC di JAVA
Memungkinkan program Java di sebuah mesin memanggil method pada
remote object
G AMBAR : Komunikasi RMI
55. Sistem Operasi - Proses -
Penerapan IPC
I LUSTRASI : PASSING PARAMETER
G AMBAR : Passing parameter
56. Sistem Operasi - Proses -
Penerapan IPC
I LUSTRASI : R EMOTE DATE
import java.rmi.*;
import java.util.Date;
public interface RemoteDate extends Remote {
public abstract Date getDate() throws RemoteException;
}
57. Sistem Operasi - Proses -
Penerapan IPC
I LUSTRASI : R EMOTE DATE I MPL
import java.util.Date; import java.rmi.*;
import java.rmi.server.UnicastRemoteObject;
public class RemoteDateImpl extends UnicastRemoteObject implements RemoteDate {
public RemoteDateImpl() throws RemoteException {
}
public Date getDate() throws RemoteException {
return new Date();
}
public static void main(String args[]) {
try {
RemoteDate dateServer=new RemoteDateImpl(); Naming.rebind("DateServer",dateServer);
}
catch(Exception e) {
System.err.println(e);
}
}
}
58. Sistem Operasi - Proses -
Penerapan IPC
I LUSTRASI : RMIC LIENT
import java.net.*;
import java.rmi.*;
public class RMIClient {
public static void main(String args[]) {
try {
String host="rmi://127.0.0.1/DateServer";
RemoteDate dateServer=(RemoteDate)Naming.lookup(host); Sys-
tem.out.println(dateServer.getDate());
}
catch(Exception e) {
System.err.println(e);
}
}
}