Ciências da computação dia 261
Tratamento de interrupção empilha o contador de programa atual carrega o novo contador de programa procedimento em assembly salva os registradores procedimento em assembly configura uma nova pilha executa serviço de interrupção escrito em C (lê e armazena a entrada) procedimento em C volta para o procedimento em asm procedimento em assembly inicia o novo processo Classificação de processos CPU Bound I/O Bound Sabendo o tipo do processo, é possível implementar rotinas no escalonador para otimizar o tempo ocioso Para otimizar é possível utilizar: buffer, paralelismo real, etc. CPU Bound utiliza muita CPU tempo de execução é dado por ciclos da CPU que foram(serão) usados tem sensibilidade ao escalonador (performance depende dele, já que ele dirá quando o processo pode usar a CPU) I/O Bound realiza muito I/O tempo de execução dado pela operação de Entrada e saída é menos afetado pelo escalonador tempo de espera da entrada ou saída é o limitante Banco de dados, web server, etc. Escalonador sua função é não deixar a CPU ociosa mudança de contexto (processo) → tarefa custosa o escalonamento é necessário quando → um processo é criado, bloqueado e terminou a execução. quando há um bloqueio, o escalonador pode decidir continuar esperando pelo I/O ou seguir para outro processo mais rápido Tipos de algoritmos do Escalonador Preemptivo → suspende o processo que está sendo executado Não preemptivo → executa tudo até o programa acabar ou houver um bloqueio Preemptivo muita troca de contexto suporta melhor a responsividade processos com prioridade são executados na hora fila prioritária bom para sistemas em tempo real Não preemptivo era usado em sistemas uni-core há menos tempo desperdiçado devido a menor troca de contexto mais previsível o tempo de execução Características para um Escalonador justiça → cada processo tem uma parcela de tempo justa para usar a CPU balanceamento → diminuir a ociosidade do sistema cumprimento da política do sistema → uso da prioridade, etc. deve ser encaixar ao tipo de ambiente (batch, interativo, etc.) Sistemas BATCH vários dados ao mesmo tempo para processar sem muito I/O necessário maximizar o uso da CPU não precisa de respostas rápidas pouca troca de contexto escalonador vai para aquele com menor tempo de execução ou menor uso de memória escalonador também pode seguir a ordem do user ou através da pilha de tarefas Sistemas Interativos alta interação com o user alta troca de contexto responsividade para o user escalonador precisa se adaptar a carga de trabalho e manter equilíbrio entre responsividade e uso de CPU escalonador deve ter baixo tempo de resposta (fatias de tempo menor pra cada um), preempção (dar chance para outro processo executar), prioridade para processos interativos, aumentar a prioridade para processo a muito tempo na fila Sistemas de tempo real tarefas precisam ser executadas dentro do deadline maior tempo para cada processo Jitter variação entre o tempo de resposta e o tempo ideal Overhead tempo não utilizado troca de contexto Algoritmos de escalonador para sistemas BATCH three level FIFO Shortest job first shortest remaining time next Three Level 3 escalonadores (CPU, memória e admissão) admissão → processos menores primeiro; leva em consideração menor acesso a CPU e maior uso de I/O memória → verifica quanto tempo está esperando, tempo de CPU, tamanho, importância CPU → executa o próximo FIFO segue a ordem de requisição dos processos não preemptivo vai empilhando os processos Shortest Job First menor é executado primeiro não preemptivo menor turnaround médio Turnaround médio é o tempo médio de execução de todos os processos. Nesse método, vê-se a combinação de processos que minimizam o tempo. ...