1
Bab 3: Proses-Proses
Konsep Proses
Penjadwalan Prosesj
Operasi pada Proses
Proses yang bekerja sama (Cooperating Processes)
Komunikasi antar Proses (Interprocess Communication)
Komunikasi pada sistem Client-Server
Silberschatz, Galvin and Gagne 20024.1Operating System Concepts
Konsep Proses
Sistem operasi mengeksekusi berbagai program: Batch system – job
Time-shared systems – user program atau tasky p g
Beberapa buku menggunakan istilah job dan process secara bergantian.
Proses - sebuah program yang sedang dieksekusi,
Eksekusi proses dilakukan secara berurutan.
Sebuah proses terdiri dari: program counter
t k
Silberschatz, Galvin and Gagne 20024.2Operating System Concepts
stack
data section
2
State pada Proses
Ketika sebuah proses dieksekusi, akan mengalami perubahan statep new: Proses sedang dibuat
running: Instruksi sedang dieksekusi
waiting: Proses menunggu beberapa event terjadi
ready: Proses menunggu untuk dieksekusi
terminated: Proses selesai dieksekusi
Silberschatz, Galvin and Gagne 20024.3Operating System Concepts
Diagram State pada Process
Silberschatz, Galvin and Gagne 20024.4Operating System Concepts
3
Process Control Block (PCB)
Adalah informasi yang terdapat pada setiap proses
State pada proses
Program counter Program counter
CPU registers
Informasi penjadwalan CPU
Informasi manajemen memory
Informasi Accounting
Informasi status I/O
Silberschatz, Galvin and Gagne 20024.5Operating System Concepts
Process Control Block (PCB)
Silberschatz, Galvin and Gagne 20024.6Operating System Concepts
4
CPU Berpindah (Switch) dariProses ke Proses
Silberschatz, Galvin and Gagne 20024.7Operating System Concepts
Antrian pada Penjadwalan Proses
Job queue – kumpulan semua proses dalam sistem
Ready queue – kumpulan semua proses yang berada di memori siap dan menunggu dieksekusimemori, siap dan menunggu dieksekusi
Device queue – kumpulan semua proses yang menunggu perangkat I/O
Migrasi proses antar antrian yang berbeda
Silberschatz, Galvin and Gagne 20024.8Operating System Concepts
5
Ready Queue dan beberapa I/O DeviceQueue
Silberschatz, Galvin and Gagne 20024.9Operating System Concepts
Representasi PenjadwalanProses
Silberschatz, Galvin and Gagne 20024.10Operating System Concepts
6
Scheduler (Penjadwal)
Long-term scheduler (atau job scheduler) – memilih h dib k dproses mana yang seharusnya dibawa ke ready queue.
Short-term scheduler (atau CPU scheduler) – memilih proses mana yang seharusnya dieksekusi berikutnya di CPU.
Silberschatz, Galvin and Gagne 20024.11Operating System Concepts
Medium Term Scheduling
Silberschatz, Galvin and Gagne 20024.12Operating System Concepts
7
Scheduler (Penjadwal) lanj.
Short-term scheduler sering terjadi (dalam milliseconds) (cepat).
Long-term scheduler tidak sering terjadi (dalam seconds Long term scheduler tidak sering terjadi (dalam seconds, minutes) (lebih lambat).
Long-term scheduler mengontrol tingkat multiprogramming.
Proses dapat digambarkan sebagai salah satu dari tipe di bawah ini:: I/O-bound process – lebih banyak menghapuskan waktu
untuk menjalankan I/O daripada komputasi, membutuhkan
Silberschatz, Galvin and Gagne 20024.13Operating System Concepts
untuk menjalankan I/O daripada komputasi, membutuhkan waktu penggunaan CPU (CPU burst) yang pendek.
CPU-bound process – lebih banyak menghabiskan waktu untuk komputasi, membutuhkan waktu penggunaan CPU yang panjang.
Context Switch
Ketika CPU berpindah ke proses yang lain, sistem harus menyimpan state dari proses lama dan mengambil state untuk proses yang baru.p y g
Waktu Context-switch, sistem tidak melakukan apa-apa (overhead)
Waktu Context-switch tergantung pada hardware yang digunakan
Silberschatz, Galvin and Gagne 20024.14Operating System Concepts
8
Pembuatan Proses (Process Creation)
Proses parent membuat proses anak (child), proses anakmembuat proses anak lainnya membentuk tree
Penggunaan Resource bersama-sama (Resource Penggunaan Resource bersama sama (Resource sharing) Parent dan child menggunakan semua resource bersama-
sama
Child menggunakan sebagian dari resource parent
Parent dan child tidak menggunakan resource yang sama
Eksekusi Parent dan child mengeksekusi secara konkuren
Silberschatz, Galvin and Gagne 20024.15Operating System Concepts
Parent dan child mengeksekusi secara konkuren
Parent menunggu sampai child dihentikan
Pembuatan Proses (Process Creation) lanj.
Penggunaan ruang alamat Child dan parent menggunakan ruang alamat yang sama
Child mempunyai program untuk menempati alamat yangChild mempunyai program untuk menempati alamat yang berbeda
Contoh : UNIX System call fork membuat proses baru
System call exec digunakan setelah fork untuk menggantiruang memori dengan program baru
Silberschatz, Galvin and Gagne 20024.16Operating System Concepts
9
Pohon Proses pada UNIX
Silberschatz, Galvin and Gagne 20024.17Operating System Concepts
Menghentikan Proses (Process Termination)
Proses mengeksekusi pernyataan terakhir dan sistemoperasi menentukan penghentian proses (exit). Data output dari child ke parent (via wait).Data output dari child ke parent (via wait).
Resource dari proses di-dealokasi oleh sistem operasi
Parent bisa menghentikan eksekusi proses child (abort). Child telah mengalokasikan resouce melebihi ketentuan
Task dari child tidak diperlukan lagi
Parent berhenti
Sistem operasi tidak mengijinkan child melanjutkanproses jika parent dihentikan
Silberschatz, Galvin and Gagne 20024.18Operating System Concepts
proses jika parent dihentikan
Penghentian sesuai alur
10
Proses yang Bekerjasama(Cooperating Process)
Proses Independent tidak berakibat atau diakibatkan oleheksekusi proses lain
Proses cooperating (bekerja sama) dapat mengakibatkan Proses cooperating (bekerja sama) dapat mengakibatkanatau diakibatkan oleh eksekusi proses lain
Kelebihan proses yang bekerja sama Menggunakan informasi bersama-sama
Meningkatkan kecepatan komputasi
Modular
Kenyamanan
Silberschatz, Galvin and Gagne 20024.19Operating System Concepts
Permasalahan Producer-Consumer
Paradigma untuk proses yang bekerja samadigambarkan dengan Producer-Consumer, producermenghasilkan informasi yang dikonsumsi oleh consumerg y g unbounded-buffer menempati ukuran buffer yang tidak
terbatas.
bounded-buffer mengasumsikan terdapat ukuran buffer tetap.
Silberschatz, Galvin and Gagne 20024.20Operating System Concepts
11
Bounded-Buffer – Solusi Shared-Memory
Shared data
#define BUFFER_SIZE 10
Typedef struct {
. . .
} item;
item buffer[BUFFER_SIZE];
int in = 0;
int out = 0;
Solusi benar, tetapi hanya dapat menggunakan elemenBUFFER_SIZE-1
Silberschatz, Galvin and Gagne 20024.21Operating System Concepts
Bounded-Buffer – Proses Producer
item nextProduced;
while (1) {
while (((in + 1) % BUFFER_SIZE) == out)
; /* do nothing */
buffer[in] = nextProduced;
in = (in + 1) % BUFFER_SIZE;
}
Silberschatz, Galvin and Gagne 20024.22Operating System Concepts
}
12
Bounded-Buffer – Proses Consumer
item nextConsumed;
while (1) {while (in == out)
; /* do nothing */nextConsumed = buffer[out];out = (out + 1) % BUFFER_SIZE;
}
Silberschatz, Galvin and Gagne 20024.23Operating System Concepts
Interprocess Communication (IPC)
Mekanisme untuk proses yang berkomunikasi danmelakukan sinkronisasi aksinya
Sistem Pesan – proses-proses saling berkomunikasi Sistem Pesan proses proses saling berkomunikasitanpa variabel yang dibunakan bersama-sama.
Fasilitas IPC terdiri dari 2 operasi: send(pesan) – ukuran pesan tetap atau berubah-ubah
receive(pesan)
Jika P dan Q akan berkomunikasi, membutuhkan Terdapat saluran komunikasi antara keduanya
Menukar pesan menggunakan send/receive
Silberschatz, Galvin and Gagne 20024.24Operating System Concepts
Menukar pesan menggunakan send/receive
Implementasi saluran komunikasi fisik (misalnya, shared memory, hardware bus)
logika (misalnya, properti logika)
13
Pertanyaan untuk Implmentasi IPC
Bagaimana saluran tersedia?
Dapatkah satu saluran dihubungkan lebih dari 2 proses?
Berapa saluran yang terdapat antar setiap pasangan Berapa saluran yang terdapat antar setiap pasanganproses yang berkomunikasi?
Bagaimana kapasitas saluran?
Apakah ukuran pesan yang dapat di-akomodasi olehsaluran tetap atau berubah-ubah?
Apakah saluran unidirectional atau bi-directional?
Silberschatz, Galvin and Gagne 20024.25Operating System Concepts
Komunikasi Langsung (Direct Communication)
Proses harus menentukan secara eksplisity: send (P, pesan) – mengirim pesan ke proses P
receive(Q pesan) – menerima pesan dari proses Qreceive(Q, pesan) menerima pesan dari proses Q
Properti dari saluran komunikasi Saluran tersedia secara otomatis
Satu saluran dihubungkan tepat satu pasang proses yang berkomunikasi
Antar setiap pasang terdapat tepat satu saluran
Saluran bisa unidirectional, tetapi biasanya bi-directional.
Silberschatz, Galvin and Gagne 20024.26Operating System Concepts
14
Komunikasi tak Langsung (Indirect Communication)
Pesan diarahkan dan diterima dari mailbox (yang jugadisebut sebagai port). Setiap mailbox mempunyai id yang unik.
Proses-proses dapat berkomunikasi hanya jikaProses proses dapat berkomunikasi hanya jikamenggunakan mailbox bersama-sama.
Properti dari saluran komunikasi Saluran tersedia hanya jika proses menggunakan bersama-
sama mailbox tertentu
Sebuah saluran dapat dihubungkan dengan beberapaproses
Setiap pasangan proses dapat menggunakan beberapa
Silberschatz, Galvin and Gagne 20024.27Operating System Concepts
saluran komunikasi
Saluran dapat unidirectional atau bi-directional.
Komunikasi tak Langsung (Indirect Communication) lanj.
Operasi Membuat mailbox baru
send dan receive pesan melalui mailboxsend dan receive pesan melalui mailbox
menghapus mailbox
Primitif yang digunakan:
send(A, pesan) – mengirim pesan ke mailbox A
receive(A, pesan) – menerima pesan dari mailbox A
Silberschatz, Galvin and Gagne 20024.28Operating System Concepts
15
Komunikasi tak Langsung (Indirect Communication) lanj.
Menggunakan Mailbox bersama-sama P1, P2, dan P3 menggunakan mailbox A.
P1 send; P2 dan P3 receiveP1, send; P2 dan P3 receive.
Siapa yang mendapatkan pesan?
Solusi Mengijinkan satu saluran dihubungkan dengan paling
banyak 2 proses
Mengijinkan hanya satu proses pada satu waktumengeksekusi operasi receive.
Mengijinkan sistem memilih penerima. Pengijin dinotifikasi
Silberschatz, Galvin and Gagne 20024.29Operating System Concepts
g j p g jsiapa yang menerima nya
Sinkronisasi
Pengiriman pesan bisa blocking atau non-blocking
Blocking disebut synchronous
Non blocking disebut asynchronous Non-blocking disebut asynchronous
Primitif send dan receive dapat blocking atau non-blocking.
Silberschatz, Galvin and Gagne 20024.30Operating System Concepts
16
Buffering
Antrian pesan yang diterima saluran; diimplementasikansatu dari 3 cara di yaitu.1. Zero capacity – 0 pesan1. Zero capacity 0 pesan
Sender harus menunggu receiver (rendezvous).
2. Bounded capacity – panjang pesan n jumlahnya tertentuSender harus menunggu jika saluran penuh.
3. Unbounded capacity – panjang tak terbatasSender tidak pernah menunggu.
Silberschatz, Galvin and Gagne 20024.31Operating System Concepts
Komunikasi Client-Server
Sockets
Remote Procedure Calls
Remote Method Invocation (Java) Remote Method Invocation (Java)
Silberschatz, Galvin and Gagne 20024.32Operating System Concepts
17
Socket
Socket didefinisikan sebagai endpoint for communication.
Gabungan IP address dan port
Socket 161 25 19 8:1625 berarti ke port 1625 pada host Socket 161.25.19.8:1625 berarti ke port 1625 pada host 161.25.19.8
Komunikasi terjadi antara pasangan socket.
Silberschatz, Galvin and Gagne 20024.33Operating System Concepts
Komunikasi Socket
Silberschatz, Galvin and Gagne 20024.34Operating System Concepts
18
Remote Procedure Calls
Remote procedure call (RPC) adalah prosedur call abstrak antar proses pada sistem jaringan
Stubs – proxy pada sisi client untuk prosedur aktual ke - Stubs proxy pada sisi client untuk prosedur aktual keserver.
Stub sisi client menempatkan server dan mengirim(marshall) parameter.
Stub sisi server menerima pesan, menterjemahkanparameter dan membentuk prosedur pada server
Silberschatz, Galvin and Gagne 20024.35Operating System Concepts
Eksekusi RPC
Silberschatz, Galvin and Gagne 20024.36Operating System Concepts
19
Remote Method Invocation
Remote Method Invocation (RMI) adalah mekanismepada Java yang sama dengan RPC.
RMI memungkinkan program Java pada satu mesin RMI memungkinkan program Java pada satu mesinmengirim method pada remote object.
Silberschatz, Galvin and Gagne 20024.37Operating System Concepts
Marshalling Parameter
Silberschatz, Galvin and Gagne 20024.38Operating System Concepts