Untuk mendefinisikan "soft real-time", paling mudah membandingkannya dengan "hard real-time". Di bawah ini kita akan melihat bahwa istilah "perusahaan real-time" merupakan kesalahpahaman tentang "soft real-time."
Berbicara dengan santai, kebanyakan orang secara implisit memiliki model mental informal yang menganggap informasi atau peristiwa sebagai "waktu nyata"
• jika, atau sejauh, itu nyata bagi mereka dengan penundaan (latensi) yang dapat dikaitkan dengan mata uang yang dirasakannya
• yaitu, dalam kerangka waktu di mana informasi atau peristiwa tersebut memiliki nilai yang memuaskan bagi mereka.
Ada banyak definisi ad hoc yang berbeda dari "hard real-time," tetapi dalam model mental tersebut, hard real-time diwakili oleh istilah "jika". Secara khusus, dengan asumsi bahwa tindakan waktu-nyata (seperti tugas) memiliki tenggat waktu penyelesaian, nilai yang dapat diterima dari peristiwa yang semua tugas diselesaikan terbatas pada kasus khusus bahwa semua tugas memenuhi tenggat waktu mereka.
Sistem hard real-time membuat asumsi yang sangat kuat bahwa segala sesuatu tentang aplikasi dan sistem serta lingkungan bersifat statis dan dikenal secara 'apriori — misalnya, tugas yang mana, bahwa tugas tersebut berkala, waktu kedatangannya, periode mereka, tenggat waktu mereka, yang mereka menangkan tidak memiliki konflik sumber daya, dan keseluruhan waktu evolusi sistem. Dalam sistem kontrol penerbangan pesawat atau sistem pengereman otomotif dan banyak kasus lainnya, asumsi tersebut biasanya dapat dipenuhi sehingga semua tenggat waktu dapat dipenuhi.
Model mental ini sengaja dan sangat berguna cukup umum untuk mencakup baik waktu nyata keras maupun lunak - lunak diakomodasi oleh frasa "sejauh itu". Misalnya, misalkan acara penyelesaian tugas memiliki nilai suboptimal tetapi dapat diterima jika
- tidak lebih dari 10% tugas melewatkan tenggat waktunya
- atau tidak ada tugas yang lebih dari 20% terlambat
- atau keterlambatan rata-rata semua tugas tidak lebih dari 15%
- atau keterlambatan maksimum di antara semua tugas kurang dari 10%
Ini semua adalah contoh umum kasus soft real-time dalam banyak aplikasi.
Pertimbangkan penerapan satu tugas untuk menjemput anak Anda setelah sekolah. Itu mungkin tidak memiliki tenggat waktu yang sebenarnya, melainkan ada beberapa nilai bagi Anda dan anak Anda berdasarkan kapan peristiwa itu terjadi. Terlalu dini menyia-nyiakan sumber daya (seperti waktu Anda) dan terlambat memiliki beberapa nilai negatif karena anak Anda mungkin ditinggal sendirian dan berpotensi dalam bahaya (atau setidaknya tidak nyaman).
Tidak seperti kasus khusus hard real-time statis, soft real-time hanya membuat asumsi khusus aplikasi yang diperlukan tentang tugas dan sistem, dan ketidakpastian diharapkan. Untuk menjemput anak Anda, Anda harus mengemudi ke sekolah, dan waktu untuk melakukannya dinamis tergantung pada cuaca, kondisi lalu lintas, dll. Anda mungkin tergoda untuk menyediakan sistem Anda secara berlebihan (yaitu, biarkan apa yang Anda harapkan adalah kasus terburuk waktu mengemudi) tetapi sekali lagi ini membuang-buang sumber daya (waktu Anda, dan menempati kendaraan keluarga, mungkin menolak digunakan oleh anggota keluarga lainnya).
Contoh tersebut mungkin tidak tampak mahal dalam hal sumber daya yang terbuang percuma, tetapi pertimbangkan contoh lain. Semua sistem pertempuran militer lunak dalam waktu nyata. Misalnya, pertimbangkan untuk melakukan serangan pesawat pada kendaraan darat musuh menggunakan rudal yang dipandu dengan pembaruan untuk itu sebagai manuver target. Kepuasan maksimum untuk menyelesaikan tugas pembaruan kursus dicapai dengan serangan destruktif langsung pada target. Tetapi upaya untuk menyediakan sumber daya secara berlebihan untuk memastikan hasil ini biasanya terlalu mahal dan bahkan mungkin mustahil. Dalam hal ini, Anda mungkin kurang puas jika misil menyerang cukup dekat dengan target untuk menonaktifkannya.
Jelas skenario pertempuran memiliki banyak kemungkinan ketidakpastian dinamis yang harus diakomodasi oleh manajemen sumber daya. Sistem real-time lunak juga sangat umum di banyak sistem sipil, seperti otomasi industri, meskipun jelas sistem militer adalah yang paling berbahaya dan mendesak untuk mencapai nilai yang memuaskan dan dapat diterima.
Kunci utama dari sistem waktu nyata adalah "prediktabilitas". Kasus hard real-time hanya tertarik pada satu kasus khusus yang dapat diprediksi - yaitu, bahwa semua tugas akan memenuhi tenggat waktu mereka dan nilai maksimum yang mungkin akan dicapai oleh peristiwa itu. Kasus khusus itu disebut "deterministik".
Ada spektrum prediktabilitas. Deterministik (determinisme) adalah salah satu titik akhir (prediktabilitas maksimum) pada spektrum prediktabilitas; titik akhir lainnya adalah prediktabilitas minimum (non-determinisme maksimum). Metrik spektrum dan titik akhir harus ditafsirkan dalam kerangka model prediktabilitas yang dipilih; segala sesuatu di antara dua titik akhir itu adalah derajat ketidakpastian (= derajat non-determinisme).
Sebagian besar sistem waktu nyata (yaitu, sistem lunak) memiliki prediktabilitas non-deterministik, misalnya, waktu penyelesaian tugas dan karenanya nilai yang diperoleh dari peristiwa tersebut.
Secara umum (dalam teori), prediktabilitas, dan karenanya nilai yang dapat diterima yang memuaskan, dapat dibuat sedekat mungkin dengan titik akhir deterministik - tetapi dengan harga yang mungkin secara fisik tidak mungkin atau terlalu mahal (seperti dalam pertempuran atau mungkin bahkan dalam menjemput anak Anda dari sekolah).
Soft real-time memerlukan pilihan model probabilitas khusus aplikasi (bukan model frequentist umum) dan karenanya model prediktabilitas untuk penalaran tentang latensi peristiwa dan nilai yang dihasilkan.
Mengacu kembali ke daftar kejadian di atas yang memberikan nilai yang dapat diterima, sekarang kita dapat menambahkan kasus non-deterministik, seperti
- probabilitas bahwa tidak ada tugas yang akan melewatkan tenggat waktunya lebih dari 5% lebih besar dari 0,87. (Perhatikan jumlah kriteria penjadwalan yang dinyatakan di sana.)
Dalam aplikasi pertahanan rudal, mengingat fakta bahwa dalam pertempuran, pelanggaran selalu memiliki keunggulan dibandingkan pertahanan, mana dari dua skenario komputasi waktu nyata berikut yang Anda pilih:
karena penghancuran sempurna dari semua rudal musuh sangat tidak mungkin atau tidak mungkin, tetapkan sumber daya pertahanan Anda untuk memaksimalkan kemungkinan bahwa sebanyak mungkin rudal yang paling mengancam (misalnya, berdasarkan target mereka) akan berhasil dicegat (intersepsi dekat dihitung karena itu dapat memindahkan misil musuh keluar jalur);
mengeluh bahwa ini bukan masalah komputasi waktu nyata karena bersifat dinamis, bukan statis, dan konsep serta teknik waktu nyata tradisional tidak berlaku, dan kedengarannya lebih sulit daripada waktu nyata statis keras, jadi Anda tidak tertarik padanya .
Terlepas dari berbagai kesalahpahaman tentang soft real-time dalam komunitas komputasi real-time, soft real-time sangat umum dan kuat, meskipun berpotensi kompleks dibandingkan dengan hard real-time. Sistem soft real-time seperti yang dirangkum di sini memiliki sejarah panjang penggunaan yang sukses di luar komunitas komputasi real-time .
Untuk menjawab pertanyaan OP secara langsung:
Sistem hard real-time dapat memberikan jaminan deterministik — paling umum bahwa semua tugas akan memenuhi tenggat waktunya, interupsi atau waktu respons panggilan sistem akan selalu kurang dari x, dll. — JIKA DAN HANYA JIKA asumsi yang sangat kuat dibuat dan benar bahwa segala sesuatu yang penting bersifat statis dan dikenal a 'priori (secara umum, jaminan seperti itu untuk sistem hard real-time adalah masalah penelitian terbuka kecuali untuk kasus yang agak sederhana)
Sistem soft real-time tidak membuat jaminan deterministik, itu dimaksudkan untuk memberikan ketepatan waktu probabilistik yang ditentukan secara analitik dan dicapai sebaik mungkin dan prediktabilitas ketepatan waktu yang layak dalam keadaan dinamis saat ini, sesuai dengan kriteria khusus aplikasi.
Jelas hard real-time adalah kasus khusus sederhana dari soft real-time. Jaminan non-deterministik analitis real-time lunak yang jelas bisa sangat kompleks untuk diberikan, tetapi wajib dalam kasus waktu nyata yang paling umum (termasuk yang paling berbahaya untuk keselamatan kritis seperti pertempuran) karena sebagian besar kasus waktu nyata tidak dinamis. statis.
"Firm real-time" adalah kasus khusus yang tidak jelas dari "soft real-time". Tidak perlu istilah ini jika istilah "soft real-time" dipahami dan digunakan dengan benar.
Saya memiliki diskusi yang lebih mendetail tentang real-time, hard real-time, soft real-time, prediktabilitas, determinisme, dan topik terkait di situs web saya real-time.org.