SISTEM WAKTU NYATA

Standar

Sistem waktu – nyata (real – time system) begitu pesat berkembang dan aplikasinya
telah meluas di berbagai bidang. Mesin ATM (Automatic Teller Machine) bank, sistem
informasi saham, pemesanan tiket pesawat terbang, beberapa mobil berteknologi EFI
(Electronic Fuel Injection) dan VVT-i (Variable Valve Timing with Intelligence), sistem
jajak pendapat pemilu capres / cawapres merupakan beberapa contoh praktis sistem waktu –
nyata yang kita jumpai setiap hari. Pengalaman penulis dengan sistem waktu – nyata
dimulai pada tahun 1988 ketika mulai mengenal dan belajar bahasa komputer Ada,
kemudian berlanjut dengan ikut serta dalam pengembangan simulasi flight control fly – by –
wire (FbW) pesawat terbang N250 menggunakan sistem operasi RTU (Real – Time UNIX)
(1995), simulasi olah yudha (war game) (2000), simulasi helikopter Sikorsky UH60 Black
Hawk (2003), dan simulasi pesawat terbang CN235 pada sistem operasi waktu – nyata
VxWorks (2004), serta simulasi pesawat tempur Bae Mk128 Hawk yang ditulis dalam
bahasa komputer Ada (2007).
Untuk mengenali dan mempelajari sistem waktu – nyata, pembaca bisa membaca buku
ini. Buku ini ditulis dengan maksud agar dapat digunakan oleh siapa saja, dengan harapan
dapat membantu mempermudah pembaca dalam memahami sistem waktu – nyata yang
memiliki lingkup sangat luas. Bermacam – macam topik tentang sistem waktu – nyata
beserta aplikasinya dibahas dalam buku ini. Selain itu, materi sistem waktu – nyata juga
dilengkapi dengan contoh implementasi program menggunakan bahasa komputer C / C++
dan Ada yang kiranya akan banyak menolong pembaca dalam memahami materi. Disini
penulis menggunakan berbagai kompiler seperti Microsoft Visual C++, Borland Turbo
C++ dan GNAT (GNU Ada Compiler).
Di Indonesia, materi sistem waktu – nyata diberikan di program studi Teknik
Informatika, Teknik Komputer, Teknik Elektro, Teknik Fisika, dan lain – lain. Sebagai
prasyarat untuk mempelajari sistem waktu – nyata, pembaca disarankan sudah memahami
organisasi dan arsitektur komputer, sistem operasi, rekayasa perangkat – lunak, bahasa
pemrograman C / C++ dan Ada. Penulis memilih implementasi dengan menggunakan
bahasa pemrograman C / C++ dan Ada, karena disamping bahasa C dan C++ serta Ada
mendukung prinsip sumber terbuka (open source), juga pembaca dapat mempelajari lebih
dalam bahkan dapat mengembangkan penelitian sendiri algoritma – algoritma dan prosedur
– prosedur yang ada dalam implementasi sistem waktu – nyata.

Disebut juga dengan Sistem waktu nyata. Sistem yang harus menghasilkan respon yang tepat dalam batas waktu yang telah ditentukan. Jika respon komputer melewati batas waktu tersebut, maka terjadi degradasi performansi atau kegagalan sistem. Sebuah Real time system adalah sistem yang kebenarannya secara logis didasarkan pada kebenaran hasil-hasil keluaran sistem dan ketepatan waktu hasil-hasil tersebut dikeluarkan. Aplikasi penggunaan sistem seperti ini adalah untuk memantau dan mengontrol peralatan seperti motor, assembly line, teleskop, atau instrumen lainnya. Peralatan telekomunikasi dan jaringan komputer biasanya juga membutuhkan pengendalian secara Real time.
Berdasarkan batasan waktu yang dimilikinya, Real time system ini dibagi atas:
1.Hard Real time
2. Soft Real time
3. Firm Real time
Komponen dari Real time system ini adalah:
1. Perangkat keras,
2. Sistem Operasi Real time,
3. Bahasa Pemrograman Real time,
4. Sistem Komunikasi.

