Author : Syah Hamza Ramadhan   , Dadet Pramadihanto, Hendik Eko HS
ABSTRAK

Penjadwalan merupakan bagian utama pada sebuah real-time operating system (RTOS). Penjadwalan akan menentukan bagaimana sebuah RTOS akan berjalan ketika terdapat task yang harus dikerjakan. Pada umumnya, sistem operasi membedakan antara penjadwalan thread yang di atur oleh software kernel scheduler dan penjadwalan interrupt service routine (ISR) yang langsung diatur oleh hardware. Hal tersebut akan menimbulkan masalah priority inversion dimana ISR dengan prioritas rendah dapat mengintrupsi thread dengan prioritas tinggi. Dari permasalahan tersebut, penelitian ini akan menjadi solusi dengan memadukan konsep penjadwalan oleh software kernel dan penjadwalan ISR yang langsung diatur oleh hardware. Dari konsep penjadwalan dengan ruang prioritas terpadu ini maka akan dibuat interrupt-driven scheduling dimana thread akan menjadi interrupt. Dalam tugas akhir ini interrupt-driven scheduling akan diimplementasikan pada mikrokontroller ARM Cortex-M, sehingga nantinya hanya ada ISR yang berjalan pada sistem operasi. Dengan mengimplementasikan konsep interrupt-driven scheduling diharapkan kernel sebuah RTOS akan lebih sederhana untuk mengatur jalannya sebuah sistem operasi diatasnya, dan mengijinkan perangkat keras untuk menjalankan penjadwalan pada sistem interrupt. Hasilnya dibuat dua desain RTOS, desain pertama FLoW RTOS akan berjalan pada layer aplikasi dan desain kedua berjalan pada sistem interrupt. Terdapat dua perhitungan performa yang diuji yaitu performa kecepatan pembuatan task dan performa kecepatan context switch. Dari percobaan dan pengujian yang telah dilakukan, performa pembuatan task pada desain pertama membutuhkan waktu 52 mikro detik sedangkan pada desain kedua membutuhkan waktu 24 mikro detik. Untuk performa context switch desain pertama membutuhkan waktu 18 mikro detik sedangkan desain kedua membutuhkan waktu 7 mikro detik. Hal ini membuktikan bahwa performa pembuatan task dan context switch lebih ringan desain kedua daripada desain pertama karena ringan nya kernel yang dibuat dan berjalannya task di sistem interrupt. Namun desain kedua belum dapat menerapkan preemption untuk melakukan context switch ditengah-tengah jalannya task karena evaluasi deadline berjalan menunggu selesainya task untuk dieksekusi.

[DOWNLOAD ABSTRACT]