Dengan asumsi bahwa kita sedang mengerjakan sistem dan perangkat keras Linux real-time yang terdiri dari pengatur waktu resolusi tinggi, apakah memiliki RTC memengaruhi ketepatan waktu sistem yang sebenarnya?
Di sini dikatakan bahwa ini mengurangi penggunaan CPU dan memori, tetapi adakah cara untuk membandingkan perbedaannya?
Jawaban:
Artikel yang Anda tautkan hanya lengkap dan omong kosong. "Waktu nyata" dalam "jam waktu nyata" (seperti yang digunakan untuk merujuk pada jenis perangkat keras yang dijelaskan dalam artikel) dan "waktu nyata" dalam "sistem waktu nyata" adalah istilah yang sama sekali berbeda. Yang pertama berarti menyimpan waktu kalender saat ini (biasanya beberapa perkiraan yang sangat buruk, dibandingkan dengan presisi tinggi seperti yang diklaim artikel terkait) dan memajukannya tanpa daya eksternal, menggunakan baterai jenis koin / baterai yang tahan lama. Yang terakhir berarti menanggapi peristiwa dengan batasan keras pada latensi dari saat acara hingga saat respons.
Beberapa bit lain dari artikel tersebut, untuk membuktikan bahwa artikel itu harus dianggap tidak dapat dipercaya:
1 detik dalam 100 tahun kira-kira 317 ppt (ya, itu bagian per triliun ). Anda tidak bisa mendapatkan stabilitas jam semacam itu dengan teknologi jam apa pun yang tersedia secara komersial. Bahkan untuk mendapatkan 1 detik per tahun akan membutuhkan setidaknya OCXO yang membutuhkan oven berdaya tinggi yang selalu mengatur suhu. Gagasan Anda bisa mendapatkannya dengan perangkat yang ditenagai oleh baterai koin yang tahan lama sangat menggelikan.
Tidak satu pun dari ini yang disebut sistem waktu nyata.
sumber
Sistem Waktu Nyata adalah sesuatu yang merespons peristiwa / rangsangan internal atau eksternal dalam waktu tertentu dan waktu itu biasanya dalam mili atau detik mikro. Dibutuhkan pengatur waktu yang presisi kecil daripada RTC.
Dan jawaban untuk pertanyaan Anda adalah Tidak, itu tidak akan mempengaruhi ketepatan waktu sistem yang sebenarnya.
sumber
Jika sistem Anda sedang offline setelah reset dan memiliki RTC, itu akan dapat memasukkan tanggal yang tepat ke dalam log. Log bisa jadi besar jika Anda perlu melihatnya dan memiliki timestamp yang salah akan membuat Anda, pengembang perangkat lunak dan klien Anda gila, dan dalam penyelidikan umum hampir tidak mungkin.
Mudah atau sulit, rendah atau tinggi dalam artikel yang Anda rujuk adalah semacam pendapat pribadi. Sulit dan mahal jika Anda belum pernah melakukannya sebelumnya dan tidak memiliki persyaratan sistem dan pernyataan kerja yang jelas; dan itu mudah dan murah ketika Anda tahu apa yang Anda butuhkan dan apa perangkat terbaik untuk digunakan.
sumber
Ini tampaknya menjadi masalah terminologi seputar penggunaan istilah "waktu nyata".
Jam waktu nyata
Jam waktu nyata adalah perangkat untuk ketepatan waktu yang stabil / akurat (dalam beberapa toleransi), sehingga sistem host dapat menggunakannya untuk mengaitkan peristiwa / tindakan dengan waktu dan tanggal terjadinya.
Anda dapat menganggap jam real-time sebagai analog dengan jeroan jam tangan digital yang terhubung ke komputer. Ini memiliki referensi waktu yang diberdayakan secara independen yang dirancang agar stabil dan cukup akurat. Seperti jam tangan digital, itu tidak akan kehilangan jejak waktu saat ini hanya karena komputer host dimatikan. Jam waktu nyata telah dipasangkan ke komputer sebagian besar sebagai kenyamanan sehingga pengguna tidak harus memasukkan kembali waktu dan tanggal saat ini setiap kali sistem dimulai, atau membuat penyesuaian sering untuk mengimbangi penyimpangan.
Alternatif untuk jam waktu nyata adalah menggunakan perangkat lunak dan timer internal yang didorong oleh jam sistem. Pendekatan semacam itu bisa diterapkan (IBM PC asli bekerja seperti itu), tetapi tidak terlalu stabil; itu juga akan kehilangan jejak tanggal / waktu di setiap titik sistem operasi dimatikan, hang, atau crash.
Sistem waktu nyata
Ketika istilah "waktu nyata" diterapkan pada sistem atau aplikasi komputer, ia menggambarkan sistem yang merespons peristiwa dunia nyata dalam waktu yang sangat singkat dan deterministik - seringkali hanya beberapa milidetik, terkadang kurang, dengan pemesanan yang ditentukan input simultan. Sistem waktu nyata digunakan untuk hal-hal seperti kontrol mesin - robotika, simulasi, dan permainan. Meskipun aplikasi waktu nyata dapat menggunakan informasi waktu dan tanggal saat ini, aplikasi bukan "waktu nyata" hanya karena memanfaatkan waktu dan tanggal saat ini.
Jam waktu nyata vs penghitung waktu beresolusi tinggi
Seperti yang dinyatakan di atas, tujuan dari jam waktu-nyata adalah untuk secara andal melacak tanggal dan waktu saat ini, umumnya hanya untuk yang kedua; yang bagus akan memiliki penyimpangan minimal (detik naik atau turun setiap hari). Jam real-time umumnya tidak memiliki resolusi tinggi; jam dasar mereka sering berjalan sangat lambat dibandingkan dengan jam CPU modern; ini untuk meminimalkan konsumsi daya (menghabiskan sumber daya independennya) sehingga jam akan terus menjaga waktu jika komputer host dimatikan untuk waktu yang lama.
Timer resolusi tinggi tidak peduli dengan waktu atau tanggal saat ini; tujuannya adalah untuk mengukur interval waktu dengan presisi, mungkin dalam hitungan detik, atau bahkan kurang. Untuk mencapai hal ini, itu harus didasarkan pada jam frekuensi tinggi yang stabil - biasanya jam sistem komputer. Pengatur waktu resolusi tinggi juga biasanya tidak peduli dengan penyimpangan selama jangka waktu lama, karena tujuan biasanya adalah pengukuran waktu terhadap jangka waktu pendek. Penghitung waktu resolusi tinggi tidak memiliki masalah konsumsi daya yang sama dengan jam waktu nyata karena mereka tidak memiliki pekerjaan yang harus dilakukan ketika komputer host dimatikan.
sumber
Dalam kebanyakan sistem, satu-satunya keuntungan nyata dari periferal RTC dibandingkan bentuk-bentuk lain dari menjaga waktu adalah bahwa pengukuran waktu RTC tidak akan terpengaruh ketika sisa dari sistem tersebut tertidur atau - dalam beberapa kasus - dimatikan sepenuhnya. Banyak periferal RTC sebenarnya dirancang dengan cara yang akan membuatnya tidak praktis untuk sebagian besar tujuan selain merekam perkiraan waktu dalam sehari. Banyak periferal RTC (mungkin mayoritas tetapi mungkin bukan supermajority), misalnya, terbatas pada waktu pelaporan dalam peningkatan satu detik, dan banyak dari mereka setidaknya akan kadang-kadang membutuhkan kesibukan menunggu sinkronisasi ketika mengatur alarm atau - di beberapa kasus - bahkan hanya mencoba membaca waktu. Sebagai akibatnya, cara normal untuk menggunakan RTC adalah dengan hanya menyalin nilainya ke jam yang lebih berguna saat startup, atur setiap kali "waktu dinding" diatur,
dan empat bacaan berurutan akan dijamin mengandung dua yang cocok (dan karenanya benar) kecuali lebih dari 1/32768 detik berlalu antara yang pertama dan terakhir. Mengatur alarm dapat menghasilkan acara bangun palsu, tetapi urutannya:
harus menangani semua kasing dengan cukup mudah sehingga cocok untuk penggunaan jangka waktu yang umum. Sayangnya, untuk alasan apa pun, periferal RTC tidak pernah dirancang seperti itu, tetapi malah lebih rumit dan kurang bermanfaat.
sumber
Saya pikir alasan utama untuk jam waktu nyata adalah waktu yang akurat hingga beberapa interval. Jam reguler biasanya dipangkas dengan kapasitor dan dapat memiliki perbedaan frekuensi yang lebih besar berdasarkan berbagai faktor yang mungkin di luar kendali seperti kapasitansi / resistansi yang salah dari sirkuit pengaturan waktu, ketidakpastian dalam waktu jam yang digunakan yang melayani tujuan duel untuk kinerja, serta sering kali ada logika yang dapat diprogram untuk membagi waktu yang lagi-lagi dapat menyebabkan kesalahan.
Biasanya RTC dapat memiliki timer dan menonton anjing dll. Digabungkan untuk itu, memberikan asumsi yang dijamin atau baik bahwa pada interval tepat yang teratur yang bahkan dapat tetap dalam fase dengan berbagai hal - prosedur atau kode yang diberikan akan dieksekusi. Anda tidak dapat dengan mudah mendapatkan ini dengan jam biasa. Atau Anda harus sangat berhati-hati dalam produksi agar jamnya akurat. Anda dapat melihat hal-hal seperti audio dan apa yang tidak perlu menggunakan rtc alih-alih jam sistem kecepatan tinggi.
Adapun apa artinya RTC saya tidak bisa mengatakan dengan pasti sendiri. Saya tahu Linux adalah alat yang lazim di dunia tertanam namun saya tidak yakin seberapa baik kerjanya untuk semua aplikasi waktu nyata. Multithreading dapat membuat waktu eksekusi menjadi non deterministik, namun ketika perangkat keras jauh melebihi persyaratan kinerja, banyak solusi akan berfungsi dengan baik bahkan dalam aplikasi waktu nyata.
Lalu ada aplikasi misi kritis dan kinerja rendah. Satu hal yang diinginkan di sini adalah solusi deterministik dan seringkali kompleksitas yang lebih rendah. Di sini RTC dapat digunakan dengan jelas. Linux dapat memberikan akses khusus ke interupsi yang digabungkan dengannya. Menurut saya untuk deterministic real time Anda tidak hanya membutuhkan rtc tetapi juga menginterupsi atau mengaksesnya.
sumber
Anda akan memerlukan jam waktu nyata jika Anda mengandalkan komunikasi yang aman dengan komputer lain di internet (tidak harus 100% dimiliki, tetapi jika Anda tidak memiliki referensi waktu setempat, Anda perlu mempercayai hal lain, dan Anda bisa ' t percayakan sertifikat kecuali Anda tahu tanggalnya).
Jadi, tidak, Anda tidak perlu satu untuk semua sistem 'real-time'. Namun, tergantung pada aplikasi Anda, Anda mungkin masih menginginkan RTC sebagai cara paling hemat energi untuk memperoleh perbaikan waktu yang baik setelah berada dalam kondisi daya rendah.
sumber