Dokumen tersebut membahas teknik penjadwalan tugas pada sistem waktu nyata untuk mengalokasikan sumber daya prosesor secara efisien agar tidak melewati deadline. Ia menjelaskan konsep-konsep kunci seperti release time, deadline absolut dan relatif, serta algoritma penjadwalan seperti rate-monotonic dan earliest deadline first. Dokumen ini juga membahas masalah prioritas inversi dan cara menangani ketergantungan antar tugas terhadap sumber daya bersama
2. • Membahas mengenai teknik untuk mengalokasikan dan
menjadwalkan tugas pada prosesor agar tidak melewati deadline.
• Kendala : jumlah tugas, Penyisipan tugas, kebutuhan sumberdaya,
karakteristik tugas, dan tenggat waktu (deadline).
• Istilah :
• Release time, waktu saat semua data yang dibutuhkan sudah tersedia
untuk memulai eksekusi sebuah tugas.
• Deadline, batas waktu dimana tugas harus menyelesaikan
eksekusinya.
• Absolute deadline, Waktu dimana tugas harus diselesaikan.
• Relative deadline, Waktu deadline absolut dikurangi release time.
Computer Engineering MCU, Sistem Waktu Nyata - 2012
3. • n Jumlah tugas dalam sebuah set tugas
• ei Waktu eksekusi Ti
• Pi Periode tugas Ti, jika tugasnya periodik
• Ii Periode ke-k dari tugas periodik Ti dimulai saat waktu Ii +
(k-1)Pi, dimana Ii disebut sebagai fase dari tugas Ti
• di Deadline relatif dari tugas Ti (relative terhadap release
time)
• Di Deadline absolut dari tugas Ti
• ri Release time dari Ti
• hT (t) Jumlah dari waktu eksekusi sejumlah tugas pada set tugas
yang memiliki deadline absolut tidak lebih dari t
Computer Engineering MCU, Sistem Waktu Nyata - 2012
4. Algoritma
Penjadwalan
Rate-Monotonic
(RM)
Earliest
Deadline First
• Penjadwalan Rate-Monotonic algorithm adalah satu dari banyak sistem
penjadwalan yang paling banyak dipelajari dan digunakan. Prioritas sebuah
tugas berbanding terbalik dengan periodenya.
• Earliest deadline First (EDF) bersifat dynamic-priority; prioritas tugas tidak
tetap, namun berubah tergantung kedekatan mereka dengan deadline absolut.
EDF juga disebut dengan algoritma penjadwalan deadline-monotonic.
Computer Engineering MCU, Sistem Waktu Nyata - 2012
5. Misalkan ada 3 buah tugas, dengan P1 = 2, P2 = 6, P3 = 10. Waktu eksekusinya adalah
e1 = 0.5, e2 = 2.0, e3 = 1.75, dan I1 = 0, I2 = 1, I3 = 3. Selama P1 < P2 < P3, tugas T1
memiliki prioritas tertinggi. Setiap kali dia dikerjakan, dia menyisipi apapun yang
sedang berjalan di prosesor. Tugas T3 tidak dapat dieksekusi ketika tugas T1 dan T2
belum selesai.
• Jika sebuah set tugas memiliki nilai pemanfaatan prosesor tidak lebih dari
𝑛 2
1
𝑛 − 1 , Maka set tugas tersebut dapat dijadwalkan menggunakan algoritma
RM.
• Keterangan : n = jumlah tugas dalam satu set tugas
Computer Engineering MCU, Sistem Waktu Nyata - 2012
6. • Tugas periodik merupakan tugas yang dilepaskan sewaktu-waktu.
• Kita memiliki tugas fiksi ber-prioritas tinggi dengan periode 10 dan waktu
eksekusi 2.5. tugas tersebut menggunakan prosesor pada waktu yang ditunjukkan
dengan arsiran. Setiap 10 unit waktu, prosesor dapat mengeksekusi hingga 2.5
unit tugas sporadis. Jika, dalam waktu tersebut, tidak ada tugas sporadis yang
tiba, prosesor akan diam (idle). Prosesor tidak dapat mengeksekusi tugas sporadis
diluar interval yang diarsir.
Computer Engineering MCU, Sistem Waktu Nyata - 2012
7. Penggunaan prosesor oleh tugas sporadis diindikasikan dengan persegi yang diarsir.
2.5 unit waktu dialokasikan tiap 20 unit periode untuk tugas sporadis. Sebuah tugas
sporadis membutuhkan 5 unit waktu untuk mengambil alih kerja prosesor. Ia tiba di
waktu 5. Pada waktu 7.5, prosesor telah memberikan semua kuota (2.5 unit) pada
tugas tersebut pada interval [0, 10] sehingga ia bisa disisipi oleh tugas lain.
Kemudian pada waktu 10 ia melanjutkan eksekusinya lagi dengan porsi waktu 2.5
unit waktu untuk interval [10, 20]. Tugas sporadis berikutnya membutuhkan waktu
eksekusi 7.5 dan ia datang pada waktu 27.5. ia menggunakan porsi waktu eksekusi
untuk interval [20, 30] dan [30, 40]. Total waktu eksekusi sekarang baru 5.
Dilanjutkan dengan porsi waktu pada interval [40, 50], sehingga tugas selesai
dieksekusi pada waktu 42.5.
Computer Engineering MCU, Sistem Waktu Nyata - 2012
8. • Salah satu kelemahan RM algorithm adalah bahwa prioritas
tugas ditentukan oleh periodenya. Kadang-kadang, kita harus
mengubah prioritas tugas agar semua tugas kritis dapat
terselesaikan. Solusinya adalah dengan meningkatkan prioritas
tugas kritis dengan mengurangi periodenya. Alternatif lain
adalah dengan mengurangi periode tugas kritis dan menambah
periode tugas yang non-kritis.
Computer Engineering MCU, Sistem Waktu Nyata - 2012
9. • kadangkala tugas membutuhkan waktu akses sumberdaya yang
tidak bisa dibagi. Misalnya, sebuah tugas menuliskan perintah
dalam sebuah blok memori.
• Sebuah tugas yang sedang memegang sumberdaya tak-
terbagikan dapat dikatakan sedang berada dalam critical
section.
• Satu jalan untuk meyakinkan akses eksklusif adalah dengan
cara menjaga critical sections dengan binary semaphores. Hal ini
seperti kunci.
• Ketika semaphores terkunci, ia mengindikasikan bahwa ada
tugas yang sedang berada dalam critical sections.
Asm : Tugas dapat disisipi di titik eksekusi manapun
Computer Engineering MCU, Sistem Waktu Nyata - 2012
10. • Tugas T1, T2, T3, T1 memiliki prioritas tertinggi dan T3 memiliki prioritas terendah.
• Ada sebuah critical section S yang T1 dan T3 gunakan.
• T3 mulai eksekusi pada waktu t0. Saat waktu t1, ia memasuki critical section, S.
• T1 dilepaskan saat waktu t2 dan menyisipi T3.
• Ia berjalan sampai t3 dan ia mencoba untuk memasuki critical section S. Critical
section S masih terkunci oleh tugas T3.
• tugas T1 ditunda dan T3 meneruskan eksekusi.
• Pada waktu t4, tugas T2 dilepaskan. Ia menyisipi T3. T2 tidak membutuhkan S dan
tetap berjalan hingga t5.
• T3 meneruskan dan keluar dari critical section S pada t6. T1 sekarang bisa
menyisipi T3 dan masuk critical section.
Lihat bahwa meskipun T2 memiliki prioritas yang lebih rendah
daripada T1, ia dapat menunda T1 secara tidak langsung (dengan
menyisipi T3, memblok T1). Fenomena ini dikenal dengan istilah
Priority inversion.
Computer Engineering MCU, Sistem Waktu Nyata - 2012
11. Tugas Waktu kedatangan Waktu eksekusi Deadline Absolut
T1
0 10 30
T2
4 3 10
T3
5 10 25
Misalkan sebuah set tugas aperiodik tiba pada sebuah sistem
Ketika T1 tiba, hanya tugas itulah yang menunggu untuk dijalankan, dan lalu ia
mulai mengeksekusi secepatnya. T2 tiba pada waktu 4; selama d2 < d1 , ia
memiliki prioritas yang lebih tinggi daripada T1 dan kemudian menyisipinya. T3
tiba pada waktu 5; namun, karena d3 > d2, ia memiliki prioritas lebih rendah
daripada T2 dan harus menunggu T2 untuk selesai. Ketika T2 selesai (pada waktu
7), T3 mulai eksekusi (karena ia memiliki prioritas yang lebih besar daripada T1).
T3 berjalan hingga 15, saat itulah T1 dapat melanjutkan eksekusinya hingga
selesai.
Computer Engineering MCU, Sistem Waktu Nyata - 2012
12. • Di seluruh bab ini, kita telah mengasumsikan bahwa selalu ada waktu
yang cukup bagi tugas kritis untuk melakukan eksekusi.
• Cukup sering, waktu worst-case eksekusi lebih besar nilainya
dibandingkan dengan waktu average-case eksekusi.
• Hal ini menghasilkan lebih banyak waktu yang dijadwalkan untuk
tugas daripada yang seharusnya.
• Pertimbangkan untuk tiap tugas yang kritis, kita punya dua versi,
tugas primer dan tugas alternatif.
• Baik menyelesaikan tugas primer, maupun tugas alternatif, akan
mempengaruhi tugas kritis yang sedang dieksekusi. Namun, tugas
alternatif menyediakan pelayanan yang dapat diterima, sementara
tugas primer bisa menyediakan kualitas pelayanan yang lebih baik.
Computer Engineering MCU, Sistem Waktu Nyata - 2012
13. Tugas Primer Tugas Alternatif
Worst-case runtime 20 5
Average runtime 7 4
Period 15 15
Sebuah set tugas, yang terdiri atas tugas primer dan tugas alternatif. Deadline
relatif sama dengan periode tugas. Parameter ditunjukan dengan tabel dibawah ini
Computer Engineering MCU, Sistem Waktu Nyata - 2012
14. Hanya jika tugas primer tersedia, set tugas ini bisa saja tidak mungkin untuk
dijadwalkan; tidak akan ada waktu untuk menyelesaikan tugas primer. Namun, selama
kita memiliki tugas alternatif, kita dapat membangun sebuah jadwal yang ditunjukkan
oleh gambar dibawah ini. Kita membolehkan 10 unit waktu bagi tugas primer untuk
berjalan di tiap periodenya. kita sebut ini dengan run-time limit sebuah tugas primer.
Mayoritas waktu (selama average runtime hanya 7) tugas primer akan selesai pada
waktu tersebut, dan kita dapat memperoleh kembali waktu diluar waktu penyelesaian
untuk aktivitas lain. Namun demikian, jika tugas primer berjalan lebih dari 10, kita
membatalkannya dan memulai tugas alternatif. Sementara ia tidak menyediakan hasil
yang sebaik tugas primer, tugas alternatif paling tidak menjamin hasil output yang
dapat diterima dalam waktu eksekusi terburuk 5. Jadi, kita dijamin paling tidak, satu
tugas menemui deadlinenya.
Computer Engineering MCU, Sistem Waktu Nyata - 2012