(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) ( )
RTS/Endro Ariyanto/20101006 #1
Kernel WaktuWaktu-Nyata
Apakah yang dimaksud dengan proses (task) ?
Program yang sedang dieksekusi
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
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) ( )
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
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
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) ( )
RTS/Endro Ariyanto/20101006 #8
RTS/Endro Ariyanto/20101006 #9
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)
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
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)
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
switching
Apa tujuannya ?
RTS/Endro Ariyanto/20101006 #18
Contoh
Sistem dapat p menangani 3 interrupt
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)
Agenda: g
Kernel Waktu-Nyata
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:
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:
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
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
Tahap Inisialisasi
Tahapan inisialisasi pada sistem foreground/background:
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
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
JU @APP LOAD R& R&, LOAD R&, LOAD R&, LOAD R&, LOAD R&, LOAD R&, LOAD R&, , LOAD R&, EPI RI
Agenda: g
Kernel Waktu-Nyata
Model Task Task-Control Block ( (TCB) (TCB) Status task Manajemen task
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
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
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
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
Status proses:
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
(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
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
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
(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
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
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
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
(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
(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
(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
(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
(1)
Waktu eksekusi lebih pasti (lebih mudah diprediksi) Jumlah proses yang mengalami keterlambatan deadline lebih pasti
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
(2)
penjadualan task menggunakan RM dan EDF ! Penjadualan mana yang lebih baik dan apa alasannya !
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