Anda di halaman 1dari 60

Sistem Operasi WaktuWaktu-Nyata

(Pertemuan keke-7)
Oleh: Endro Ariyanto (END) Oktober 2010

Agenda: g
Kernel WaktuWaktu-Nyata
Pseudokernel P d k l Polled loop Synchronized Polled loop Cyclic executive Coroutine Interrupt-driven system Preemptive-Priority p y Systems y Hybrid system Model Task-Control Block (TCB) ( )

Teori Dasar RTOS

RTS/Endro Ariyanto/20101006 #1

Kernel WaktuWaktu-Nyata
Apakah yang dimaksud dengan proses (task) ?
Program yang sedang dieksekusi

Apakah yang dimaksud dengan thread ?


Bagian/pecahan dari proses yang dapat dieksekusi

Apa yang dimaksud dengan kernel ?


Bagian dari sistem operasi yang menangani: penjadualan proses dispatching p gp proses komunikasi dan sinkronisasi antar proses

Scheduler (penjadualan) bertugas memilih proses berikutnya yang akan dieksekusi Dispatcher bertugas menyiapkan hal-hal yang diperlukan oleh proses yang akan dieksekusi
RTS/Endro Ariyanto/20101006 #2

Tingkatan (hirarki) Sistem Operasi

Pseudokernel
Merupakan mekanisme untuk mengeksekusi sistem multitasking tanpa menggunakan interrupt (bahkan sistem operasi)
RTS/Endro Ariyanto/20101006 #3

Agenda: g
Kernel Waktu-Nyata
P Pseudokernel d k l Polled loop Synchronized Polled loop Cyclic executive Coroutine Interrupt-driven system Preemptive-Priority p y Systems y Hybrid system Model Task-Control Block (TCB) ( )

Teori Dasar RTOS

RTS/Endro Ariyanto/20101006 #4

Polled Loop
Polled loop digunakan untuk secara terus menerus membaca b data d dari d i sejumlah j l h device d i secara bergantian g Pada contoh di bawah, data tersedia jika variabel packet_here packet here = 1

RTS/Endro Ariyanto/20101006 #5

Synchronized Polled Loop (1)


Synchronized polled loop = polled loop + delay Synchronized polled loop bertujuan untuk mengatasi switch

bounce Switch bounce merupakan p fenomena adanya y sinyal y yang y g tidak diharapkan ketika saklar (switch) dihidupkan/dimatikan

RTS/Endro Ariyanto/20101006 #6

Synchronized Polled Loop (2)


Contoh sychronized polled loop yang diterapkan pada switch bounce tidak lebih dari 20 ms:

Kelebihan:
Penulisan dan debug sederhana Response time mudah ditentukan

Kekurangan:
Boros waktu CPU Tidak diterapkan pada sistem yang kompleks
RTS/Endro Ariyanto/20101006 #7

Agenda: g
Kernel Waktu-Nyata
P Pseudokernel d k l Polled loop Synchronized Polled loop Cyclic executive Coroutine Interrupt-driven system Preemptive-Priority p y Systems y Hybrid system Model Task-Control Block (TCB) ( )

Teori Dasar RTOS

RTS/Endro Ariyanto/20101006 #8

Cyclic Executive (1)


Eksekusi proses dilakukan secara berurutan dan bergantian menggunakan model round-robin round robin Proses yang dieksekusi tidak dapat dihentikan ( (interrupt) ), kecuali k l sudah d h selesai l

RTS/Endro Ariyanto/20101006 #9

Cyclic Executive (2)


Proses tertentu bisa diberi kesempatan eksekusi lebih banyak daripada proses yang p y g lain

Contoh game Space Invader dimana aktifitas yang terjadi adalah:


Memeriksa tombol yang ditekan:

geser tank ke kiri geser tank ke kanan luncurkan missile


Gerakkan aliens Hitung titik temu Refresh display
RTS/Endro Ariyanto/20101006 #10

Cyclic Executive (3)


Program game Space invader

