Proses (Process)

advertisement
Manajemen
Proses
Pertemuan IV dan V
Proses (Process)







SO menangani proses
Konsep proses
Penjadwalan proses (Process scheduling)
Operasi-operasi pada proses
Proses-proses yang bekerja sama
Komunikasi antarproses
Komunikasi pada sistem client-server
Peran SO meng-handle proses
1.
2.
3.
4.
5.
SO harus melakukan penggiliran eksekusi proses
untuk memaksimalkan utilisasi Processor dgn waktu
respon yg cukup baik
SO hrs melakukan alokasi sumber daya bagi proses
dengan menggunakan aturan tertentu.
Menyediakan mekanisme interproses communication
(IPC)
Melayani inisiasi proses oleh user.
Mengatur jalannya banyak proses dari satu user
(multi-tasking) maupun banyak proses dari banyak
user (multi-user).
Konsep Proses
 SO mengeksekusi 2 (dua) macam program:
 Pada sistem batch: job
 Pada sistem time-shared: program (pilihan user) atau tasks.
 Proses dan job dianggap sama (sering).
 Proses: program atau subprogram yang sedang dieksekusi;
eksekusi berlangsung secara urut (sekuensial)
 Agar bisa dieksekusi, program di-load dari media penyimpan ke
memori utama (CPU dirancang hanya membaca instruksi dari
memori utama. Kenapa?).
 Alokasi memori bagi proses mengandung: program counter, stack,
dan bagian data.
 Perbedaan proses dengan program
Status Proses






New : suatu proses yg baru saja dibuat namun belum pernah
diizinkan masuk ke pool proses2 yang dapat dieksekusi oleh
sistem operasi.
Running : kode2 instruksi dalam proses sedang dieksekusi
Waiting : proses sedang menunggu beberapa event yg akan
terjadi. Misal menunggu input dari user, menunggu data
lengkap (sedang loading), dan lain-lain.
Ready : suatu proses siap untuk memperoleh giliran
eksekusi.
Terminated: proses sudah selesai dieksekusi. Proses telah
dibebaskan dari pool proses2 yg dapat dieksekusi oleh
sistem operasi.
Proses juga mengalami ‘suspend’.
Diagram Status Proses )*
new
Diterima
terminated
Interrupt
Keluar
running
ready
I/O atau event
selesai
shceduler dispacth
Menunggu
event
atau I/O
waiting
)* Dikutip dari Operating System Concepts (Silberschatz, 2002)
Process Control Block

Informasi dalam PCB suatu proses a.l.:

Process state (status proses)

Program counter (biasanya = register Instruction Pointer)

Isi register-register CPU

Informasi penjadwalan proses tersebut

Alokasi memori (informasi manajemen memori)

Informasi accounting

Status file-file yang sedang dibuka oleh proses tersebut

Informasi status I/O
Process Control Block
Penggiliran CPU (dari satu proses ke proses lain)
Diagram context-switching
Antrian pada Penjadwalan Proses




Antrian job – meliputi semua proses yang
ada dalam sistem.
Antrian ready – terdiri dari semua proses
yang ada di memori utama, ready (siap)
dan menunggu dieksekusi.
Antrian device (I/O) – proses-proses yang
menunggu terpenuhinya I/O request.
Proses berpindah-pindah di antara antrianantrian di atas.
Antrian Ready & beberapa antrian I/O Device
Gambaran Alur Penjadwalan Proses
Scheduler (penjadwal), ada dua jenis:


Scheduler jangka panjang atau long-term
scheduler (atau job scheduler) – fungsinya
memilih proses mana yang akan
dimasukkan dalam antrian ready.
Scheduler jangka pendek atau short-term
scheduler (atau CPU scheduler) –
fungsinya memilih proses mana yang akan
dieksekusi dan memberikan alokasi CPU.
Penambahan Medium Term Scheduling
Jenis scheduler (lanjutan):
 Scheduler jangka pendek sangat sering dipakai atau
dipanggil, sehingga harus cepat (hitungannya dalam
milisekon).
 Scheduler jangka panjang sangat jarang dipakai atau
dipanggil, dalam hitungan detik bahkan menit (lebih lambat).
 Scheduler jangka panjang mengendalikan derajat multipemrograman (degree of multiprogramming) sistem.
 Proses dapat dikategorikan sebagai:
 I/O-bound process – lebih banyak mengakses I/O
dibandingkan melakukan komputasi, memiliki banyak
CPU burst yang singkat.
 CPU-bound process – lebih banyak melakukan
