Sistemas Operacionais Gerência de Processos



Documentos relacionados
Sistemas Operacionais

Sistemas Operacionais. INTRODUÇÃO Prof. Rafael Alberto Vital Pinto FACSUL/CESUR

Sistemas Operacionais

Sistemas Operacionais

Sistemas Operacionais

Apresentação. Ementa da Disciplina. Objetivo da Disciplina. DCA-108 Sistemas Operacionais

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

Introdução aos Sistemas

Everson Scherrer Borges João Paulo de Brito Gonçalves

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron

SISTEMAS OPERACIONAIS 2007

Sistemas Operacionais

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

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

Sistemas Operacionais

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

Introdução aos Sistemas Operacionais

UFRJ IM - DCC. Sistemas Operacionais I. Unidade I Introdução. 11/02/2014 Prof. Valeria M. Bastos

Gerência de Processador

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

Apresentação da disciplina. Sistemas Operacionais I N. A disciplina. O Professor. Áreas de atuação na pesquisa. Referências bibliográficas básicas

UFRJ IM - DCC. Sistemas Operacionais I

Sistemas Operacionais. Prof. André Y. Kusumoto

2. Introdução aos Sistemas Operacionais

Sistemas de Lotes (2) Sistemas de Lotes (3) Layout da MP em Sistemas de Lotes. Minimizar o tempo de resposta

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

Sistemas Operacionais

SOP Sistemas Operacionais Módulo 04: Processo

Tipos de sistemas operacionais

Sistemas Operacionais. Prof. André Y. Kusumoto

1.2 Tipos de Sistemas Operacionais

7 Processos. 7.1 Introdução

SISTEMAS OPERACIONAIS. Apostila 01 Assunto: Tipos de Sistemas Operacionais UNIBAN

Sistemas Operacionais

Introdução. Nível do Sistema Operacional. Introdução. Um Sistema Operacional... Introdução a Sistemas Operacionais

Sistema Operacional. Prof. Leonardo Barreto Campos 1

Arquitetura de Sistemas Operacionais Machado/Maia. Arquitetura de Sistemas

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

Sistemas Operacionais. Estruturas de SO. Edeyson Andrade Gomes.

Arquitetura de Sistemas Operacionais

Sistemas Operacionais

Figura 01 Kernel de um Sistema Operacional

1º Estudo Dirigido. Capítulo 1 Introdução aos Sistemas Operacionais

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

Introdução aos Sistemas Operativos

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

Profs. Deja e Andrei

Visão Geral de Sistemas Operacionais

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

Sistemas Operacionais Processos e Threads

Classificação Quanto. Sistemas de Lotes (2) Sistemas de Lotes (3)

Mecanismo de Interrupção

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

AULA 3 Introdução ao Software

Sistemas Operacionais. Alexandre Meslin

Sistemas Operacionais

Programação Concorrente Processos e Threads

Introdução à Ciência da Computação

Gerência de processos Requisitos fundamentais

SISTEMAS OPERACIONAIS

Nível do Sistema Operacional

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

Gerência do Processador

Escalonamento no Linux e no Windows NT/2000/XP

SISTEMAS OPERACIONAIS

Sistemas Operacionais

Pós-Graduação, Maio de 2006 Introdução aos Sistemas Operacionais. Prof. Dr. Ruy de Oliveira CEFET-MT

SISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN

Sistemas Operacionais Introdução. Professora: Michelle Nery

Classificação de SO (Sistemas Operacionais) Técnico de Informática 2º. Módulo Profa. Madalena Pereira da Silva

Fundamentos de Sistemas Operacionais. Processos. Prof. Edwar Saliba Júnior Março de Unidade Processos

Introdução aos Sistemas Operacionais. Computador = hardware + software. Como é formado o meu computador? E como estes componentes se comunicam?

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

Organização de Computadores 1

Estruturas do Sistema de Computação

A Evolução dos Sistemas Operacionais

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

Componentes de um sistema computacional moderno. DCC/FCUP Inês Dutra Sistemas de Operação 1

Processos e Threads (partes I e II)

Ciclo de Vida de um Processo

Conceitos Básicos sobre Sistemas Operacionais

SIS17-Arquitetura de Computadores

Sistemas Operacionais

Sistemas Operacionais - Prof. Fabricio Alessi Steinmacher - fsteinmacher@gmail.com OBJETIVOS OPERACIONAIS. fsteinmacher@gmail.

Sistemas Operacionais

Sistemas Operacionais

Sistemas Operacionais. Professor Leslier Soares Corrêa

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

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

Gerência de Processador

Sistemas Operacionais

