4
2
Proses
z
Konsep Proses
z
Penjadualan Eksekusi Proses
zOperasi pada Proses
z
Proses yang saling Bekerjasama
(Cooperating Processes)
z
Komunikasi Antar Proses (Interprocess
Communication)
Konsep Proses
z
Sistem operasi menjalankan banyak dan beragam program :
z Batch system – jobs
z Time-shared systems – user programs atau tasks
z Istilah pada buku teks: job, task dan process (dapat diartikan
sama)
z
Proses adalah program yang dieksekusi ;
z Aktif (proses=>memori) vs pasif (program => file)
z Instruksi pada program (code) akan dieksekusi secara berurut
(sekwensial) sesuai dengan “line code” (stored program concept).
z
Proses lebih dari “program code yang aktif”:
z Melacak posisi instruksi (sequential execution): program counter z Menyimpan data sementara var., parameter, return value: stack z Menyimpan data (initial, global variable dll): data section
4
Status Proses
z
Saat-saat proses dijalankan (executed) maka status dari
proses akan berubah
z Status proses tidak selamanya aktif menggunakan CPU).
z Sering proses menunggu I/O complete => status wait, sebaiknya
CPU diberikan kepada proses yang lain.
z Mendukung multi-tasking – utilisasi CPU dan I/O
z
Status proses (antara lain):
z new: proses dibuat.
z running: instruksi dieksekusi.
z waiting: proses menunggu beberapa event yang akan terjadi z ready: proses menunggu jatah waktu dari prosessor
6
Informasi Proses
Dimanakah informasi proses disimpan?
z Data struktur dari OS dalam bentuk table :
z Satu entry table/linked list => struktur data untuk menampung informasi satu proses (array of structure).
z Setiap entry pada tabel proses menyimpan satu proses. Contoh: MINIX (src/kernel/proc.h) => struct proc { … };
z Informasi yang disimpan:
z Informasi internal CPU: isi register-register, program counter, status CPU dll (umumnya dalam bentuk stack frame).
z Identifikasi proses: nama proses, proses number/index, proses id. z Identifikasi proses: nama proses, proses number/index, proses id. z Accounting dan timer: user time, system time, alarm etc.
8
CPU Switch Dari Satu Proses ke
Proses Lainnya
Penjadualan Proses
zApakah tujuan dari multiprogramming?
z “Maximize” pemakaian CPU secara efisien (jadwal dan giliran
pemakaian CPU).
=> CPU digunakan oleh proses-proses terus menerus
z
Apakah tujuan dari “time-sharing”?
z Pemakaian CPU dapat di switch dari satu proses ke proses lain
(concurrent process execution)
=> sesering mungkin, user dapat berinteraksi dengan sistim
z
Bagaimana jika sistim prosesor tunggal?
z “Hanya ada satu proses yang dapat dijalankan”
z Proses lain menunggu sampai CPU dapat dijadwalkan (schedule) ke
10
Penjadualan Proses
z
Proses dapat berubah status dan berpindah dari satu antrian ke
antrian yang lain
z Proses dengan status “ready” berada di ReadyQueue
z
Menunggu giliran/dipilih oleh scheduler => menggunakan
CPU
z
Selama eksekusi (status “run”) events yang dapat terjadi:
z
I/O request => I/O wait berada pada DeviceQueue
z
Create “child” proses => Jalankan proses “child”, tunggu
sampai proses selesai (wait)
z
Time slice expired => Waktu pemakaian CPU habis, interrupt
12
Penjadual / Schedulers
z
Bagaimana schedulers memilih proses atau program
(decision)?
z Lebih dari satu proses atau program yang akan dijalankan?
z
Long-term scheduler (or job scheduler) – memilih
proses/program yang mana yang akan di load dan berada di
ready queue.
z Kemungkinan terdapat proses atau job baru.
z Kemungkinan proses dipindahkan dari memori ke disk (swap
out).
z
Short-term scheduler (or CPU scheduler) – memilih proses
yang mana yang berada di ready queue akan “run”
14
Penjadual / Schedulers (Cont.)
zLong-term scheduler tidak sering (proses baru) (seconds,
minutes) => (may be slow).
z The long-term scheduler controls the degree of
multiprogramming => berapa banyak proses yang dapat aktif (berada di memori)
z
Short-term scheduler dijalankan sangat sering (milliseconds)
=> giliran pemakaian CPU dari proses- proses yang siap
z Pada saat terjadi penggantian alokasi CPU dari satu proses ke
proses lain:
z Menyimpan informasi internal CPU dari proses yang akan
digantikan (SAVE).
z Meload kembali informasi internal CPU dari proses yang akan
16
Alih Konteks / Context Switch
z
Jika Scheduler switch ke proses lain, maka sistim
harus menyimpan “informasi” proses sekarang
(supaya dapat dijalankan kembali)
z
Load “informasi” dari proses baru yang berada di
PCB
z
Waktu Context-switch adalah overhead; sistem tidak
melakukan pekerjaan saat terjadi switch.
z
Sangat tergantung pada waktu di hardware
z
OS modern mencari solusi untuk mengurangi overhead
Pembuatan Proses
z
Umumnya proses dapat membuat proses baru (child
process).
z
Child process dapat membuat proses baru.
zTerbentuk “tree” dari proses.
z
Pilihan hubungan antara parent dan child proses:
zResource sharing
z
Parent dan child berbagi resource
z
Children berbagi subset dari resource milik parents.
z
Parent dan child tidak berbagi resource.
z
Execution
18
Pembuatan Proses (Cont.)
zAddress space
z Child menduplikasi parent.
z Child memiliki program yang di load ke dalamnya.
z
Contoh UNIX :
z fork system call membuat proses baru z execve (EXEC) :
z menjalankan program spesifik yang lain
z nama program tersebut menjadi parameter dari system call
z EXEC (sering di load sesudah menjalankan fork).
z Tahapan pembuatan proses baru:
z Periksa apakah masih terdapat ruang pada PCB.
z Mencoba mengalokasikan memori untuk proses baru.
z Mengisi informasi untuk proses baru: nama proses, id, copy data dari parent dll.
20
Terminasi Proses
zProses dapat berakhir:
z Eksekusi instruksi terakhir (atau keluar: exit system call).
z OS yang akan melakukan dealokasi (memory, file resources).
z
UNIX (MINIX):
z Output signal dari child ke parent
z Jika parent tidak menunggu (via wait system call), proses akan
terminate tapi belum di release dari PCB (status: ZOMBIE).
z Proses dengan status ZOMBIE (parent telah terminate), akan
menjadi child dari proses “init”.
z
Parent dapat menghentikan eksekusi proses child secara
paksa.
Kerjasama Proses
z
Proses independent tidak mempengaruhi eksekusi
proses yang lain
z
Kerjasama proses dapat mempengaruhi atau
dipengaruhi oleh eksekusi proses yang lain
z
Keuntungan kerjasama proses :
z
Sharing informasi
z
Meningkatkan kecepatan komputasi
zModularitas
26
Interprocess Communication (IPC)
zMekanisme proses untuk komunikasi dan sinkronisasi aksi
zSistem Pesan – komunikasi proses satu dengan yang lain
dapat dilakukan tanpa perlu pembagian data.
zIPC menyediakan dua operasi :
z send(message) – pesan berukuran pasti atau variabel z receive(message)
z
Jika P dan Q melakukan komunikasi, maka keduanya
memerlukan :
z Membangun jalur komunikasi diantara keduanya z Melakukan pertukaran pesan melaui send/receive
z
Implementasi jalur komunikasi
z physical (shared memory, hardware bus) z logical (logical properties)
Komunikasi Langsung
z
Proses harus diberi nama secara jelas :
z
send (P, message) – kirim pesan ke proses P
z
receive(Q, message) – terima pesan dari proses Q
z
Properti jalur komunikasi
z
Jalur dibangun secara otomatis
z
Setiap jalur memiliki pasangan masing-masing
dalam proses komunikasi
28
Komunikasi Tidak Langsung
z
Pesan dikirim dan diterima melalui mailboxes
(yang ditunjuk sebagai port)
z
Proses
z
Processes can communicate only if they share a
mailbox.
z
Properti jalur komunikasi
z
Jalur komunikasi hanya dibangun jika proses di-share
dalam mailbox
z
Jalur merupakan gabungan beberapa proses
z
Setiap pasangan proses dibagi ke dalam beberapa jalur
Komunikasi Tidak Langsung
z
Operasi
z
Membuat mailbox baru
z
Mengirim dan menerima pesan melalui mailbox
zMenghapus/memusnahkan mailbox
z
Primitive didefinisikan :
send(A, message) – kirim pesan ke mailbox A
receive(A, message) – terima pesan dari
30
Komunikasi Tidak Langsung
z
Mailbox sharing
z
P
1, P
2, dan P
3berbagi (share) mailbox A.
zP
1, send; P
2and P
3receive.
z
Siapa yang mendapat pesan ?
zSolusi
z
Memperbolehkan suatu jalur yang merupakan gabungan
lebih dari dua proses
z
Hanya meperbolehkan satu proses pada suatu waktu
untuk mengeksekusi operasi receive .
z
Memperbolehkan sistem untuk memilih receiver. Sender
Sinkronisasi
z
Pesan yang disampaikan dapat di blok atau
tidak (non-blocking)
z
Blocking dikenal dengan synchronous.
32
Buffering
z
Antrian pesan yang dihubungkan dalam suatu
jalur, diimplementasikan dengan tiga jalan :
1. Zero capacity – tidak ada pesan
- Sender harus menunggu receiver (rendezvous).
2. Bounded capacity – memiliki panjang yang terbatas
(finite length) dari n pesan.
- Sender menunggu pada saat jalur penuh.
3. Unbounded capacity – memiliki panjang tidak
terbatas (infinite length)
Sockets
z
Suatu socket didefinisikan sebagai titik akhir
(endpoint) komunikasi
z
A socket is defined as an endpoint for
communication.
z
Gabungan IP address dan port
z
Socket 161.25.19.8:1625 mengacu pada port
1625 pada host 161.25.19.8
35
Remote Procedure Calls (RPC)
z
Remote Procedure Call (RPC) adalah abstraksi
pemanggilan prosedur diantara proses pada sistem
jaringan
z
Stubs – proxy sisi client untuk prosedur aktual pada
server
z
Stub sisi client ditempatkan di server dengan
parameter marshalls.
z
Stub sisi server menerima pesan, membongkarnya
dengan parameter marshall dan menjalankan
prosedur pada server.
37