S562 · R1 uygulama: servis öldürme ve yeniden başlatma gözetim modeli
S562 kaynak/host model kapısı PASS'tir: R1 uygulama/recovery aşamasının servis öldürme ve yeniden başlatma gözetimi, sabit altı servisli tablo (Critical/Normal tür, Always/OnFailure/Never restart politikası, bağımlılıklar), Operator/Watchdog/Fault/Oom gerekçeli kill istekleri, 5 tick'lik graceful shutdown penceresi sonrası zorunlu kill, 1-2-4-8 tick üstel backoff (8'de sabitlenir, 60 stabil tick sonrası sıfırlanır), 60 tick içinde 5'ten fazla restart'ta Quarantined kararı, bağımlılık sıralı cascade/restart ve monoton numaralı receipt defteriyle fail-closed olarak modellendi. Bilinmeyen servis, Never-politika restart'ı, karantinada restart, saat gerilemesi ve tick taşması dahil 15 benzersiz diagnostic kodla reddedilir. Focused 18/18 PASS'tir. S540 ve S543 fiziksel RED immutable kalır; physical observation=0, donanım yoktur ve RUNBOOK_EXECUTED_IN_S562=NO'dur. S563 bu gözetim receipt'leri üzerine sınırlı recovery ve fault containment modelleme kapısıdır.
Doğrulanan kanıt
- S562, S561'den ayrı bir source/host model module, 18-test focused binary, proof, status manifest, Operations kaydı ve complete Code kartına sahiptir; hiçbir production callsite, boot/IRQ/scheduler/driver bağlantısı yoktur.
- Dar S562 source-model status=PASS; R1 umbrella=PARTIAL ve S540/S543 physical gate status=RED olarak ayrı tutulur.
- Servis tablosu sabittir: 1 ipc_router (Critical/Always), 2 display_compositor (Critical/Always, dep 1), 3 modem_daemon (Critical/OnFailure, dep 1), 4 telephony_ui (Normal/OnFailure, dep 2+3), 5 launcher (Normal/Always, dep 2), 6 diagnostics_probe (Normal/Never); bağımlılık kimlikleri her zaman bağımlıdan küçüktür ve döngü yoktur.
- Kill gerekçeleri tablolanmıştır: Operator ve Watchdog exact 5 tick'lik graceful shutdown penceresi açar; pencere içinde acknowledge graceful exit, deadline'da veya sonrasında grace tick forced kill üretir; Fault ve Oom servisi anında ve forced olarak durdurur.
- Restart backoff exact 1, 2, 4, 8 tick dizisini izler, 8 tick'te sabitlenir ve son start'tan itibaren 60 stabil tick geçtiyse 1'e sıfırlanır; tüm tick aritmetiği checked'tir ve taşma TickOverflow ile fail-closed döner.
- Restart fırtınası 8 slotluk sınırlı history ile izlenir: 60 tick'lik pencerede 5'ten fazla restart servisi Quarantined durumuna alır; Critical bir servisin karantinası system_degraded bayrağını kurar ve yalnız açık operatör release'i karantinayı, history'yi ve backoff'u temizler.
- Bağımlılık sıralaması korunur: bir servisin kill'i Running/Stopping bağımlılarını transitif olarak WaitingDependency durumuna taşır; bir bağımlı ancak tüm bağımlılıkları yeniden Running olduktan sonra restart edilebilir, aksi halde DependencyNotRunning döner.
- Politika denetimi fail-closed'dur: Never servisleri hiç restart edilmez (NeverPolicyRestart), OnFailure servisleri Operator stop sonrası restart edilmez (OperatorStopNotRestartable), Always servisleri her gerekçeden sonra restart edilir.
- Receipt'ler monoton receipt_no ile numaralanır ve 64 slotluk sınırlı deftere yazılır; defter dolduğunda ReceiptLedgerExhausted ile reddedilir; exact replay aynı receipt ile Retained döner ve yayın sonrası sapan girdi (aynı serviste farklı gerekçeli ikinci kill dahil) fail-closed reddedilir.
- Bilinmeyen servis kimliği, saat gerilemesi, Running olmayan servise kill, bekleyen shutdown olmadan acknowledge/tick, deadline sonrası acknowledge, backoff dolmadan restart ve karantinasız release dahil 15 hata varyantının diagnostic kodları sıfırdan farklı ve benzersizdir.
- Focused target 1 grup / 18 passed / 0 failed / 0 ignored / 0 filtered verdi.
- Implementation 29064 B / aa748dcba3d391492b7e6886518b9171f077c77e413bff280d7b439b5c04d1a0; focused test 24333 B / 7acdb94149dc6e449794c4e4451e5c7d80d83c2349673ac10b343746893d4b83 SHA-256'dır.
- Proof 4909 B'dir.
- Kaynak unsafe, asm!, write_volatile, crate::uart, crate::arch, #[no_mangle] veya spin:: içermez; tick saati focused test tarafından verilen model değeridir ve hiçbir donanım sayacı okunmaz.
- S540 ve S543 immutable raw ve fiziksel RED kararları byte-exact korunur; automatic promotion=false'dur ve S546 kararı varsayılmaz.
- RUNBOOK_EXECUTED_IN_S562=NO; supported-profile runtime observations=0, physical observations=0, SD/UART/power/new-raw=0/0/0/0, Boot-to-UI physically observed=false ve R1 acceptance=false'dur.
- S563 yalnız host üzerinde S562 gözetim receipt'leri üzerine sınırlı recovery ve fault containment modelleyecektir; aygıt veya fiziksel koşu yetkisi değildir.
Sınır / bekleyen kanıt
- S562 yalnız host üzerinde çalışan bir kaynak modelidir; hiçbir donanım/panel/modem/board gözlemi yoktur ve gerçek bir supervisor task, watchdog veya scheduler kancası çalıştırılmamıştır.
- Tick saati caller tarafından verilen model değeridir; gerçek zaman, timer IRQ veya güç geçişi gözlenmemiştir; BOOT_TO_UI_READY gerçek UART'ta görülmedi, Boot-to-UI ve R1 acceptance false kalır.
- S540 ve S543 fiziksel RED immutable kalır; S546 üçüncü fiziksel koşunun kararı bu kapıda varsayılmaz veya yükseltilmez.
- Modül hiçbir boot, IRQ, scheduler veya driver yoluna bağlı değildir ve hiçbir gerçek servis öldürülmemiş veya yeniden başlatılmamıştır.
- S563 host-only sınırlı recovery ve fault containment kapısıdır; yeni SD/UART/power koşusu ayrı kapı, fresh target revalidation, açık operatör yetkisi ve yeni immutable raw ister.
Terminal komutları ve gerçek yanıtlar
$ CARGO_INCREMENTAL=0 cargo test -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s562_r1_service_kill_restart_supervision_model -- --test-threads=1test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
S562 focused=1 group / 18 passed / 0 failed
hardware=none physical=0 runbook=NO