-
O escalonamento preemptivo permite que cada processo tenha uma parcela de uso da CPU. Isso é crucial para os sistemas de tempo real, pois a preempção impede que os processos passem muito tempo esperando para serem exucutados (o que não seria nada aconselhável para sistemas de tempo real)
-
Além disso, o que é muito comum em sistemas de temp real é a atribuição de prioridades aos processos mais críticos. Isso só é possível com o escalonamento preeptivo.
-
O método padrão usado hoje em dia é o multitarefa preventivo onde o núcleo do sistema operativo controla a execução de cada processo (ver abaixo) e cada processo continua após um certo tempo de processamento em favor de outros processos. Então, "dorme" o processo (está inativo), e outros processos são manipulados.
-
Discordo do gabarito. A preempção não é necessária em sistemas de tempo real, pode até ser indesejada. Como no próprio Tanenbaum Modern Operating Systems 3ed sobre sistemas de tempo real: "Em sistemas com restrições de tempo real, a preempção é, estranhamente, algumas vezes não necessária, por que os processos sabem que ele não podem executar por longos períodos de tempo e usualmente realizam sua tarefa e bloqueiam rapidamente." (tradução própria)
Basta notar que, nos sistemas hard real-time, é possível saber o tempo de execução de uma tarefa antes da execução dela. Se a preempção é possível, a tarefa que demoraria x msec não poderá ter esse tempo determinado, pois não se sabe se e quando ela vai ser preemptada.
-
Discordo totalmente do Yuri. Tanenbaum
afirma apenas q "em sistemas com restrições de tempo real, a
preempção é, estranhamente, algumas vezes não
necessária...”
Repare bem nas palavras em negrito.
Elas consituem exceção. A regra eh q sistemas real-time sejam
preemptivos. Mas, como toda regra tem sua exceção, em alguns
sistemas, a preempcao se torna indesejada.
Repare q os sistemas de tempo real, em
regra, são preemptivos porque os processos q precisam ser executados
com “urgencia” para não comprometer seu proposito(ex: usina
nuclear, monitoramente de pacientes etc), possuem prioridades mais altas e não
podem esperar ate q outro processo(com mais baixa prioridade),
termine sua execucao para conceder ao ultimo, os recursos do processador.
-
Em sistemas operacionais, preemptividade ou preempção é a capacidade de alterar a ordem de (ou tirar de execução) um processo em detrimento de outro com uma prioridade maior. Esta é uma característica que não é importante apenas nos sistemas operacionais em tempo real. Este tipo de intervenção por parte dosescalonadores dos sistemas operativos pode ocorrer - embora não estando limitados apenas a isso - a optimizar a entrada/saída de dados em tempo-real, como é o caso da gravação de áudio. Um exemplo de uma tarefa não-preemptiva é o processamento de interrupções.
-
Nos Sistemas de Tempo Real (Real Time), a execução de processos críticos são priorizados em
detrimento de outros processos.
-
CONSOANTE SILBERSCHATSZ
- Para que as tarefas de tempo real tenham acesso imediato à CPU, os sistemas operacionais de tempo real também devem minimizar essa latência. A técnica mais eficaz para manter a latência de despacho baixa é o fornecimento de KERNELS PREEMPTIVOS.
- Algoritmos = RMS, EDP.
GABARITO B
- Tempo Real = Prioridade, Tempos Rígidos, Utilizam Temporizadores, só funciona corretamente se retorna o resultado correto dentro de suas restrições de tempo.
- Tempo REAL CRÍTICO = Têm requisitos mais rigorosos. Uma tarefa deve ser atendida de acordo com seu limite de tempo. O atendimento após o limite de tempo ter expirado é o mesmo que não haver atendimento.
- Tempo REAL NÃO CRÍTICO = Não fornecem garantia de quando um processo de tempo real crítico será alocado no schedule. Eles garantem apenas que o processo terá preferência sobre processos não críticos.