Proses dan Penjadwalan

advertisement
Proses dan Penjadwalan
Proses dan Penjadwalan
v
v
v
v
v
v
v
v
v
v
Konsep Proses
Penjadualan Proses
Interaksi Proses
Komunikasi Antar Proses
Konsep Thread
Ilustrasi Thread dengan Linux dan Java
Konsep Dasar dan Kriteria Penjadualan;
Algoritma Penjadwalan
Penjadwalan Multiprocessor
Real Time System
Konsep Proses
v
v
Proses adalah suatu program yang sedang dieksekusi
Suatu proses meliputi:
à Program counter
Tempat untuk menyimpan alamat suatu proses yang
akan dieksekusi selanjutnya
à Stack
tempat penyimpanan temporary data yang dibutuhkan
selama program dieksekusi
à Data section
mengandung variabel global dari suatu proses
Status Proses
Suatu proses dapat berstatus:
v New: pada saat proses pertama kali dibuat
v Running: pada saat proses sedang dieksekusi
v Waiting: proses menunggu suatu event lain (contoh:
proses I/O)
v Ready: proses siap untuk diekseskusi
v Terminated: pada saat proses sudah selesai dieksekusi
Diagram Status Suatu Proses
PCB (Process Control Block)
v Setiap proses direpresentasikan kedalam sistem operasi
oleh PCB
v PCB meliputi informasi yang berhubungan dengan proses:
à Process state
à Program counter
à CPU registers
à CPU scheduling information
à Memory-management information
à Accounting information
à I/O status information
PCB (Process Control Block)
Penjadwalan Antrian
v Umumnya setiap proses akan berada dalam
v beberapa tahap antrian :
v job queue : ketika proses memasuki sistem
v ready queue : proses yang hidup pada memori utama, siap
dan menunggu untuk di-eksekusi
v device queue : bila proses tersebut menunggu peralatan
I/O tertentu
Ready Queue dan Beberapa
I/O Device Queue
Diagram Antrian
Penjadwal
Bertugas memproses antrian-antrian
Ada 2 macam :
1. Long-term scheduler (or job scheduler) : menentukan
proses mana yang harus dimasukkan ke dalam ready
queue.
2.
Short-term scheduler (or CPU scheduler) : menentukan
proses mana yang selanjutnya akan dieksekusi dan
mengalokasikan CPU
Penjadwal Medium-term
Yang perlu diketahui
v Short-term scheduler lebih sering dipanggil (hanya dalam
waktu millisecond).
v Long-term scheduler jarang dipanggil (dalam hitungan
detik, menit).
v Proses dapat juga dibagi atas 2 macam :
àI/O-bound process – menghabiskan waktu lebih banyak
untuk mengerjakan I/O daripada di CPU
à short CPU bursts.
àCPU-bound process – jarang melakukan permintaan
I/O, menggunakan lebih banyak waktunya di CPU
à long CPU bursts
àSistem dengan kinerja yang terbaik akan memiliki
kombinasi proses CPU bound dan I/O bound yang
seimbang.
Context Switch
Context Switch
v Pada saat CPU beralih ke proses lain, sistem harus
menyimpan state dari proses lama dan mengambil state
dari proses yang baru.
v Tugas ini dilakukan oleh context switch
Interaksi Proses
v Sistem operasi akhir-akhir ini menjalankan program secara
simultan (concurrent).
v Program yang dijalankan secara simultan itu dapat bekerja
sama dengan proses lain ataupun bekerja sendiri.
Cooperating Processes
v Proses yang independen : proses yang tidak bisa
dipengaruhi dan tidak bisa mempengaruhi proses lain
v Proses yang cooperating : proses yang bisa mempengaruhi
atau dipengaruhi oleh proses lain
Alasan dipakainya Cooperating
Processes
vInformation Sharing
vComputation Speedup
vModularity
vConvenience
Information sharing
Menggunakan informasi(resource) yang sama
untuk beberapa proses
Computation Speedup
Suatu task tertentu bisa dipecah menjadi beberapa
cooperating processes sehingga bisa dikerjakan
secara paralel sehingga menjadi lebih cepat selesai
Modularity
Pembuatan suatu sistem yang moduler dengan
memecahkan fungsi-fungsi dari sistem tersebut
menjadi beberapa proses atau thread
Convenience
v
User bisa dengan mudah mengerjakan sesuatu yang
berbeda dalam waktu yang sama
v
Contoh : satu user bisa saja secara bersamaan
mengetik dan mengedit serta mencetak suatu halaman
tertentu
Contoh Coop. Processes :
Consumer-Producer problem
v Produsen : memproduksi barang
v Konsumer : menghabiskan barang
v Perlu diperhatikan bahwa barang yang diproduksi oleh
produsen dan yang dihabiskan oleh konsumer adalah sama
Consumer-Producer problem
v Suatu paradigma yang umum untuk cooperating processes
v Terdapat 2 macam consumer-producer problem:
à Unbounded-buffer
à Bounded-buffer
Unbounded-buffer
Tidak adanya batas bagi produsen untuk memproduksi
barang
Bounded-buffer
v Adanya suatu batas bagi produsen untuk memproduksi
barang
v Consumer harus menunggu sampai buffer kosong dan
producer harus menunggu sampai buffer penuh.
RPC (Remote Procedure Call)
Client
Client
Clientmengirim
mengirim
pesan
pesanberisi
berisi
parameter
parameterdan
dan
prosedure
yang
prosedure yangakan
akan
dipanggil
dipanggil
Server
Server
Servermenunggu
menunggu
client
client
Proses dan
parameter
Server
Servermembaca
membaca
parameter
parameterdan
dan
menjalankan
menjalankan
prosedur
proseduryang
yang
dipanggil
dipanggil
Client
Clientmenunggu
menunggu
response
response
Client
Clientmengirim
mengirim
pesan
pesanberisi
berisi
parameter
parameterdan
dan
prosedure
yang
prosedure yangakan
akan
dipanggil
dipanggil
Server
Servermengirim
mengirim
hasilnya
hasilnyake
keclient
client
Output
Server
Servermenunggu
menunggu
client
client
Kelebihan RPC (1)
v Relatif mudah digunakan:
àPemanggilan remote procedure tidak jauh berbeda
dibandingkan pemanggilan local procedure. Sehingga
pemrogram dpt berkonsentrasi pd software logic, tidak
perlu memikirkan low level details spt soket,
marshalling & unmarshalling.
v Relatively portable:
à S/w developed using RPC is easier to be ported
compared to sockets.
Kelebihan RPC (2)
vRobust:
àSejak th 1980-an RPC telah banyak digunakan dlm
pengembangan mission-critical
application yg
memerlukan scalability, fault tolerance, & reliability.
Kekurangan RPC
v Tidak fleksibel thdp perubahan:
àStatic relationship between client & server at run-time.
v Berdasarkan prosedural/structured programming yang
sudah ketinggalan jaman dibandingkan OOP.
Format Pesan RPC
v Tipe Pesan. Bisa call(0) atau reply(1).
v Status Pesan. Bisa berbeda tergantung jenis operasi call
atau reply.
v Rpcvers. Versi RPC (integer tidak bertanda).
v Prog, vers and proc. Menjelaskan semua detil dari remote
prosedur (integer tidak bertanda).
v Cred. Credentials Autentikasi.
v Verf. Verifikasi Autentikasi.
v Prosedure parameter.
Java RMI (1)
v Memungkinkan kita untuk menulis sebuah object yang
dapat diakses secara remote.
v Stub dan skleton bertindak sebagai proxy antara client dan
server
v Stub dan Skleton dapat dibuat/compile melalui interface
yang kita buat menggunkan tool rmic (rmi compiler),
dimana semua remote method didefinisikan.
Java RMI (2)
v Interface mendifinisikan semua remote method yang kita
sediakan
public interface StatsInterface extends
Remote {
int getNama(int uid) throws
RemoteException;
int SetNama(String nama) throws
RemoteException;
}
v Untuk membuat Stub dan Skleton gunakan : RMIC
StatsInterFace
Java RMI (3)
Client
RMI
Client
Client
RMI
RMI
Server
Remote Object
JDBC
DB
Stub & Skeleton
Mengatur remote reference
Register Pesan
Client
Stub
class
Proxy untuk
remoteObject.
Transport Layer
Server
Skeleton
class
Remote object
Socket
Apa itu Socket?
v Sebuah programming interface ke OS yang
memungkinkan proses untuk saling berkomunikasi ke
proses lainya
v Eksekusi TCP/UDP berlangsung di level kernel, socket
bertindak sebagai jembatan ke user space.
v Di java ada 4 jenis socket
àDatagramSocket – untuk UDP
àMulticastSocket – turunan dari DatagramSocket
àServerSocket – untuk TCP server
àSocket – endpoint dari TCP stream
Ilustrasi Socket
Dikendalikan
Oleh programer
Dikendalikan
Oleh OS
process
process
socket
TCP with
buffers,
variables
Client
Atau server
internet
socket
TCP with
buffers,
variables
Client
Atau server
Dikendalikan
Oleh programer
Dikendalikan
Oleh OS
Threads
• Definisi: unit dasar dari penggunaan CPU, thread
terdiri dari thread ID, program counter, set
register, dan stack.
• Thread juga sering disebut Lightweight process.
• Thread berbagi code section, data section, dan
sumber daya sistem operasi dengan thread lain
yang termasuk dalam proses yang sama.
• Proses tradisional ( Heavyweight process )
mempunyai thread tunggal yang berfungsi sebagai
pengontrol.
Keuntungan Thread (1)
v Responsiveness : Melakukan multithreading pada aplikasi
yang interaktif dapat membuat program terus berjalan
meskipun bagian dari program tersebut diblok atau sedang
menjalankan operasi yang panjang, karena itu dapat
meningkatkan respon kepada user.
v Resource sharing : sebuah aplikasi dapat mempunyai
beberapa thread yang berbeda dalam sebuah alamat
memori yang sama karena Thread berbagi memori dan
sumber daya dari proses yang memilikinya.
Keuntungan Thread (2)
v
Economy: karena mahal untuk mengalokasikan memori
dan sumber daya untuk pembuatan proses. Alternatifnya
adalah dengan pengunaan thread sebab thread berbagi
sumber daya dari proses yang memilikinya oleh sebab
itu akan lebih ekonomis untuk membuat sebuah thread
v
Utilization of multiproccesor architectures: keuntungan
dari multithreading dapat meningkat secara drastis
dalam arsitektur multiprosesor, dimana setiap thread
dapat berjalan secara pararel pada prosesor yang
berbeda.
User dan Kernel Threads (1)
User Threads
User threads didukung diatas kernel dan diimplementasikan
oleh thread library pada level user. Library mendukung
pembuatan thread, penjadwalan, dan manajemen tanpa
dukungan dari kernel. Karena kernel tidak menyadari adanya
user-level threads maka pembuatan semua thread dan
penjadwalan dilakukan di dalam user space tanpa intervensi
dari kernel.
User dan Kernel Threads (2)
Kernel Threads
Kernel threads didukung secara langsung dari sistem operasi.
Pembuatan thread, penjadwalan, dan manajemen dilakukan
oleh sistem operasi, secara umum kernel threads lebih lambat
untuk dibuat dan diatur dibanding user thread.
Multithreading Models
( Many to One Model )
Many to One Model memetakan beberapa user-level
threads ke satu kernel threads.
Multithreading Models
( One to One Model )
One to One model memetakan setiap user thread ke kernel
thread.
Multithreading Models
( Many to Many Model )
Many to many model memetakan banyak user-level thread
ke kernel thread yang lebih sedikit atau sama.
Fork
Bila sebuah thread di program memanggil fork maka ada dua
skenario yang bisa terjadi :
1. Semua thread akan diduplikasi.
2. Hanya thread yang memanggil fork yang akan
didupliakasi.
Cancellation
v Thread cancellation adalah sebuah tugas untuk
memberhentikan thread sebelum thread tersebut selesai.
v Thread yang akan diberhentikan disebut target thread.
v Dua skenario thread cancellationn :
1. Asynchronous cancellation :
satu thread memberhentikan target thread seketika itu
juga.
2. Deferred cancellation :
target thread secara periodik dapat mengecek apakah
ia harus berhenti, skenario ini memberi kesempatan
kepada target thread untuk memberhentikan dirinya
sendiri.
Signal Handling (1)
v Sebuah sinyal digunakan di sistem UNIX untuk
memberitahu sebuah proses kalau peristiwa tertentu sedang
terjadi.
v Pola sinyal :
- Sebuah sinyal diaktifkan oleh munculnya suatu peristiwa.
- Sinyal yang diaktifkan dikirim ke proses.
- Sesudah dikirim, sinyal tersebut harus ditangani.
Signal Handling (2)
v Setiap sinyal bisa ditangani oleh salah satu dari 2 handler
yang ada :
1. A default signal handler
2. A user defined signal handler
v Beberapa pilihan kemana sebuah sinyal seharusnya dikirim :
1. Mengirim sinyal ke thread yang dituju.
2. Mengirim sinyal ke semua thread dalam proses.
3. Mengirim sinyal ke thread tertentu dalam proses.
4. Menugaskan thread khusus untuk menerima semua sinyal
yang ditujukan pada proses tersebut.
Thread Pools (1)
v Gagasan umum :
Membuat beberapa thread pada start-up proses dan
menempatkan mereka ke dalam sebuah pool dimana
mereka diam dan menunggu untuk bekerja.
v Keuntungan :
à Biasanya lebih cepat untuk melayani sebuah
permintaan
dengan thread yang ada dibanding
menunggu thread tersebut dibuat.
à Thread pool membatasi jumlah thread yang ada pada
suatu waktu. Hal ini penting pada sistem yang tidak
bisa mendukung banyak concurrent thread
Thread Pools (2)
v
Thread specific data
Duplikat data tertentu dari suatu thread pada suatu
situasi.
v
Pthreads
Merujuk kepada POSIX standard ( IEEE 1003 . 1 c )
mendefinisikan API untuk pembuatan thread dan
sinkronisasi. Ini merupakan spesifikasi thread behaviour
dan bukan merupakan implmentasi. Desainer OS boleh
mengimplementasikan spesifikasi tersebut dalam cara
apapun yang mereka mau.
Linux Threads (1)
v Threads pada linux mulai digunakan di kernel versi 2.2
v Threads lebih dianggap sebagai tasks
Linux Threads (2)
v Linux menyediakan 2 system call :
àfork()
àclone()
v clone() mirip seperti fork(), namun selain meng-copy
proses yang memanggilnya, method ini membuat proses
baru yang berbagi address space yang sama dengan proses
yang memanggilnya.
Java Threads (1)
v Threads di Java dibuat dengan cara :
àmeng-extends class Threads
àmen-implement interface Runnable
v Threads di Java diatur oleh Java Virtual Machine (JVM)
Java Threads (2)
v Keunggulan Java Threads adalah:
ÒJVM menggunakan prioritas preemptive berdasarkan
algoritma penjadualan
ÒSemua threads di Java mempunyai prioritas. Prioritas
tertinggi dijadualkan untuk dieksekusi oleh JVM
ÒJika ada 2 thread yang prioritasnya sama, digunakan
algoritma First In First Out (FIFO)
Java Threads (3)
v
Keadaan Threads di Java dibagi menjadi 4 keadaan :
à new: sebuah thread pada keadaan ini ada ketika
objek dari thread tersebut dibuat
à runnable: memanggil start() method untuk mengalokasikan
memori bagi thread baru dalam JVM dan memanggil run()
method untuk membuat objek.
Java Threads (4)
à
block: sebuah thread akan diblok jika menampilkan
sebuah kalimat pengeblokan. Contohnya: sleep() atau
suspend()
à
dead: sebuah thread dipindahkan ke keadaan dead ketika
run() method berhenti atau ketika stop() method
dipanggil.
Konsep Dasar Kriteria
Penjadwalan (1)
v Tujuan Utama : untuk mempunyai proses berjalan secara
bersamaan, untuk memaksimalkan kinerja dari CPU.
v Pemanfaatan CPU maksimum diperoleh dengan
multiprograming
v CPU-I/O Burst Cycle- Pelaksanaan proses terdiri dari
suatu siklus tunggu I/O dan eksekusi CPU
Konsep Dasar Kriteria
Penjadwalan (1)
v Distribusi Burst CPU
Penjadwal CPU (1)
v Penjadwal memilih dari sekian proses yang ada di
memori yang sudah siap dieksekusi, dan
mengalokasikan CPU untuk mengeksekusinya
v Penjadwalan CPU mungkin akan dijalankan
ketika proses:
1. Berubah dari running ke waiting state.
2. Berubah dari running ke ready state.
3. Berubah dari waiting ke ready.
4. Terminates.
Penjadwal CPU (2)
• Penjadwalan 1 dan 4 adalah non
preemptive; Maksudnya adalah Dalam
penjadual nonpreemptive sekali CPU telah
dialokasikan untuk sebuah proses, maka
tidak bisa di ganggu, contoh pada windows
3.x
• Selain itu bersifat preemptive
Dispatcher
vArti :Modul pemberi kontrol CPU ke proses,
fungsi ini meliputi :
à switching context
à switching to user mode
à Lompat dari suatu bagian di progam user
untuk mengulang progam.
vDispatch Latency :waktu yang dibutuhkan untuk
menstop satu proses dan menjalankan proses
lainnya
Kriteria Penjadwalan
v Adil (fairness)
v Utilisasi CPU (utilization)
v Throughput
v Turnaround Time
v Waktu Tunggu(waiting time)
v Waktu Respon(respond time)
Kriteria Optimasi
v Biasanya yang dilakukan adalah
v Memaksimalkan CPU utilization dan throughput
v Meminimalkan turnaround time, waiting time, dan
response time
v Dalam situasi tertentu diambil rata-rata
Algoritma Penjadwalan
v First-Come, First-Served
v Shortest-Job-First
v Priority
v Round-Robin
v Multilevel Queue
v Multilevel Feedback Queue
First-Come, First-Serve (1)
vProses pertama yg datang, mendapat alokasi CPU
(implementasi antrian FIFO)
CPU
1
2
3
4
CPU
2
3
4
5
5
First-Come, First-Serve (2)
vAvg waiting time is often quite long
0
0
8
1
2
vEfek konvoi
vnonpreemptive
9 10
10
Shortest-Job-First
v Mendahulukan proses dengan burst time terkecil (shortest
next CPU burst)
v Avg waiting time terkecil (optimal)
v Sulit menentukan panjang CPU burst (prediksi)
v Preemptive or not. Preemptive=shortest-remaining-timefirst
Priority
v Tiap proses diberikan skala prioritas
v Skala bisa ditentukan secara internal/eksternal
v Preemptive or not.
v Indefinite blocking (starvation), diatasi dengan aging
Round-Robin
v Preemptive first-come, first-served
v Digilir selama time quantum
v Performa tergantung besar time quantum. Time quantum
sangat besar (infinit), akan seperti FCFS. Kalau terlalu
kecil, context switch terlalu banyak
Multilevel Queue
v Terdiri dari beberapa antrian (queue)
v Tiap antrian mempunyai skala prioritas
v Antrian tidak akan mendapat jatah CPU, selama masih ada
antrian dg prioritas lebih tinggi yg belum mendapat jatah
Multilevel Feedback Queue
v Proses bisa pindah antar antrian
v Umumnya antrian high priority menggunakan RR, yang
rendah FCFS
v Parameternya
1. Jumlah antrian
2. Algoritma tiap antrian
3. Kapan naik
4. Kapan turun
5. Yang mana yang mendapat jatah, jika diperlukan
Penjadwalan Multiprocessor (1)
v Sistem yg dimaksud adalah homogen – dimana tiap
prosesor memiliki fungsi yg sama.
v Asumsi bahwa tiap proses dapat mengakses memori dgn
cara yg sama [Uniform Memory Access]
v Pembatasan dalam penjadwalan juga terjadi dalam MultiProsesor. Misalnya ; kemungkinan adanya load sharing.
v Untuk mengatasi hal itu maka tiap prosesor memiliki
kemampuan penjadwalan mandiri [self-scheduling].
v Masalah lain yg mungkin terjadi, yaitu kemungkinan
terlewatinya sebuah proses dari antrian [ready queue] atau
beberapa prosesor memilih untuk mengeksekusi proses yg
sama.
Penjadwalan Multiprocessor (2)
v Sebuah Master-Slave Structure digunakan untuk menjawab
permasalahan seperti itu.
v Master-Slave structure adalah suatu struktur dimana satu
prosesor ditunjuk sebagai Master. Master inilah yg akan
bertanggung jawab dalam hal penjadwalan, memproses
I/O, dan sebagainya. Sedangkan prosesor yg lain [Slave]
hanya bertugas untuk mengeksekusi user code.
v Hal ini disebut juga sebagai Asymmetric multiprocessing,
krn hanya satu prosesor yg dpt mengakses struktur data
dari sistem.
Real Time Scheduler
v
v
v
Definisi
Pembagian Real Time
Diagram Real Time
Pembagian Real Time
I. Hard-Real Time
v
Menjamin proses dapat diselesaiken dengan tepat
waktu.
v
Pada saat proses dikirim,terdapat statement yang
menyatakan jumlah waktu yang diperlukan untuk
menyelesaikan proses tersebut.
v
Scheduler memainkan peranan yang penting.
v
Jika permintaan alokasi waktu terlalu besar,maka
scheduler akan menolaknya.
Pembagian Real Time
II. Soft-Real Time
v
Memiliki keterbatasan yang lebih rendah dari hardtime system.
v
Critical task diberikan prioritas yang lebih tinggi
dari yang lainnya.
v
Memerlukan desain scheduler yang lebih cermat,
karena harus men-set prioritas.
v
Dapat menyebabkan pembagian resource yang
kurang adil, delay yang lama, sampai terjadinya
starvation.
Diagram Real Time
# Setelah deadline,
proses langsung berhenti.
# Setelah deadline, proses
berhenti bertahap.
Download