Gestorde Processos Núcleodo SistemaOperativo · interrupções (e excepções) e pela instrução...
Transcript of Gestorde Processos Núcleodo SistemaOperativo · interrupções (e excepções) e pela instrução...
1
Page 1
Sistemas Operativos – DEI - IST
Alínea do 1º teste 2015/16:
Considere a linha:for (i=0;i<MAX_ITER; i++) sleep(1);
Durante cada iteração deste ciclo, há pelo menos dois momentos que implicam execução em modo núcleo.
a) Descreva sucintamente cada um desses momentos.
b) A cada momento citado na alínea anterior, que interrupção lhe deu origem? Responda “nenhuma” caso não haja nenhuma interrupção envolvida.
Sistemas Operativos – DEI - IST
Gestor de ProcessosNúcleo do Sistema Operativo
Sistemas Operativos
2015 / 2016
2
Page 2
Sistemas Operativos – DEI - IST
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
Sistemas Operativos – DEI - IST
O que acontece desde que ligo a máquina (boot) até ao gestor de
processos estar pronto?
Para investigar em casa e discutimos na próxima aula
3
Page 3
Sistemas Operativos – DEI - IST
Boot do núcleo de um sistema operativo
• Quando se inicia a máquina, PC aponta para um programa na Boot ROM
– Nos computadores pessoais, o programa na Boot ROM chama-se BIOS (basic input/output system)
• O BIOS:
– Copia bloco de código do disco (ou flash RAM, etc.) para RAM
– Salta para a primeira instrução desse programa, chamado bootloader
Sistemas Operativos – DEI - IST
Boot do núcleo de um sistema operativo (II)
• Bootloader:
– carrega o programa do núcleo em RAM
– salta para rotina de inicialização do núcleo
4
Page 4
Sistemas Operativos – DEI - IST
• Inicialização do Núcleo:
– Inicializa as suas estruturas de dados
– Copia rotinas de tratamento de cada interrupção para RAM
– Preenche tabela de interrupções (em RAM)
– Lança os processos iniciais do sistema, incluindo o processo de login
Boot do núcleo de um sistema operativo (III)
Sistemas Operativos – DEI - IST
Boot do núcleo de um sistema operativo (IV)
• Finalmente:
– O núcleo consiste num conjunto de rotinas de tratamento de interrupções
– Normalmente não estão em execução
– São ativadas sempre que surjam interrupções
5
Page 5
Sistemas Operativos – DEI - IST
Representação dos Processos (e Tarefas)
Sistemas Operativos – DEI - IST
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.)
6
Page 6
Sistemas Operativos – DEI - IST
Lista dos Processos Executáveis
Tabela no
sistema operativo
Contexto do
processo i
Contexto do processo i+1
Contexto do
processo i+2
Processo em execução Processos
executáveis
Lista dos
processos
executáveis
Tabela no
sistema operativo
Contexto do
processo i
Contexto do processo i+1
Contexto do
processo i+2
Processo em execução Processos
executáveis
Lista dos
processos
executáveis
Sistemas Operativos – DEI - IST
Diagrama de Estado dos Processos
para
execução Gestor de processos
decide atribuirprocessador a outro
processo
Espera por conclusão de um acontecimento
Ocorrência acontecimento quebloqueava o processo
Bloqueado
Execut ável
Em
execução
Seleccionadopara
execução Gestor de processos
decide atribuirprocessador a outro
processo
Espera por conclusão de um acontecimento
Ocorrência do
acontecimento quebloqueava o
Bloqueado
Execut ável
Em
Execu ção
7
Page 7
Sistemas Operativos – DEI - IST
Modo utilizador vs modo núcleo
Sistemas Operativos – DEI - IST
Estrutura Monolítica
• 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
Núcleo do Sistema Operativo
Barreira de protecção
Aplicações
Bibliotecas do sistema
Device drivers
8
Page 8
Sistemas Operativos – DEI - IST
Invocação do Sistema Operativo
• Todas as actividades do sistema operativo podem ser consideradas como 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 como divisão por zero ou acesso a memória indevido.
Sistema Operativo como o gestor global de todas as interrupções
Sistemas Operativos – DEI - IST
Invocação do Sistema OperativoInterrupção
salvaguarda contexto (na pilha actual)
Gestor das Interrupções
identificação da interrupção (vector de int.)
Rotina de Serviço da Interrupção
serve a interrupção possivelmente alterando o estado de algum processo
Despacho (veremos daqui a pouco)
Retorno da Interrupção
9
Page 9
Sistemas Operativos – DEI - IST
Instrução INT na 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
Sistemas Operativos – DEI - IST
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
10
Page 10
Sistemas Operativos – DEI - IST
Rotina de biblioteca de
chamada à função sistema X
Programa do Utilizador
Executável
Sistema operativo
Agulhagem
Função
sistema A
Função
sistema Z
trap
Modo Utilizador (não privilegiado)Modo Utilizador (não privilegiado)
Modo Núcleo(privilegiado)Modo Núcleo(privilegiado)
Chamada a Funções Sistema
RTI
Sistemas Operativos – DEI - IST
Chamada a Funções Sistema (II)
• Estruturadas em duas entidades funcionais:– função propriamente dita, faz parte do código do sistema
operativo– 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– A interrupção muda o estado do Processador de modo
utilizador para modo núcleo– 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
11
Page 11
Sistemas Operativos – DEI - IST
Duas pilhas: utilizador e núcleo
• A mudança de modo corresponde a:– mudança para o modo de protecção mais privilegiado
do processador
– mudança do espaço de endereçamento do processo utilizador para o espaço de endereçamento do núcleo
– mudança da pilha utilizador para a pilha núcleo do
processo
• A pilha núcleo:– É usada a partir do instante em que o processo muda
de modo utilizador para modo núcleo
– está vazia quando o processo se executa em modo utilizador
Sistemas Operativos – DEI - IST
Porque não uma pilha única para modo utilizador e núcleo?
– Fiabilidade:– Caso o programa em modo utilizador tenha erros e o stack
pointer não esteja válido, a execução das rotinas no núcleo estaria em risco
– Segurança:– Num processo multi-tarefa, uma tarefa fez chamada sistema– Quando a rotina núcleo se executa, coloca variáveis locais das
funções núcleo na pilha– Problema: outras tarefas podem estar a correr noutros
processadores, logo podem aceder e corromper a pilha da tarefa que fez chamada sistema
– Corrompendo as variáveis locais usadas pelas rotinas do núcleo!
– Duas pilhas (utilizador e núcleo) por cada processo evitam estes problemas
12
Page 12
Sistemas Operativos – DEI - IST
Utilização da Pilha Núcleo
chamada sistema
contexto da rotina de
interrupção do relógio
salvaguarda dos registos
da rotina de interrupção do disco
contexto da rotina de
interrupção do disco
salvaguarda dos registos
da função sistema
contexto da função sistema
salvaguarda dos registos
do nível utilizador
pilha
utilizador
pilha
núcleo
chamada à função sistema
interrupção disco
interrupção relógio
nível utilizador
nível núcleo
pode não ter nenhuma relação
com o processo que está a executar
a chamada sistema
Sistemas Operativos – DEI - IST
Despacho
Comutação de Processos/Tarefas
13
Page 13
Sistemas Operativos – DEI - IST
Despacho
Processo X
Processo Y
Interrupção
Despacho
Comuta o processo RTIInterrupção
Despacho
Comuta o processoRTIProcesso X
Sistemas Operativos – DEI - IST
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”
14
Page 14
Sistemas Operativos – DEI - IST
Despacho: exemplo
Interrupção
Gestor de Interrupções
Rotina de Tratamento da Interrupção
Despacho
Retorno da Interrupção
Processo A chama fechar(t)
Processo A bloqueado
Processo B executável
Processo B Em execução
Sistemas Operativos – DEI - IST
Escalonamento (Scheduling)
15
Page 15
Sistemas Operativos – DEI - IST
Escalonamento – Objectivos
• Optimizar a utilização do processador (e dos restantes componentes do sistema)
• Políticas de escalonamento definem objectivos mais específicos:
• 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 partilhado
– Tempo de resposta – responder rapidamente aos eventos desencadeados pelos utilizadores
• Tempo real
– Cumprir metas temporais (deadlines) para tratamento dos acontecimentos
– Funcionamento com desempenho previsível (e.g., multimedia)
Sistemas Operativos – DEI - IST
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?
16
Page 16
Sistemas Operativos – DEI - IST
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?
Sistemas Operativos – DEI - IST
Políticas de Escalonamento em Sistemasde Tempo Partilhado
• Tempo de Execução Partilhado (time-slices)
• Prioridades
• Preempção
• Modificação dinâmica das prioridades
17
Page 17
Sistemas Operativos – DEI - IST
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
Sistemas Operativos – DEI - IST
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).
18
Page 18
Sistemas Operativos – DEI - IST
Gestão Multilista
utiliza o
processador
utiliza o
processador
utiliza o
processador
lista de maior
prioridade (menos
processador
usado)
lista de
menor
priorida
de
Em que situações umprocesso deve ser
promovido? E relegado?
Sistemas Operativos – DEI - IST
Gestão Multilista com Quantum
Variável
• Adaptar o valor do quantum ao comportamento dos processos
• Aumentar o valor do quantum quando o sistema está muito carregado (limitar o custo da comutação de contextos e aumentar a probabilidade do processo terminar)
Prioridade Máxima tcpu = 0,02 s
Prioridade Média tcpu = 0,25 s
Prioridade Mínima tcpu = 2 s
Despacho
19
Page 19
Sistemas Operativos – DEI - IST
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).
Sistemas Operativos – DEI - IST
Chamadas Sistema
20
Page 20
Sistemas Operativos – DEI - IST
Chamadas Sistema relacionadas com os Processos
• IdProcesso = CriarProc (Código, Prioridade)
• Sair ([Estado])
• EliminarProc ( IdProcesso )
• Estado = EsperarTerminacao (Idprocesso)
• IdTarefa = CriarTarefa(procedimento);
• EliminarTarefa (IdTarefa)
• EsperaTarefa (IdTarefa)
• ComutarTarefa
• RotinaAssincrona (Evento,Procedimento)
• s = CriarSemaforo(num_unidades)
• Esperar(s)
• Assinalar(s)
• Suspender (IdProcesso)
• Acordar (IdProcesso)
• Adormecer (Período)
Identificar que acções devem ser executadas por estas chamadas
Sistemas Operativos – DEI - IST
Semáforos
Semaforo sFila de procs./tarefas
bloqueadas
Contador
Processos ou tarefasbloqueados no Semáforo s