Aktifitas check_for_keypressed() dieksekusi 3 kali lebih banyak daripada aktifitas lainnya Tujuannya agar response komputer terhadap input dari user terasa lebih cepat
RTS/Endro Ariyanto/20101006 #11

Agenda: g
Kernel Waktu-Nyata
P Pseudokernel d k l Polled loop Synchronized Polled loop Cyclic executive Coroutine Interrupt-driven system Interrupt Service Routine (ISR) Context switching Preemptive-Priority Systems Hybrid system Model Task-Control Block (TCB)

Teori Dasar RTOS


RTS/Endro Ariyanto/20101006 #12

Coroutine
Pada coroutine 2 atau lebih proses dibuat dengan model state-driven code dan dieksekusi secara bergantian g State-driven code dibuat dengan menggunakan bentuk bersarang if-then, case, atau Finite State Automata (FSA) Mekanisme pada coroutine:
Suatu fase (bagian dari proses) dieksekusi Bil telah Bila t l h selesai, l i kirim ki i pemberitahuan b it h ke k dispatcher di t h Dispather memilih proses berikutnya yang akan dieksekusi Sebuah fase dari proses yang dipilih dieksekusi hingga selesai Proses mengirim pemberitahuan ke dispatcher Dispatcher memilih proses selanjutnya Dan seterusnya

RTS/Endro Ariyanto/20101006 #13

Contoh Coroutine (1)

RTS/Endro Ariyanto/20101006 #14

Contoh Coroutine (2)


Keterangan:
phase phase_a1 a1 dieksekusi process_a mengembalikan kendali ke dispatcher dengan mengeksekusi break Dispatcher i h mengeksekusi k k i process_b dimulai di l i dari d i phase_b1 Ketika phase_b1 selesai, process_b mengembalikan kendali ke dispatcher Dispatcher kembali mengeksekusi process_a pada bagian phase_a2 dan seterusnya

state_a dan state_b berupa variabel global yang dikendalikan oleh dispatcher Variabel global digunakan sebagai sarana untuk sinkronisasi dan komunikasi antar p proses
RTS/Endro Ariyanto/20101006 #15

Agenda: g
Kernel Waktu-Nyata
P Pseudokernel d k l Polled loop Synchronized Polled loop Cyclic executive Coroutine Interrupt-driven system Interrupt Service Routine (ISR) Context switching Preemptive-Priority Systems Hybrid system Model Task-Control Block (TCB)

Teori Dasar RTOS


RTS/Endro Ariyanto/20101006 #16

Interrupt Service Routine (ISR)


Pada interrupt-driven system, task/proses dijadualkan melalui interrupt p hardware/software / , sedangkan g dispatching p g dilakukan oleh interrupt handling routine Jenis interrupt:
Hardware, berasal dari signal listrik dari device eksternal Software, berasal dari eksekusi instruksi

Interrupt diterima oleh sistem operasi, operasi yang selanjutnya menjalankan program Interrupt Service Routine (ISR) Saat p proses yang y g sedang g dieksekusi di-interrupt p , maka dilakukan penyelamatan data context Data context terdiri dari isi PC, isi register, status proses, dan informasi lain yang diperlukan agar proses yang didi interrupt dapat kembali dieksekusi bila interrupt telah selesai Reentrant ISR adalah ISR yang dapat menangani interrupt berikutnya ketika interrupt yang sedang ditangani belum selesai RTS/Endro Ariyanto/20101006

#17

