Baixe o app para aproveitar ainda mais
Prévia do material em texto
Sistemas Operacionais I - France Ricardo Marques Gonzaga - UNIGRAN 49 Muitas das vezes tem-se várias coisas para se fazer e apenas um indivíduo para realizar as tarefas. Você mesmo pode estar pensando, basta o indivíduo escolher uma das tarefas, ou seja, escalonar uma das tarefas e realizar uma a uma. Assim, no final, todas as tarefas são executadas uma a uma, certo?; ou se pode pensar que quando se tem um grande problema nós dividimos esse problema em pequenas partes e resolvemos parte por parte; ou escalonamos uma parte e resolvemos, assim por diante, até que o grande problema seja resolvido. Aula 06 ESCALONAMENTO DE PROCESSOS Sistemas Operacionais I - France Ricardo Marques Gonzaga - UNIGRAN 50 Bem, antes os computadores realizavam tarefa por tarefa em uma sequência, hoje realizam várias tarefas ao mesmo tempo. Como ele escolhe qual tarefa realizar primeiro, como ele escalona as tarefas, qual tarefa tem mais prioridade que a outra? O sistema operacional se encarrega disso utilizando-se de um algoritmo de escalonamento, e a parte do sistema operacional que faz esse escalonamento é chamado de escalonador. Como o tempo de CPU é um recurso muito requisitado e somente um processo de cada vez pode usufruir desse tempo, então, um bom escalonador faz a grande diferença no desempenho observado e na satisfação do usuário. Vejamos também que é improvável que um usuário esteja, simultaneamente, entrando com um documento texto e compilando um programa em segundo plano, pois quando um usuário digita uma letra no editor de texto, fi ca fácil para o escalonador perceber qual processo executar, pois o processador de texto é o único candidato. Podemos pensar também que com o passar dos anos os computadores se tornam cada vez mais rápidos e que a CPU não fi ca por muito tempo ocupada; e a maioria dos programas para computadores pessoais é limitada pela velocidade com que os usuários podem encontrar dados (digitando ou clicando); e os compiladores que eram grandes consumidores de ciclos da CPU, no passado, hoje duram no máximo alguns segundos. Quando dois programas estiverem executando ao mesmo tempo, difi cilmente importará qual começou primeiro, já que o usuário estará esperando, provavelmente, que ambos terminem. É claro que em PC simples o escalonamento não faz tanta diferença e é óbvio que há aplicações que consomem praticamente toda a CPU ao exibir vídeos de alta resolução. Isso pode exigir processamentos de imagens. Quando observamos servidores de estação de trabalho de alto desempenho em rede, a situação muda. Podemos observar múltiplos processos competindo pela CPU e, portanto, o escalonamento se torna importante. Por exemplo, quando um usuário manda uma mensagem e abre uma outra tela qualquer, se a CPU decide por atualizar a tela, mas antes decide enviar a mensagem, demora uns 2 segundos, o que comprova que a decisão por parte da CPU é muito importante. O usuário classifi caria o sistema operacional como sendo muito lento, ao ter que esperar esse processo de primeiro enviar a mensagem e depois atualizar a tela. Além da escolha do processo correto para executar, o escalonador deve se preocupar em fazer um bom uso da CPU. Os critérios utilizados para essa seleção é composto pela chamada política de escalonamento, que pode ser considerada a base da gerência do processador e da multiprogramação de um sistema operacional. Sistemas Operacionais I - France Ricardo Marques Gonzaga - UNIGRAN 51 Uma das funções básicas da política de escalonamento do sistema operacional é como fazer para manter o processador ocupado a maior parte do tempo: dividir o uso da CPU entre os processos, oferecer tempo de resposta razoável para usuários interativos e privilegiar a execução de aplicações críticas. Mas os sistemas operacionais não são todos iguais pois cada um dos sistemas operacionais possui seu controle de escalonamento adequado ao seu uso. Um exemplo: os sistemas de tempo compartilhado são diferentes do controle de escalonamento, que são diferentes do sistema de tempo real. Os processos trabalham com surtos de entrada e saída, ou seja, são executados até que uma requisição de entrada e saída é chamada para ler ou escrever em um arquivo. Quando a chamada do sistema termina, a CPU computa novamente até que ela é chamada novamente para ler ou escrever dados. Podemos perceber que algumas atividades de entrada e saída podem ser consideradas como computação. Quando, por exemplo, a CPU copia bits para uma RAM de vídeo, a fi m de atualizar a tela, ela está fazendo uma computação e não uma atividade de entrada e saída, porque a CPU encontra-se em uso. A entrada e saída (E/S) tem o sentido de que um processo encontra-se em estado bloqueado, esperando que um dispositivo externo termine o que está fazendo. Repare na fi gura que segue, pois uma parte maior dos processos gasta a maior parte do tempo processando, enquanto outros passam a maior parte do tempo esperando uma E/S. Os primeiros processos são chamados de orientados à CPU e os outros de orientados à E/S. Os objetos orientados à CPU apresentam um tempo maior de uso da CPU e um tempo mais curto de espera de E/S; enquanto os objetos orientados à E/S apresentam um tempo mais curto de uso da CPU e maior tempo de espera pela E/S. Figura 1 Sistemas Operacionais I - France Ricardo Marques Gonzaga - UNIGRAN 52 Devemos observar que, com o passar do tempo, as CPU fi cam cada vez mais rápidas. Assim, os processos tendem a se tornar mais orientados à E/S. Esse efeito ocorre porque as CPU estão fi cando mais rápidas que os discos. E agora, qual processo executar? Bem, essa questão pode ser respondida pelo escalonador do sistema operacional. Em primeiro lugar, quando se cria um novo processo e como tomar a decisão de qual processo executar, o processo pai ou o processo fi lho? Mais uma vez, se os dois processos estão em estado de pronto, cabe ao escalonado selecionar qual dos processos ele deve executar. Uma decisão de escalonamento deve ser tomada logo em seguida, quando um processo termina, porque como o processo não existe mais, deve ser tomada a decisão de escolher um outro processo entre os que estão em estado de pronto. Se nenhum processo está em estado de pronto é executado um processo ocioso, gerado pelo próprio sistema. Outra situação é quando o processo é bloqueado por algum problema. Isso leva o escalonador a ter uma decisão em qual processo executar. Muitas vezes, a escolha do processo é infl uenciada pelo bloqueio. Um exemplo: se um processo “A” for muito importante e está esperando um outro processo “B” sair da região crítica, ele deixa “B” executar e, em seguida, sai da região crítica. Depois o processo “A” continua a execução. O grande problema é que o escalonador não tem essa informação necessária para considerar essa dependência. Outra situação é quando a interrupção vem de um dispositivo de E/S que encerrou a sua execução, pois ele pode tomar a decisão de escalonador, porque o processo que estava bloqueado, esperando pela E/S, pode agora fi car pronto para execução. Mas, é o escalonado que decide se executa o processo que acabou de fi car pronto, se continua executando o processo atual ou se seleciona um outro, um terceiro processo para executar. Os algoritmos de escalonamento podem ser divididos em duas categorias quanto ao modo como tratam as interrupções. Um algoritmo pode ser de escalonamento não preemptivo, ou seja, ele escolhe um processo para executar e executa até que ele esteja bloqueado ou até que voluntariamente libere a CPU. Mesmo que execute por horas, ele não será suspenso. Depois temos o algoritmo de escalonamento de preemptivo, ou seja, Figura 2 Sistemas Operacionais I - France Ricardo Marques Gonzaga - UNIGRAN 53 escolha o processo e deixe-o em execução por um tempo máximo fi xado. Se ainda estiver executando ao fi nal desse tempo máximo fi xado, esse processo será suspenso e o escalonador selecionaoutro processo (se houver algum disponível). O escalonador preemptivo requer um interruptor de relógio ao fi m do intervalo desse tempo. Temos sistemas operacionais com diferentes tipos de escalonadores. É claro que para cada ambiente, para cada necessidade há um tipo de sistema operacional que possa ser aplicado. Cada ambiente requer um tipo de sistema e os sistemas oferecem tipos de escalonamento diferentes. Por isso, daremos foco diferenciado a três tipos de escalonamento que são: Lote, Interativo e Tempo real. Em sistemas de lote, algoritmos não preemptivos e preemptivos, que tenham um longo intervalo de tempo para cada processo, até são aceitáveis, pois a redução de alternância entre processos pode melhorar o desempenho. No ambiente interativo é essencial a preempção, pois ela evita que um processo se aposse da CPU e, com isso, negue serviço aos outros. Uma falha em um programa pode impedir que todos os outros processos sejam executados. Em sistema de tempo real, a preempção pode se tornar desnecessária. Ela sabe que não pode executar um processo por longo período, pois o processo é executado e bloqueado. Uma das diferenças em relação ao sistema interativo é que sistemas de tempo real executam apenas programas que visam ao progresso da aplicação. Para se construir um algoritmo de escalonamento é preciso ter uma ideia do que o algoritmo precisa fazer. Depende, principalmente, do ambiente em que ele será aplicado e de decidir qual a prioridade dele (lote, interativo ou tempo real). Mas existem também aqueles que são desejáveis para todos os casos. Em todos os casos, a justiça em relação ao tempo de processamento é muito importante, pois alguns processos são semelhantes e assim devem ter o mesmo tratamento pela CPU. Não seria justo dar mais tempo da CPU para processos que são basicamente iguais. Mas há casos em que se queira que um processo seja tratado com um diferencial. Então essa política deve ser respeitada. Outro objetivo é manter todos os dispositivos ocupados. Se possível, manter a CPU o tempo todo ocupada e todos os dispositivos de E/S, mais trabalho por segundo será feito. Seguem alguns objetivos relacionados: Todos os sistemas. • Justiça – dar a cada processo uma porção justa da CPU. • Aplicação da política – verifi car se a política estabelecida é cumprida. • Equilíbrio – manter ocupada todas as partes do sistema. Sistema de lote. • Vazão (throughput) – maximizar o número de jobs por hora. • Tempo de retorno – minimizar o tempo entre a submissão e o término. Sistemas Operacionais I - France Ricardo Marques Gonzaga - UNIGRAN 54 • Utilização de CPU – manter a CPU ocupada o tempo todo. Sistemas interativos. • Tempo de resposta – responder rapidamente as requisições. • Proporcionalidade – satisfazer as expectativas dos usuários. Sistema de tempo real. • Cumprimento dos prazos – evitar a perda de dados. • Previsibilidade – evitar a degradação da qualidade de sistemas multimídia. Fonte: Sistemas Operacionais Modernos – Andrew S. Tanenbaum Ed. Pearson Prentice Hall ATIVIDADES As atividades referentes a esta aula estão disponibilizadas na ferramenta “Atividades”. Após respondê-las, envie-nas por meio do Portfólio- ferramenta do ambiente de aprendizagem UNIGRAN Virtual. Em caso de dúvidas, utilize as ferramentas apropriadas para se comunicar com o professor.
Compartilhar