komputasi; memiliki beberapa operasi CPU burst yang
sangat panjang.
Context Switch



Saat CPU pindah dari satu proses ke proses lain,
SO harus menyimpan status proses pertama
(berdasarkan informasi dalam PCB) dan
mengambil status dari proses kedua yang
sebelumnya sudah disimpan.
Waktu yang dipakai untuk melakukan contextswitch merupakan overhead, karena pada saat
context-switch berlangsung sistem tidak
melakukan pekerjaan yang berarti.
Terikat waktu pada dukungan perangkat keras.
Penggiliran CPU (dari satu proses ke proses lain)
Process Creation (Pembentukan Proses)
1.
Proses terbentuk secara normal, karena user
memerintahkan S.O. untuk menjalankan suatu
program.
Contoh: user mengeksekusi program Ms. Word,
Winamp, browser internet, dll.
2.
Proses terbentuk bukan atas perintah user.
Contoh:
 Kernel (core) sistem operasi
 Berbagai jenis service, misalnya: httpd, mysqld,
layanan jaringan, driver hardware, dll
 Terbentuk karena parent process menghasilkan
child process
Parent Process  Child Process
Suatu proses dapat membuat/menginisiasi
proses lain. Proses yang dibuat disebut “child
process”. Proses yang menghasilkan child
process disebut “parent process”.
Jika “child process” membuat proses lain hingga
menurun beberapa tingkat, maka akan
terbentuk pohon proses (process tree).
Child process :
1.
2.
3.


4.
independen terhadap parent process
dependen terhadap parent process
Child process yang independen mendapatkan
resources yang berbeda dari parent process
Pohon Proses pada UNIX
Process Creation (lanjutan)
Sharing sumber daya dan Eksekusi
 Sharing sumber daya




Parent dan children process berbagi semua resources.
Children menggunakan sebagian sumber daya milik
parent.
Parent dan child tidak berbagi pakai (sharing).
Eksekusi


Parent dan children process dieksekusi bersamaan.
Parent menunggu hingga children terminate.
Process Termination (Penghentian Proses)




Normal
Forced by (dipaksa) user
Forced by (dipaksa) system
Penyebab “forced by system ”, krn adanya error seperti:







Batas waktu telah dilampui (timed out)
Memory tidak tersedia
Pelanggaran batas
Error aritmatika
Kegagalan I/O
Overflow
dll.
Process Termination (lanjutan)

Proses mengeksekusi instruksi terakhir dan
meminta SO untuk memutuskannya (exit).



Mengirim data output dari child kepada parent (via wait).
Sumber daya yang diklaim proses tersebut akan
dibebaskan oleh SO.
Parent dapat mengakhiri eksekusi children
processes (abort).



Child telah melampaui sumber daya yang dialokasikan.
Tugas yang diberikan kepada child tidak diperlukan lagi.
Parent process telah selesai (exit).


SO tidak mengijinkan child melanjutkan eksekusi jika
induknya terminate.
Terminasi bertingkat (cascading termination).
Proses-proses yang Bekerja sama



Independent process tidak bisa
dipengaruhi/mempengaruhi eksekusi proses lain.
Cooperating process bisa
dipengaruhi/mempengaruhi eksekusi proses lain.
Keuntungan kerja sama proses




Information sharing
Mempercepat komputasi (computation speed-up)
Modularity
Kenyamanan (convenience)
Masalah Produsen-Konsumen

Paradigma proses yang bekerja sama, di
mana terdapat proses produsen yang
menghasilkan informasi dan hasilnya
dikonsumsi oleh proses konsumen.


unbounded-buffer tidak membatasi ukuran
buffer.
bounded-buffer mengasumsikan adanya batas
ukuran buffer tertentu.
Komunikasi Antarproses
(Interprocess Communication atau IPC)



IPC merupakan mekanisme bagi proses-proses untuk
berkomunikasi dan mensinkronkan pekerjaan-pekerjaan
mereka
Sistem pesan (message system) – proses
berkomunikasi dengan proses lain tanpa melakukan
resorting variabel-variabel yang di-share.
Fasilitas IPC menyediakan 2 operasi:



Jika P and Q akan berkomunikasi, keduanya perlu:



send (message) –message dapat berukuran tetap atau dibatasi
receive (message)
Membuat communication link antara keduanya
Bertukar message melalui operasi send/receive
Bentuk link komunikasi:


Fisik (e.g., shared memory, perangkat bus)
logika (e.g., logical properties)
Masalah-masalah dalam Penerapan IPC






