Qo'riqchi taymeri - Watchdog timer

Bu kabi masofadan turib avtomatlashtirilgan tizimlarda qo'riqchi taymerlari juda zarur Mars Exploration Rover

A qo'riqchi taymeri (ba'zan a kompyuterning to'g'ri ishlashi yoki COP taymer yoki oddiygina a qo'riqchi) elektron yoki dasturiy ta'minotdir taymer bu kompyuterdagi nosozliklarni aniqlash va tiklash uchun ishlatiladi. Oddiy ishlash paytida, kompyuter soqchilar taymerini vaqt o'tishi yoki "vaqt tugashi" ni oldini olish uchun uni qayta tiklaydi. Agar apparatdagi nosozlik yoki dastur xatoligi sababli kompyuter qo'riqchi uyasini qayta tiklay olmasa, taymer o'tib, kutish tugashi signalini hosil qiladi. Vaqt tugashi signali tuzatish ishlarini boshlash uchun ishlatiladi. Tuzatish ishlari odatda kompyuter tizimini xavfsiz holatga keltirish va tizimning normal ishlashini tiklashni o'z ichiga oladi.

Odatda qo'riqchi taymerlari bu erda joylashgan o'rnatilgan tizimlar va odamlar kompyuterga osonlikcha kira olmaydigan yoki xatolarga o'z vaqtida javob bera olmaydigan kompyuter tomonidan boshqariladigan boshqa uskunalar. Bunday tizimlarda kompyuter odamni qayta ishga tushirishga bog'liq bo'lishi mumkin emas osilgan; u o'ziga bog'liq bo'lishi kerak. Masalan, kabi uzoqdan o'rnatilgan tizimlar kosmik zondlar inson operatorlari uchun jismonan mavjud emas; agar ular avtonom ravishda xatolarni bartaraf eta olmasalar, ular butunlay nogiron bo'lib qolishlari mumkin. Odatda bunday hollarda qo'riqchi taymeridan foydalaniladi. A-dagi ishonchsiz kodni ishlatishda qo'riqchi taymerlari ham ishlatilishi mumkin qum qutisi, kod uchun mavjud bo'lgan CPU vaqtini cheklash va shu bilan ba'zi turlarini oldini olish uchun xizmatni rad etish xurujlari.[1]

Qo'riqchi taymerlari ma'lum vaqt oralig'ida bajarilishi kerak bo'lgan yuqori ustuvor operatsiyalar talab qilinadigan operatsion tizimlarda ham qo'llaniladi. Agar taymer amal tugamay tugashidan oldin tugasa, u holda operatsion tizim xatolarni yozib olish va operatsiyani tugatish orqali taymerning uzilishiga javob beradi. Tizimda qo'riqchi taymerining ikkala turi bo'lishi mumkin.

Arxitektura va ekspluatatsiya

Qo'riqchi itni qayta ishga tushirish

Odatda qo'riqchi itni "tepish" deb nomlanadigan qo'riqchi taymerini qayta ishga tushirish[2][3], odatda qo'riqchi qo'mondoniga yozish orqali amalga oshiriladi port. Shu bilan bir qatorda, o'rnatilgan qo'riqchi taymeriga ega bo'lgan mikrokontrollarda, qo'riqchi ba'zan maxsus dasturni ishga tushirish orqali tepiladi mashina tili ko'rsatma yoki registrda ma'lum bir bitni o'rnatish. Bunga misol qilib ba'zilarning ko'rsatmalar to'plamida joylashgan CLRWDT (aniq qo'riqchi taymeri) ko'rsatmasi keltirilgan PIC mikrokontrolrlari.

Ishlayotgan kompyuterlarda operatsion tizimlar, qo'riqchilarni qayta tiklash odatda a orqali chaqiriladi qurilma drayveri. Masalan, Linux operatsion tizimi, a foydalanuvchi maydoni dastur qo'riqchi qurilmasi drayveri bilan o'zaro aloqada bo'lib, odatda nol belgisini yozish orqali qo'riqchini tepadi / dev / qo'riqchi. Qo'riqchi apparatini foydalanuvchi kosmik dasturlaridan mavhumlashtirishga xizmat qiladigan qurilma drayveri, shuningdek, vaqt tugashini sozlash va taymerni ishga tushirish va to'xtatish uchun ishlatiladi.

Bir bosqichli qo'riqchi

Watchdog taymerlari ko'plab konfiguratsiyalarga ega va ko'plari ularning konfiguratsiyasini o'zgartirishga imkon beradi. Mikrokontroller ko'pincha o'rnatilgan, chipdagi qo'riqchi kiradi. Boshqa kompyuterlarda qo'riqchi to'g'ridan-to'g'ri ulanadigan yaqin atrofdagi chipda yashashi mumkin Markaziy protsessor yoki tashqi tomonda joylashgan bo'lishi mumkin kengaytirish kartasi kompyuterning shassisida. Kuzatuvchi va protsessor umumiy narsaga ega bo'lishi mumkin soat signali, quyidagi blok diagrammada ko'rsatilgandek yoki ular mustaqil soat signallariga ega bo'lishi mumkin.