Arquitetura de Computadores para. Sistemas Operacionais. Sistemas Operacionais. Sumário

Processamento de Dados

discos impressora CPU memória AULA 04 - Estruturas de Sistemas Computacionais Operação dos sistemas de computação Controlador de disco

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

6 - Gerência de Dispositivos

Transcrição:

Sistemas Operacionais Gerência de Processos Dierone C.Foltran Jr. prof.dierone at gmail.com Sistemas Operacionais 1

Introdução O que se espera de um sistema de computação? Execução de programas de usuários Permitir a solução de problemas Sistema operacional é um programa colocado entre o hardware do computador e os programas dos usuários de forma a atingir esses dois objetivos Programas Sistema Operacional Hardware Sistemas Operacionais 2

Componentes genéricos de um sistema computacional (1) Hardware Recursos básicos (memória, dispositivos de E/S, CPU). Sistema operacional Controla e coordena o uso do hardware entre vários programas aplicativos e usuários. Programas aplicativos e de sistema Define como os recursos de hardware são empregados na solução de um problema (compiladores, jogos, banco de dados,...) Usuários Pessoas, máquinas, outros computadores,... Sistemas Operacionais 3

Componentes genéricos de um sistema computacional (2) Usuário 1 Usuário 2 Usuário 3... Usuário n Compilador Editor de texto Browser Quake Sistema operacional Hardware Sistemas Operacionais 4

Sistema operacional: conceito Sistema operacional Um programa que controla a execução de programas aplicativos Interface entre aplicativos e o hardware Duas formas de ver um sistema operacional: Alocador de recursos Programa de controle Sistemas Operacionais 5

Objetivos do sistema operacional Tornar mais conveniente a utilização de um computador Esconder detalhes internos de funcionamento Tornar mais eficiente a utilização de um computador Gerenciamento justo dos recursos do sistema Facilitar a evolução do sistema (desenvolvimento, teste e atualização de novas facilidades) Sistemas Operacionais 6

Sistema operacional: interface entre usuário/computador Usuário final Programador Aplicativos Utilitários Projetista sistema operacional Sistema Operacional Hardware Sistemas Operacionais 7

Serviços oferecidos pelo sistema operacional (1) Criação de programas Editores, depuradores, compiladores Execução dos programas Carga de programas em memória Acesso a dispositivos de E/S Controle de acesso a arquivos Acesso a recursos de sistema Proteção entre usuários Sistemas Operacionais 8

Serviços oferecidos pelo sistema operacional (2) Contabilidade Estatísticas Monitoração de desempenho Sinalizar upgrades necessários hardware (memória, disco, etc) Tarifação de usuários Detecção de erros Erros de hardware e.g.: erros de memória, falha em dispositivos de E/S, etc... Erros de programação e.g.: overflow, acesso não autorizado a posições de memória, etc... Aplicação solicita recursos que o sistema operacional não pode alocar (segurança, falta do recurso, etc) Sistemas Operacionais 9

As diferentes imagens de um sistema operacional Sistema operacional na visão do usuário: Imagem que um usuário tem do sistema Interface oferecida ao usuário para ter acesso a recursos do sistema Chamadas de sistema Programas de sistema Sistema operacional na visão de projeto Organização interna do sistema operacional Mecanismos empregados para gerenciar recursos do sistema Sistemas Operacionais 10

Chamadas de sistema Forma que programas solicitam serviços ao sistema operacional Análogo a sub-rotinas Transferem controle para o sistema operacional invés de transferir para outro ponto do programa É o núcleo (kernel) do sistema operacional que implementa as chamadas de sistema Existem chamadas de sistema associadas a gerência do processador, de memória, arquivos e de entrada/saída Variação: micro-kernel Serviços básicos são implementados pelo micro-kernel kernel implementa demais serviços empregando esses serviços básicos Sistemas Operacionais 11

Programas de sistema Programas executados fora do kernel (utilitários) Implementam tarefas básicas: Muitas vezes confundidos com o próprio sistema operacional e.g. compiladores, assemblers, ligadores, etc. Interpretador de comandos Ativado sempre que o sistema operacional inicia uma sessão de trabalho e.g.: bash, tsch, sh, etc... Interface gráfico de usuário (GUI) e.g.: Família windows, MacOs, etc... Sistemas Operacionais 12

Histórico de sistemas operacionais Primórdios: Sistema operacional inexistente Usuário é o programador e o operador da máquina Alocação do recurso computador feito por planilha Evolução foi motivada por: Melhor utilização de recursos Avanços tecnológicos (novos tipos de hardware) Adição de novos serviços Sistemas Operacionais 13