Context Switching
Context switching merupakan proses penyimpanan dan pengambilan p g informasi (data ( context) yang y g diperlukan p oleh task waktu-nyata agar dapat dieksekusi lagi sesudah interrupt selesai ditangani Context C t t switching it hi sangat t mempengaruhi hi response time ti , sebaiknya dibuat sekecil mungkin. Caranya ?
Data yang disimpan sesedikit mungkin

Data context yang biasa disimpan:


Isi general register Isi program counter (PC) Isi register coprocessor (jika ada)

Memory page register Image lokasi memory-mapped I/O

Interrupt di-disable ketika sedang dilakukan context

switching

Apa tujuannya ?
RTS/Endro Ariyanto/20101006 #18

Contoh
Sistem dapat p menangani 3 interrupt

RTS/Endro Ariyanto/20101006 #19

Agenda: g
Kernel Waktu-Nyata
P Pseudokernel d k l Polled loop Synchronized Polled loop Cyclic executive Coroutine Interrupt-driven system Interrupt Service Routine (ISR) Context switching Preemptive Preemptive-Priority Systems Hybrid system Model Task-Control Block (TCB)

Teori Dasar RTOS


RTS/Endro Ariyanto/20101006 #20

PreemptivePreemptive -Priority System (1)


Pada preemptive-priority system proses dengan prioritas lebih tinggi dapat menghentikan (preempt) proses dengan prioritas lebih rendah Penentuan prioritas berdasarkan penting/tidaknya suatu proses Misal: sistem yang memantau temperatur reaktor nuklir lebih penting daripada sistem yang memantau ada/tidaknya ada/t da ya pe penyusup yusup Jenis prioritas:
tetap (fixed) -> > tidak fleksibel dinamis -> dapat berubah ketika sedang berjalan sesuai dengan kebutuhan
RTS/Endro Ariyanto/20101006 #21

PreemptivePreemptive -Priority System (2)


Starvation
Terjadi jika proses dengan prioritas rendah terlalu lama menunggu untuk dieksekusi

Rate Rate-monotonic monotonic:


Merupakan salah satu jenis preemptive-priority system Proses yang sering dieksekusi mendapat prioritas lebih tinggi

Contoh sistem rate-monotonic:


Sistem navigasi pesawat terbang Task yang mengumpulkan data akselerometer setiap 10 ms
diberi prioritas pertama (paling tinggi) Task yang mengumpulkan data gyro dan menggabungkannya dengan data akselerometer setiap 40 ms diberi prioritas kedua Task yang meng-update layar monitor untuk pilot setiap satu detik diberi prioritas terendah
RTS/Endro Ariyanto/20101006 #22

Agenda: g
Kernel Waktu-Nyata

Pseudokernel P d k l Interrupt-driven system P Preemptive-Priority ti P i it S Systems t Hybrid system



Foreground/Background F d/B k d system t Background processing
Inisialisasi Operasi waktu-nyata

Model Task-Control Block (TCB) ( )

Teori Dasar RTOS

RTS/Endro Ariyanto/20101006 #23

Hybrid System
Sistem hybrid merupakan:
Sistem yang dapat menangani interrupt yang terjadi secara periodik maupun terjadi secara sporadis Sistem yang dapat menangani kombinasi antara sistem roundrobin bi dan d sistem i t preemptive ti Round-robin diterapkan ketika terdapat lebih dari satu task
dengan prioritas sama siap untuk dieksekusi

Sistem interrupt-only:
Kelebihan:

mudah ditulis/dibuat response time cepat


Kekurangan: terjadi overhead waktu pada saat pergantian eksekusi penambahan layanan (driver dan antarmuka) sukar dilakukan

rentan terhadap waktu mudah terjadi race condition

RTS/Endro Ariyanto/20101006 #24

Foreground/Background System (1)


Sistem foreground/background merupakan sistem yang di dalamnya terdapat proses jenis interrupt-driven interrupt driven (real(real time process) dan proses jenis noninterrupt-driven Foreground
Merupakan proses jenis interrupt-driven Diimplementasikan dengan round-robin, preemptive priority, atau hybrid

Background
Merupakan proses jenis noninterrupt-driven Prioritas o as pa paling g rendah e da

Sistem foreground/background bertujuan untuk memperbaiki model sistem model interrupt interrupt-only only
RTS/Endro Ariyanto/20101006 #25

Foreground/Background System (2)


Sistem foreground/background:

Setiap model merupakan bentuk khusus dari sistem

foreground/background:

Polled loop = foreground/background tanpa foreground State-driven = foreground/background tanpa foreground Coroutine = model d l background b k d lebih l b h kompleks k l k Interrupt only = foreground/background tanpa background

RTS/Endro Ariyanto/20101006 #26

Background Processing
Karakteristik background processing: Termasuk noninterrupt-driven p task
Tidak mempunyai target waktu eksekusi Prioritasnya paling rendah Dieksekusi ketika utilisasi CPU kurang dari 100% dan tidak terjadi deadlock Timer pada proses background: Bertujuan untuk memantau apakah terjadi kondisi hung pada proses foreground p g Counter bertambah terus, bila terlalu besar nilainya, ada kemungkinan terjadi hung Timer pada proses foreground: Setiap proses foreground dilengkapi dengan counter dan nilainya di-reset bila telah selesai dieksekusi Bila nilai counter suatu proses terlalu lama tidak di di-reset, ada kemungkinan telah terjadi gangguan pada proses tersebut
RTS/Endro Ariyanto/20101006 #27

Watchdog timer:

Agenda: g
Kernel Waktu-Nyata

Pseudokernel P d k l Interrupt-driven system P Preemptive-Priority ti P i it Systems S t Hybrid system



F Foreground/Background d/B k d system t Background processing
Inisialisasi Operasi waktu-nyata

Model Task-Control Block ( (TCB) )

Teori Dasar RTOS

RTS/Endro Ariyanto/20101006 #28

Tahap Inisialisasi
Tahapan inisialisasi pada sistem foreground/background:

Disable interrupt Set up vektor interrupt dan stack Lakukan self-test


Lakukan inisialisasi sistem

Enable interrupt

Tahap inisialisasi dilakukan oleh proses background Saat inisialisasi interrupt di-disable, mengapa ?
Agar proses penyiapan (setup) hal hal-hal hal yang diperlukan oleh sistem seperti alamat ISR, alokasi stack, data, counter, array, self-diagnostic test tidak terganggu

RTS/Endro Ariyanto/20101006 #29

Operasi WaktuWaktu-Nyata (1)


Operasi waktu-nyata atau foreground pada sistem foreground/background g / g sama dengan g sistem interrupt-driven p Instruksi DPI dan EPI
Instruksi yang ditulis antara DPI dan EPI tidak dapat diganggu oleh proses lain l i Apa yang akan dilakukan CPU jika suatu proses mengirimkan interrupt ketika instruksi antara DPI dan EPI sedang dieksekusi oleh C CPU ?

Contoh inisialisasi dengan DPI dan EPI pada sistem

foreground/background:
DPI STORE

; disable interrupts &handler, 5; put interrupt handler address in location 5 . . . . . ; instruksi-instruksi lainnya EPI ; enable interrupts
RTS/Endro Ariyanto/20101006 #30

Operasi WaktuWaktu-Nyata (2)


Contoh program interrupt handler dengan DPI dan EPI pada sistem foreground/background:
DPI STORE STORE STORE STORE STORE STORE STORE STORE R0, R1, , R2, R3, R4, R5, R6 R6, R7, ; &reg0; &reg1; &reg2; g ; &reg3; &reg4; &reg5; &reg6; &reg7; ; ; ; ; ; ; ; ; ; ; ; redundantly disable interrupts save register 0 save register 1 save register g 2 save register 3 save register 4 save register 5 save register 6 save register 7 execute real-time application program restore t register i t 7 restore register 6 restore register 5 restore register 4 restore register 3 restore register 2 restore register 1 restore register g 0 re-enable interrupts return from interrupt
RTS/Endro Ariyanto/20101006 #31

JU @APP LOAD R& R&, LOAD R&, LOAD R&, LOAD R&, LOAD R&, LOAD R&, LOAD R&, , LOAD R&, EPI RI

& &reg7 7 &reg7 &reg7 &reg7 &reg7 &reg7 &reg7 &reg7 g

Operasi WaktuWaktu-Nyata (3)


Program background:
Terdiri dari prosedur inisialisasi dan prosedur-prosedur prosedur prosedur lain yang tidak terpengaruh waktu Ditulis u s dengan de ga bahasa ba asa pemrograman pe og a a tingkat g a tinggi gg

Contoh program background:


void id main i (void) ( id) /* allocate space for context variable */ int reg0, reg1, reg2, reg3, reg4, reg5, reg6, reg7; /* declare other globla variable here */ { init(); /* initialize system */ while (TRUE) /* background loop */ background(); /* non real-time processing here */ }

RTS/Endro Ariyanto/20101006 #32

Operasi WaktuWaktu-Nyata (4)


Kelebihan sistem foreground/background:
Response R time ti -nya baik b ik karena k penjadualannya j d l dilakukan dengan hardware

Kekurangan K k sistem i f foreground/background d/b k d:


Cenderung mudah terjadi kesalahan, karena harus menangani antarmuka (interface) dengan berbagai device dan jaringan Hanya cocok diterapkan pada sistem dimana jumlah proses foreground tetap Rentan terhadap waktu Dapat terjadi race condition
RTS/Endro Ariyanto/20101006 #33

Agenda: g
Kernel Waktu-Nyata

Pseudokernel P d k l Interrupt-driven system P Preemptive-Priority ti P i it Systems S t Hybrid system



Foreground/Background F d/B k d system t Background processing
Inisialisasi Operasi waktu-nyata

Model Task Task-Control Block ( (TCB) (TCB) Status task Manajemen task

Teori Dasar RTOS


RTS/Endro Ariyanto/20101006 #34

Model TaskTask-Control Block (TCB)


Model yang paling banyak digunakan untuk pada sistem operasi p komersial dan sistem operasi p waktu-nyata y Dapat menangani jumlah task yang berubah-ubah, misal sistem on-line Penanganan proses dapat dilakukan dengan round-robin, preemptive-priority, atau kombinasinya Isi TCB:
isi PC isi register g nomor atau string identitas task status task prioritas task (if applicable) pointer ke TCB berikutnya

Kekurangan g TCB:
Overhead pada scheduler meningkat ketika jumlah task yang ditangani semakin banyak
RTS/Endro Ariyanto/20101006 #35

Status Task
Status task:
Executing

Status bagi task yang sedang dieksekusi Status yang hanya dimiliki oleh satu task saja (pada
prosesor tunggal)

Ready

Status bagi task siap dieksekusi, tetapi belum mendapat


giliran

Suspended (atau blocked) Status bagi task yang sedang menunggu resource atau event Dormant ( (atau sleeping p g) Status bagi proses yang keberadaannya tidak ditangani oleh
sistem operasi Status dormant digunakan pada sistem yang memorinya terbatas dan jumlah task-nya tetap

RTS/Endro Ariyanto/20101006 #36

Perubahan Status Task


Task baru Executing Task yang baru dibuat langsung dieksekusi jika tidak ada task lain yang berstatus ready Executing keluar
J Jika a task tas yang ya g sedang seda g dieksekusi d e se us telah te a se selesai esa

Executing Ready
Jika task yang sedang dieksekusi dihentikan karena waktu eksekusinya telah habis

Ready Executing
Jika salah satu task yang sedang ready terpilih oleh scheduler

E Executing i Suspended S d d Jika task yang sedang dieksekusi terhenti karena membutuhkan sesuatu (resource, file, memori, dll) Suspended Executing Jika resource yang sedang ditunggu oleh task yang sedang suspended tersedia dan tidak ada task lain y yang g siap p dieksekusi Dormant Ready
Task yang baru dibentuk telah diterima oleh sistem operasi
RTS/Endro Ariyanto/20101006 #37

Manajemen Task

Apa tugas sistem operasi dalam hal manajemen task ?


Memelihara linked list yang memuat TCB semua t k yang task ng ready e d dan d n semua em task t k yang ng didi suspend pend Memelihara tabel permintaan resource

Perubahan status task dilakukan dengan cara g status word, sehingga: gg mengubah
mengurangi overhead karena lokasi task di memori tidak berubah performansinya dapat ditentukan (deterministic) karena ukuran TCB tidak berubah
RTS/Endro Ariyanto/20101006 #38

Agenda: g
Kernel Waktu-Nyata Teori T i Dasar D RTOS
Penjadualan proses Karakteristik task Real workload

Asumsi pada model task sistem waktu-nyata Penjadualan d l round-robin d b Cyclic executive Penjadualan prioritas tetap (pendekatan rate-monotonic) Penjadualan prioritas dinamis (pendekatan EarliestD dli Fi t) Deadline-First Perbandingan RMA dan EDF
RTS/Endro Ariyanto/20101006 #39

Teori Dasar Sistem Operasi WaktuWaktu-Nyata


Apakah yang dimaksud dengan proses/task ?
Objek/program dari sistem yang dapat dieksekusi

Status proses:

RTS/Endro Ariyanto/20101006 #40

Penjadualan j Proses
Penjadualan merupakan fungsi dasar dari sistem operasi Penjadualan bertujuan untuk memenuhi batas waktu (time constraint) yang dibutuhkan oleh program Penjadualan dilakukan dengan cara mengatur urut-urutan penggunaan resource Ada 2 macam penjadualan: Pre-run-time P ti Penjadualan dilakukan sebelum proses dieksekusi Kelebihan:
+ Dapat menjamin urut-urutan eksekusi proses + Mencegah pengaksesan resource secara bersama-sama + Mengurangi overhead akibat context switching

Run-time Penggunaan resource berdasarkan status proses Proses dengan prioritas tinggi dapat meng-interrupt proses
dengan status lebih rendah
RTS/Endro Ariyanto/20101006 #41

Karakteristik task Real workload

(1)

Setiap prosesor dalam satu waktu hanya boleh mengeksekusi sebuah task Sebuah task dalam satu waktu hanya boleh dieksekusi oleh sebuah prosesor Karakteristik waktu task i: Precedence constraint: Menentukan apakah suatu task perlu dieksekusi

sebelum task lain atau tidak R l Release atau t Arrival A i l Time Ti ri,j: release l time ti task t k i yang ke-j k j Phase i: release time task i yang ke-1 Response p time: waktu antara aktivasi task hingga gg selesai Absolute Deadline di: Saat dimana task harus selesai Relative Deadline Di: Maksimum response time task yang diperbolehkan Laxity Type: Urgency eksekusi task Period pi: Panjang interval minimum eksekusi task yang berurutan Execution Time ei: Maksimum waktu yang diperlukan oleh sebuah task yang dieksekusi sendirian dan semua resource yang dibutuhkan tersedia
RTS/Endro Ariyanto/20101006 #42

Karakteristik task Real workload (2)


Notasi matematis:

i = ri,1 dan ri,k = i + (k-1) x pi


Deadline absolut task i yang ke-j (di,j):

di,j = i + (j-1) (j 1) x pi + Di
Deadline absolut task i jika deadline relatifnya sama dengan periode pi:

di,k = ri,k + pi = i + k x pi
k = integer 1
RTS/Endro Ariyanto/20101006 #43

Asumsi pada model task sistem waktuwaktu-nyata


Asumsi pada model task bertujuan untuk menyederhanakan pemodelan:
Semua task adalah task periodik Deadline relatif suatu task adalah sama dengan periode atauframe-nya Semua task adalah independen

Tidak ada keharusan suatu task harus dieksekusi sebelum task


lainnya)

Tidak ada task yang mempunyai bagian yang nonpremptible Cost/overhead premption diabaikan Hanya H processing i requirement i t yang diperhatikan, di h tik requirement i t memori dan I/O diabaikan

Penjadualan yang banyak digunakan pada RTOS adalah round-robin karena sederhana dan predictable
RTS/Endro Ariyanto/20101006 #44

Agenda: g
Kernel Waktu-Nyata Teori T i Dasar D RTOS
Penjadualan proses Karakteristik task Real workload

Asumsi pada model task sistem waktu-nyata Penjadualan d l round roundd-robin b Cyclic executive Penjadualan prioritas tetap (pendekatan rate-monotonic) Penjadualan prioritas dinamis (pendekatan EarliestD dli Fi t) Deadline-First Perbandingan RMA dan EDF
RTS/Endro Ariyanto/20101006 #45

Penjadualan Round Round-Robin

(1)

Beberapa proses dieksekusi secara berurutan dan biasanya dikombinasikan dengan cyclic executive Setiap proses mendapat giliran eksekusi sebesar satu kuantum k tetap yang d disebut b time slice l Eksekusi task berhenti ketika waktunya habis, membutuhkan resource, atau task telah selesai Context te t s switching tc g te terjadi jad ketika et a tas task d dihentikan e t a Co akibat waktu eksekusinya habis atau terpaksa berhenti akibat membutuhkan resource Round-robin dapat memberi alokasi CPU secara adil pada proses dengan prioritas sama
RTS/Endro Ariyanto/20101006 #46

Penjadualan RoundRound-Robin

(2)

Contoh penjadualan 3 task dengan round-robin dikombinasikan dengan sistem premptive priority

PR: Jelaskan urut-urutan yang terjadi !


RTS/Endro Ariyanto/20101006 #47

Cyclic Executive (CE) (1)


Task periodik dieksekusi secara berurutan dan bergantian secara p pasti (deterministic) sesuai dengan g penjadualan p j prep

run-time

CE identik dengan tabel pemanggilan prosedur yang di k k i secara loop dieksekusi l di dimana setiap ti task t k identik id tik dengan d prosedur Siklus minor = frame:
Merupakan interval waktu eksekusi sebuah task

Siklus mayor y = hyperperiod yp p :


Merupakan waktu minimum yang diperlukan oleh seluruh task agar dapat memenuhi periode dan deadline-nya Identik dengan least common multiple (kelipatan persekutuan terkecil)

Pemilihan task dilakukan pada setiap akhir setiap frame, sehingga hi task t k yang sedang d running i tidak tid k dapat d t didi preempt t
RTS/Endro Ariyanto/20101006 #48

Cyclic Executive (CE) (2)


Ukuran frame harus cukup panjang sehingga eksekusi setiap task dapat selesai dalam satu frame Ukuran frame f harus lebih besar dari waktu eksekusi ei untuk setiap task Ti: C1: f max (ei)
1i n

PR: PR Jelaskan J l k maksud k d dari d i gambar b di atas t !


RTS/Endro Ariyanto/20101006 #49

Cyclic Executive (CE) (3)


Untuk memperoleh panjang siklus penjadualan sesingkat mungkin, mungkin maka panjang frame f ditentukan dengan rumus: C2: pi/f pi/f = 0 Untuk menjamin agar setiap task dapat memenuhi deadline-nya, maka ukuran frame harus kecil sehingga antara release time dan deadline setiap task minimum terdapat satu frame: gcd(p (pi, ,f) ) Di C3: 2f g
dimana: gcd = greatest common divisor (faktor persekutuan terbesar) Di = deadline relatif dari task i
RTS/Endro Ariyanto/20101006 #50

Cyclic Executive (CE) (4)


Contoh:

Dari tabel di atas dapat diketahui bahwa:


Hyperperiod-nya nya sebesar 660, 660 karena KPK dari 15, 15 20, 20 dan 22 adalah 660 C1: f ei f 3 C2: pi/f pi/f = 0 f = 2, 3, 4, 5, 10, ... C3: 2f gcd(pi,f) Di f = 2, 3, 4, 5 Maka ukuran frame yang mungkin adalah 3, 3 4, 4 atau 5

PR: Uraikan cara mendapatkan C1, C2, dan C3 !

RTS/Endro Ariyanto/20101006 #51

Agenda: g
Kernel Waktu-Nyata Teori T i Dasar D RTOS
Penjadualan proses Karakteristik task Real workload

Asumsi pada model task sistem waktu-nyata Penjadualan d l round-robin d b Cyclic executive Penjadualan prioritas tetap (pendekatan rate rate-monotonic) Penjadualan prioritas dinamis (pendekatan EarliestDeadline-First D dli Fi t) Perbandingan RMA dan EDF
RTS/Endro Ariyanto/20101006 #52

Penjadualan prioritas tetap (rate (rate-monotonic)

(1)

Setiap proses diberi prioritas dan prioritasnya tidak id k dapat d berubah b b h Rate Rate-Monotonic Monotonic Algorithm (RMA):
Merupakan salah satu jenis penjadualan dengan prioritas tetap yang paling optimal Pada RM task yang mempunyai periode eksekusi paling kecil diberi prioritas lebih tinggi daripada yang periodenya lebih lama Bertujuan agar deadline yang dapat dipenuhi menjadi lebih banyak
RTS/Endro Ariyanto/20101006 #53

Penjadualan prioritas tetap (rate (rate-monotonic)


Contoh:

(2)

Task 1 mempunyai periode terkecil sehingga diberi prioritas t ti tertinggi i dan d dieksekusi di k k i paling li awal l Pada saat t=4 periode kedua untuk 1 tiba sehingga 3 yang prioritasnya lebih rendah di-preempt PR: Jelaskan mengapa saat t=9 yang dieksekusi adalah 3 dan hitung total utilitasnya !
RTS/Endro Ariyanto/20101006 #54

Penjadualan prioritas Dinamis (EDF)

(1)

Prioritas yang dimiliki oleh suatu proses bisa berubah ubah berubah-ubah Earliest-Deadline-First (EDF):
Merupakan salah satu jenis penjadualan dengan prioritas dinamis yang populer Pada EDF task y yang g mempunyai p y periode p deadline p paling g mendesak pada setiap saat diberi prioritas paling tinggi

EDF sangat sesuai diterapkan pada prosesor tunggal dan setiap task dapat di-preempt EDF dapat meningkatkan utilitas CPU karena setiap task akan segera dieksekusi agar dapat memenuhi deadline-nya
RTS/Endro Ariyanto/20101006 #55

Penjadualan prioritas Dinamis (EDF)


Contoh:

(2)

Task 1 dan 2 di-release bersamaan, , tetapi p 1 dieksekusi lebih dahulu karena deadline-nya lebih awal PR: Jelaskan alasan pemilihan proses yang dieksekusi selanjutnya l j t untuk t k setiap ti pergantian ti eksekusi, k k i misal i l saat t t=2, t 2 6, 8, 12, dst !
RTS/Endro Ariyanto/20101006 #56

Perbandingan antara RM dan EDF


RM:

(1)

Waktu eksekusi lebih pasti (lebih mudah diprediksi) Jumlah proses yang mengalami keterlambatan deadline lebih pasti

Proses dengan prioritas rendah lebih sering mengalami keterlambatan


deadline (miss deadline)

Sering terjadi premption

EDF:
Lebih fleksibel Menghasilkan utilisasi lebih baik Jumlah proses yang akan mengalami keterlambatan deadline tidak dapat dipastikan Task yang sudah mengalami keterlambatan deadline akan diberi
prioritas paling tinggi

EDF sangat sesuai diterapkan pada sistem dimana kondisi overload sukar dihindari Premption dilakukan hanya jika terdapat proses yang mendekati deadline-nya
RTS/Endro Ariyanto/20101006 #57

Perbandingan antara RM dan EDF

(2)

PR: Berdasarkan tabel di atas, buatlah gambar

penjadualan task menggunakan RM dan EDF ! Penjadualan mana yang lebih baik dan apa alasannya !

RTS/Endro Ariyanto/20101006 #58

Referensi:
[LAP04] Laplante, P.A. 2004. Real-Time Systems d. IEEE Press D i and Design d Analysis A l i , 3rd P &J John h Willey and Son [STA03] Stalling, William. 2003. Computer

Organization and Architecture: Designing for Performance. 6th edition. Prentice Hall

RTS/Endro Ariyanto/20101006 #59

Anda mungkin juga menyukai