Gestor de Processos Núcleo do Sistema Operativo



Documentos relacionados
Gestor de Processos Núcleo do Sistema Operativo. Sistemas Operativos 2011 / Gestor de Processos

Gestor de Processos. Gestor de Processos

Gestor de Processos Núcleo do Sistema Operativo. Sistemas Operativos 2012 / Gestor de Processos

Processos. Paulo Sérgio Almeida 2005/2006. Grupo de Sistemas Distribuídos Departamento de Informática Universidade do Minho

Processos. Estados principais de um Processo: Contexto de um Processo. Nível de um Processo.

Sistemas Operativos I

Entradas/Saídas. Programação por espera activa Programação por interrupções

Sistemas Operacionais

Processos. Estruturas de Controle

Arquitetura e Organização de Computadores

Interrupções. As interrupções são casos especiais de chamadas de procedimentos.

CONCEITOS BÁSICOS DE UM SISTEMA OPERATIVO

Máquina de estados UNIX O

Máquina de estados UNIX O. Sistemas Operacionais 2008/1Profa. Patricia S.O. computação: recursos D. S.O S.O. controla eventos no sistema de

Nível da Arquitetura do Conjunto das Instruções

Manual do Gestor da Informação do Sistema

O mecanismo de alocação da CPU para execução de processos constitui a base dos sistemas operacionais multiprogramados.

Introdução aos Sistemas Operativos

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas Operativos 10º Ano 2009/2010 Módulo 1 Módulo 1 -- Introdu Introdução aos Sistemas Sistemas Operativos Aula 5 e e 6 Professor:

Curso Profissional de Técnico de Gestão e Programação de Sistemas Informáticos. Sistemas Operativos - 2º Ano

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

1. SINTAXE DA LINGUAGEM ASSEMBLY

Introdução à Computação: Sistemas de Computação

Sistemas Operativos. Gestão de memória. Rui Maranhão

Sistemas Operacionais. Roteiro. Tipos de Tarefas (temporal) Marcos Laureano

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Máquinas virtuais. Máquina virtual de um processo. Máquinas virtuais (3) Máquina virtual de sistema. Máquinas virtuais (1) VMware para Windows e Linux

Fontes de Alimentação

Introdução à Engenharia de Computação

Métodos de Sincronização do Kernel

Sistemas Operacionais

Gerenciamento Básico B de Memória Aula 07

Arquitetura de um Computador

Modos de entrada/saída

Gerenciamento de Entrada e Saída Hélio Crestana Guardia e Hermes Senger

SISTEMAS OPERACIONAIS

LEILÃO ONLINE. Manual do Utilizador

2. A influência do tamanho da palavra

Apontamentos do livro de AI Linux. 1.5 Modo texto e modo gráfico

Visão Artificial Para a Indústria. Manual do Utilizador

Implementadas por Computador

Controladores Lógicos Programáveis

Programação de. Programa. Bibliografia. Páginas electrónicas de PM. Regras das aulas de laboratório. Métodos de Ensino - Aulas

1. Os caracteres (p.ex: a, A, 8,!, +, etc) são representados no computador através da codificação ASCII (American Standard Code for

Tutorial :: Introdução ao VHDL em ambiente Design Works

Gestor de Janelas Gnome

ARQUITETURA DE COMPUTADORES

Capítulo 4 Gerenciamento de Memória

Sistemas Operacionais. Prof. André Y. Kusumoto

INSTITUTO POLITÉCNICO DE BRAGANÇA ESCOLA SUPERIOR DE TECNOLOGIA E DE GESTÃO. Engenharia Electrotécnica. Microprocessadores. 2ºano - 1ºsemestre

Acetatos de apoio às aulas teóricas

Sistemas de Telecomunicações I

Programação de Sistemas

Introdução aos Sistemas

Segurança e recuperação Manual do utilizador

Técnicas de Computação Paralela Capítulo III Design de Algoritmos Paralelos

Disciplina: Sistemas Operacionais - CAFW-UFSM Professor: Roberto Franciscatto

Capítulo 5: Escalonamento da CPU

Sistemas Operacionais

Turno/Horário Noturno PROFESSOR : Salomão Dantas Soares AULA Apostila nº

Introdução. Software (Parte I)

Diagrama de contexto

implementação Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa Fernando Ramos, Nuno Neves, Sistemas Operativos,

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy)