Oddiy, bir bosqichli qo'riqchi taymerining blok diagrammasi. Umumiy soat asosiy qo'riqchi mikrokreditlagichlarga xosdir.

Ko'p bosqichli qo'riqchi

Ba'zan a hosil qilish uchun ikki yoki undan ortiq taymerlar kaskadlanadi ko'p bosqichli qo'riqchi taymeri, bu erda har bir taymer a deb nomlanadi taymer bosqichi, yoki oddiygina a bosqich. Masalan, quyidagi blok-diagrammada uch bosqichli qo'riqchi ko'rsatilgan. Ko'p bosqichli qo'riqchi itida faqat birinchi bosqich protsessor tomonidan tepiladi. Birinchi bosqich tugashi bilan tuzatuvchi harakat boshlanadi va kaskaddagi keyingi bosqich boshlanadi. Har bir keyingi bosqich tugashi bilan, u tuzatishni boshlaydi va keyingi bosqichni boshlaydi. Oxirgi bosqich tugashi bilan, tuzatuvchi harakat boshlanadi, ammo kaskad tugagani uchun boshqa bosqich boshlanmaydi. Odatda, bir bosqichli qo'riqchi taymerlari kompyuterni shunchaki qayta boshlash uchun ishlatiladi, ko'p bosqichli qo'riqchi taymerlari ketma-ket bir qator tuzatuv harakatlariga sabab bo'ladi va oxirgi bosqich kompyuterni qayta ishga tushiradi.[3]

Uch bosqichli elektron qo'riqchi taymer.

Vaqt oralig'i

Qo'riqchi taymerlari belgilangan yoki programlanadigan vaqt oralig'iga ega bo'lishi mumkin. Ba'zi qo'riqchi taymerlari vaqt oralig'ini bir nechta tanlanadigan, alohida qiymatlar orasidan tanlab, dasturlash imkonini beradi. Boshqalarda intervalni ixtiyoriy qiymatlarga dasturlash mumkin. Odatda, qo'riqchi vaqt oralig'i o'n millisekunddan bir daqiqagacha yoki undan ko'proqni tashkil qiladi. Ko'p bosqichli qo'riqchi itida har bir taymer o'ziga xos, o'ziga xos vaqt oralig'iga ega bo'lishi mumkin.

Tuzatish ishlari

Qo'riqchi taymeri tuzatuvchi harakatlarning har qanday turini boshlashi mumkin, shu jumladan maskalanadigan uzilish, maskalanmaydigan uzilish, protsessorni qayta tiklash, xavfsiz holatni faollashtirish, quvvatni aylantirish yoki ularning kombinatsiyasi. Arxitekturasiga qarab, qo'riqchi qo'zg'atishi mumkin bo'lgan tuzatuvchi harakatlar yoki harakatlar turi qat'iy yoki dasturlashtirilishi mumkin. Ba'zi kompyuterlar (masalan, kompyuter bilan mos keladigan moslamalar) protsessorni qayta tiklashni chaqirish uchun impulsli signalni talab qiladi. Bunday hollarda, qo'riqchi odatda protsessorni qayta tiklashni ichki yoki tashqi impuls generatorini faollashtirish orqali ishga tushiradi, bu esa o'z navbatida kerakli qayta tiklash impulslarini yaratadi.[3]

O'rnatilgan tizimlarda va boshqaruv tizimlarida qo'riqchi taymerlari ko'pincha faollashtirish uchun ishlatiladi xavfsiz elektron tizim. Faollashtirilganda, ishlamay qolgan elektron tizim barcha boshqaruv natijalarini xavfsiz holatga o'tkazishga majbur qiladi (masalan, motorlar, isitgichlar va yuqorikuchlanish ) shikastlanish va uskunaning shikastlanishiga yo'l qo'ymaslik. Ikki bosqichli qo'riqchida birinchi taymer ko'pincha xavfsiz bo'lmagan natijalarni faollashtirish va ikkinchi taymer bosqichini boshlash uchun ishlatiladi; ikkinchi bosqich kompyuterni qayta o'rnatadi, agar taymer tugashidan oldin nosozlikni bartaraf etish mumkin bo'lmasa.

Ba'zan qo'riqchi taymerlari tizim holati to'g'risidagi ma'lumotlarni yozishni boshlash uchun ishlatiladi - bu xatolarni tiklash paytida foydali bo'lishi mumkin[3]- yoki disk raskadrovka ma'lumotlar (bu xato sabablarini aniqlash uchun foydali bo'lishi mumkin) a doimiy o'rta. Bunday hollarda, birinchi taymer tugashi bilan boshlanadigan ikkinchi taymer - odatda kompyuterni keyinchalik qayta tiklash uchun, ma'lumotlarni yozib olish uchun etarli vaqt berilgandan so'ng ishlatiladi. Bu ma'lumotni tejashga vaqt ajratadi, lekin ro'yxatga olish jarayoni muvaffaqiyatsiz tugagan taqdirda ham kompyuterni qayta tiklashni ta'minlaydi.

