Sistemas Operacionais



Documentos relacionados
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

Sistemas Operacionais Processos e Threads

Aula 3. Sistemas Operacionais. Prof: Carlos Eduardo de Carvalho Dantas

Programação Concorrente Processos e Threads

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

Processos. Adão de Melo Neto

Sistemas Operacionais

Sistemas Operacionais

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

Processos e Threads (partes I e II)

Sistemas Operacionais

Sistemas Operacionais

Escalonamento no Linux e no Windows NT/2000/XP

Arquitetura de Sistemas Operacionais

Processos. Estruturas de Controle

SISTEMAS OPERACIONAIS

Sistemas Operacionais Aula 06: Threads. Ezequiel R. Zorzal

Sistema Operacional. Prof. Leonardo Barreto Campos 1

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 1. Cursos de Computação

SISTEMAS OPERACIONAIS 2007

Sistemas Operacionais. Prof. André Y. Kusumoto

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

Sistema Operacional. Processo e Threads. Prof. Dr. Márcio Andrey Teixeira Sistemas Operacionais

Visão Geral de Sistemas Operacionais

7 Processos. 7.1 Introdução

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais

Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread.

Resumo até aqui. Gerenciamento Proteção Compartilhamento. Infra-estrutura de Software

EXEMPLO: Processo para atualização da hora Processo para monitoramento da necessidade de proteção de tela. Figura Exemplo

Estrutura, Processos e Threads

1.6. Tratamento de Exceções

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos: Conceitos e Projeto Threads e Migração de Processos

ESTUDO DE CASO WINDOWS VISTA

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO

Sistemas Operacionais. Roteiro. Hardware. Marcos Laureano

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional

(Aula 15) Threads e Threads em Java

SO - Conceitos Básicos. Introdução ao Computador 2010/01 Renan Manola

Sistemas Operacionais

Acadêmicos: Luís Fernando Martins Nagata Gustavo Rezende Vinícius Rezende Santos

Componentes básicos de um sistema computacional. Cap. 1 (Stallings)

Até o final de década de 70, os sistemas operacionais suportavam apenas processos com um único thread;

Arquitetura de Computadores. Sistemas Operacionais IV

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 04 - Concorrência. Cursos de Computação

Sistemas Operacionais

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

Arquitetura e Organização de Computadores

Gerência do Processador

Infra-Estrutura de Software. Introdução. (cont.)

Sistema Operacional Correção - Exercício de Revisão

Sistemas Distribuídos

Sistemas Operacionais Aula 03: Estruturas dos SOs. Ezequiel R. Zorzal

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

ENTRADA E SAÍDA DE DADOS

Arquitetura de Sistemas Operacionais Machado/Maia. Arquitetura de Sistemas

Resumo. Prof. Alejandro - Introdução à Sistemas Operacionais Resumo Informativo, complemente o material assistindo as Aulas 19/08/2015 1

UNIVERSIDADE FEDERAL DE SANTA CATARINA UFSC DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA INE BACHARELADO EM CIÊNCIAS DA COMPUTAÇÃO.

Tipos de sistemas operacionais

Sistemas Operacionais I

Sistemas Operacionais

Sistemas Operacionais

Estruturas do Sistema de Computação

Sistemas Distribuídos

Arquitetura de Computadores. Tipos de Instruções

O que veremos nesta aula? Principais Aspectos de Sistemas Operacionais. Visão geral de um sistema computacional

Mecanismo de Interrupção

Introdução à Computação: Sistemas Operacionais II

Sistemas Operativos. Threads. 3º ano - ESI e IGE (2011/2012) Engenheiro Anilton Silva Fernandes (afernandes@unipiaget.cv)

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

Sistemas Operacionais. Patrícia Megumi Matsumoto Luciana Maria Gregolin Dias

Arquitetura e Organização de Computadores I

UFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Sistema de arquivos. Prof. Valeria M. Bastos Prof. Antonio Carlos Gay Thomé 13/06/2012 1

Prof.: Roberto Franciscatto. Capítulo 1.1 Introdução

6 - Gerência de Dispositivos

Funções de um SO. Gerência de processos Gerência de memória Gerência de Arquivos Gerência de I/O Sistema de Proteção

Organização e Arquitetura de Computadores

Sistemas Operacionais. Estruturas de SO. Edeyson Andrade Gomes.

Introdução. O que vimos. Infraestrutura de Software. (cont.) História dos Sistemas Operacionais. O que vimos 12/03/2012. Primeira geração:

Ciclo de Vida de um Processo

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

Sistemas Operacionais

