STXIT - STXIT - Wikipedia

STXIT Бұл макро нұсқаулық үшін DOS / 360 операциялық жүйе үшін IBM System / 360 сериясы негізгі компьютерлер, және оның ізбасарлары кейінірек мейнфрейм сериясында, және үшін қол жетімді болды UNIVAC сериясы 90 оның TOS / DOS амалдық жүйесі жұмыс істейтін мейнфреймдер және кейінірек VS / 9 операциялық жүйе.

Фон

Макро «Set Exit» терминінің аббревиатурасы болды және оны бағдарламада қолданған құрастыру тілі. Ол бағдарламаның қателіктері кезінде қалпына келтіру процедурасын жасау үшін қолданылады сигнал С және өңдегіштер / Соңында көріңіз блоктар C ++, Java және басқа объектіге бағытталған тілдер.

STXIT макросы қателердің бірнеше негізгі түрлерін және белгілі бір операторлық сигналдарды қалпына келтіру мекен-жайын ұсынады. Қателер амалдық жүйеге байланысты болды. Жалпы, қалпына келтіруді қамтамасыз еткен қателіктер де қамтылды

  • мекен-жайды қорғауды бұзу (қосымшаға жатпайтын жадқа қол жеткізу)
  • артықшылықты бұзу (артықшылық берілген нұсқауларды орындауға тырысу)
  • бөлу чегі (нөлге бөлу )
  • өзгермелі нүктені тексеру (өзгермелі нүкте) толтыру немесе толып кету )
  • таймердің іске қосылуы (егер бағдарлама орнатқан таймердің мерзімі өткен болса) үзу бұл іс жүзінде қате емес, бұл бағдарлама бақылаушы таймерге қалай жауап береді
  • Үзіліс жалғасы, функциясы UNIVAC сериясы 90 қайда интерактивті пайдаланушы командалық режимге өту үшін бағдарламаға үзіліс берді және INTR пәрменін бағдарламаның INTR нүктесінде қайта жалғастыруы үшін жіберді. Егер бағдарлама INTR түйіндеменің мекен-жайын көрсетпеген болса, INTR командасы қабылданбайды. Бұл REENTER пәрменіне ұқсас RT-11 цифрлық компьютерлердегі операциялық жүйе.

STXIT таймерінің үзілісі бағдарламаны іріктеу тетігін ұсынды және әртүрлі бұрынғы анализаторлар қолданды. PSW әр уақыт аралығы үшін жиналды және оны анықтау үшін кейінірек талдау үшін пайдаланылды ыстық нүктелер.

STXIT бағдарламасын тексеру механизмін ұсынды бағдарламалық анимация мақсатсыз бағдарламаларға жарамсыз опкодтарды (ұшып бару кезінде) әдейі енгізу арқылы. Шығуды қалпына келтіру енгізілгеннен кейін, бастапқы опкод қалпына келтіріліп, кейінірек қалпына келтіріліп, жаңа орын орнатылады.

Макро формат

Макро қоңыраудың форматы ол қолданылған жүйеге байланысты болды.

IBM DOS / VSE

DOS / VSE үшін бұл екі форманың бірі болды, немесе сәйкес оқиғаны өңдеу үшін STXIT тәртібін құру (құру) үшін макро шақыру немесе оқиғаны қалпына келтіру үшін макро шақыру (бұдан әрі өңдемейді).[1] STXIT тәртібін орнату үшін сіз код жазасыз:

[заттаңба] STXIT {AB | IT | PC | OC | TT}, Күнделікті мекен-жай, SaveArea [, OPTION = {DUMP | NODUMP}] түсініктеме

