Уточнение: "пропадание питания" должно вызвать прерывание по кернелному 24, дать возможность выполнить сколько-то там команд, после чего все устройства (включая процессор) должны полностью "выключиться" (к этому моменту операционка уже выполнит HALT), сохраняется только память. "Восстановление питания" должно выглядеть как запуск процессора с нуля и вызвать прерывание по физическому 24 (ну собственно он же и кернелным будет поскольку MMU в этот момент выключен), не трогая при этом стек - то есть установить PC/PS и все.
- - - Добавлено - - -
Опробовал в E11 симуляцию сбоя питания на RSX. Для этого сделан плугин который по записи в свой регистр вызывет прерывание по 24, а по init устанавливает PC/PS и достаточно продолжить выполнение командой P:- - - Добавлено - - -Код:>TYP PFAIL.MAC .TITLE PFAIL -- POWERFAIL RECOVERY TEST .IDENT /V01.00/ .MCALL EXIT$S,QIOW$S,SPRA$S,STOP$S START:: SPRA$S #20$ ;SET POWER RECOVERY AST 10$: STOP$S ;STOP BR 10$ ;LOOP 20$: QIOW$S #IO.WVB,#5,#1,,,,<#PWUP,#PWUPL,#40> ;PRINT MESSAGE EXIT$S ;EXIT PWUP: .ASCII /*** POWER RESTORED ***/ PWUPL =: .-PWUP .END START >RUN PFAIL E11>d 172000 1 E11> %HALT R0/172260 R1/172220 R2/172240 R3/172200 CM=K PM=S PRIO=7 R4/177620 R5/172360 SP/002120 PC/045714 N=0 Z=0 V=0 C=0 045714 mov 001114,sp E11>init E11>p *** POWER RESTORED *** >
Ну и развитие идеи симуляции сбоя питания: возможность сдумпить память в файл и выйти из эмулятора, а потом восстановить из файла память и сделать запуск прерыванием по 24.





Ответить с цитированием