Sistemas Operacionais: Sistema de Arquivos

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Sistemas Operacionais

Organização de Computadores 1

Transcrição:

Sistemas Operacionais Gerência de processos Controle e descrição de processos Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno

Sumário Representação e controle de processos pelo SO Estrutura de dados Formas de uso da estrutura pelo SO Threads

Requisitos de um SO Tarefa Fundamental Gerenciamento de tarefas/processos O SO deve: Entrelaçar a execução de múltiplos processos Alocar recursos para processos, e proteger recursos entre processos Habilitar a troca de informações entre processos Permitir a sincronização entre processos.

Conceitos já explorados Computadores consistem de um conjunto de recursos de hardware Aplicações são desenvolvidas para realizar alguma tarefa específica Não é eficiente a escrita de aplicações específicas para uma dada plataforma de hardware SO prove interface a serem exploradas pelas aplicações

Gerenciamento de processos Recursos disponíveis para todas aplicações Processador é compartilhado entre todas aplicações em execução O processador e os dispositivos de ES devem ser utilizados de forma eficiente

Processo Mas o que é mesmo um processo? Uma instância de um dado programa em execução Elementos básicos de um processo Código (instruções) Conjunto de dados (variáveis) Atributos que descrevem o estado do processo Pronto para execução (ready), execuntando (running), suspenso (blocked)

Processo em execução Elementos disponíveis por processo quando em execução Identificador Estado Prioridade Program counter (PC) Ponteiro para a memória Dados de contexto Informação do estado da ES Processos gerenciados a partir de uma tabela de processos Entradas definida pelos blocos de controle de processo

Bloco de controle do processo Contém os elementos do processo Identificação, estado, codigo, dados, pilhas,... Criado e gerenciado pelo SO Processos de usuário não devem ter acesso Permite o suporte para múltiplos processos Cada bloco descreve espaço de endereçamento

Trace de um processo O comportamento de um processo individual Observado a partir da seqüência de instruções executados por este Sequencia define uma lista de instruções Lista é chamada Trace

Execução de processos Considere Três processos em execução Todos estão em memória Dispatcher está presente na memória

Trace visto dos processos Cada processo roda até sua execução final

Trace visto do processador Timeout I/O

Sumário Representação e controle de processos pelo SO Estrutura de dados Objetivo: gerenciamento dos processos Formas de uso da estrutura pelo SO Threads

Processos e recursos

Estruturas de controle do SO Para o SO gerenciar processos e recursos Deve haver informações sobre o estado corrente Processo Recurso Tabelas Construídas para cada entidade que o SO gerencia

Tabelas de controle do SO

Tabelas de memória Usado para manter o rastro de uso das memórias Memória principal Memória secundária. Deve incluir informações tais como: Alocação de memória principal/secundária para processos Atributos de proteção para acesso compartilhado a regiões de memória Informações necessárias para gerenciamento de memória virtual

Tabelas de ES Usadas para gerenciar dispositivos de ES O SO precisa saber: Se o dispositivo está disponível ou associado a algum processo O estado de operação do dispositivo de ES A localização da região da memória principal usada para transferência entre origem e destino da ES

Tabela de arquivos Tabela prove informações sobre A existência de arquivos A localização deste na memória secundária O estado atual (e.g. se aberto ou fechado) Tabela muito utilizada principalmente pelo SO para gerenciamento do sistema de arquivos

Tabela de processos Utilizado pelo OS para gerência dos processos Contém os seguinte detalhes Estado corrente Identificação Localização na memória Etc Bloco de controle do processo Armazena a imagem do processo Código, dado, pilha e atributos

Atributos do processo Grupos de informação do bloco de controle do processo: Identificação do processo Cada processo recebe um valor numérico único Estado do processador Conteúdo dos registradores Registradores visíveis pelo programador Registradores de controle e estado Ponteiros de pilha Palavra de estado do processo Informações de estado (e.g. Registrador EFLAGS do Pentium) Controle do processo Informação adicional necessária pelo OS para controlar e coordenar os processos Estado e escalonamento, estrutura de dado, comunicação entre processos,...

Sumário Representação e controle de processos pelo SO Estrutura de dados Formas de uso da estrutura pelo SO Threads

Modos de execução A maioria dos processadores Dá suporte a pelo menos dois modos execução Modo usuário Modo com menos privilégios Programas dos usuários normalmente executado neste modo Modo sistema Modo com mais privilégios Provê segurança no acesso a recursos de mais baixo nível E.g. Manuseio da tabela de processos Kernel/Núcleo do SO