Bagaimana cara membuat link?
Apakah 1 link bisa dipakai oleh lebih dari 2 proses?
Berapa link bisa dibentuk pada tiap satu pasang
proses yang berkomunikasi?
Berapa kapasitas link? Bagaimana menentukan
kapasitasnya?
Apakah ukuran suatu message yang bisa
diakomodasi suatu link bersifat tetap atau bervariasi?
Suatu link bersifat unidirectional or bi-directional?
Komunikasi Langsung
(Direct Communication)

Proses-proses harus secara jelas menyebut
nama proses yang dituju, misal:



send (P, message) – kirim message ke proses P
receive (Q, message) – terima message dari proses Q
Sifat/karakter link:




Link dibuat secara otomatis
Satu link hanya berhubungan dengan satu pasang proses
yang saling berkomunikasi.
Pada sepasang proses hanya ada satu link
Link bisa bersifat unidirectional, meskipun biasanya bidirectional.
Komunikasi Tak Langsung
(Indirect Communication)

Messages dikirim dan diterima melalui kotak
surat (mailbox) (istilah lain: port).



Tiap mailbox mempunyai kode yang unik.
Proses-proses hanya dapat berkomunikasi jika mereka
men-share sebuah mailbox.
Sifat/karakter link:




Link dibuat hanya jika proses-proses men-share mailbox
Satu link bisa diasosiasikan ke banyak proses.
Tiap pasang proses dapat men-share beberapa link.
Link bisa bersifat unidirectional atau bi-directional.
Indirect Communication

Operasi




Membuat mailbox baru
Mengirim dan menerima pesan lewat mailbox
Menghapus mailbox yang sudah tidak dipakai
Primitives are defined as:


send(A, message) – send a message to mailbox A
receive(A, message) – receive a message from
mailbox A
Komunikasi Tak Langsung
(Indirect Communication)

Mailbox sharing




P1, P2, and P3 share mailbox A.
P1, sends; P2 and P3 receive.
Who gets the message?
Solutions



Hanya 2 proses yang boleh menggunakan satu link yang
sama.
Dalam satu waktu, hanya satu proses yang boleh
melakukan penerimaan
Sistem bertindak sebagai penengah yang akan memilih
penerima. Pengirim akan diberitahu siapa penerimanya.
Sinkronisasi (Synchronization)




Pengiriman pesan bisa secara blocking
atau non-blocking
Blocking  synchronous
Non-blocking  asynchronous
Kirim (send) dan terima (receive)
primitives (simbol-simbol dasar) juga bisa
secara blocking atau non-blocking.
Buffering

Antrian pesan yang disisipkan (attached)
pada link; penerapannya bisa dengan cara:
1. Kapasitas nol (zero capacity) – 0 pesan
Sender must wait for receiver (rendezvous).
2. Kapasitas terbatas (bounded capacity) –
panjang pesan dibatasi sampai n pesan.
Pengirim harus menunggu jika link dalam
keadan penuh.
3. Kapasitas tak terbatas (unbounded capacity) –
panjang pesan tidak dibatasi
Sender never waits.
Komunikasi Client-Server
Metode-metode yang digunakan:
 Sockets
 Remote Procedure Calls (RPC)
 Remote Method Invocation (RMI) pada
aplikasi yang ditulis dengan Java.
Sockets (Soket)




Socket dapat diartikan sebagai bagian
ujung/akhir dalam komunikasi (endpoint for
communication).
Soket merupakan penyambungan alamat
IP dan port yang ada pada alamat tersebut.
Soket 161.25.19.8:1625 merujuk pada port
1625 pada host 161.25.19.8
Komunikasi dilakukan antara sepasang
soket.
Socket Communication
Remote Procedure Calls




Remote procedure call (RPC) “menyamarkan”
(abstracts) pemanggilan prosedur antara 2
proses dalam suatu jaringan komputer.
Stubs – proxy pada client yang berhubungan
dengan prosedur aktual pada server.
Stub pada client mencari server dan mengirim
parameter dengan teknik marshalls.
Stub pada server menerima pesan ini,
membuka parameter-parameter yang dikirim
dengan teknik marshall tersebut, dan
menjalankan prosedur tersebut pada server.
Execution
of RPC
Remote Method Invocation


Remote Method Invocation (RMI) is a Java mechanism
similar to RPCs.
RMI allows a Java program on one machine to invoke a
method on a remote object.
Marshalling Parameters
Download