Perbedaan antara hard real-time, soft real-time, dan firm real-time?


102

Saya telah membaca definisi untuk berbagai pengertian real-time , dan contoh yang diberikan untuk sistem real-time keras dan lunak masuk akal bagi saya. Namun, tidak ada penjelasan atau contoh nyata dari sistem real-time yang tegas. Menurut tautan di atas:

Perusahaan: Pelanggaran tenggat waktu yang jarang dapat ditoleransi, tetapi dapat menurunkan kualitas layanan sistem. Kegunaan hasil adalah nol setelah tenggat waktunya.

Adakah perbedaan yang jelas antara perusahaan real-time vs. hard atau soft real-time, dan adakah contoh bagus yang menggambarkan perbedaan itu?

Dalam komentarnya, Charles meminta saya mengirimkan tag wiki untuk tag baru. Contoh dari "sistem real-time perusahaan" yang saya berikan untuktag adalah sistem penyajian susu. Jika sistem memberikan susu setelah waktu kadaluwarsanya, maka susu tersebut dianggap "tidak berguna". Seseorang dapat mentolerir makan sereal tanpa susu, tetapi kualitas pengalamannya menurun.

Ini hanya ide yang saya bentuk di kepala saya ketika saya pertama kali membaca definisi. Saya mencari contoh yang jauh lebih baik, dan mungkin definisi yang lebih baik dari perusahaan real-time yang akan meningkatkan pemahaman saya tentang itu.


11
Pada dasarnya, definisi tersebut tidak tegas.
Hot Licks

Saya memulihkan tag asli. Menurut saya, akan berguna untuk dapat menempatkan tag yang lebih spesifik pada pertanyaan yang berkaitan dengan real-time keras atau lunak. Ini mengubah cara pertanyaan dijawab. Tag akan tetap dihapus secara otomatis jika tag tidak digunakan setelah 6 bulan.
jxh

Jika Anda akan bersikeras pada tiga tag baru untuk pertanyaan ini dan pertanyaan ini saja, setidaknya tambahkan wiki dan coba temukan pertanyaan lain yang akan diterapkan.
Charles

Jawaban:


114

Sulit dalam waktu nyata berarti Anda harus benar-benar mencapai setiap tenggat waktu. Sangat sedikit sistem yang memiliki persyaratan ini. Beberapa contohnya adalah sistem nuklir, beberapa aplikasi medis seperti alat pacu jantung, sejumlah besar aplikasi pertahanan, avionik, dll.

Perusahaan / sistem waktu nyata lunak dapat melewatkan beberapa tenggat waktu, tetapi pada akhirnya kinerja akan menurun jika terlalu banyak yang terlewat. Contoh yang bagus adalah sistem suara di komputer Anda. Jika Anda melewatkan beberapa bit, bukan masalah besar, tetapi melewatkan terlalu banyak bit dan Anda pada akhirnya akan merusak sistem. Serupa akan menjadi sensor seismik. Jika Anda melewatkan beberapa titik data, bukan masalah besar, tetapi Anda harus menangkap sebagian besar dari mereka untuk memahami datanya. Lebih penting lagi, tidak ada yang akan mati jika tidak bekerja dengan benar.

Garisnya kabur, karena bahkan alat pacu jantung dapat dimatikan dengan jumlah kecil tanpa membunuh pasien, tetapi itulah intinya.

Ini seperti perbedaan antara panas dan hangat. Tidak ada perbedaan yang nyata, tetapi Anda mengetahuinya saat Anda merasakannya.


2
Teladan "tegas" Anda tampak "lembut" bagi saya.
jxh

Seperti dicatat, garis pemisahnya cukup kabur. Sistem waktu nyata lunak yang saya kerjakan memiliki toleransi beberapa detik, jadi di situlah saya menarik garis.
Yoel

