proses dan penjadwalan · konsep proses v proses adalah suatu program yang sedang dieksekusi ......
TRANSCRIPT
Proses dan Penjadwalan
Proses dan Penjadwalan
v Konsep Prosesv Penjadualan Prosesv Interaksi Prosesv Komunikasi Antar Prosesv Konsep Threadv Ilustrasi Thread dengan Linux dan Javav Konsep Dasar dan Kriteria Penjadualan;v Algoritma Penjadwalanv Penjadwalan Multiprocessorv Real Time System
Konsep Proses
v Proses adalah suatu program yang sedang dieksekusiv Suatu proses meliputi:à Program counter
Tempat untuk menyimpan alamat suatu proses yang akan dieksekusi selanjutnya
à Stacktempat penyimpanan temporary data yang dibutuhkan selama program dieksekusi
à Data sectionmengandung variabel global dari suatu proses
Status Proses
Suatu proses dapat berstatus:v New: pada saat proses pertama kali dibuatv Running: pada saat proses sedang dieksekusivWaiting: proses menunggu suatu event lain (contoh:
proses I/O)v Ready: proses siap untuk diekseskusiv 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 sistemv ready queue : proses yang hidup pada memori utama, siap
dan menunggu untuk di-eksekusiv device queue : bila proses tersebut menunggu peralatan
I/O tertentu
Ready Queue dan BeberapaI/O Device Queue
Diagram Antrian
Penjadwal
Bertugas memproses antrian-antrianAda 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 danmengalokasikan CPU
Penjadwal Medium-term
Yang perlu diketahui
v Short-term scheduler lebih sering dipanggil (hanya dalamwaktu millisecond).
v Long-term scheduler jarang dipanggil (dalam hitungandetik, 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 permintaanI/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 SharingvComputation SpeedupvModularityvConvenience
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 barangv 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.
Client mengirim pesan berisi
parameter dan prosedure yang akan
dipanggil
Client mengirim pesan berisi
parameter dan prosedure yang akan
dipanggil
Client
Server membaca parameter dan menjalankan
prosedur yang dipanggil
Server membaca parameter dan menjalankan
prosedur yang dipanggil
Server
Client menunggu response
Client menunggu response
Server menungguclient
Server menungguclient
Client mengirim pesan berisi
parameter dan prosedure yang akan
dipanggil
Client mengirim pesan berisi
parameter dan prosedure yang akan
dipanggil
Proses danparameter
Server mengirim hasilnya ke client
Server mengirim hasilnya ke client
Output
Server menungguclient
Server menungguclient
RPC (Remote Procedure Call)
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)
vMemungkinkan 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 sediakanpublic 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
Server
ClientClient
Client
RMI RMI
RMI
DBJDBC
Remote Object
Java RMI (3)
Stub & Skeleton
Proxy untukremoteObject.
Client Server
Stub class
Skeleton class
Register Pesan
Transport Layer
Remote object
Mengatur remote reference
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
process
TCP withbuffers,variables
socket
DikendalikanOleh programer
ClientAtau server
process
TCP withbuffers,variables
socket
DikendalikanOleh programer
DikendalikanOleh OS
ClientAtau server
internetDikendalikanOleh OS
Ilustrasi Socket
Threads
• Definisi: unit dasar dari penggunaan CPU, threadterdiri dari thread ID, program counter, setregister, 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 aplikasiyang 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 threaddapat berjalan secara pararel pada prosesor yang berbeda.
User dan Kernel Threads (1)User ThreadsUser 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 adanyauser-level threads maka pembuatan semua thread dan penjadwalan dilakukan di dalam user space tanpa intervensi dari kernel.
User dan Kernel Threads (2)
Kernel ThreadsKernel 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-levelthreads 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.
Cancellationv 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 handleryang ada :1. A default signal handler2. 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 sinyalyang 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 dataDuplikat data tertentu dari suatu thread pada suatu situasi.
v PthreadsMerujuk kepada POSIX standard ( IEEE 1003 . 1 c ) mendefinisikan API untuk pembuatan thread dan sinkronisasi. Ini merupakan spesifikasi thread behaviourdan 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 prosesyang 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() ataususpend()
à dead: sebuah thread dipindahkan ke keadaan dead ketikarun() method berhenti atau ketika stop() methoddipanggil.
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 TimevWaktu Tunggu(waiting time)vWaktu Respon(respond time)
Kriteria Optimasi
v Biasanya yang dilakukan adalahvMemaksimalkan CPU utilization dan throughputvMeminimalkan turnaround time, waiting time, dan
response timev Dalam situasi tertentu diambil rata-rata
Algoritma Penjadwalan
v First-Come, First-Servedv Shortest-Job-Firstv Priorityv Round-RobinvMultilevel QueuevMultilevel Feedback Queue
First-Come, First-Serve (1)
vProses pertama yg datang, mendapat alokasi CPU (implementasi antrian FIFO)
CPU
CPU
1 2 3 4 5
2 3 4 5
First-Come, First-Serve (2)vAvg waiting time is often quite long
0 8 9 10
0 1 2 10
vEfek konvoivnonpreemptive
Shortest-Job-First
vMendahulukan 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-time-first
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 Parameternya1. Jumlah antrian2. Algoritma tiap antrian3. Kapan naik4. Kapan turun5. 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 Multi-Prosesor. Misalnya ; kemungkinan adanya load sharing.
v Untuk mengatasi hal itu maka tiap prosesor memiliki kemampuan penjadwalan mandiri [self-scheduling].
vMasalah lain yg mungkin terjadi, yaitu kemungkinan terlewatinya sebuah proses dari antrian [ready queue] atau beberapa prosesor memilih untuk mengeksekusi proses ygsama.
Penjadwalan Multiprocessor (2)
v Sebuah Master-Slave Structure digunakan untuk menjawab permasalahan seperti itu.
vMaster-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 Definisiv Pembagian Real Timev 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 untukmenyelesaikan 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 hard-time 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 terjadinyastarvation.
Diagram Real Time
# Setelah deadline, prosesberhenti bertahap.
# Setelah deadline,proses langsung berhenti.