79
Proses dan Penjadwalan

Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

  • Upload
    others

  • View
    13

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

Proses dan Penjadwalan

Page 2: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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

Page 3: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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

Page 4: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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

Page 5: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

Diagram Status Suatu Proses

Page 6: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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

Page 7: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

PCB (Process Control Block)

Page 8: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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

Page 9: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

Ready Queue dan BeberapaI/O Device Queue

Page 10: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

Diagram Antrian

Page 11: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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

Page 12: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

Penjadwal Medium-term

Page 13: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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.

Page 14: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

Context Switch

Page 15: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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

Page 16: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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.

Page 17: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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

Page 18: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

Alasan dipakainya Cooperating Processes

vInformation SharingvComputation SpeedupvModularityvConvenience

Page 19: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

Information sharing

Menggunakan informasi(resource) yang sama untuk beberapa proses

Page 20: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

Computation Speedup

Suatu task tertentu bisa dipecah menjadi beberapa cooperating processes sehingga bisa dikerjakan secara paralel sehingga menjadi lebih cepat selesai

Page 21: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

Modularity

Pembuatan suatu sistem yang moduler dengan memecahkan fungsi-fungsi dari sistem tersebut menjadi beberapa proses atau thread

Page 22: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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

Page 23: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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

Page 24: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

Consumer-Producer problem

v Suatu paradigma yang umum untuk cooperating processes

v Terdapat 2 macam consumer-producer problem:à Unbounded-bufferà Bounded-buffer

Page 25: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

Unbounded-buffer

Tidak adanya batas bagi produsen untuk memproduksi barang

Page 26: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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.

Page 27: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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)

Page 28: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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.

Page 29: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

Kelebihan RPC (2)

vRobust:àSejak th 1980-an RPC telah banyak digunakan dlm

pengembangan mission-critical application yg memerlukan scalability, fault tolerance, & reliability.

Page 30: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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.

Page 31: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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.

Page 32: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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.

Page 33: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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

Page 34: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

Server

ClientClient

Client

RMI RMI

RMI

DBJDBC

Remote Object

Java RMI (3)

Page 35: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

Stub & Skeleton

Proxy untukremoteObject.

Client Server

Stub class

Skeleton class

Register Pesan

Transport Layer

Remote object

Mengatur remote reference

Page 36: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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

Page 37: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

process

TCP withbuffers,variables

socket

DikendalikanOleh programer

ClientAtau server

process

TCP withbuffers,variables

socket

DikendalikanOleh programer

DikendalikanOleh OS

ClientAtau server

internetDikendalikanOleh OS

Ilustrasi Socket

Page 38: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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.

Page 39: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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.

Page 40: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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.

Page 41: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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.

Page 42: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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.

Page 43: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

Multithreading Models( Many to One Model )

Many to One Model memetakan beberapa user-levelthreads ke satu kernel threads.

Page 44: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

Multithreading Models ( One to One Model )

One to One model memetakan setiap user thread ke kernel thread.

Page 45: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

Multithreading Models( Many to Many Model )

Many to many model memetakan banyak user-level thread ke kernel thread yang lebih sedikit atau sama.

Page 46: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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.

Page 47: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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.

Page 48: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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.

Page 49: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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.

Page 50: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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

Page 51: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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.

Page 52: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

Linux Threads (1)

v Threads pada linux mulai digunakan di kernel versi 2.2

v Threads lebih dianggap sebagai tasks

Page 53: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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.

Page 54: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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)

Page 55: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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)

Page 56: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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.

Page 57: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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.

Page 58: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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

Page 59: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

Konsep Dasar Kriteria Penjadwalan (1)

v Distribusi Burst CPU

Page 60: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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.

Page 61: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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

Page 62: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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

Page 63: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

Kriteria Penjadwalan

v Adil (fairness)v Utilisasi CPU (utilization)v Throughput v Turnaround TimevWaktu Tunggu(waiting time)vWaktu Respon(respond time)

Page 64: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

Kriteria Optimasi

v Biasanya yang dilakukan adalahvMemaksimalkan CPU utilization dan throughputvMeminimalkan turnaround time, waiting time, dan

response timev Dalam situasi tertentu diambil rata-rata

Page 65: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

Algoritma Penjadwalan

v First-Come, First-Servedv Shortest-Job-Firstv Priorityv Round-RobinvMultilevel QueuevMultilevel Feedback Queue

Page 66: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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

Page 67: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

First-Come, First-Serve (2)vAvg waiting time is often quite long

0 8 9 10

0 1 2 10

vEfek konvoivnonpreemptive

Page 68: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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

Page 69: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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

Page 70: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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

Page 71: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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

Page 72: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja
Page 73: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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

Page 74: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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.

Page 75: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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.

Page 76: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

Real Time Scheduler

v Definisiv Pembagian Real Timev Diagram Real Time

Page 77: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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.

Page 78: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

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.

Page 79: Proses dan Penjadwalan · Konsep Proses v Proses adalah suatu program yang sedang dieksekusi ... simultan (concurrent). vProgram yang dijalankan secara simultan itu dapat bekerja

Diagram Real Time

# Setelah deadline, prosesberhenti bertahap.

# Setelah deadline,proses langsung berhenti.