1
Ingatlah bahwa ini adalah kontinum. Hampir setiap sistem komputer "waktu nyata" dalam skala waktu tertentu. Sistem penagihan perusahaan harus mengeluarkan tagihan dengan cukup cepat untuk menjaga arus kas masuk ke perusahaan atau perusahaan akan mati, sama seperti pasien akan meninggal jika alat pacu jantung meleset beberapa ratus milidetik.
Hot Licks

Saya memahami bahwa tenggat waktu yang terlewat mungkin dapat ditoleransi untuk beberapa sistem, tetapi itulah pemahaman saya tentang sistem waktu nyata yang lunak. Saya mencari contoh praktis dari kriteria ini: Kegunaan hasil adalah nol setelah tenggat waktunya. Saya kira untuk contoh suara Anda, jika suara disinkronkan ke aliran video, maka beberapa paket audio yang terlambat tiba tidak akan memiliki kegunaan? Tetapi ada beberapa sistem pemutaran film yang mempercepat audio untuk mengikuti video.
jxh

Persyaratan waktu nyata berada dalam konteks sistem tertentu, tidak melekat pada masalah. Dalam contoh yang Anda berikan, masih ada kerusakan pada suara (dipercepat), dan ketidakcocokan sementara pada suara dan video.
Yoel

114

Sulit Real-Time

The real-time keras definisi menganggap tidak terjawab tenggat waktu untuk menjadi kegagalan sistem. Penjadwalan ini digunakan secara luas dalam sistem kritis misi di mana kegagalan untuk menyesuaikan dengan batasan waktu mengakibatkan hilangnya nyawa atau harta benda.

Contoh:

  • Air France Flight 447 jatuh ke laut setelah kerusakan sensor menyebabkan serangkaian kesalahan sistem. Pilot menghentikan pesawat saat menanggapi pembacaan instrumen yang sudah ketinggalan zaman. Semua 12 awak dan 216 penumpang tewas.

  • Pesawat luar angkasa Mars Pathfinder hampir hilang ketika pembalikan prioritas menyebabkan sistem dimulai ulang. Tugas dengan prioritas lebih tinggi tidak diselesaikan tepat waktu karena diblokir oleh tugas dengan prioritas lebih rendah. Masalah diperbaiki dan pesawat luar angkasa berhasil mendarat.

  • Printer Inkjet memiliki kepala cetak dengan perangkat lunak kontrol untuk menyimpan jumlah tinta yang benar ke bagian kertas tertentu. Jika tenggat waktu terlewat maka pekerjaan cetak rusak.


Perusahaan Real-Time

The real-time perusahaan definisi memungkinkan untuk tenggat waktu jarang terjawab. Dalam aplikasi ini, sistem dapat bertahan dari kegagalan tugas selama diberi jarak yang memadai, namun nilai penyelesaian tugas turun menjadi nol atau menjadi tidak mungkin.

Contoh:

  • Sistem manufaktur dengan jalur perakitan robot di mana tidak ada tenggat waktu mengakibatkan perakitan bagian yang tidak tepat. Selama bagian yang rusak cukup jarang ditangkap oleh kontrol kualitas dan tidak terlalu mahal, maka produksi terus berlanjut.

  • Set-top box kabel digital menerjemahkan stempel waktu untuk kapan bingkai harus muncul di layar. Karena frame sensitif terhadap urutan waktu, maka tenggat waktu yang terlewat menyebabkan jitter, menurunkan kualitas layanan. Jika frame yang terlewat nanti tersedia, itu hanya akan menyebabkan lebih banyak jitter untuk menampilkannya, jadi tidak berguna. Pemirsa tetap dapat menikmati program jika jitter tidak terlalu sering terjadi.


Lembut Real-Time

The real-time lembut definisi memungkinkan untuk tenggat waktu yang sering tidak terjawab, dan selama tugas-tugas yang tepat waktu dieksekusi hasil mereka terus memiliki nilai. Tugas yang diselesaikan mungkin memiliki nilai yang meningkat hingga tenggat waktu dan nilai yang menurun melewatinya.

