Bab 3: Proses-Proses Konsep Proses

19
1 Bab 3: Proses-Proses Konsep Proses Penjadwalan Proses Operasi pada Proses Proses yang bekerja sama (Cooperating Processes) Komunikasi antar Proses (Interprocess Communication) Komunikasi pada sistem Client-Server Silberschatz, Galvin and Gagne 2002 4.1 Operating System Concepts Konsep Proses Sistem operasi mengeksekusi berbagai program: Batch system – job Time-shared systems user program atau task 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 2002 4.2 Operating System Concepts stack data section

Transcript of Bab 3: Proses-Proses Konsep Proses

Page 1: Bab 3: Proses-Proses Konsep Proses

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

Page 2: Bab 3: Proses-Proses Konsep Proses

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

Page 3: Bab 3: Proses-Proses Konsep Proses

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

Page 4: Bab 3: Proses-Proses Konsep Proses

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

Page 5: Bab 3: Proses-Proses Konsep Proses

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

Page 6: Bab 3: Proses-Proses Konsep Proses

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

Page 7: Bab 3: Proses-Proses Konsep Proses

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

Page 8: Bab 3: Proses-Proses Konsep Proses

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

Page 9: Bab 3: Proses-Proses Konsep Proses

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

Page 10: Bab 3: Proses-Proses Konsep Proses

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

Page 11: Bab 3: Proses-Proses Konsep Proses

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

}

Page 12: Bab 3: Proses-Proses Konsep Proses

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)

Page 13: Bab 3: Proses-Proses Konsep Proses

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

Page 14: Bab 3: Proses-Proses Konsep Proses

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

Page 15: Bab 3: Proses-Proses Konsep Proses

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

Page 16: Bab 3: Proses-Proses Konsep Proses

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

Page 17: Bab 3: Proses-Proses Konsep Proses

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

Page 18: Bab 3: Proses-Proses Konsep Proses

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

Page 19: Bab 3: Proses-Proses Konsep Proses

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