Criação de um processo Passos seguindo pelo OS para a criação de um processo Associar um identificador único a um processo Alocar espaço em memória para o processo Gerar a configuração inicial (inicialização) do bloco de controle do processo Configurar as ligações necessárias E.g. Manutenção das tabelas de processos para redefinição de estados Cria ou expande outras estruturas de dado

Troca entre processos Questões de projeto que surgem Que eventos disparam a troca de um processo? Distinção entre troca de modo e de processo. O que o OS deve ser realizado com as estruturas de dados sob seu controle para realizar a troca de processo?

Troca entre processos Troca entre processo Pode ocorre a qualquer momento Realizado pelo SO SO deve ter ganho controle do processor Alguns possíveis evento que dêem controle ao SO são: Mecanismo Causa Uso Interrupção Trap Externa à execução da instrução atual Associada à execução da instrução atual Reação a um evento externo assíncrono Tratamento de um erro ou de uma condição de exceção Chamada de sistema Requisição explícita Chamada a uma função do sistema operacional

Troca entre processo Passos para a troca de um processo: 1. Salvamento de contexto 1. Dispachter é chamado para realizar a operação 2. Atualização do bloco de controle do processo em remoção 1. Salvamento das principais informações para retomada: e.g. PC e registradores visíveis pelo programador 3. Deslocamento do bloco de controle do processo para a fila apropriada de acordo com o novo estado 1. Bloqueado ou pronto, dependendo do motivo da troca 4. Seleção de um novo processo a ser executado 1. Execução do algoritmo de escalonamento 5. Atualização do bloco de controle do processo selecionado 1. Mudança do estado 6. Atualização da estrutura de gerenciamento da memória 1. Atualização dos regs para código, dado, pilha 7. Restauração de contexto do processo selecionado 1. Atualização dos regs do processador para retomada

E o SO, ele também é um processo? Se o SO é apenas uma coleção de programas e se ele é executado pelo processador tanto quanto os demais programas, o SO é um processo? Se é verdadeira a afirmação, como ele é controlado? Quem ou o que o controla?

Execução do SO Formas de execução: Non-Kernel Junto com processos do usuário Baseado em processos

Execução Non-Kernel Executa o kernel fora de qualquer processo O conceito de processo aplicado apenas em programa de usuário Código do SO é executado como uma entidade separada que opera em modo privilegiado

Junto com processo do usuário OS dentro do contexto de um processo de usuário Não precisa trocar de processo para executar a rotina do SO

Baseado em processos Implementa o SO como uma coleção de processos

Sumário Representação e controle de processos pelo SO Estrutura de dados Formas de uso da estrutura pelo SO Threads

Processos e Threads Processos tem duas características: Propriedade de recursos Processo inclui um espaço de endereçamento virtual para manter a imagem do processo Escalonamento / execução segue uma execução que pode ser entrelaçada com outros processos Threads x Processo A unidade em disparo (dispatching unit) é referida como Thread ou processo leve A unidade de proprietária de recurso é referida como processo ou tarefa

Multithreading Habilidade do SO em dar suporte a múltiplo caminhos de execução de forma concorrente em um mesmo processo

Thread única / múltiplas MS-DOS suportava apenas um processo composto de uma única thread. Alguns sistemas UNIX, suportam múltiplos processos de usuário, mas apenas uma thread por processo Ambiente Java run-time suporta um único processo com múltiplas threads Múltiplos processos e múltiplas threads podem ser encontradas em SOs tais como Windows, Solaris e algumas versões modernas do UNIX

Processos Um espaço virtual contém a imagem do processo Acesso protegido a Processadores, Outros processo, Arquivos, Recursos de ES

Thread(s) em um processo Cada thread tem Um estado de execução (running, ready, etc.) Contexto está salvo quando não está em execução (running) Uma pilha de execução Algumas variáveis locais por thread Acesso a memória e recursos de seu processo Compartilhada entre todas threads de um processo Thread pode ser vista como um programa rodando com seu próprio program counter, mas dentro de um processo

Threads x Processos

4 0 Benefício de emprego de threads Menor tempo de criação quando comparado a processos Menos tempo para terminar uma thread do que um processo Troca entre duas threads leva menos tempo Threads podem se comunicar sem invocar o kernel

Threads Ações afetam as threads de um dado processo O SO deve gerenciar isto no nível de processo. Exemplos: Suspender um processo envolve suspender todas threads deste processo Término de um processo exige o término de todas threads do processo Atividades similares a processo Threads tem estados de execução Podem sincronizar com outra

Estados de execução Estados associados com threads Geração (Spawn) Bloqueio Desbloqueio Término Desaloca o registrador de contexto e pilhas