Contoh:

  • Stasiun cuaca memiliki banyak sensor untuk membaca suhu, kelembaban, kecepatan angin, dll. Pembacaan harus dilakukan dan dikirimkan secara berkala, namun sensor tersebut tidak disinkronkan. Meskipun pembacaan sensor mungkin lebih awal atau terlambat dibandingkan dengan yang lain, pembacaan sensor masih bisa relevan selama cukup dekat.

  • Konsol permainan video menjalankan perangkat lunak untuk mesin permainan. Ada banyak sumber daya yang harus dibagi di antara tugas-tugasnya. Pada saat yang sama tugas harus diselesaikan sesuai dengan jadwal agar permainan dapat dimainkan dengan benar. Selama tugas benar-benar relatif tepat waktu, permainan akan menyenangkan, dan jika tidak mungkin hanya sedikit tertinggal.


Siewert: Sistem dan Komponen Tertanam Real-Time.
Liu & Layland: Algoritma Penjadwalan untuk Multiprogramming dalam Lingkungan Real-Time Sulit.
Marchand & Silly-Chetto: Penjadwalan Dinamis Tugas Aperiodik Lunak dan Tugas Berkala dengan Lompatan.


10
sungguh daftar contoh yang menyenangkan!
Erik Kaplun

Salah satu contoh terbaik
Wisnu NK

Dalam kasus kecelakaan 447, bukankah banyak tenggat yang terlewat sebelum pesawat terhenti? Tampaknya semua sistem kokoh dalam pengertian itu.
Josiah Yoder

3
Daftar yang sangat bagus, tetapi contoh printer inkjet tidak memenuhi syarat untuk hard real-time, paling-paling itu kokoh dan paling mungkin hanya lunak.
Ab Irato

tysm untuk contoh
himanshuxd

43

Setelah membaca halaman Wikipedia dan halaman lain tentang komputasi waktu nyata. Saya membuat kesimpulan berikut:

1> Untuk sistem Hard real-time , jika sistem gagal memenuhi tenggat waktu bahkan setelah sistem dianggap gagal.

2> Untuk sistem real-time Perusahaan , bahkan jika sistem gagal memenuhi tenggat waktu, mungkin lebih dari sekali (misalnya untuk beberapa permintaan), sistem tidak dianggap gagal. Selain itu, respons untuk permintaan (balasan ke kueri, hasil tugas, dll.) Tidak berguna setelah tenggat waktu untuk permintaan tertentu telah berlalu ( Kegunaan hasil adalah nol setelah tenggat waktunya ). Contoh hipotetis dapat berupa sistem prakiraan badai (jika badai diprediksi sebelum kedatangan, maka sistem telah melakukan tugasnya, prediksi setelah peristiwa tersebut terjadi atau saat terjadinya tidak ada nilainya).

3> Untuk sistem Soft real-time , bahkan jika sistem gagal memenuhi tenggat waktu, mungkin lebih dari sekali (yaitu untuk beberapa permintaan), sistem tidak dianggap gagal. Namun, dalam hal ini, hasil permintaan bukanlah nilai yang tidak berharga untuk hasil setelah tenggat waktu, bukan nol , melainkan menurun seiring berjalannya waktu setelah tenggat waktu. Misalnya: Streaming audio-video.

Berikut ini tautan ke sumber daya yang sangat membantu.


4
Sistem prakiraan badai bukanlah contoh yang baik, karena Anda perlu menetapkan tenggat waktu berdasarkan waktu, dan jika Anda sudah tahu kapan waktu paling awal badai mungkin terjadi, sistem prakiraan badai agak mubazir.
jxh

12

Mengaitkan beberapa malapetaka besar dengan definisi hard real-time sangat populer, tetapi ini tidak relevan. Setiap kegagalan untuk memenuhi kendala waktu nyata yang sulit berarti bahwa sistem rusak. Tingkat keparahan hasil ketika sesuatu diberi label "rusak" tidak material untuk definisi.

Tegas dan lunak gagal secara otomatis dinyatakan rusak jika gagal memenuhi satu tenggat waktu.

Untuk contoh real-time yang adil, dari halaman yang Anda tautkan:

