Jumat, 18 Maret 2011

Konsep Real Time Sistem


Pengertian Real Time System

Pengertian dasar dari Real Time System adalah suatu sistem yang harus memenuhi suatu batasan waktu tertentu, sehingga apabila system tersebut tidak bisa memenuhi batasan waktu tersebut maka akan menimbulkan beberapa kerusakan ataupun dapat mengakibatkan kegagalan dari system tersebut.
Ada terdapat pengertian lain yang disampaikan secara berbeda tetapi intinya tetap sama yaitu suatu sistem dikatakan Real Time bila memenuhi apabila memenuhi 2 aspek yaitu :

1. Benar dalam aspek Logical
Artinya suatu system akan memberikan respon yang benar secara logika, contohnya apabila suatu pesawat akan mendarat maka pesawat akan menurunkan roda untuk pendaratan, hal ini jelas benar secara logika, apabila tidak dikeluarkan bisa dibayangkan akibatnya.

2. Benar dalam aspek Temporal
Artinya suatu system memberikan respon yang benar dilihat dari aspek waktu respon itu dilakukan. Sebagai lanjutan contoh dari aspek logika tadi yang dapat menggambarkan suatu system Real Time : pesawat yang akan mendarat secara logika akan mengeluarkan roda pendaratannya, tetapi harus juga benar dalam aspek temporal, artinya timing pengeluaran roda juga harus tepat, system pengendali pesawat tidak boleh terlambat dalam mengeluarkan roda, roda harus dikeluarkan dalam batasan waktu tertentu (time-constraint), jika tidak dapat menimbulkan kerusakan ataupun bencana .

Asal-muasal batasan (deadlines)

Batasan atau sering disebut dengan deadlines, dapat timbul dari kebutuhan internal system dan juga ekseternal system.

1. Internal
Kebutuhan internal merupakan kebutuhan yang berasal dari dalam system sendiri, sebagai contoh suatu mesin ATM yang membutuhkan proses transaksi yang singkat, mungkin kebutuhan dari system adalah proses transaksi dilakukan maksumal dalam waktu kita misalkan 100 milisecond, maka proses transaksi harus dilakukan dibawah waktu 100 milisecond tadi jika tidak maka proses transaksi akan gagal.

2. Eksternal
Merupakan kebutuhan yang berasal dari luar system , sebagai contohnya adalah kebutuhan dari pengguna mesin ATM sebagai pengguna system ATM tersebut, kita misalkan seseorang mempunyai batasan toleransi waktu keluarnya uang dari mesin ATM setelah proses transaksi pengambilan uang dilakukan adalah 5 detik, maka sistem ATM harus dapat memenuhi batasan waktu tersebut sebab apabila tidak maka tentunya akan menimbulkan keluhan dari pelanggan, dan mungkin akan lebih memilih menggunakan mesin ATM bank lain ataupun dapat juga berakibat yang lebih fatal yaitu berpindah kepada bank lain yang memiliki pelayanan yang lebih baik.

Jenis-jenis Real Time System Berdasarkan Performansi.
Dari Real Time Sistem ada 3 jenis Real Time System yang dikenal :

1. Hard Real Time
Sistem dibatasi dengan suatu batasan yang sangat tegas sehingga apabila sistem tidak memenuhi batasa tersebut maka sistem akan failure, performansi sistem adalah nol artinya sistem akan menghasilkan keluaran yang sama sekali tidak berguna. Hard Real Time dapat digambarkan dalam grafik berikut :
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.

2. Soft Real Time
Sistem dibatasi oleh suatu batasan yang tegas tetapi apabila batasan tersebut dilanggar , maka tidak langsung berakibat fatal tetapi akan mengakibatkan penurunan performansi dari system yang semakin menurun seiring dengan waktu yang berjalan , sampai suatu batasan waktu tertentu lalu performansi system akan benar-benar tidak ada. Soft Real Time digambarkan dalam grafik berikut :

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.Setelah batas waktu yang diberikan telah habis, pada sistem hard realtime,aplikasi yang dijalankan langsung dihentikan. Akan tetapi, pada sistem softreal-time, aplikasi yang telah habis masa waktu pengerjaan tugasnya,dihentikan secara bertahap atau dengan kata lain masih diberikan toleransiwaktu.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 inidikembalikan menjadi seperti semula.

3. Firm Real Time
Firm Real Time dibatasi dengan batasan yang sama seperti pada Hard Real Time, bedanya system masih diberikan toleransi beberapa kali jika tidak dapat memenuhi batasan tersebut, tetapi bila melewati dari jumlah toleransi yang telah diberikan maka system akan failure.
Contoh : 
Mungkin dapat lebih mudah dipahami pada kasus perkuliahan, yaitu bila dosen mengeluarkan suatu peraturan bahwa mahasiswa boleh tidak masuk dalam pertemuan di kelas maksimal sebanyak 5 kali (toleransi), tetapi apabila melebihi dari 5 kali maka mahasiswa yang bersangkutan akan langsung mendapatkan nilai E.
Main goal RTS Engineering

Dalam Real Time Engineering tujuan utamanya adalah untuk menemukan cara agar Hard Real Time dapat diubah menjadi Firm Real Time dan Firm Real Time dapat diubah menjadi Soft Real Time.

Event dan Task

Jenis event dan task akan mempengaruhi tingkat kesulitan suatu Sistem Real Time dalam memenuhi deadlines yang ada.
Event yang dimaksudkan di sini adalah kemingkinan kejadian yang terjadi pada saat suatu proses dilaksanakan :

1. Synchronous : yaitu event yang terjadi pada waktu yang dapat diprediksi pada flow-of-control
Flow-of-control dapat kita gambarkan sebagai diagram alur normal dari suatu proses,. Contohnya adalah sebagai berikut :

