Gestorde Processos Núcleodo SistemaOperativo · interrupções (e excepções) e pela instrução...

21
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 Processos Núcleo do Sistema Operativo Sistemas Operativos 2015 / 2016

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

21

Page 21

Sistemas Operativos – DEI - IST

Diagrama de Estadodos Processos

Em

Execução

Executável BloqueadoSuspenso

SuspenderSeleccionado

pelo

Despacho

Preempção

Desbloquear

Acordar

Acordar

Suspender

Suspender