Sistem Waktu Nyata

Sistem waktu-nyata adalah 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 sistem waktu-nyata 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 waktu-nyata.
Pada awal perkembangan sistem waktu-nyata pada tahun 1950-an sampai dengan akhir 1970-an, konsumen utama dari sistem waktu-nyata adalah industri militer di Amerika Serikat. Sekarang, sistem waktu-nyata semakin banyak digunakan dalam otomasi industri dan instrumentasi. Salah satu contoh umum sistem waktu-nyata adalah sistem komputer yang digunakan oleh NASA pada pesawat ruang angkasanya. Sistem komputer pesawat ruang angkasa berjalan tanpa campur tangan manusia, dan jika sistem ini gagal memenuhi tenggat waktu eksekusi yang ditetapkan, maka pesawat ruang angkasa ini bisa jadi akan mengalami bencana yang fatal. Untuk memperkecil kemungkinan kegagalan sistem komputernya, NASA biasanya menggunakan beberapa komputer sekaligus untuk mengerjakan perhitungan yang sama.
Klasifikasi Sistem Waktu-Nyata :
Berdasarkan batasan waktu yang dimilikinya, sistem waktu-nyata dapat dibagi menjadi tiga kelas, yaitu :
1. Hard Real-Time
Adalah sistem yang harus memenuhi tenggat waktu pada setiap kesempatan. Contoh sistem dari kelas ini adalah sebuah sistem yang melakukan shutdown dari sebuah roket. Sebuah delay yang tak terduga selama setengah detik mungkin dapat menyebabkan roket meledak. Penentuan apakah sebuah sistem termasuk dalam kategori hard real-time tidak berdasarkan waktu respon rata-rata yang dimilikinya, melainkan berdasarkan waktu respon terburuk.
2. Soft Real-Time
Adalah sistem yang jika suatu saat gagal dalam memenuhi tenggat waktu, tidak akan menyebabkan kegagalan sistem. Semua sistem komputer dapat dikategorikan dalam kelas ini karena semua sistem harus memenuhi definisi di atas, dalam dimensi yang berbeda-beda. Contoh sistem dari kelas ini adalah sebuah video player yang seharusnya selalu menampilkan setiap frame sesuai dengan rate yang diinginkan. Delay selama setengah detik tidak akan menyebabkan kegagalan yang fatal, tetapi akan mengganggu kenyamanan user.
3. Firm Real-Time

Adalah sistem yang memiliki karakteristik pewaktuan seperti sistem hard real-time tapi mampu menjalankan aplikasi waktu-nyata level user seperti aplikasi grafis atau TCP/IP yang biasanya tidak dapat dijalankan oleh sistem hard real-time.

Komponen Sistem Waktu-Nyata :

1. Perangkat keras
2. Sistem operasi waktu-nyata
3. Bahasa pemrograman waktu-nyata
4. Sistem komunikasi

Perangkat keras komputer sebenarnya tidak ada spesifikasi khusus untuk sebuah perangkat keras komputer dengan kapabilitas waktu-nyata. Secara umum, semua komputer modern termasuk PC x86 dapat digunakan untuk sistem waktu-nyata. Untuk keperluan tertentu, digunakan komputer dengan arsitektur dan prosesor khusus, seperti transputer.
Sistem operasi waktu-nyata merupakan perangkat lunak sistem yang berseluler mengatur resource yang disediakan oleh perangkat keras dan menyediakan fasilitas pemrograman untuk digunakan oleh aplikasi. Sistem operasi waktu nyata memiliki karakteristik yang berbeda dengan sistem operasi biasa, sehingga tidak semua sistem operasi bisa disebut sebagai sebuah sistem operasi waktu-nyata.
Bahasa pemrograman waktu-nyata memiliki peranan yang penting dalam pembangunan sistem waktu-nyata.

Bahasa pemrograman waktu-nyata yang baik sebaiknya memiliki beberapa karakteristik sebagai berikut:
1. Efisien dalam penggunaan CPU
2. Mampu menangani pemrograman I/O yang intensif
3. Memiliki sintaks sederhana, untuk mengurangi kompleksitas program sehingga kemungkinan kesalahan dapat diperkecil
4. Didukung oleh sistem operasi
5. Memiliki tool pendukung seperti debugger dan profiler

Implementasi sistem waktu-nyata pada tahun 1950-an kebanyakan menggunakan bahasa pemrograman assembler agar sistem menjadi lebih efisien dalam penggunaan CPU. Tetapi, setelah sistem berkembang semakin besar, penggunaan bahasa assembler membuat program menjadi semakin kompleks dan rentan terhadap kesalahan pemrograman.
Beberapa bahasa pemrograman kemudian muncul dan menggantikan peranan bahasa assembler. Sebagian diantaranya dirancang khusus untuk aplikasi waktu-nyata, dan sisanya adalah bahasa pemrograman multifungsi (general-purpose). Bahasa pemrograman waktu-nyata yang paling populer adalah Ada. Bahasa Ada memiliki konstruksi yang memudahkan programmer untuk menspesifikasikan tugas-tugas waktu-nyata.
Sistem operasi Unix ditulis dengan bahasa C, dan memiliki dukungan yang intensif terhadap penggunaan bahasa C. Kompilator dan debugger bahasa C pasti tersedia di semua varian Unix. Meskipun bahasa C bukan merupakan bahasa yang khusus digunakan untuk sistem waktu-nyata, tetapi bahasa C adalah bahasa yang cukup memadai karena memenuhi kriteria-kriteria di atas. Real-Time Linux hanya mendukung bahasa C, terutama karena pemrograman untuk Real-Time Linux dilakukan di level kernel.
Sistem Komunikasi melalui jaringan dibutuhkan jika lebih dari satu komputer menjadi controller. Komunikasi jaringan (misalnya melalui Ethernet) memiliki kasus waktu terburuk yang tidak dapat dipastikan, sehingga jika sebuah sistem hard real-time menggunakan mekanisme komunikasi jaringan maka sistem ini tidak lagi dapat diverifikasi karena verifikasi sebuah sistem hard real-time memerlukan data kasus terburuk dari eksekusi tugas.

Leave a comment

No comments yet.

Comments RSS TrackBack Identifier URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s