Synchronous event akan terjadi sesuai dengan prediksi yang ada pada flow-of-control sehingga dapat dengan mudah ditangani .

2. Asynchronous : event yang terjadi pada waktu yang tidak bisa diprediksi dan berada di luar flow-of-control yang ada sehingga penangannnya biasanya lebih sulit dibandingkn dengan event synchronous.
Tasks merupakan proses-proses yang dieksekusi dalam sistem, berdasarkan kemungkinan kedatangannya terbagi atas beberapa kelas yaitu:

1. Periodic: task datang secara periodik atau berulang ulang setelah beberapa interval waktu tertentu.
2. Aperiodic: task datang tidak secara periodik atau tidak memiliki pola interval waktu untuk terjadi kembali.
3. Sporadic: merupakan tast yang lebih sulit lagi diprediksi kedatangannya karena terjadi secara aperiodic dan tidak sering.

Konsekuensi dari suatu task tidak dapat ditangani dapat berakibat :
1. Kritikal : dapat menimbulkan kerusakan yang besar
2. Non-kritikal : hanya berdampak kecil bagi sitstem
Jika dihubungkan dengan jenis Real Time System maka dapat digambarkan tingkat kepentingan suatu task sebagai berikut :

Sehingga terdapat suatu task yang sifatnya kritikal tapi soft, critical dan hard, non-ktitikal tapi hard, dan juga task yang bersifat non-kritikal dan juga soft, mungkin anda sudah mulai bisa memikirkan contohnya setelah beberapa penjelasan yang telah diutarakan di atas. ;
Konsep yang salah dalam Real Time System

Setelah berapa pemaparan konsep yang benar di atas, diharapkan pada pembahasan konsep yang salah pada bagian ini tidak akan membingungkan anda, tetapi akan semakin menguatkan konsep anda mengenai Real Time System.
Beberapa konsep umum yang salah tersebut adalah :

1. Real Time Computing ekivalen dengan Fast Computing
Tujuan dari fast computing adalah mengusahakan agar response time dari sejumlah task dilakukan dalam waktu yang seminimal mungkin atau dapat dikatakan melakukan proses komputasi secepat mungkin yang dapat dicapai sistem.
Pada Real Time Computing yang dilakukan adalah agar task tadi dapat dilakukan pada waktu yang tepat sesuai dengan yang diperlukan dari masing-masing task bukan untuk mengeksekusinya secepat mungkin.
Salah satu bagian terpenting yang harus dimiliki oleh RT system adalah predictability, artinya suatu sistem RT harus besifat deterministic yaitu kita dapat membanyangkan atau memperkirakan nilai keluaran yang akan dihasilkan dengan memberikan suatu nilai inputan tertentu pada sistem.

2. Analisis rate-monotonic telah memecahkan masalah pada real-time
Rate monotonic adalah suatu sistem periodic yang akan memberikan prioritas lebih tinggi pada suatu task berdasarkan dari jumlah frekuensi dari eksekusi task tersebut.
Terkadang dengan menggunakan rate monotonic justru akan menimbulkan masalah baru yaitu terjadinya starvation pada suatu task yang mempunyai frekuensi paling kecil karena terus menerus di interrupt oleh task lain yang mempunyai frekuensi yg lebih sering, yang dapat mengakibatkan terlanggarnya deadline task tersebut.

3. Adanya metodologi yang diterima secara universal pada spesifikasi dan design dalam Real Time Sistem.
Sebenarnya tidak ada metodologi tersebut sebab , memang akan sangat sulit untuk menemukan solusi yang tepat yang dapat diterapkan secara universal pada Real Time System.

4. Tidak perlu untuk membangun sebuah Sistem Operasi Real Time karena banyak produk komersial yang telah beredar.
Sistem Operasi komersial dibuat untuk kebutuhan komersial yaitu untuk kebutuhan umum, sehingga ketika dipakai untuk kepentingan khusus dengan kasus yang berberda-beda tidak dapat dilakukan dengan sistem operasi yang komersial tersebut.

5. Pembelajaran dalam Real Time System adalah kebanyakan hanya membicarakan tentang teori penjadwalan
Untuk menghasilkan suatu teori yang dapat diterapkan secara nyata, terkadang memerlukan beberapa penyederhanaan yang tidak praktis sehingga teori tersebut dapat bekerja dengan baik.

6. Perkembangan hardware pada supercomputer akan mengatasi kebutuhan Real Time
Perkembangan pada desain supercomputer kebanyakan akan menggunakan prosesor paralel untuk meningkatkan troughput dari sistem, tapi bukan berarti hal ini akan secara otomatis memenuhi timing constraint.
Adanya suatu komputasi yang powerfull hanya akan menambah kebutuhan fungsionalitas pada aplikasi Real Time , yang akan memperburuk masalah timing pada Real Time System.

7. Adalah hal yang sia-sia membicarakan jaminan dalam performansi Real Time 
Karena kita tidak dapat menjamin bahwa hardware tidak akan gagal, dan software bebas dari bug atau tidak, atau kondisi Operating System yang dipakai tidak melanggar spesifikasi desain.
Dalam realitas kita haya bisa berharap dapat meminimalisir kemungkinan kegagalan dari sistem yang kita buat, karena memang ada banyak kondisi yang dapat membuat sistem gagal yang biasanya berada di luar kontrol kita, tetapi jika kita dapat menjamin sesuatu yang bisa kita lakukan, kita seharusnya melakukkannya sehingga kemungkinan kegagalan semakin berkurang.

Tidak ada komentar:

Posting Komentar

dtw15t3r.blogspot.com