Իրական ժամանակի օպերացիոն համակարգ (անգլ.՝ Real-Time Operating System), օպերացիոն համակարգի տեսակ է։ Գոյություն ունեն այս եզրի տարբեր սահմանումներ։
Դրանցից ամենատարածվածներն են.
Իրական ժամանակի օպերացիոն համակարգերը հաճախ բաժանում են երկու տեսակի` իրական ժամանակի խիստ համակարգեր և իրական ժամանակի մեղմ համակարգեր։ Այն օպերացիոն համակարգը, որը կարող է ապահովել իրական ժամանակի խնդրի կատարումը պահանջվող ժամանակահատվածում նույնիսկ վատագույն դեպքերում, կոչվում են խիստ իրական ժամանակի համակարգեր։
Այն օպերացիոն համակարգը, որը ոչ կարող է ապահովել իրական ժամանակի խնդրի կատարումը պահանջվող ժամանակահատվածում, կոչվում են մեղմ իրական ժամանակի օպերացիոն համակարգեր։
Խիստ իրական ժամանակի օպերացիոն համակարգերում համակարգի արձագանքները չեն ուշացվում, քանզի այդ ուշացումները կարող են բերել.
Եթե կրիտիկական իրավիճակների մշակում չի իրականացվում կամ դա ոչ բավարար արագությամբ է տեղի ունենում Խիստ իրական ժամանակի համակարգը կանգնեցնում է գործողությունը և արգելափակում է այն, որպեսզի չտուժի համակարգի մյուս մասերի հուսալիությունը։ Կտրուկ իրական ժամանակի համակարգերի օրինակ կարող են լինել վթարային անվտանգության համակարգերը, ինքնաթիռի ավտոմատ կառավարման համակարգերը և այլն։
Մեղմ իրական ժամանակի համակարգերը բնութագրվում են համակարգի արձագանքի ուշացման հնարավորությամբ, որը կարող է հանգեցնել արդյունքի գնի մեծացմանը և համակարգի ընդհանուր արտադրողականության նվազմանը։ Եթե համակարգը չի հասցրել մշակել հերթական ընդունած փաթեթը, ապա դա կբերի ուղարկող կողմի կանգնեցմանը և փաթեթի երկրորդ անգամ ուղարկելուն, (կախված կանոնակարգից)։ Տվյալներն այդ ընթացքում չեն կորում, բայց փոխարենը իջնում է ցանցի արտադրողականությունը։
Խիստ և մեղմ իրական ժամանակի համակարգերի հիմնական տարբերությունը կարելի է բնութագրել հետևյալ կերպ. խիստ իրական ժամանակի համակարգերը երբեք ուշ չեն արձագանքում պատահարին, մեղմ համակարգերը չպետք է ուշացնեն արձագանքը։
Ծրագրային ապահովվածության մեծամասնությունը հիմնված է «մեղմ» համակարգերի վրա։ Նմանատիպ համակարգերի համար բնութագրական են.
Իրական ժամանանակի օպերացիոն համակարգի կիրառության դասական օրինակ կարող է ծառայել հոսքագծում աշխատող ռոբոտի կառավարումը, որը ժապավենից վերցնում է ինչ-որ մասեր։ Մասերը հաստատուն արագությամբ շարժվում են, իսկ ռոբոտի տրամադրության տակ շատ քիչ ժամանակ կա դրանք վերցնելու համար։ Եթե նա ուշանա, ապա այդ մասն արդեն հոսքագծի անհրաժեշտ հատվածում չի լինի, և հետևաբար աշխատանքը չի կատարվի, չնայած այն բանի որ ռոբոտը գտնվում է իր ճիշտ տեղում։ Եթե նա գործի ավելի արագ քան պետք է ապա մասը չի հասցնի մոտենալ և այն կարգելապակի դրա ճանապարհը։
Իրական Ժամանակի և սովորական ՕՀ-ների համեմատման աղյուսակ
ОС իրական Ժամանակի | ОС ընդհանուր նշանակության | |
---|---|---|
Հիմնական խնդիրը | Հասցնել արձագանքել սարքի վրա տեղի ունեցող պատահարին | Օպտիմալ բաշխել համակարգչի ռեսուրները օգտվողների ու առաջադրանքների միջև |
Ինչ ուղղությամբ է կողմնորոշված | Արտաքին պատահարների արձագանքում | Օգտվողի գործողությունների արձագանքում |
Ում համար է նախատեսված | Որակավորում ունեցող աշխատողի | Միջին որակավորում ունեցող օգտվողի |
Վերը նշված աբստրակտ մակարդակը ներկայացնում է Կիրառական ծրագրային ապահովվածության ծառայությունների հինգ հիմնական կատեգորիաները։
Իրական ժամանակի օպերացիոն համակարգերը իրենց զարգացման ընթացքում ստեղծվել են հետևյալ ճարտարապետությունների հիման վրա։
Իրական ժամանակի օպերացիոն համակարգերի մեծ մասը իրականացնում են առաջադրանքների պլանավորում հետևյալ սխեմայով։ Ամեն առաջադրանքին տրվում է իրեն համապատասխան առաջնայնությունը։ Եթե երկու առաջադրանքներ պատրաստ են կատարվելու, բայց առաջինը տիրապետում է բարձր առայնայնությամբ իսկ երկրորդը՝ ցածր, ապա նախապատվությունը տրվում է առաջինին։ Երկրորդ առաջադրանքը կսկսի գործել առայինի ավարտվելուց հետո միայն։ Հնարավոր է մի իրավիճակ, երբ ցածր առաջնայնույամբ առաջադրանքն արդեն ընթացքի մեջ է, և հաղորդագրություն է ստացվում այլ, ավելի բարձր առաջնայնությամբ առաջադրանք պետք է կատարվի։ Դրա պատճառ կարող է լինել որոևե արտաքին ազդեցություն, օրինակ՝ կառավարվող ՕՀ-ի սարքի անջատիչի վիճակի փոփոխություն։ Այդ դեպքում ՕՀ-ն կգործի հետևյալ կերպ. ցածր առաջնայնությամբ առաջադրանքին թույլատրվում է, որ կատարվի մինչև ընթացիկ ասեմբլերային հրամանի վերջը։ Այնուհետև գործի է դրվում ավելի մեծ առաջնայնություն ունեցող առաջադրանքը, որի ավարտից հետո էլ սարունակվում է կիսատբ մնացածը։ Ամեն անգամ երբ համակարգը ինչ որ արտաքին պատահարի (դա կարող է լինել և ծրագրային և ապարատային) ազդանշան է ստանում, գործում է հատևյալ ալգորիթմով.
Ալգորիթմի այս հինգ քայլերը նաև անվանում են "առաջադրանքների փոխանջատիչ"։
Սովորական իրական ժամանակի ՕՀ-ներում առաջադրանքը կարող է գտնվել երեք հնարավոր վիճակներում.
Ժամանակի մեծ մասում առաւջադրանքների հիմնական զանգվածը արգելափակված է։ Միայն մեկ առաջադրանք կարող է կատարվել կենտրոնական պրոցեսորի վրա ժամանակի ընթացիկ պահին։ Պարզագույն համակարգերում կատարվելու պատրաստ առաջադրանքների ցուցակը ինչպես կանոն շատ կարճ է այն կարող է բաղկացած լինել ոչ ավել քան երկու-երեք առաջադրանքներից։
Իրական ժամանակի օպերացիոն համակարգի ադմինիստրատորի հիմնական գործառույթը կայանում է առաջադրանքներ պլանավորող ծրագրերի կառուցումը։
Եթե կատարվելու պատրաստ առաջադրանքների ցուցակում վերջինից առկա է ոչ ավել քան երկու-երեք հատ, ապա ենթադրվում է որ բոլոր առաջադրանքները դասավորված են օպտիմալ հերթականությամբ։ Իսկ եթե լինում են այնպիսի իրավիճակներ, երբ ցուցակում առաջադրանքների քանակը գերազանցում է թույլատրված սահմանը, ապա առաջադրանքները տեսակավորվում են ըստ իրենց առաջնայնությունների։
Ներկայումս էֆեկտիվ պլանավորման խնդրի լուծման համար առավել ինտենսիվ զարգանում են երկու մոտեցումներ։
Մեծ բեռնումների ծամանակ EDF համակարգն ավելի արդյունավետ է քան RMS-ը։
Բազմախնդիր համակարգերում անհրաժեշտություն է առաջանում բաշխել համակարգչի ռեսուրսները։ Երկու և ավել պրոցեսների միաժամանակյա դիմումը հիշողության ինչ-որ հատվածին կամ այլ ռեսուրսին իրենից որոշակի վտանգ է ներկայացնում։ Գոյություն ունի այս խնդրի լուծման երեք եղանակ։
Իրական ժամանակի օպերացիոն համակարգերը սովորաբար չեն օգտագործում առաջին եղանակը, որովհետև կիրառական հավելվածը չի կարող հսկել պրոցեսն այնքան որքան որ ուզի։ Սակայն շատ ներդրված համակարգերում և իրական ժամանակի համակարգերում թույլ է տրվում հավելվածը գործի դնել միջուկի ռեժիմում համակարգային կանչերին մուտք ունենալու համար և սահմանվում է հսկողություն առանց ՕՀ-ի միջամտության։
Միապրոցեսորաի համակարգերում լավագույն որոշումը դա միջուկի ռեժիմում աշխատող հավելվածներն են։, որոնց թույլ է տրված ընդհատումների արգելափակումը։ Քանի դեռ ընդհատումն արգելափակված է հավելվածն օգտագործում է պրոցեսի ռեսուրսները միանձնորեն և ոչ մի այլ առաջադրանք կամ ընդհատում չի կարող կատարվել։ Այսպես պաշտպանվում են բոլոր կրիտիկական ռեսուրսները։ Այն բանից հետո, երբ ծրագիրը վերջացնի կրիտիկական գործողությունները, այն պետք է ապաարգելափակի ընդհատումները, եթե այդպիսիք կան։ Ընդհատումների ժամանակավոր արգելափակումը թույլատրվում է միայն այն ժամանակ, երբ կրիտիկական սեկցիայի կատարման ամենաերկար ժամանակահատվածը ավելի քիչ է քան ընդհատման արձագանքի թույլատրված ժամանակը։ Սովորաբար պաշտպանման այս մեթոդն օգտագործվում է միայն այն ժամանակ, երթ կրիտիկական կոդի երկարությունը չի գերազանցում մի քանի տողը և չի պարունակում ցիկլներ։ Այս մեթոդն իդեալական կիրառություն ունի ռեգիստրների պաշտպանության մեջ։
Եթբ կրիտիկական հատվածի երկարությունը մաքսիմալից ավել է կամ պարունակում է ցիկլներ, ապա ծրագրավորողը պետք է օգտագործի համանման կամ ընդհանուր նշանակության համակարգերին վարքը մոդելավորող մեխանիզմներ, ինչպիսիք են սեմաֆորներն ու ազդանշանների ուղարկումը։
Իրական ժամանակի ՕՀ-ներում հիշողության առանձնացման խնդիրներին ավելի մեծ նշանակություն է տրվում քան ընդհանուր նշանակության ՕՀ-ներում։
Առաջին խնդիրը դա հիշողության առանձնացման արագությունն է։ Հիշողության առանձնացման ստանդարտ սխեման ենթադրում է անորոշ երկարությամբ ցուցակի սկանավորումը անհրաժեշտ չափի ազատ տարածք գտնելու համար, իսկ դա անթույլատրելի է, քանի որ իրական ժամանակի օպերացիոն համակարգերում հիշողության առանձնացումը պետք է կատարվի միայն ֆիքսված ժամանակահատվածում։ Երկրորդ խնդիրը դա այն է, որ հիշողությունը կարող է դառնալ մասնատված արդեն աշխատող պրոցեսների կողմից դրա ազատ տարածքների բաժանման դեպքում։ Դա կարող է հանգեցնել ծրագրի կանգնեցմանը, դրա՝ հիշողության նոր հատված օգտագործելու անկարողունակության պատճառով։ Հիշողության առանձնացման ալգորիթմը, որը աստիճանաբար մեծացնում է հիշողության մասնատումը, կարող է հաջողությամբ աշխատել համակարգերի վրա, եթե դրանք գոնե ամիսը մեկ անջատվում են, բայց չեն կարող օգտագործվել այն համակարգերում, որոնք տարիներով չեն վերբեռնվում։
Պարզ ալգորիթմը ֆիքսված երկարությամբ հատվածներով հիշողության հետ լավ է աշխատում ոչ բարդ համակարգերում։
Այս ալգորիթմը նաև ֆունկցիոնալ է նաև սովորական համակարգերում, հատկապես այն ժամանակ, երբ մի պրոցեսորի մի միջուկով հիշողության որևէ հատվածի մշակման ժամանակ մեկ այլ հատված մշակվում է մյուս միջուկով Այդպիսի օպտիմիզացվաց իրական ժամանակի համակարգերում ինչպիսիք ենUnison Operating System-ը կամ DSPnano RTOS-ը, ապահովում են նշված կարողությունը։