Gestor de Processos Núcleo do Sistema Operativo. Sistemas Operativos 2012 / Gestor de Processos - PDF
Gestor de Processos Núcleo do Sistema Operativo. Sistemas Operativos 2012 / Gestor de Processos
Download "Gestor de Processos Núcleo do Sistema Operativo. Sistemas Operativos 2012 / 2013. Gestor de Processos"
Isadora Back Nobre
1 Gestor de Processos Núcleo do Sistema Operativo Sistemas Operativos 2012 / 2013 Gestor de Processos Entidade do núcleo responsável por suportar a execução dos processos Gestão das Interrupções Multiplexagem do Processador Despacho efectua a transferência de controlo entre dois processos Escalonamento optimiza a gestão dos recursos Sincronização no núcleo Implementação das funções sistema relacionadas com os processos e sincronização Page 1 1
2 Chamadas Sistema oferecidas pelo Gestor de Processos IdProcesso = CriarProc (Código, Prioridade) Sair ([Estado]) EliminarProc ( IdProcesso ) Estado = EsperarTerminacao (Idprocesso) IdTarefa = CriarTarefa(procedimento); EliminarTarefa (IdTarefa) EsperaTarefa (IdTarefa) ComutarTarefa RotinaAssincrona (Evento,Procedimento) CriarMutex(), Fechar(m), Assinalar(m) CriarSemaforo(num_unidades), Esperar(s), Assinalar(s) Suspender (IdProcesso), Acordar (IdProcesso) Adormecer (Período) etc Representação dos Processos e Tarefas Page 2 2
3 Contexto: representação de um processo no núcleo Contexto de hardware Registos do processador (acumulador, uso geral, contador de programa, stack pointer, flags de estado do CPU) Registos da unidade de gestão de memória Contexto de software Identificação (processo, utilizador, grupo) Prioridade Estado do processo Outras informações (periféricos em uso, ficheiros abertos, directório por omissão, programa em execução, contabilização de recursos, signals pendentes, etc.) Lista dos Processos Executáveis Tabela no sistema operativo Lista dos processos executáveis Contexto do processo i Contexto do processo i+1 Contexto do processo i+2 Processo em execução Processos executáveis Page 3 3
4 Revisão: Invocação do núcleo Estrutura Monolítica Aplicações Bibliotecas do sistema Barreira de protecção Núcleo do Sistema Operativo Device drivers O núcleo executa-se num modo de protecção diferente dos processos utilizadores A mudança automática entre os dois modos é efectuada pelas interrupções (e excepções) e pela instrução de Return from Interrupt Page 4 4
5 Invocação do núcleo Todas as actividades do núcleo são desencadeadas por interrupções As interrupções podem ser provocadas por: Hardware em particular pelo relógio, mas também pelos diferentes periféricos. Interrupções de software (traps, software interrupts) usadas nas chamada às funções do sistema pelos programas utilizador. Excepções provocadas pelo programa em execução divisão por zero ou acesso a memória indevido, entre outras Núcleo como o gestor global de todas as interrupções Rotina de Serviço da Interrupção Copia registos da pilha actual para o contexto do processo (tabela dos processos) Corre o código específico à interrupção, possivelmente alterando o estado dos processos Invoca o despacho para eventualmente escolher outro processo Page 5 5
6 Exemplo: Chamada Sistema Programa do Utilizador Rotina de biblioteca de chamada à função sistema X trap RTI Executável Modo Utilizador (não privilegiado) Modo Núcleo(privilegiado) Agulhagem Função sistema A Função sistema Z Sistema operativo Para relembrar: trap em Intel 80x86 INT - Interrupt Usage: INT num Modifies flags: TF IF Initiates a software interrupt by pushing the flags, clearing the Trap and Interrupt Flags, pushing CS followed by IP and loading CS:IP with the value found in the interrupt vector table. Execution then begins at the location addressed by the new CS:IP Page 6 6
7 Exemplo: Chamada Sistema Estruturadas em duas entidades funcionais: função propriamente dita, faz parte do código do núcleo rotina de interface que é ligada com o código do utilizador e que usa instruções de interrupção por software (traps) para invocar a função no núcleo. Vantagens: Protecção o código das funções sistema está residente no núcleo e não pode ser acedido pelos processos utilizador Partilha das funções sistema por todos os processos O sistema operativo pode ser modificado (novas versões) transparentemente desde que não se altere a interface Comutação de Processos Page 7 7
8 Diagrama de Estado dos Processos Seleccionado pelo Despacho Em Execução Suspender Preempção Executável Bloqueado Suspender Acordar Suspenso Desbloquear Acordar Suspender Invocação do Sistema Operativo Interrupção salvaguarda contexto e muda para modo núcleo Gestor das Interrupções identifica a rotina de tramento da interrupção Rotina de Serviço da Interrupção serve a interrupção, possivelmente alterando o estado de algum processo Despacho Pode seleccionar outro processo para execução Retorno da Interrupção repõe o contexto do processo em execução passa para modo utilizador Page 8 8
9 Despacho Processo X Interrupção Despacho Comuta o processo RTI Processo Y Processo X RTI Despacho Comuta o processo Interrupção Despacho A função do despacho é comutar o processador sempre que lhe seja indicado para o fazer. Funcionalidade copia o contexto hardware do processo em execução para o respectivo descritor (entrada na tabela de processos) escolhe o processo mais prioritário entre os executáveis carrega o seu contexto hardware no processador transfere o controlo para o novo processo coloca program counter guardado no contexto do novo processo na pilha núcleo return from interrupt (RTI) é enganado Page 9 9
10 Processo A em execução Processo A chama fechar(t) Despacho: exemplo E se o processo em execução não chamar função sistema? Como pode o despacho acontecer? Interrupção Processo B executável Gestor de Interrupções Processo A bloqueado Rotina de Tratamento da Interrupção Despacho Para além do bloqueio num objecto de sincronização, que outras situações podem justificar o despacho? Retorno da Interrupção 2007 Sistemas Operativos Processo B Em execução Próxima aula teórica: estudaremos o despacho das sthreads Page 10 10
11 Escalonamento (Scheduling) Escalonamento Objectivos Optimizar a utilização do processador e restantes componentes do sistema Mas o que significa isso? Page 11 11
12 Escalonamento Objectivos Diferentes políticas de optimização, consoante o tipo de sistema: Sistemas de tratamento por lotes (batch) Produtividade -Throughput maximizar o número máximo de jobs por hora. Turn around time tempo entre a submissão do trabalho e a obtenção do resultado. Utilização do processador manter o processador com elevada ocupação Tempo real Cumprir metas temporais (deadlines) para tratamento dos acontecimentos Funcionamento com desempenho previsível (e.g., multimedia) Tempo partilhado Tempo de resposta responder rapidamente aos eventos desencadeados pelos utilizadores Função de Escalonamento Define qual deve ser o próximo processo a executar-se, de acordo com a política de escalonamento Quão frequentemente deve ser invocada? Em teoria, útil sempre que um recurso do sistema (e.g., memória) é atribuído ou libertado. Problema? Page 12 12
13 Escalonamento em Tempo Partilhado Duas classes de processos: CPU bound uso intensivo do processador I/O bound uso intensivo das E/S -interactivos Quais devem ter maior prioridade no acesso ao CPU? Analogia: Minha lista TO DO desta manhã 1: Escrever enunciado de projecto de outra cadeira 10h de trabalho meu 2: Enviar mail a pedir encomenda de livro 10min de trabalho meu 2dias de trabalho de outros 3: Responder a mail de dúvidas de aluno 5min de trabalho meu 30h de trabalho do aluno (até próxima dúvida) Em quais tarefas devo pegar primeiro para ter maior produtividade? Page 13 13
14 Políticas de Escalonamento em Sistemas de Tempo Partilhado Tempo de Execução Partilhado (time-slices) Prioridades Preempção Modificação dinâmica das prioridades Tempo de Execução Partilhado: Time-Slices (ou Round-Robin) O que é Tempo de execução de um processo é limitado a um quantum de tempo (time-slice) Objectivo: Permitir que todos os processos executáveis tenham oportunidade de dispor do processador ciclicamente Implementação Lista de processos executáveis é gerida em round-robin Desvantagens Pode conduzir a tempos de resposta elevados em situações de muita carga Page 14 14
15 Prioridades As prioridades permitem definir a importância de um processo no processo de escalonamento Um processo mais prioritário tem maior probabilidade de dispor do processador A prioridade pode ser Fixa, usual em processos de tempo real Dinâmica consoante o comportamento do processo: usual nos sistemas de tempo virtual e normalmente privilegiando os processo interactivos (I/O intensivos). Gestão Multilista lista de maior prioridade (menos processador usado) utiliza o processador utiliza o processador lista de menor priorida de utiliza o processador Em que situações um processo deve ser promovido? E relegado? Page 15 15
16 Gestão Multilista com Quantum Variável Prioridade Máxima t cpu = 0,02 s Prioridade Média t cpu = 0,25 s Despacho Prioridade Mínima t cpu = 2 s Adaptar o valor do quantum ao comportamento dos processos Aumentar o valor do quantum quando o sistema está muito carregado (limitar o custo dos da comutação de contextos e aumentar a probabilidade do processo terminar) Preempção O que é? acção de retirar o processador a um processo em execução devido à existência de outro mais prioritário Objectivo? permite que os processos mais prioritários reajam rapidamente a um dado acontecimento (reactividade aos acontecimentos externos). Implementação? O despacho deve ser chamado na sequência de todas as acções susceptíveis de modificarem os estado dos processos Desvantagens? Mudança frequente de contexto (ex.: um processo só deve ser retirado de execução depois de ter usado processador durante um tempo mínimo). Page 16 16