Kamis, 26 Oktober 2017

Real Time Operating System



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
  1. Mengatur waktu yaitu dengan penyediaan layanan kernel .
  2. Ketentuan untuk menyela.
  3. Task memiliki prioritas.
  4. Dapat menunda low priority task dan menjalankan high priority task segera ketika kebutuhan muncul.
REFERENSI :

http://generasiwacana.blogspot.co.id/2015/12/perkembangan-dan-pengertian-sistem.html

Tidak ada komentar:

Posting Komentar