Ikki bosqichli qo'riqchi taymeri

Masalan, yuqoridagi diagrammada ikki bosqichli qo'riqchi taymerining mumkin bo'lgan konfiguratsiyasi ko'rsatilgan. Oddiy ishlash vaqtida kompyuter tanaffusning oldini olish uchun 1-bosqichni muntazam ravishda tepib yuboradi. Agar kompyuter 1-bosqichni tepa olmasa (masalan, apparatdagi nosozlik yoki dasturlash xatosi tufayli), Stage1 oxir-oqibat tugaydi. Ushbu hodisa Stage2 taymerini ishga tushiradi va bir vaqtning o'zida kompyuterga asl holatini tiklash yaqinlashib qolganligi to'g'risida xabar beradi (niqoblanmaydigan interrupt yordamida). Stage2 vaqti tugaguniga qadar kompyuter holat to'g'risidagi ma'lumotlarni, disk raskadrovka ma'lumotlarini yoki har ikkalasini yozib olishga urinishi mumkin. Kompyuter Stage2 tugashi bilan qayta tiklanadi.

Xatolarni aniqlash

Kompyuter tizimi odatda shunday ishlab chiqilganki, uning qo'riqlash taymeri kompyuter tizimni ishlayotgan deb hisoblasagina uriladi. Kompyuter tizimning ishlashini bir yoki bir nechta xatolarni aniqlash sinovlarini o'tkazish orqali aniqlaydi va u barcha sinovlar o'tgan taqdirdagina qo'riqchini tepadi. Operatsion tizim ishlaydigan kompyuterlarda va bir nechta jarayonlar, bitta oddiy sinov normal ishlashni kafolatlash uchun etarli bo'lmasligi mumkin, chunki u nozik nosozlik holatini aniqlay olmadi va shuning uchun nosozlik mavjud bo'lsa ham, qo'riqchini tepishga imkon beradi.

Masalan, Linux operatsion tizimida, foydalanuvchi makonini kuzatuvchi it xizmatchi oddiygina qo'riqchi itni vaqti-vaqti bilan hech qanday sinov o'tkazmasdan tepishi mumkin. Demon normal ishlayotgan ekan, tizim a kabi jiddiy tizim buzilishlaridan himoyalangan bo'ladi yadro vahima. Kamroq nosozliklarni aniqlash uchun xizmat[4] manba mavjudligini qoplaydigan testlarni bajarish uchun tuzilishi mumkin (masalan, etarli xotira va fayl ushlagichlari, protsessorning oqilona vaqti), kutilayotgan jarayonlar faoliyati dalillari (masalan, tizim demonlari ishlayotgani, ma'lum fayllar mavjud yoki yangilangan), haddan tashqari issiqlik va tarmoqdagi faollik va tizimga xos test skriptlari yoki dasturlari ham ishga tushirilishi mumkin.[5]

Muvaffaqiyatsiz sinov topilgandan so'ng, Linux qo'riqchi xizmati dasturiy ta'minotni qayta ishga tushirishga urinishi mumkin, bu faylni qayta tiklashdan ko'ra afzalroq bo'lishi mumkin, chunki fayl tizimlari xavfsiz bo'ladi ulanmagan va xatolar to'g'risidagi ma'lumotlar qayd qilinadi. Dasturiy ta'minotni qayta ishga tushirish bir qator noto'g'ri holatlarda ishlamay qolishi sababli apparat taymerini sug'urtalash zarur. Aslida, bu birinchi bosqichni o'z ichiga olgan dasturiy ta'minotni qayta yoqish va ikkinchi bosqichni qayta tiklash bilan ikki bosqichli qo'riqchi.

Shuningdek qarang

Adabiyotlar

  1. ^ "Grenade taymeri: qo'riqchi taymerini zararli mobil kodga qarshi kuchaytirish" Frank Stajano va Ross Anderson tomonidan (2000).
  2. ^ Merfi, Niall va Barr, Maykl. "Qo'riqchi taymerlari". O'rnatilgan tizimlarni dasturlash. Olingan 18 fevral 2013.
  3. ^ a b v d Lamberson, Jim. "Yagona va ko'p bosqichli qo'riqchi taymerlari" (PDF). Sensoray. Olingan 10 sentyabr 2013.
  4. ^ "Kuzatuvchi" odam "sahifasi". Olingan 10 sentyabr 2013.
  5. ^ "Linux Watchdog - Umumiy testlar". Olingan 10 sentyabr 2013.

Tashqi havolalar