Saya akan mencoba sedikit menggambarkan fasilitas penjadualan yang dibutuhkan untuk mendukung komputasi real-time dengan bantuan sistem komputer.
Suatu sistem komputasi dinamakan real-time jika sistem tersebut dapat mendukung eksekusi program/aplikasi dengan waktu yang memiliki batasan. Dengan kata lain, sistem real-time harus memenuhi kondisi berikut:
• Batasan waktu: memenuhi deadline, artinya bahwa aplikasi harus menyelesaikan tugasnya dalam waktu yang telah dibatasi.
• Dapat diprediksi: artinya bahwa sistem harus bereaksi terhadap semua kemungkinan kejadian selama kejadian tersebut dapat diprediksi.
• Proses bersamaan: artinya jika ada beberapa proses yang terjadi bersamaan, maka semua deadline nya harus terpenuhi.
Komputasi real-time ada dua jenis, yaitu sistem Hard Real-time dan sistem Soft Real-time.
Sistem Hard Real-Time
Sistem hard real-time dibutuhkan untuk menyelesaikan critical task dengan jaminan waktu tertentu. Jika kebutuhan waktu tidak terpenuhi, maka aplikasi akan gagal. Dalam definisi lain disebutkan bahwa kontrol sistem hard real-time dapat mentoleransi keterlambatan tidak lebih dari 100 mikro detik. Secara umum, sebuah proses di kirim dengan sebuah pernyataan jumlah waktu dimana dibutuhkan untuk menyelesaikan atau menjalankan I/O. Kemudian penjadual dapat menjamin proses untuk selesai atau menolak permintaan karena tidak mungkin dilakukan. Mekanisme ini dikenal dengan resource reservation. Oleh karena itu setiap operasi harus dijamin dengan waktu maksimum. Pemberian jaminan seperti ini tidak dapat dilakukan dalam sistem dengan secondary storage atau virtual memory, karena sistem seperti ini tidak dapat meramalkan waktu yang dibutuhkan untuk mengeksekusi suatu proses.
Contoh dalam kehidupan sehari-hari adalah pada sistem pengontrol pesawat terbang. Dalam hal ini, keterlambatan sama sekali tidak boleh terjadi, karena dapat berakibat tidak terkontrolnya pesawat terbang. Nyawa penumpang yang ada dalam pesawat tergantung dari sistem ini, karena jika sistem pengontrol tidak dapat merespon tepat waktu, maka dapat menyebabkan kecelakaan yang merenggut korban jiwa.
Sistem Soft Real-Time
Komputasi soft real-time memiliki sedikit kelonggaran. Dalam sistem ini, proses yang kritis menerima prioritas lebih daripada yang lain. Walaupun menambah fungsi soft real-time ke sistem time sharing mungkin akan mengakibatkan ketidakadilan pembagian sumber daya dan mengakibatkan delay yang lebih lama, atau mungkin menyebabkan starvation, hasilnya adalah tujuan secara umum sistem yang dapat mendukung multimedia, grafik berkecepatan tinggi, dan variasi tugas yang tidak dapat diterima di lingkungan yang tidak mendukunng komputasi soft real-time.
Contoh penerapan sistem ini dalam kehidupan sehari-hari adalah pada alat penjual/pelayan otomatis. Jika mesin yang menggunakan sistem ini telah lama digunakan, maka mesin tersebut dapat mengalami penurunan kualitas, misalnya waktu pelayanannya menjadi lebih lambat dibandingkan ketika masih baru. Keterlambatan pada sistem ini tidak menyebabkan kecelakaan atau akibat fatal lainnya, melainkan hanya menyebabkan kerugian keuangan saja. Jika pelayanan mesin menjadi lambat, maka para pengguna dapat saja merasa tidak puas dan akhirnya dapat menurunkan pendapatan pemilik mesin.
Untuk lebih memahami tentang perbedaan kedua sistem ini dapat diperhatikan dari diagram dibawah ini.

Setelah batas waktu yang diberikan telah habis, pada sistem hard real-time, aplikasi yang dijalankan langsung dihentikan. Akan tetapi, pada sistem soft real-time, aplikasi yang telah habis masa waktu pengerjaan tugasnya, dihentikan secara bertahap atau dengan kata lain masih diberikan toleransi waktu.
Mengimplementasikan fungsi soft real time membutuhkan design yang hati-hati dan aspek yang berkaitan dengan sistem operasi. Pertama, sistem harus punya prioritas penjadualan, dan proses real-time harus memiliki prioritas tertinggi, tidak melampaui waktu, walaupun prioritas non real time dapat terjadi. Kedua, dispatch latency harus lebih kecil. Semakin kecil latency, semakin cepat real time proses mengeksekusi.
Untuk menjaga dispatch tetap rendah, kita butuh agar system call untuk preemptible. Ada beberapa cara untuk mencapai tujuan ini. Pertama adalah dengan memasukkan preemption points di durasi system call yang lama, yang memeriksa apakah prioritas utama butuh untuk dieksekusi. Jika sudah, maka contex switch mengambil alih, ketika high priority proses selesai, proses yang diinterupsi meneruskan dengan system call. Points premption dapat diganti hanya di lokasi yang aman di kernel dimana kernel struktur tidak dapat dimodifikasi.
Metoda yang lain adalah dengan membuat semua kernel preemptible. Karena operasi yang benar dapat dijamin, semua struktur data kernel harus diproteksi dengan mekanisme sinkronisasi. Dengan metode ini, kernel dapat selalu di preemptible, karena setiap data kernel yang sedang di update diproteksi dengan pemberian prioritas yang tinggi. Jika ada proses dengan prioritas tinggi ingin membaca atau memodifikasi data kernel yang sedang dijalankan, prioritas yang tinggi harus menunggu sampai proses dengan prioritas rendah tersebut selesai. Situasi seperti ini dikenal dengan priority inversion. Kenyataanya, serangkaian proses dapat saja mengakses sumber daya yang sedang dibutuhkan oleh proses yang lebih tinggi prioritasnya. Masalah ini dapat diatasi dengan priority-inheritance protocol, yaitu semua proses yang sedang mengakses sumber daya mendapat prioritas tinggi sampai selesai menggunakan sumber daya. Setelah selesai, prioritas proses ini dikembalikan menjadi seperti semula.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s