Capítulo 4 Gerenciamento de Memória

Entradas/Saídas. Programação por interrupções Conceitos gerais Programação da porta série Transmissão

Sistemas Operacionais

Pontes. Aula 14. VLANs. Pontes (bridges) Virtual LANs (VLANs)

Projeto 1 - Bootloader

EEC2104 Microprocessadores

1. Criar uma nova apresentação

Entrada e Saída. Interface entre periféricos, processador e memória. Fonte: Minho - Portugal 1

XPontos. Manual de Instruções

Sistemas Operativos I

Multithreading. Programação Orientada por Objectos com Java. Ademar Aguiar. MRSC - Programação em Comunicações

Início Rápido. Nero BackItUp. Ahead Software AG

Sistemas Operacionais

Capítulo 4 Gerenciamento de Memória

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

B2S SISTEMAS DE INFORMAÇÃO, LDA. RUA ARTILHARIA UM, Nº 67 3º FRT LISBOA TEL: FAX: B2S@B2S.

Componentes de um Sistema de Operação

Gerência do Processador

Processamento com SPOOL. Utilização do CPU e periféricos. Perfis dos programas. Exemplo IBM 1460 (1963) Problemas no escalonamento.

Sistemas Operacionais

Capítulo 4 Gerência de Processador

Introdução aos Sistemas Informáticos

Mecanismo de Interrupção

Condições Gerais Programa de fidelidade O CLUBE FITNESSBOUTIQUE Junho 2011

Transcrição:

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. Gestor de Processos Núcleo do Sistema Operativo Sistemas Operativos 2015 / 2016 Page 1 1

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 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 Page 2 2

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 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 Page 3 3

Boot do núcleo de um sistema operativo (III) 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 (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 Page 4 4

Representação dos Processos (e Tarefas) Contexto: representaçãode 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.) Page 5 5

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 Diagrama de Estado dos Processos Em execução Execu Seleccionado para execução Gestor de processos decide atribuir processador a outro processo Espera por conclusão de um acontecimento Execut ável Ocorrência do acontecimento que bloqueava o processo Bloqueado Page 6 6

Modo utilizador vs modo 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 7 7

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 Invocação do Sistema Operativo Interrupção Gestor das Interrupções salvaguarda contexto (na pilha actual) 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 Page 8 8

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 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 9 9

Chamada a Funções Sistema Modo Utilizador (não privilegiado) Programa do Utilizador Rotina de biblioteca de chamada à função sistema X trap RTI Executável Modo Núcleo(privilegiado) Agulhagem Função sistema A Função sistema Z Sistema operativo 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 Page 10 10

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 Porque não uma pilha única para modo utilizador e núcleo? Fiabilidade: Caso o programa em modo utilizador tenha erros e o stack pointernã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 Page 11 11

Utilização da Pilha Núcleo chamada sistema pilha utilizador nível utilizador nível núcleo interrupção relógio pode não ter nenhuma relação com o processo que está a executar a chamada sistema interrupção disco chamada à função 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 núcleo Despacho Comutação de Processos/Tarefas Page 12 12

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 13 13

Despacho: exemplo Processo A chama fechar(t) Interrupção Gestor de Interrupções Processo B executável Processo A bloqueado Rotina de Tratamento da Interrupção Despacho Retorno da Interrupção Processo B Em execução Escalonamento (Scheduling) Page 14 14

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) Função de Escalonamento Define qual deve ser o próximo processo a executarse, 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 15 15

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? 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 Page 16 16

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 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). Page 17 17

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? 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 da comutação de contextos e aumentar a probabilidade do processo terminar) Page 18 18

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). Chamadas Sistema Page 19 19

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 Semáforos Semaforo s Contador Fila de procs./tarefas bloqueadas Processos ou tarefas bloqueados no Semáforo s Page 20 20

Diagrama de Estado dos Processos Seleccionado pelo Despacho Em Execução Suspender Preempção Executável Bloqueado Suspender Suspenso Acordar Desbloquear Acordar Suspender Page 21 21