Sistem video game awal seperti grafis vektor Atari 2600 dan Cinematronics memiliki persyaratan waktu nyata yang sulit karena sifat grafis dan perangkat keras pengaturan waktu.

Jika sesuatu dalam loop pembuatan video hanya melewatkan satu tenggat waktu, maka keseluruhan tampilan akan bermasalah, yang tidak dapat ditoleransi, bahkan jika itu jarang terjadi. Itu akan menjadi sistem yang rusak dan Anda akan membawanya kembali ke toko untuk mendapatkan pengembalian dana. Jadi sulit dalam waktu nyata.

Tentunya sistem apa pun dapat mengalami situasi yang tidak dapat ditangani, jadi penting untuk membatasi definisi agar berada dalam kondisi pengoperasian yang diharapkan - dengan memperhatikan bahwa dalam aplikasi yang kritis terhadap keselamatan orang harus merencanakan kondisi yang buruk ("pendingin telah menguap", " remnya gagal ", tetapi jarang" matahari meledak ").

Dan jangan lupa bahwa terkadang ada kondisi operasi implisit "saat ada orang yang menonton". Jika tidak ada yang melihat Anda melanggar aturan (atau jika mereka melakukannya tetapi mereka mematikan api sebelum memberi tahu siapa pun), dan tidak ada yang dapat membuktikan bahwa Anda melanggar aturan setelah itu terjadi, maka itu sama saja dengan jika Anda tidak pernah melanggar aturan!


4
If nobody sees you break the rules (or if they did but they die the fire before telling anyone), and nobody can prove that you broke the rules after the fact, then it's kind of the same as if you never broke the rules!... Oke, HAL. Sekarang, bisakah Anda membuka pintu pod bay?
Dasar

11

Cara paling sederhana untuk membedakan berbagai jenis jenis sistem waktu nyata adalah dengan menjawab pertanyaan:

Apakah respons sistem yang tertunda (setelah tenggat waktu) masih berguna atau tidak?

Jadi tergantung pada jawaban yang Anda peroleh untuk pertanyaan ini, sistem Anda dapat dimasukkan sebagai salah satu kategori berikut:

  1. Sulit : Tidak, dan jawaban tertunda dianggap sebagai kegagalan sistem

Ini terjadi ketika kehilangan tenggat waktu akan membuat sistem tidak dapat digunakan. Misalnya sistem pengendali sistem Airbag mobil harus mendeteksi tabrakan dan mengembang dengan cepat tas. Keseluruhan proses memakan waktu kurang lebih sepersepuluh lima detik. Jadi, jika sistem misalnya bereaksi dengan penundaan 1 detik, konsekuensinya bisa mematikan dan tidak ada manfaatnya jika tas mengembang begitu mobil sudah jatuh.

  1. Perusahaan : Tidak, tetapi jawaban yang tertunda tidak diperlukan karena kegagalan sistem

Ini adalah kasus ketika melewati tenggat waktu masih dapat ditoleransi tetapi akan mempengaruhi kualitas layanan. Sebagai contoh sederhana, pertimbangkan sistem enkripsi video. Biasanya sandi enkripsi dibuat di server (video Head end) dan dikirim ke set-top box pelanggan. Proses ini harus disinkronkan sehingga biasanya dekoder menerima kata sandisebelum mulai menerima bingkai video terenkripsi. Dalam hal ini penundaan dapat menyebabkan gangguan video karena dekoder tidak dapat memecahkan kode bingkai karena belum menerima kata sandi. Dalam hal ini layanan (film, pertandingan sepak bola yang menarik, dll) dapat terpengaruh jika tidak memenuhi tenggat waktu. Menerima kata sandi dengan penundaan dalam hal ini tidak berguna karena bingkai yang dienkripsi dengan yang sama telah menyebabkan gangguan.

  1. Lembut : Ya, tetapi layanan sistem menurun

