UNIVERSIDADE ESTADUAL DE PONTA GROSSA SETOR DE CIÊNCIAS AGRÁRIAS E DE TECNOLOGIA DEPARTAMENTO DE INFORMÁTICA ANSELMO MARTINS NETO GUSTAVO ROSAS MECANISMO DE ESCALONAMENTO DE APLICAÇÕES NO LINUX PONTA GROSSA, 2017 ANSELMO MARTINS NETO GUSTAVO ROSAS MECANISMO DE ESCALONAMENTO DE APLICAÇÕES NO LINUX Projeto de Pesquisa apresentado para obtenção de nota na matéria da disciplina de Sistemas Operacionais, do curso de Engenharia de Computação da Universidade Estadual de Ponta Grossa. Prof.: Dierone Cesar Foltran Junior PONTA GROSSA, 2017 1 – INTRODUÇÃO Escalonamento refere-se à atribuição de processos concorrentes a um ou mais processadores, fato que é comum em sistemas operacionais multitarefa executando em computadores pessoais. Geralmente, esse tipo de escalonamento é feito pelo sistema operacional, e baseia-se no compartilhamento do processador através de técnicas de timesharing, ou seja, o tempo de uso do processador é dividido em pequenas fatias de tempo(timeslice) que são utilizadas pelos diversos processos ordenadamente. Dessa maneira, permite-se uma utilização eficiente e justa do processador disponível. Para garantir a imparcialidade, o sistema operacional cuida da suspensão e ativação dos processos, através de uma técnica chamada de preempção. 2- DESENVOLVIMENTO Geralmente os processos são dividivos em processos interativos, processos batch e processos tempo real. Em cada, pode-se ainda dividir em I/O bound ou CPU bound de acordo com a proporção de tempo que ficam esperando por operações de entrada e saída ou utilizando o processador. O escalonador do Linux não distingue processos interativos de processos batch, diferenciondo-os apenas dos processos tempo real. Ele é baseado em time-sharing, ou seja, o tempo do processador é dividido em fatias de tempo (quantum) as quais são alocadas aos processos. Sendo assim ele trabalha dividindo o tempo do CPU em épocas. Numa época, todos os processos têm um quantum específico cuja duração é calculada quando aépoca começa. Em geral, diferentes processos têm durações de quantum diferentes. O valor do quantum é a porção máxima de tempo atribuída ao processo naquela época. Quando um processo acaba o seu quantum, ele é preemptado e substituído por outro processo apto. Outra característica do escalonador Linux é a existência de prioridades dinâmicas. O escalonador do Linux monitora o comportamento de um processo e ajusta dinamicamente sua prioridade, visando a equalizar o uso do processador entre os processos. Ele também executa processos de prioridade dinâmica apenas quando não há processos de tempo real. Para selecionar um processo para execução, o escalonador do Linux prevê três políticas diferentes : - SCHED_FIFO: Essa política é valida apenas para os processos de tempo real. Na criação, o descritor do processo é inserido no final da fila correspondente à sua prioridade. - SCHED_RR: Na criação, o descritor do processo é inserido no final da fila correspondente à sua prioridade. - SCHED_OTHER: Corresponde a um esquema de filas multinível de prioridades dinâmicas com timesharing. O escalonador do Linux é executado a partir de duas formas diferentes. A primeira é a forma direta através de uma chamada explícita à rotina que implementa o escalonador. A segunda forma, denominada de lazy, também é conseqüência do procedimento de escalonamento, ocorrendo tipicamente em uma de três situações. -A primeira dessas situações é a rotina de tratamento de interrupção de tempo que atualiza os temporizadores e realiza a contabilização de tempo por processo. -A segunda situação ocorre quando um processo de mais alta prioridade é desbloqueado pela ocorrência do evento que esperava. -A terceira, e última forma de execução lazy, é quando um processo explicitamente invoca o escalonador através de uma chamada de sistema do tipo yield. 3- CONCLUSÃO Com isso constatamos que mesmo que depois de vários métodos e tentativas para satisfazer a simultaneidade dos objetivos conflitantes, ainda sim temos problemas como não saber o quanto um processo irá usar de processador e assim não prevendo que ocorram disfunções no sistema. Também vimos que com o escalonamento, o tempo de resposta dos processos melhora em geral e auxilia processos futuros de alta prioridade ou baixa dependendo da política de escalonamento. REFERÊNCIAS BARRETO, Luciano. Uma Arquitetura Baseada em Eventos para Desenvolvimento de Políticas de Escalonamento de Processos. Disponível em: < http://www.lasid.ufba.br/publicacoes/artigos/wso.pdf>. Acesso em 16 de Abril. 2017 RAMOS, Rogério. Escalonamento no LINUX. Disponível em: < http://www.inf.pucrs.br/~ramos/sop_escwinlin.pdf>. Acesso em 17 de Abril. 2017 DEIVES, Cristina. Sabóia, Priscila. Escalonamento no LINUX. Disponível em: < http://www.ic.unicamp.br/~islene/2s2007mo806/slides/MO806_Escalonamento_no_Lin.html>. Acesso em 17 de Abril. 2017 COSTA, Victor. Escalonamento. Disponível em: < http://www.cos.ufrj.br/~vitor/aulas/COS773/slides/aulas_4.html>. Acesso em 17 de Abril. 2017 SOUTO, Pedro. Escalonamento De Processos Disponível em: < http://paginas.fe.up.pt/~pfs/aulas/so1011/at/6sched.pdf>. Acesso em 18 de Abril. 2017