Real Time Operating System
Menurut wkipedia yang
dimaksud dengan realtime operating system (RTOS) adalah suatu sistem operasi
multitasking yang diperuntukan untuk aplikasi real time. RTOS memfasilitasi
pembentukan sistem real time tetapi tidak terdapat jaminan hasil akhir yang
ditawarkan akan menjadi real time. Hal ini memerlukan pengembangan aplikasi
yang benar. Sedangkan menurut Sebastian Fischmeister RTOS adalah suatu sistem
operasi yang sering digunakan seagai kontrol dari suatu devais dalam suatu
aplikasi yang tetap terhubung. Dikatakan juga bahwa RTOS adalah suatu sstem
operasi yang mendefinisikan dengan baik batasan waktu yang telah ditentukan.
Yang menjadi motivasi
dikembangkanya suatu sistem operasi yang diperuntukan khusus untuk sistem real
time sistem adalah karena pada sistem operasi biasa yang telah ada tidak
mendukung batasan yang ada pada sistem real time seperti scheduling policies,
proses sycronization atau arsitektr dari sistem realtime itu sendiri. Oleh
karena terdapatnya ketidaksesuian antara requirement dari realtme sistem dan
fasilitas yang ada pada sistem operasi biasa maka dikembangkan lah RTOS ini
dengan tujuan untuk Membuat suatu lingkungan yang sesuai dengan batasan waktu
yang keras pada eksekusi task dalam lingkungan yang reaktif. Dua ide kunci yang
ditanamkan yakni predictability (dapat mprediksi konsekuensi dari segala
keputusan di scheduling ) dan schedulability guarantees (memverifikasi
schedulability dari satu set task yang diberikan).
Komponen
RTOS
·
Scheduler adalah indikasi kapan eksekusi suatu
pekerjaan akan dilakukan Round-robin atau preempetive scheduling
·
Objects dibangun oleh kernel untuk memudahkan
pengembangan Terdiri dari tasks, semaphores, dan message queues
·
Services
adalah operasi yang diberikan kepada semua objek diantaranya timing, interrupt
handling, dan resource management
Karakteristik RTOS :
·
Reliability, kemampuan
bekerja tanpa intervensi manusia.
·
Predictability,
perilaku bisa diprediksi untuk rentang waktu yang telah ditentukan
·
Performance, mampu
menyelesaikan pekerjaan secepat mungkin
·
Compactness, ukuran dan
penggunaan resource terbatas, pengaruh dari desain dan biaya
·
Scalability, modular
untuk mendukung berbagai macam tingkat kekompleksan aplikasi
Fitur
Dikebanyakan sistem
realtime tidak menyediakan fitur-fitur yang biasa terdapat pada sistem desktop
(sistem komputer non realtime) hal ini dikarenakan oleh karena sistem realtime
biasanya mempunyai satu tujuan khusus, sistem realtime sering tidak membutuhkan
suatu interface untuk user, dan feature –feature yang ditemukan di sistem non
realtime membutuhkan lebih banyak substansional hardware daripada yang terdapat
pada sistem realtime.
Requirement
Terdapat beberapa
requirement standar yang harus dipenuhi dari sebuah RTOS, yang pertama yang
sangat dibutuhkan adalah aspek waktu. Aspek waktu ini meliputi sebagai contoh
periodik dan absolute timeout, atau suatu interface dari akses waktu seperti
clock_gettime dan clock_getres, juga singkronisasi waktu. Untuk lebih jelas nya
suatu RTOS harus dapa memenuhi tiga requirement kunci dari realtime sistem :
1. Prilaku pewaktuan dari
sistem operasi harus dapat diperkirakan
2. Sistem operasi harus dapat
mengatur pewaktuan dan penjadwalan
3. Sistem operasi harus
berjalan dengan cepat
Desain dan Metodologi
Terdapat dua desain
dasar pada RTOS yakni ; desain event driven dan desain time sharing. Pada
Desain event driven task berganti ketika suatu event yang memiliki prioritas
lebih tinggi membutuhkan layanan, disebut juga pre-emtive priority. Sedangkan
pada desain time sharing task berganti pada saat interrupt clock dan pada event
disebut juga dengsn round robin. Desain time sharing perubahan task lebih
sering dari yang dibutuhkannya tetapi memberikan multi tasking yang lebih
deterministik dan lebih rapat.
Dalam hal struktur dari
sistem operasi realtime terdapat beberapa struktur yang dapat diterapkan pada
sistem operasi realtime seperti monolitic os, layered os, client-server os.
Sebagai contoh pada struktur monolitik sistem operasi terdiri dari satu bagian
code yang dibagi kedalam modul-modul yang berbeda. Masalah atau kelemahan pada
struktur monoitik ini adalah susah nya untuk melakuan debug. lain hal nya
dengan struktur yang lebih baru yakni client server penekanan aplikasi sebagai
klien yang melakukan permintaan layanan melalui pemanggilan sistem terhadap
server task, keuntungan pada tipe struktur ini adalah lebih mudah untuk
melakukan debug dan scale dan kemudahan distribusi melewati multiple prosesor,
juga kemungkinan load dan unload modul secara dinamis.
Metodologi yang diterapkan pada suatu RTOS
:
1. Priority-based Kernels
:VxWorks, OS9, pSOS
Objektif: performansi tinggi untuk respon
waktu rata-rata ke event eksternal
Karakteristk : fast context switching,
small foot print, eficient interupt hundling premptable primitives, fast
communication mechanism, driven by real time clock, Task scheduling with fixed
priorities, synchronization tools, limitations communication protocols.
2. RT extensions of
timesharing systems :RT-Mach, RT-Unix
Objektif: Memperpanjang waktu-berbagi
(comercial tme-sharing) sistem untuk memenuhi batasan real-time
Karakteristk : Reuse standard peripherals
and interfaces, Speedier development, Reused Kernel, Task Scheduling with fixed
priorities, Re-implemented User-Level Threads, Nonpreemptable syscalls,
interrupts.
3. Research operating
systems:Spring, HARTIK
Objktif: kemampuan untuk menangani task
dengan batasan waktu yang ekspisit seperti perioda dan batas waktu.
Karakteristik: Scheduling guarantee
mechanisms, Characterize tasks with additional parameters, Avoidance of
nondeterministic blocking time
Implementasi
Secara umum dalam
implementasi nya RTOS harus dapat menyediakan preemptive (priority based
scheduling ), preemptive kernel dan minimalisasi dari latency (jumlah waktu
dari mulai muncul nya event sampai event tersebut dilayani). Sedangkan dalam
hal fungsionalitas yang harus terdapat pada RTOS antara lain adalah sebagai
berikut :
1. Manajemen prosesor
2. Manajemen Memori
3. Manajemen waktu
4. Manajemen task
5. Komunikasi dan
singkronisasi task
Pada sumber yang lain dikatakan ke lima
fugsionalitas diatas dirangkum kedalam tiga fungsi utama yakni scheduler,
resource management dan dispatcher.
JENIS
DANMODEL SISTEM OPERASI REALTIME
1.
Hard Real-Time System
menjamin
bahwa proses waktu nyata dapat diselesaikan dalam batas waktu yang telah
ditentukan. apabila terjadi kegagalan menyelesaikan task maka sistem akan
mengalami efek berbahaya yang dapat merusak sistem secara keseluruhan.
2.
Soft Real-Time System
Menyediakan
prioritas untuk mendahulukan proses yang menggunakan real-time dari pada proses
yang tidak menggunakan real-time. jika terjadi kegagalan mencapai deadline
dalam waktu yang telah ditentukan maka sistem akan mengalami efek yang tidak
begitu berbahaya bagi sistem. Seperti terjadinya penurunan
performa sistem.
3.
Firm real time system
Firm
real time system memiliki sifat yang sama dengan soft real time system, yaitu
mengenai toleransi waktu. Tapi sistem model ini tidak akan bekerja dan
menyelesaikan tugasnya ketika waktu deadline sudah lewat. Sistem
ini akan berhenti bekerja tapi tidak akan menyebabkan failure pada keseluruhan
sistem.
4.
Semi Hard Real-Time System (HRTS) atau Semi Soft Real-Time ( SRTS )
Metoda
ini merupakan gabungan antara Semi Hard Real-Time System (HRTS) atau Semi Soft
Real-Time ( SRTS ). Dengan demikian waktu deadlinenya lebih pendek jika
dibandingkan dengan soft real-time ( SRTS ).
5.
Interaktif Deadline ( Waktu Deadlinenya Bisa Ditawar )
Pada
interaktif real-time, maka waktu deadlinennya bisa ditawar, artinya tidak
secara mutlak pada titik tertentu, tetapi tergantung dari kesepakatan yang
ditentukan dan fleksibel.
6.Probabilistic
/ Statistik
Metode
ini biasanya menggunakan teori probabilitas / teori kemungkinan dengan metoda
statistik.
7.Intelligence
RTS
Metode
ini biasanya menggunakan Expert Systems / Kecerdasan buatan / Artifial
Inteligence atau Kendali Cerdas.
KLASIFIKASI
SISTEM OPERASI REALTIME
• Clock-based Task
Sistem
Waktu Nyata yang diukur berdasarkan konstanta waktu, yaitu waktu yang diambil
dari respon suatu plant terhadap perubahan input atau beban. Konstanta waktu
bisa diukur dalam satuan jam untuk proses kimia atau detik untuk sistem
penerbangan. Semakin kecil konstanta waktu maka sampling rate semakin kecil.
Sinkronisasi diperoleh dengan menambahkan clock pada sistem computer yang
dikenal dengan real-time clock. Sinyal clock ini digunakan untuk menginterrupt
operasi komputer pada waktu-waktu yang telah ditetapkan (Clock-interrupt).
• Event-Based Task
Sistem
yang beraksi karena respon terhadap suatu kejadian (event). Contoh menutup
katup pada saat permukaan air sudah mengenai batas penuh. Digunakan interrupt
untuk memberitahukan komputer aksi yang diperlukan atau bisa juga mempergunakan
pooling (komputer menanyakan (polls) pada sensor apakah perlu dilakukan aksi).
• Interactive Systems
Sistem
waktu nyata yang terjadi karena adanya suatu kejadian dan waktu rata-rata dari
respon kejadian ini tidak boleh melebihi waktu yang ditetapkan. Jadi merupakan
gabungan antara clock-based dan event-based hanya bedanya waktu respon setiap
kejadian tidak selalu sama. Misal, pengambilan uang di ATM.
Konsep RTOS
1.
Time
Services
Clocks dan time services adalah beberapa
fasilitas dasar yang disediakan untuk programmer oleh setiap sistem operasi
real-time . Waktu layanan yang diberikan oleh sistem operasi didasarkan pada software
clock yang disebut systems clock yang dikelola oleh sistem operasi,
dikelola oleh kernel berdasarkan interupsi yang diterima dari hardware clock.
Karena hard real-time systems biasanya memiliki kendala waktu (timing
constraints) dalam kisaran mikro detik, system clock harus memiliki
resolusi untuk mendukung layanan waktu yang diperlukan, sedangkan sangat sulit
bagi perancang real-time operation systems untuk mendukung hal tersebut dengan sangat
baik. Hardware clock secara periodik
menciptakan interrupt (time service interrupts). Sebuah thread
dapat mendapatkan current time readingdari system clock
dengan memanggil system call yang didukung oleh sistem operasi. Semakin
baik resolusi dari clock, semakin
sering kebutuhan untuk time service interrupts dan lebih besar jumlah processor
time yang kernel habiskan dalam merespon interrupt tersebut.
2.
Clock
Interrupt Processing
Setiap kali jam interupsi terjadi , selain incrementing software clock,
handler routine melakukan kegiatan sebagai berikut:
•
Process
Timer Events
Sistem operasi real-time menangani baik
per-process timer queues atau single system-wide timer queue. Sebuah timer
queu berisi semua timer yang diatur
berdasarkan urutan waktu masa berlakunya (expiration times) berakhir . Setiap
waktu dikaitkan dengan handler routine. Handler routine adalah fungsi yang
harus dipanggil saat timer berakhir . Pada setiap clock interrupt, kernel akan
memeriksa struktur data timer dalam queue timer untuk melihat apakah ada timer
event telah terjadi . Jika ditemukan bahwa timer event telah terjadi , maka
antrian rutin handler yang sesuai dalam ready queue.
•
Update ready
list
Sejak clock event yang terakhir terjadi, beberapa tugas mungkin telah
tiba atau berubah menjadi siap karena kondisi tertentu yang membuat task itu
menunggu telah dipenuhi. Task dalam queue diperiksa, tasks yang ditemukan telah
berubah dari posisi menunggu menjadi siap, masuk dalam ready queue. Jika
ditemukan sebuah task yang memiliki prioritas lebih tinggi daripada tugas yang
sedang berjalan telah menjadi siap, maka tugas yang sedang berjalan didahului
dan scheduler dipanggil.
•
Update
Execution Budget
Pada setiap clock interrupt, scheduler
mengurangi time slice (budget) yang tersisa untuk mengeksekusi task. Jika sisa
budget menjadi nol dan task tidak selesai, maka task tersebut didahului,
kemudian scheduler dipanggil untuk memilih tugas lain untuk dijalankan.
Providing High Clock Resolution
Terdapat dua kendala utama dalam menyediakan timer resolusi tinggi .
Pertama, overhead yang terkait dengan pemrosesan clock interrupt menjadi
berlebihan . Kedua, jitter yang berkaitan dengan time lookup system call
(clock-gettime()) sering dari urutan beberapa milidetik . Oleh karena itu,
tidak berguna untuk menyediakan clock dengan resolusi yang lebih baik dari ini.
Namun, beberapa aplikasi real-time perlu berurusan dengan timing constrain dari
urutan beberapa nanodetik.
Sebuah cara untuk memberikan clock resolution cukup baik adalah dengan
pemetaan hardware clock ke ruang alamat aplikasi . Sebuah aplikasi kemudian
dapat membaca jam hardware secara langsung ( melalui proses pembacaan memori normal) tanpa harus melakukan system
call. Tetapi membuat hardware clock terbaca oleh aplikasi secara signifikan
mengurangi portabilitas dari aplikasi.
3.
Timers
Timer service adalah layanan penting yang disediakan untuk aplikasi
oleh semua sistem operasi real-time. Sistem operasi real-time biasanya
mendukung dua jenis utama timer: timer periodik dan aperiodik (One Shot) timer.
1.
Periodic Timers
Digunakan terutama untuk pengambilan sampel
event secara berkala atau melakukan beberapa kegiatan secara berkala. Setelah
periodik timer diatur, setiap kali setelah masa berlakunya habis handler
routine yang sesuai dipanggil, kemudian dimasukkan kembali ke dalam timer
queue.
2.
Aperiodic
(or One Shot) Timers
Timer
ini ditetapkan untuk berakhir hanya sekali. Contohnya adalah watchdog timer seperti
dibawah ini :
Watchdog
timer digunakan secara ekstensif dalam real-time programs untuk mendeteksi ketika task
melewati tenggat waktu, dan menginisiasi exception handling procedures pada
kejadian tersebut. Sebuah contoh penggunaan watchdog timer seperti gambar
diatas, watchdog timer diatur pada awal dari sebuah critical function f()
tertentu melalui sebuah call wd_start (t1). wd_start (t1) call mengatur
watchdog timer berakhir sesuai deadline yang ditentukan (t1) dari awal tugas.
Jika fungsi f() tidak menyelesaikan bahkan setelah t1 telah berlalu, maka
watchdog timer berakhir, menunjukkan task deadline telah terlewati dan
exception handling procedures dimulai. Bila task selesai sebelum waktu wathcdog
timer selesai (sesuai deadlinenya) maka watchdog timer di reset menggunakan wd_tickle() call.
Tugas RTOS
1.
Idle (Non-Migrating)
Adalah
prioritas terendah, prioritas ini akan di eksekusi bila sudah tidak ada task yang
dijalankan. Prioritasi idle ini bersifat statis dan tidak dilakukan perhitungan
secara periodik
2.
Dinamic
Adalah
prioritas yang melakukan perhitungan secara periodik untuk meningkatkan waktu
respon rata-rata. Pengerjaan prioritas ini dilakukan setelah prioritas
Real-time di jalankan.
3.
Real-Time
Adalah
prioritas tertinggi yang bersifat stati dan tidak ada penghitungan ulang. Task
hard-real time bekerja pada level ini
MANAFAAT
SISTEM OPERASI REALTIME
Sebuah
RTOS memberikan manfaat, seperti:
•
Task
scheduling – task dipanggil ketika dibutuhkan menjamin aliran program dan
respons event yang lebih baik.
•
Multitasking
– penjadwalan task memberikan ilusi menjalankan sejumlah task secara simultan.
•
Deterministic
behaviour – event dan interupsi ditangani dalam sebuah waktu yang ter-definisi.
•
Shorter
ISR – memungkinkan perilaku interupsi yang lebih dapat ditentukan.
•
Inter-task
communication – mengelola sharing data, memori dan sumber daya perangkat keras
diantara beberapa task.
•
Defined
stack usage – setiap task dialokasikan ruang stack, memungkinkan penggunaan
memori yang dapat diperkirakan.
•
System
management – memungkinkan kita untuk fokus pada pengembangan aplikasi daripada
mengelola sumber daya.
KEUNGGULANSISTEM
OPERASI REALTIME
- Mengatur waktu yaitu dengan penyediaan layanan kernel .
- Ketentuan untuk menyela.
- Task memiliki prioritas.
- Dapat menunda low priority task dan menjalankan high priority task segera ketika kebutuhan muncul.
http://generasiwacana.blogspot.co.id/2015/12/perkembangan-dan-pengertian-sistem.html
Tidak ada komentar:
Posting Komentar