Dari deskripsi wikipedia , kegunaan suatu hasil menurun setelah batas waktunya . Artinya, mendapatkan respon dari sistem yang melewati batas waktu masih berguna bagi pengguna akhir tetapi kegunaannya menurun setelah mencapai batas waktu. Contoh sederhana untuk kasus ini adalah perangkat lunak yang secara otomatis mengontrol suhu ruangan (atau gedung). Dalam kasus ini, jika sistem mengalami penundaan pembacaan sensor suhu, maka akan sedikit lambat untuk bereaksi terhadap perubahan suhu yang kasar. Namun, pada akhirnya ia akan bereaksi terhadap perubahan dan menyesuaikan suhu agar tetap konstan misalnya. Jadi dalam hal ini reaksi tertunda berguna, tetapi menurunkan kualitas sistem layanan.


6

Sebuah real time lunak paling mudah untuk memahami, di mana bahkan jika hasilnya diperoleh setelah batas waktu, hasilnya masih dianggap sebagai valid.

Contoh: Web browser- Kami meminta URL tertentu, perlu waktu lama dalam memuat halaman. Jika sistem membutuhkan waktu lebih dari yang diharapkan untuk menyediakan halaman kepada kami, halaman yang diperoleh tidak dianggap tidak valid, kami hanya mengatakan bahwa performa sistem tidak sesuai dengan standar (sistem memberikan performa yang rendah!).

Dalam sistem hard real time , jika hasil diperoleh setelah batas waktu, maka sistem dianggap gagal total.

Contoh: Jika robot melakukan suatu pekerjaan seperti pelacakan garis, dll. Jika ada penghalang di jalurnya, dan robot tidak memproses informasi ini dalam beberapa tenggat waktu yang diprogram (hampir instan!), Robot dikatakan gagal dalam tugasnya (sistem robot juga bisa hancur total!).

Dalam sistem waktu nyata yang tegas , jika hasil eksekusi proses datang setelah tenggat waktu, kami membuang hasil tersebut, tetapi sistem tersebut tidak dianggap gagal.

Contoh: Komunikasi satelit untuk pemantauan posisi musuh atau tugas lainnya. Jika stasiun komputer bumi tempat satelit mengirim frame secara berkala kelebihan beban, dan frame (paket) saat ini tidak diproses tepat waktu dan frame berikutnya muncul, paket saat ini (orang yang melewatkan tenggat waktu) tidak masalah apakah pemrosesan telah selesai (atau setengah selesai atau hampir selesai) akan dibuang / dibuang. Tapi komputer dasar tidak disebut benar-benar gagal.


Contoh browser salah. Waktu bukanlah sumber daya di browser web: ini sama sekali bukan sistem waktu nyata.
Bart Friederichs

6

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.


"Revolusi pertama adalah ketika Anda berubah pikiran tentang bagaimana Anda memandang sesuatu dan melihat bahwa mungkin ada cara lain untuk melihatnya yang belum Anda tunjukkan." --Gil Scott-Heron, "Revolusi Tidak Akan Ditayangkan"
E. Douglas Jensen

2

real-time - Berkaitan dengan sistem atau mode operasi di mana komputasi dilakukan selama waktu aktual ketika proses eksternal terjadi, agar hasil komputasi dapat digunakan untuk mengontrol, memantau, atau merespons proses eksternal secara tepat waktu cara. [Standar IEEE 610.12.1990]

Saya tahu definisi ini sudah tua, sangat tua. Saya tidak bisa, bagaimanapun, menemukan definisi yang lebih baru oleh IEEE (Institute of Electrical and Electronics Engineers).


2
Sebenarnya tahun 1990 sama sekali tidak tua. Saya mengadakan diskusi ini di tahun 70-an, dan definisinya kurang lebih sama.
Hot Licks

2

Pertimbangkan tugas yang memasukkan data dari port serial. Ketika data baru tiba, port serial memicu suatu peristiwa. Ketika layanan perangkat lunak acara itu, ia membaca dan memproses data baru. Port serial memiliki perangkat keras untuk menyimpan data yang masuk (2 di MSP432, 16 di TM4C123) sehingga jika buffer penuh dan lebih banyak data yang masuk, data baru akan hilang. Apakah sistem ini keras, kencang, atau lunak dalam waktu nyata?