Sistemas em lote (batch) Introdução de operadores profissionais Job Usuário não era mais o operador da máquina Programa a ser compilado e executado, acompanhado dos dados de execução (cartões perfurados) Jobs são organizados em lote (batch) Necessidades semelhantes (e.g. mesmo compilador) Passagem entre diferentes jobs continua sendo manual Sistemas Operacionais 14

Monitor residente Evolução: Sequenciamento automático de jobs, transferindo o controle de um job a outro Primeiro sistema operacional (rudimentar) Monitor residente: Programa que fica permanentemente em memória Execução inicial Controle é transferido para o job Cartões de controle Quando o job termina, o controle retorna ao monitor Centraliza as rotinas de acesso a periféricos disponibilizando aos programas de usuário Sistemas Operacionais 15

Sistema batch multiprogramados (multitarefa) Monitor residente permite a execução de apenas um programa a cada vez Desperdício de tempo de CPU com operações de E/S Evolução: Manter diversos programas na memória ao mesmo tempo Enquanto um programa realiza E/S, outro pode ser executado Desperdício CPU Multiprogramação CPU E/S Requisição E/S Término E/S Requisição E/S Término E/S tempo tempo Sistemas Operacionais 16

Multiprogramação Manter mais de um programa em execução simultaneamente Duas inovações de hardware possibilitaram o surgimento da multiprogramação Interrupções Sinalização de eventos Discos magnéticos Acesso randômico a diferentes jobs (programas) no disco Melhor desempenho em acessos de leitura e escrita Sistemas Operacionais 17

Sistemas timesharing Tipo de multiprogramação Usuários possuem um terminal Interação com o programa em execução Ilusão de possuir a máquina dedicada a execução de seu programa Divisão do tempo de processamento entre usuários Tempo de resposta é importante Sistemas Operacionais 18

Sistemas monousuário e multiusuário Sistemas monousuário Projetados para serem usados por um único usuário e.g.: MS-DOS, Windows 3.x, Windows 9x, Millenium Sistemas multiusuário Projetados para suportar várias sessões de usuários em um computador e.g.: Windows NT, UNIX, Linux Sistemas Operacionais 19

Sistemas multitarefa e monotarefa Sistemas monotarefa Capazes de executar apenas uma tarefa de cada vez e.g.: MS-DOS Sistemas multitarefas: Capazes de executar várias tarefas simultaneamente Existem dois tipos de sistemas multitarefa: Não preemptivo (cooperativo) e.g.: Windows 3.x, Windows9x (aplicativos 16 bits) Preemptivo e.g.: Windows NT, OS/2, UNIX, Windows9x (aplicativos 32 bits) Sistemas Operacionais 20

Sistemas distribuídos (1) Distribuir a realização de uma tarefa entre vários computadores Sistema distribuído: Conjunto de computadores autônomos interconectados de forma a possibilitar a execução de um serviço Existência de várias máquinas é transparente Software fornece uma visão única do sistema Palavra-chave: transparência «A distributed system is one in which the failure of a computer you didn t even know existed can render your own computer unusable» Leslie Lamport. Sistemas Operacionais 21

Sistemas distribuídos (2) Sistemas fracamente acoplados (loosely coupled system) Máquinas independentes Cada máquina possui seu próprio sistema operacional Comunicação é feita através de troca de mensagens entre processos Vantagens Compartilhamento de recursos Balanceamento de carga Aumento da confiabilidade Sistemas Operacionais 22

Sistemas paralelos (1) Máquinas multiprocessadoras possuem mais de um processador Sistemas fortemente acoplados (tightly coupled system) Processadores compartilham mémoria e relógio comuns Comunicação é realizada através da memória Vantagens: Aumento de throughput (número de processos executados) Aspectos econômicos Aumento de confiabilidade Graceful degradation Sistemas fail-soft Sistemas Operacionais 23

Sistemas paralelos (2) Symmetric multiprocessing (SMP) Cada processador executa uma cópia idêntica do sistema operacional Vários processos podem ser executados em paralelo sem perda de desempenho para o sistema A maioria dos sistemas operacionais atuais suportam SMP através do conceito de multithreading Asymmetric multiprocessing Cada processador executa uma tarefa específica: e.g.: processador mestre para alocação de tarefas a escravos Sistemas Operacionais 24

Sistemas de tempo real Empregado para o controle de procedimentos que devem responder dentro de um certo intervalo de tempo e.g.: experimentos científicos, tratamento de imagens médicas, controle de processos, etc. Noção de tempo real é dependente da aplicação Milisegundos, minuto, horas, etc. Dois tipos: Hard real time Tarefas críticas são completadas dentro de um intervalo de tempo Soft real time Tarefa crítica tem maior prioridade que as demais Sistemas Operacionais 25

