Preemptividade

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
Question book.svg
Este artigo não cita fontes fiáveis e independentes. (desde dezembro de 2013). Por favor, adicione referências e insira-as corretamente no texto ou no rodapé. Conteúdo sem fontes poderá ser removido.
Encontre fontes: Google (notícias, livros e acadêmico)

Em computação, preemptividade (algumas vezes preempção) é o ato de interromper temporariamente uma tarefa sendo resolvida por um sistema computacional, sem precisar de sua cooperação, e com a intenção de retomar a tarefa depois. Tal mudança é conhecida como uma troca de contexto. É normalmente resolvida por uma tarefa privilegiada ou parte de um sistema conhecido como uma agenda preemptiva, que tem o poder de preeminar, ou interromper, e depois retomar, outras tarefas no sistema.[1]

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 dos escalonadores 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.


Algoritmos preemptivos são mais adequados para sistemas em que múltiplos processos requerem atenção do sistema, ou seja, no caso de sistemas multiusuário interativos (sistemas em tempo repartido) ou em sistema de tempo real. Nestes casos, a preemptividade representa a troca do processo em execução, assim sendo, para que o processador seja retirado de um processo, interrompendo seu trabalho, e designado a outro processo, anteriormente interrompido, é fundamental que ocorra a troca de contexto dos processos. Tal troca exige que todo o estado de execução de um processo seja adequadamente armazenado para sua posterior recuperação, representando uma sobrecarga computacional para realização desta troca e armazenagem de tais dados. Usualmente os algoritmos preemptivos são mais complexos dada a natureza imprevisível dos processos.

Por sua vez, os algoritmos não preemptivos são mais simples e adequados para o processamento não interativo, semelhante aos esquemas de processamento em lote dos sistemas batch. Embora não proporcionando interatividade, são geralmente mais eficientes e previsíveis quanto ao tempo de entrega de suas tarefas.

O mesmo conceito pode ser aplicado ainda quando avaliamos os processos de uma organização.


Usuário e Modo Núcleo[editar | editar código-fonte]

Em todo o projeto de sistema, algumas operações realizadas por ele podem não ser preemptivas. Isso geralmente se aplica em funções do núcleo (Kernel) e em interrupções de serviço que, se não autorizados a circular até a conclusão tendem a produzir condições de corrida, resultando em um impasse. A distinção entre modo usuário e modo kernel, que determina o nível de privilégio dentro do sistema, também pode ser usado para distinguir se uma tarefa é ou não preemptiva.

Ícone de esboço Este artigo sobre Informática é um esboço. Você pode ajudar a Wikipédia expandindo-o.


Referências