Ini sulit secara real time karena jika respons terlambat, data bisa hilang.


Pertimbangkan alat bantu dengar yang memasukkan suara dari mikrofon, memanipulasi data suara, dan kemudian mengeluarkan data tersebut ke speaker. Sistem biasanya memiliki jitter kecil dan terbatas, tetapi terkadang tugas lain di alat bantu dengar menyebabkan beberapa data terlambat, menyebabkan pulsa noise di speaker. Apakah sistem ini keras, kencang, atau lunak dalam waktu nyata?

Ini adalah waktu nyata karena menyebabkan kesalahan yang dapat dirasakan tetapi efeknya tidak berbahaya dan tidak secara signifikan mengubah kualitas pengalaman.


Pertimbangkan tugas yang mengeluarkan data ke printer. Saat printer dalam keadaan idle, printer memicu suatu peristiwa. Ketika layanan perangkat lunak acara itu, ia mengirimkan lebih banyak data ke printer. Apakah sistem ini keras, kencang, atau lunak dalam waktu nyata?

Ini lunak waktu nyata karena semakin cepat responsnya semakin baik, tetapi nilai sistem (bandwidth adalah jumlah data yang dicetak per detik) berkurang dengan latensi.

UTAustinX: UT.RTBN.12.01x Jaringan Bluetooth Waktu Nyata


1

Mungkin definisinya salah.

Dari pengalaman saya, saya akan memisahkan keduanya karena bergantung pada perangkat keras dan perangkat lunak.

Jika Anda memiliki 200ms untuk melayani interupsi yang didorong perangkat keras, itulah yang Anda miliki. Anda memasukkan kode 300ms di sana dan sistem tidak rusak, itu belum dikembangkan. Anda akan ditukar sebelum Anda selesai. Kode Anda tidak berfungsi atau tidak sesuai dengan tujuan. Banyak sistem memiliki periode pemrosesan yang sulit ditentukan. Video, telekomunikasi, dll.

Jika Anda menulis aplikasi yang real-time, ini bisa dianggap lunak . Jika Anda kehabisan waktu, Anda dapat berharap untuk memuat lebih sedikit di lain waktu, Anda dapat menyetel OS, menambahkan beberapa memori atau bahkan meningkatkan perangkat keras. Anda punya pilihan.

Untuk melihatnya dari perspektif UX tidak membantu. Skoda mungkin tidak rusak jika mengalami gangguan, tapi BMW pasti akan rusak.


apa yang Anda miliki terhadap Škodas!
Erik Kaplun

1

Definisi tersebut telah berkembang selama bertahun-tahun sehingga merugikan istilah tersebut. Apa yang sekarang disebut waktu nyata "Sulit" adalah apa yang dulunya disebut waktu nyata. Jadi sistem di mana jendela waktu yang hilang (daripada tenggat waktu satu sisi) akan menghasilkan data yang salah atau perilaku yang salah harus dipertimbangkan secara real-time. Sistem tanpa karakteristik tersebut akan dianggap non-real-time.

Itu tidak berarti bahwa waktu bukanlah kepentingan dalam sistem non-real-time, itu hanya berarti bahwa persyaratan waktu dalam sistem tersebut tidak menghasilkan hasil yang salah secara fundamental.


1

Sistem hard real time menggunakan versi preemptive dari penjadwalan prioritas, sehingga tugas-tugas penting segera dijadwalkan, sedangkan sistem soft real time menggunakan versi penjadwalan prioritas non-preemptive, yang memungkinkan tugas saat ini diselesaikan sebelum kontrol dipindahkan ke prioritas yang lebih tinggi. tugas, menyebabkan penundaan tambahan. Dengan demikian, tenggat waktu tugas diikuti secara kritis dalam sistem waktu nyata Keras, sedangkan dalam sistem waktu nyata lembut, mereka ditangani tidak terlalu serius.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.