Leituras complementares R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. Editora Bookman, 2010. Capítulo 1 A. Silberchatz, P. Galvin, P. Gagne; Applied Operating System Concepts. Addison-Wesley, 2000, (1 a edição). Capítulo 1 W. Stallings; Operating Systems. (4 th edition). Prentice Hall, 2001. Capítulo 2 Sistemas Operacionais 26

Multiprogramação Tornar mais eficiente o aproveitamento dos recursos do computador Execução simultânea* de vários programas Diversos programas são mantidos na memória Conceitos necessários à multiprogramação Processo Interrupção Proteção entre processos Próprio sistema operacional é um programa Sistemas Operacionais 27

O conceito de processo (1) Diferenciação entre o programa e sua execução Programa: Entidade estática e permanente Sequência de instruções Passivo sob o ponto de vista do sistema operacional Processo: Entidade dinâmica e efêmera Altera seu estado a medida que avança sua execução Composto por programa (código), dados e contexto (valores) Sistemas Operacionais 28

O conceito de processo (2) Abstração que representa um programa em execução Diferentes instâncias Um programa pode ter várias instâncias em execução, i.e., diferentes processos Mesmo código (programa) porém dados e momentos de execução (contexto) diferentes Forma pela qual o sistema operacional enxerga um programa e possibilita sua execução Processos executam: Programas de usuários Programas do próprio sistema operacional (daemons) Sistemas Operacionais 29

Ciclos de vida de um processo Criação Execução Término Sistemas Operacionais 30

Ciclos de vida de um processo: criação Momento da execução Chamadas de sistemas e.g.: fork, spawn, etc. Podem ser associados a uma sessão de trabalho e.g.: login de usuários: login + senha shell (processo) Identificado por um número único (PID) Sistemas Operacionais 31

Ciclos de vida de um processo: execução (1) Processos apresentam dois ciclos básicos de operação Ciclo de processador Tempo que ocupa a CPU Ciclo de entrada e saída Tempo em espera pela conclusão de um evento (e.g. E/S) Primeiro ciclo é sempre de processador Trocas de ciclos por: CPU E/S: chamada de sistema E/S CPU: ocorrência de evento (interrupção) Sistemas Operacionais 32

Ciclos de vida de um processo: execução (2) Processos CPU bound Ciclo de processador >> ciclo de E/S I/O bound Ciclo de E/S >> ciclo de processador Sem quantificação exata Situação ideal: Misturar processos CPU bound com I/O bound Benefícios a nível de escalonamento Sistemas Operacionais 33

Ciclos de vida de um processo: término Final de execução (normal) Por erros e.g.: proteção, aritméticos, E/S, tentativa de execução de instruções inválidas, falta de memória, exceder tempo de limite Intervenção de outros processos (kill) Log off de usuários Sistemas Operacionais 34

Relacionamento entre processos (1) Processos independentes Não apresentam relacionamentos com outros processos Grupo de processos Apresentam algum tipo de relacionamento e.g. filiação Podem compartilhar recursos Definição de hierarquia Sistemas Operacionais 35

Relacionamento entre processos (2) Hierarquia de processos: Processo criador é processo pai Processo criado é processo filho Representação através de uma árvore Evolução dinâmica Semântica associada: O que fazer na destruição de um processo? Toda a descendência morre A descendência é herdada pelo processo vô Postergar a destruição efetiva do processo pai até o final de todos processos filhos Sistemas Operacionais 36

Estados de um processo Após criado o processo necessita entrar em ciclo de processador Hipotéses: Processador não está disponível Vários processos sendo criados Que fazer? Criação de uma fila de aptos (p/ espera pelo processador) Sistemas Operacionais 37

Modelo simplificado a dois estados Manter uma fila de processos aptos a executar Esperando pelo processador ficar livre Escalonador (dispatcher): Atribui o processador a um processo da fila de aptos Pode prevenir um único processo de monopolizar o processador Dispatcher Criação Apto Executando Término Pausa Sistemas Operacionais 38

Limitação do modelo simplificado Causas para um processo não executar Esperando pelo processador Aptos para executar Esperando pela ocorrência de eventos externos Bloqueado Escalonador não pode selecionar um processo bloqueado, logo modelo a dois estados não é suficiente Criação de novos estados Sistemas Operacionais 39

Modelo de 5 estados (1) Executando (Running) Apto (Ready) Bloqueado (Blocked) Criação (New) Destruição (Exit) Sistemas Operacionais 40

