Escalonamento Linux certo

Propaganda
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
Download