Esercizio 11dall'impegno percentuale della CPU alle durate delle ISR (temi d'esame febbraio 2025 e febbraio 2026)
In questa pagina 3
Testo (tema d'esame febbraio 2025, problema P7; febbraio 2026, problema P2).
(i) Un microcontrollore gestisce 2 sorgenti di interruzione. La prima, di priorità 1, attiva una routine di servizio (ISR1) ogni 100 µs; la seconda, di priorità 2, ogni 250 µs (ISR2). Il microcontrollore, complessivamente, risulta impegnato per l'80% del suo tempo di calcolo nella gestione delle richieste. Sapendo che ISR2 ha una durata inferiore del 30% a quella di ISR1 e trascurando i tempi di latenza e ogni altro ritardo: (a) determinare le durate delle due routine; (b) dire se il sistema può funzionare senza nesting; (c) dire se può funzionare con il nesting.
(ii) Tre sorgenti IRQ1, IRQ2, IRQ3 hanno durate , , e periodi , , , con priorità 1, 2, 3. La CPU è impegnata per il 75% del tempo. Sapendo che µs: (a) le durate delle ISR; (b) la sostenibilità con e senza nesting; (c) la massima durata compatibile per ISR1 con µs (mantenendo le proporzioni); (d) la massima frequenza compatibile per IRQ1 con µs (mantenendo le proporzioni tra i periodi).
(i) Febbraio 2025
(a) Durate. Poniamo . L'impegno complessivo è , cioè , quindi (b) Senza nesting. Condizione per IRQ1: ✗. Non può funzionare: se ISR2 è appena iniziata quando arriva IRQ1, la ISR1 parte dopo 43,75 µs e termina oltre il suo periodo. (c) Con nesting. IRQ1: ✓. IRQ2: con : ✓. Può funzionare (con margine di soli 18,75 µs).
(ii) Febbraio 2026
(a) Durate. . Con µs: , , µs; periodi 18, 36, 216 µs.
(b) Sostenibilità.
- Senza nesting: IRQ1: ✗ non sostenibile (in generale per ogni ).
- Con nesting: IRQ1: ✓; IRQ2: ✓; IRQ3: ✓. Sostenibile.
(c) Massima durata di ISR1 con µs, a parità di rapporti (, ):
- IRQ1: ;
- IRQ2: ;
- IRQ3: . La più restrittiva è la terza: 8 µs.
(d) Massima frequenza di IRQ1 con µs (con , ): IRQ1: ; IRQ2: ; IRQ3: µs. Quindi .
Errori comuni
- Dividere la percentuale in parti uguali: le durate sono determinate dai rapporti dati (qui e ).
- Per il "senza nesting" dimenticare il termine con la ISR più lunga di priorità inferiore (in (i): ISR2 su IRQ1).
- Usare il rapporto dei periodi sbagliato: per IRQ2 e per IRQ3.
- Cercare la durata massima con la prima condizione soltanto: la più restrittiva è quella della sorgente a priorità più bassa.
Versione ripasso
Testo. Dall'impegno della CPU alle durate. (i) 80% con µs, µs e (febbraio 2025). (ii) 75% con , e µs (febbraio 2026).
- (i) Durate: dà µs e µs.
- (i) Senza nesting: IRQ1 : no. Con nesting: IRQ1 ; IRQ2 (con ): sì, con margine di 18,75 µs.
- (ii) Durate: dà , quindi , , µs; periodi 18, 36, 216 µs.
- (ii) Sostenibilità: senza nesting IRQ1 : no. Con nesting IRQ1 ; IRQ2 ; IRQ3 : sì.
- (ii) Durata massima di ISR1 (proporzioni fisse, µs): IRQ1 ; IRQ2 , cioè ; IRQ3 , cioè . Risultato: 8 µs.
- (ii) Massima frequenza di IRQ1 con µs: IRQ2 dà ; IRQ3 dà µs, cioè kHz.