Agendamento por prioridade
A ideia básica de agendamento por prioridade é de atribuir a cada processo uma prioridade , assim o que tiver maior prioridade recebe permissão para executar sendo possível que o agendador altere sua prioridade para evitar que um processo execute indefinidamente na UCP, a cada interrupção do relógio pode haver comutação de processos assim podendo atribuir estaticamente ou dinamicamente prioridades distintas a cada processo, por exemplo, o sistema UNIX tem como nice (gentil) , que permite que o usuário voluntariamente reduza a prioridade do seu processo para liberar para outro ou até mesmo limitar para que ninguém utilize determinado processo. Prioridades atribuídas dinamicamente geralmente gerenciadas pelo sistema operacional, podem atingir metas do sistema, segundo Andrew S. Tanenbaum (1999,p.71) diz que “[processos de entrada e saída (E/S) gastam maior do seu tempo esperando a etapa completar ] ” , isso faz com que ocupe espaço na memoria desnecessariamente por um longo tempo . Um algoritmo eficaz para evitar esta situação e oferece um bom serviço associado a E/S é configurado 1/f, onde f é a fração do ultimo intervalo de tempo que o processo utilizou. Um exemplo é se um processo que utilizou 3ms de seus 150ms de intervalo de tempo receberia prioridade 50, enquanto um processo que executa 100ms antes de bloquear receberia prioridade 2 e um processo que fez o uso por inteiro do intervalo de tempo receberia prioridade 1.’ Dispositivos de entrada e saída (E/S).
Uma das principais funções de um sistema operacional é controlar todos os dispositivos de E/S onde estão contidos comandos de envio e captura por parte do software e do hardware que fazem interrupções e tratativas de erro . Basicamente podemos associar dois tipos de E/S que não definem todos os tipos de dispositivos ou mecanismos de E/S , sendo eles dispositivos de blocos e caracteres . No dispositivo de bloco podemos dar exemplo de discos rígidos fitas DAT