Қайда

  • заттаңба - осы мәлімдеме үшін қосымша жапсырма.
  • Бірінші аргумент: бірі AB, IT, ДК, OC, немесе ТТ қолданылуы керек. Бұл сіздің нақты STXIT қоңырауы үшін қандай оқиғамен жұмыс істейтініңізді көрсетті. AB өңдегішін қоспағанда, EXIT макросының көмегімен аяқталған STXIT өңдегішінің жұмысы. Бірнеше оқиғаны басқару үшін макростың бірнеше шақыруын қолдану керек, олардың әрқайсысы бір оқиғаны көрсетеді. Бұл кодтар мыналарды көрсетеді:
    • AB - тапсырманы әдеттен тыс тоқтату. Тапсырма CANCEL, DETACH, DUMP немесе EOJ макросының шығарылуынан басқа тоқтатылады. OPTION = параметрі тек осы типтегі режимде қолданылады. Бұл STXIT процедурасы аяқталғаннан кейін бағдарлама қоқысы шығарылатындығын анықтайды. Егер тапсырманы тоқтату STXIT-ті қолданбастан орын алса, бағдарлама қатемен аяқталады. AB кез-келген басқа STXIT процедурасы кезінде компьютерлік оқиға болған жағдайда қолданылады. Сәтсіздікке ұшыраған бағдарламаға оралу үшін AB әдеттегіден шыға алмайды, күнделікті EOJ, CANCEL, DETACH немесе DUMP макросы арқылы бағдарламаны тоқтату туралы өтінішпен аяқталуы керек.
    • IT - интервалдық таймер. Бағдарлама интервалды таймер жасады және өлшеу уақыты аяқталды. Интервалды таймер оқиғасы еленбейді, егер оны басқаратын STXIT тәртібі болмаса. Егер интервал таймері оқиғасы қызмет көрсетіліп жатқанда қосымша аралық таймер оқиғалары орын алса, олар әдеттегіден шыққанға дейін кешіктіріледі. Күнделікті режимнен оралу - орындалған нұсқаулық.
    • ДК - бағдарламаны тексеру. Бағдарлама заңсыз нұсқаулықты орындады, деректерді рұқсат етілмеген түрде пайдаланды немесе басқаша түрде бағдарламалау кезінде қателік жіберді. STXIT күнделікті мұндай жағдайларда бағдарламаның таза қалпына келуін қамтамасыз ете алады. Егер компьютерде оқиға әдеттегідей болмаған кезде орын алса, бағдарлама қатемен аяқталады. Егер ДК STXIT процедурасы кезінде пайда болса (АВ-дан басқа), АВ режимі шақырылады. Егер STXIT бағдарламасы бағдарламаны тоқтатпаса, дербес компьютерден қайту сәтсіздікке ұшырағаннан кейінгі келесі нұсқаулыққа ауысады.
    • OC - ​​оператордың байланысы. Оператор сұрау пернесін басып, MSG пәрменін берді. Егер оны басқаруға арналған STXIT тәртібі болмаса, бұл ескерілмейді. Күнделікті режимнен оралу - орындалған нұсқаулық.
    • TT - тапсырма таймерінің іске қосылуы. Егер SETT макросы арқылы тапсырма таймері қосылса, бұл процедура оларды өңдеу үшін қолданылады. Егер тапсырма таймері оқиғасы орын алса және оны басқаратын STXIT тәртібі болмаса, таймер еленбейді. Егер келесі тапсырма таймері тапсырма таймерін өңдеу процедурасында орын алса, оқиға еленбейді. Күнделікті режимнен оралу - орындалған нұсқаулық.
  • Күнделікті мекен-жай - осы іс-шараны өткізу үшін күнделікті этикет
  • SaveArea - жалпы регистрлердің мазмұнын сақтайтын, стандартты savearea конструкциясы бар 72 байтты аймақ (алғашқы екі сөз алға және алға бағыттаушылар, ал қалған сөздер 14,15 және 0-ден 12-ге дейін регистрлерді сақтау үшін қолданылады). күнделікті өзінің үнемдеу аймағы болуы керек, өйткені бір STXIT режимін басқасы үзуі мүмкін, мысалы, тапсырма таймерімен жұмыс жасау кезінде интервал таймері өртеніп кетуі мүмкін, STXIT регистрлері регуляр режимі шақырылған кезде автоматты түрде сақталады, және EXIT макросы шығарылған кезде автоматты түрде қалпына келтіріледі
  • Соңғы параметрден кейін бір кеңістіктен басталатындардың барлығы - түсініктеме.

STXIT процедурасы аяқталғаннан кейін, егер ол AB режимі болмаса, тиісті нүктеге қайту үшін EXIT макросы арқылы шақырылған нүктеге оралады, бұл жағдайда оған қайтуға рұқсат берілмейді және тоқтату макросы шығарылуы керек. (EOJ, БОЛДЫРМАУ, ОРНЫТУ немесе ҚЫЗУ).

STXIT жұмысын тоқтату немесе жою үшін сіз код жазасыз:

заттаңба STXIT {AB | IT | PC | OC | TT} түсініктеме

