Suponha que temos um sistema operacional rodando em uma CPU totalmente compatível com seus requisitos. Este sistema operacional é dirigido por ticks. A interrupção do tick do sistema chega do temporizador externo (modo periódico) que é conectado a algum pino IRQn da CPU para simplificar.
Os pinos de IRQ são classificados por prioridade de interrupção. O IRQ0 tem a prioridade mais alta e o IRQn tem a menor prioridade. A prioridade existe pelo menos por dois motivos. Primeiro, é claro, quando chegam duas interrupções juntas, uma com maior prioridade é selecionada. A segunda razão é a seguinte: quando a interrupção ocorre, outras interrupções são desativadas pelo hardware. Quando as interrupções estão ativadas para ISR (possíveis interrupções de aninhamento), apenas interrupções com maior prioridade podem ocorrer. E tenho algumas dúvidas sobre isso.
Minha primeira pergunta provavelmente é muito simples e posso respondê-la sozinha (talvez), mas quero ler uma resposta confiável.
Aqui está a segunda pergunta.
E aqui está a adição por mim. Se pode acontecer a situação acima (na segunda pergunta), há uma chance de perda do tick do sistema. Pode causar grandes problemas?
* Se a prioridade do tick timer não era a prioridade de interrupção mais baixa no sistema, pode ocorrer situação quando a CPU está em ISR com menor prioridade que a interrupção de tick do sistema e permite mais interrupções e processos do usuário, é armazenado em algum lugar na pilha, onde não podemos encontrá-lo na rotina de ticks do sistema.
Sei que tudo pode depender do sistema, mas estou interessado em soluções típicas semelhantes a essa situação.
Desculpe pelo meu inglês.