Modelo a 5 estados (2) Necessidade de filas Seleção Término Criação Apto Executando Destruição Tempo/ voluntário Ocorrência de evento (interrupçao) Chamada de sistema Bloqueado Sistemas Operacionais 41

Processos suspensos Processador é mais rápido que operações de E/S Possibilidade de todos processos estarem bloqueados esperando por E/S Liberar memória ocupada por estes processos Transferidos para o disco (swap) Estado bloqueado assume duas situações: Bloqueado com processo em memória Bloqueado com processo no disco Necessidade de novos estados Bloqueado, suspenso (Blocked, suspend) Apto, suspenso (Ready, suspend) Sistemas Operacionais 42

Razões para suspender um processo Swapping: SO necessita liberar memória para executar um novo processo Solicitação do usuário Comportamento típico de depuradores Temporização: Processo deve ter sua execução interrompida por um certo período de tempo Processo suspender outro processo e.g. sincronização Sistemas Operacionais 43

Diagrama de estados de processos Admissão Criação Admissão Suspenso Apto, suspenso Ativo Suspenso Apto Seleção Tempo/ voluntário Executando Destruição Event (ocorr.) Evento (ocorr.) Evento (espera) Bloqueado, suspenso Ativo Bloqueado Sistemas Operacionais 44

Suporte de hardware à multiprogramação O compartilhamento de recursos comuns implica em garantir que a execução incorreta de um programa não influencie a execução de outro programa A implementação da multiprogramação explora características do hardware dos processadores Mecanismos básicos: Dois modos de operação Interrupção Proteção de periféricos, memória e processador Sistemas Operacionais 45

Modos de operação do processador Arquitetura de processadores oferecem mecanismos para diferenciar pelo menos dois modos diferentes de operação Modo supervisor (privilegiado/protegido) Possibilita a execução de todas as instruções do processador Modo de execução sistema operacional Modo usuário Certas instruções (privilegiadas) não podem ser executadas Modo de execução dos processos usuários Chaveamento de modos: Interrupção (modo usuário modo protegido) Instrução (modo protegido modo usuário) Sistemas Operacionais 46

Mecanismo de interrupção (1) Sinaliza a ocorrência de algum evento Provoca a execução de uma rotina especial Tratador de interrupção Ciclo de execução de uma interrupção Prepara a transferência de controle para o tratador (salvamento do contexto de execução) Desvia controle para tratador Retorna execução (restaura contexto de execução) Sistemas Operacionais 47

Mecanismo de interrupção (2) Tipos de interrupção Hardware: ocorrência de evento externo Software: execução de uma instrução específica Exceção: erros de execução (overflow, undeflow...) Identificadas por um número Vetor de interrupção Prioridades Instruções privilegiadas Sistemas Operacionais 48

Proteção de periféricos Instruções de E/S são privilegiadas Como processos usuários realizam operações de E/S já que estas são instruções privilegiadas? Chamadas de sistema Sistema Operacional Modo protegido Interrupção de software Instrução retorno Processo usuário Modo usuário Sistemas Operacionais 49

Chamada de sistema Método empregado para um processo usuário solicitar serviços ao sistema operacional. Normalmente baseada em interrupções de software (traps) Aciona a rotina de tratamento de interrupção Identifica serviço requisitado Verifica validade dos parâmetros Executa o serviço Retorna ao processo do usuário Sistemas Operacionais 50

Proteção de memória (1) Necessário para evitar que usuário corrompa espaços de memória nãopertencentes a seus processos Baseado em facilidades da arquitetura do processador: Registrador de base Registrador de limite Faixa de endereçamento fora da área delimitada pelos registradores base e limite é protegida Possível proteger dispositivos de E/S quando a técnica E/S mapeada em memória é empregada Sistemas Operacionais 51

Proteção de memória (2) Reg. de base Reg. de limite Usuário 3 CPU End. V V Usuário 2 Usuário 1 F Interrupção (acesso ilegal) F Sistema operacional memória Sistemas Operacionais 52

Proteção do processador Para garantir a execução do sistema operacional uma interrupção de tempo (timer) ocorre periodicamente Interrupção de tempo: Empregada para implementar multiprogramação Mantém contabilização de tempo para o sistema operacional (relógio) Instruções relacionadas com a programação do tempo são privilegiadas Sistemas Operacionais 53

Leituras complementares R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. Editora Bookman, 2010. Capítulo 2. A. Silberchatz, P. Galvin Operating System Concepts. 4 th edition. Addison-Wesley. Seções 2.1, 2.2, 2.5, 4.1, 4.2 e 4.300 Sistemas Operacionais 54