сол іс-шараны тоқтату. Параметрден кейін бір кеңістіктен басталатындардың барлығы түсініктеме.

IBM z / VSE

Z / System VSE үшін бұрын IBM DOS / VSE ұсынған барлық STXIT функцияларына қолдау көрсетіледі. Сонымен қатар, STXIT жаңа макрофункциясы 'Disabled Timer Appendage (DIE)' қол жетімді, бірақ тек супервайзер режимінде қолдануға арналған (Key 0, PSW артықшылық биті = 1).[2] Пішім:

заттаңба STXIT DIE,rtnaddr|(1)

DIE-дің мағынасы - бұл «өшірілген интервал таймерінің оқиғасы» және rtnaddr - Set TOD оқиғасы кодталған кезде интервал таймерінің аяқталу уақытын өңдеуге арналған адрес. Оның орнына мекен-жай келесі түрде көрсетілуі мүмкін (1), яғни мекен-жай регистрде сақталатындығын білдіреді. Күнделікті режимге қатаң шектеулер қойылады, оның ішінде кез-келген регистр мазмұнын өзгертпеу немесе SVC-ді пайдалану.

Univac VS / 9

Univac VS / 9 үшін[3] ол болды

[заттаңба] STXIT R, [тоқтату][,[болжам][,[intr][,[сетикалық][,[уақыт][,[жабу]]]] түсініктеме

Қайда

  • заттаңба Нұсқаулық үшін қолданылатын қосымша филиал жапсырмасы болды
  • STXIT - шақырылатын макростың аты
  • R шақырылатын STXIT қоңырау сыныбын көрсету үшін қолданылады (кейінірек басқа форматтар болған)
  • тоқтату - бұл әдеттен тыс тоқтату үшін қолданылатын қосымша процедураның белгісі, бұл TERM, EXEC немесе EOJ макросынан басқа кез келген бағдарламаны тоқтату. Бағдарламада өзін қалпына келтіру және тоқтату немесе жаңа бағдарламаның орындалуын сұрау үшін 30 cpu уақыты немесе 5 минуттық қабырға уақыты бар немесе бағдарлама автоматты түрде тоқтатылады. Әдеттегідей жоспардың болмауы бағдарламаны E079 қатесімен тоқтатуға әкеледі. Abend өңдегіші бағдарламаға орала алмайды, ол аяқталғаннан кейін TERM немесе EOJ арқылы аяқталуы керек (немесе басқа бағдарламаны EXEC-пен орындауы керек). Abend өңдегіші, егер прогшекстеу STXIT процедурасында орын алса, ол да аталады; күндізгі жоспар бойынша тексеру бағдарламаны EO79 қатесімен дереу тоқтатады, егер пайдаланушыға қажет болса PDUMP сұратуға мүмкіндік береді, егер өшіру жүрмесе, бұл жағдайда EO79 қатесі көрсетіліп, бағдарлама қолданушыға мүмкіндік бермей тоқтатылады PDUMP сұраңыз, және пайдаланушы автоматты түрде есептен шығарылады.
  • болжам - бұл бағдарламадағы кез-келген қателіктер болып табылатын бағдарламалық тексерулерді жүргізу үшін қолданылатын қосымша процедураның белгісі. Егер жоспарлау рәсімі болмаса, абенд режимі қолданылады; егер әдеттегідей режим болмаса, бағдарлама EO79 қатесімен тоқтатылады және пайдаланушыда PDUMP сұрау мүмкіндігі бар. Орындалмағаннан кейін нұсқаулыққа қайтару, егер бұл әдеттегідей жаңа мекен-жайды көрсетпесе. Proxcheck және abend-тен басқа кез-келген STXIT әдеттегі процедура осы жерде өтеді; бағдарламаны тексеру кезінде бағдарламаны тексеру өңдегіші abend процедурасын шақырады. ABEND өңдегіші кезінде бағдарламаны тексеру бағдарламаның тоқтатылуына әкеледі.
  • intr - бұл пайдаланушы пернетақтада break пернесін басқаннан кейін, пайдаланушы терминалынан INTR командасын өңдеу үшін қолданылатын қосымша процедураның белгісі. Егер INTR тәртібі болмаса, пайдаланушының INTR пәрмені қабылданбайды, бірақ пайдаланушы үзіліс орнында қалпына келтіру үшін R командасын бере алады. Қайтару - бұл қолданушы үзіліс жасаған кезде орындалатын нұсқаулық, егер бұл әдеттегідей жаңа мекен-жайды көрсетпесе.
  • сетикалық - егер бағдарлама SETIC макросын үзіліс жағдайының таймерін жасау үшін шығарса, қолданылатын қосымша ротуиннің белгісі. IC таймері ескерілмейді, егер ол үшін өңдеуші режим болмаса. Қайтару үзілістен кейін нұсқаулыққа қайтарылады, егер бұл әдеттегідей жаңа адресті көрсетпесе.
  • уақыт - бұл қосымша процедураның жапсырмасы, егер пайдаланушы бағдарламаны орындау кезінде TIME = параметрін шығарса, процессордың уақыты кеткенде оның бұзылуы керектігін көрсетеді. Күнделікті жұмыс аяқталған кезде бағдарлама бұзылады, ал пайдаланушы INTR тәртібін шақыру үшін INTR командасын бере алады немесе уақыт үзілген кезде бағдарламаны жалғастыру үшін R командасын бере алады. Егер уақыт режимі болмаса, үзіліс әдеттегідей болады.
  • жабу - жүйелік консоль операторы уақытты бөлуді өшіруді сұраған жағдайда қолданылатын қосымша процедураның белгісі. Бағдарламада кез-келген қажетті функцияларды тазартуға және одан шығуға мүмкіндік беретін қысқа мерзім бар. Күнделікті жұмыс аяқталғаннан кейін бағдарлама тоқтатылады және пайдаланушы автоматты түрде жүйеден шығады. Егер өшіру режимі болмаса, бағдарлама ескертусіз жойылады және пайдаланушы автоматты түрде жүйеден шығады.
  • соңғы параметрден кейін бір кеңістіктен басталатын барлық нәрсе түсініктеме болды.

VS / 9-дағы STXIT макросы параметрге негізделгендіктен, жетіспейтін жазбаларды үтірлермен енгізу керек болды, мысалы. егер тек үшінші элемент өңделсе, форматы болар еді

      STXIT R ,,, RTN1

Бір немесе бірнеше өңдеушілерді алып тастау үшін, STXIT макросы өңдеушілерді алып тастауға арналған бос жазбамен қайта шақырылады. Кез келген уақытта тек бір STXIT макро қоңырау күшіне енуі мүмкін.

Егер оқиға класы өңделмеген болса, ол алынып тасталынады және мұны көрсету үшін қатарда екі (немесе одан да көп) үтір болады. Оқиға класы операциялық жүйенің «әдепкі» өңдеушісімен қатені өңдеуге әкеледі. Қателіктерді білдіретін оқиғалар үшін (abend және prochcheck), бағдарлама EO79 қатесімен тоқтатылады және пайдаланушыда PDUMP сұрау мүмкіндігі бар; маңызды емес оқиғалар үшін оқиға еленбейді.

Кейінгі оқиғалар

Кейінірек қателерді қалпына келтіру жүйелері қателіктерді STXIT макросындағы параметрдің орнына қарама-қайшы түрде анықтауға мүмкіндік береді.

Univac's VS / 9 STXIT-ті қолдауды жалғастырды, бірақ сонымен бірге CRTN («Кездейсоқ жағдайлар») макросты одан да күшті қателерді қалпына келтіруге, сондай-ақ STXIT жазбаған кейбір қателерді қалпына келтіруге мүмкіндік береді. Бастапқыда CRTN және STXIT бірге қолданыла алмады. Одан кейін операциялық жүйенің екеуіне де арналған шығарылымдары; егер CRTN және STXIT макросы қолданылған болса, CRTN STXIT қамтылмаған кез-келген оқиғалармен жұмыс істеді; егер екеуі де оқиғаны жабу үшін қолданылса, онда STXIT процедурасы іс-шарамен айналысады және CRTN режимі қолданылмайды.

Әдебиеттер тізімі

  1. ^ DOS / VSE макро анықтамалығы, Док. № GC24-5140-0, International Business Machines Corporation, Эндикотт, Нью-Йорк, 1979 ж.
  2. ^ IBM z / VSE VSE орталық функциялары супервайзерінің қоңыраулары және ішкі макростар, International Business Machines Corporation, White Plains, Нью-Йорк, 1985, 2007
  3. ^ Univac VS / 9 бағдарламашысының нұсқаулығы, Sperry Univac, Cinnaminson, NJ, 1974 ж