• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Estruturas de Sistemas Operacionais
 

Estruturas de Sistemas Operacionais

on

  • 5,179 views

Informações sobre sistemas operacionais

Informações sobre sistemas operacionais

Statistics

Views

Total Views
5,179
Views on SlideShare
5,168
Embed Views
11

Actions

Likes
0
Downloads
111
Comments
0

2 Embeds 11

http://diariodafacul.blogspot.com 6
http://diariodafacul.blogspot.com.br 5

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Estruturas de Sistemas Operacionais Estruturas de Sistemas Operacionais Presentation Transcript

    • Estruturas de Sistemas Operacionais
    • Estruturas de Sistemas OperacionaisComponentes do Sistema – Gerência de processos – Gerência de memória principal – Gerência de arquivos – Gerência de I/O – Gerência de armazenamento secundário – Sistemas de Proteção – Gerência de Redes/Sistemas distribuídosProcessos/MultiprogramaçãoPor que executar vários programas simultaneamente? – Permitir que vários usuários usem uma máquina simultaneamente – Melhorar a eficiência do sistemaProcesso Um programa em execução Programa - entidade estática Processo - entidade dinâmica
    • Estruturas de Sistemas OperacionaisUm processo é composto por: – Programas – Dados – Contexto(valores)Características/Propriedades de um processo Um processo é uma abstração que representa um programa em execução – Um processo tem execução sequencial – O resultado da execução de um processo independe da velocidade do processador em que for executado – O mesmo programa executado por dois usuários gera dois processos – Um programa pode chamar(criar) vários processos – Um processo tem duas partes: • Ativa - fluxo de controle • Passiva - espaço de endereçamento (memória, registradores, arquivos)Thread Denota um fluxo de controle ( Processo leve) – Por questão de eficiência, processos podem ter múltiplas threads que compartilham o espaço de endereçamento do processoEscalonador Programa que controla/decide que thread deve ser executada a cada instante
    • Ciclos de um processo :Processos são:• criados – Momento da execução – Chamada de Sistema – Normalmente associados a uma sessão de trabalho ( Login name )• Destruídos – Término da execução – Por outros processosProcessos apresentam dois ciclos básicos de operação:• Ciclo de processador – Tempo que ocupa a CPU• Ciclo de Entrada/Saída – Tempo de espera de um evento E/S A troca de ciclos ocorre por: – Chamada de Sistema ( CPU¨E/S) – Interrupção ( E/S ¨CPU ) – Ocorrência de Evento ( E/S ©CPU )• Processos CPU-boound – Ciclo de processador >> Ciclo de E/S• Processos I/O bound – Ciclo de E/S>> Ciclo de processador
    • Relacionamentos entre Processos/Usuários Processos Independentes – Não apresentam relacionamentos com outros processos Grupo de Processos – Apresentam algum tipo de relacionamento , por exemplo, hierarquia de processos com mesma filiação • Processo criador é o processo pai • Processo criado é o processo filho • Representação através de uma árvore • Evolução dinâmica – O que fazer na destruição de um processo? – Toda descendência morre? – A descendência é herdada pelo processo “avô”? – Postergar a destruição efetiva do processo pai até o final de todos os filhos?Estados de um processo: Após ser criado, um processo precisa entrar num ciclo de processador – Possibilidades: • Processador não está disponível • Vários processos estão sendo criados – O que fazer então? • Criar uma fila de processos prontos para executar
    • Diagrama de transição de estados de um processo• Um escalonador, através do uso da fila de processos prontos(aptos para a execução) atribui a cada instante, o processador a um dos processosCriação Escalonador Término Pronto Executando Prazo Evento E/S Bloqueado
    • Término de processos – Final normal da execução – Excesso de tempo – Falta de memória – Violação de limites – Erros de proteção – Erros aritiméticos – Timeout de eventos – Erro em periféricos de E/S – Execução de instruções inválidas – Intervenção do SO – Logoff de usuáriosTipos de Chamadas de Sistemas para Controle de Processos – end, abort – load, execute – create process, terminate process – get process attributes, set process attributes – wait for time – wait event, signal event – allocate, free memory
    • Escalonador Cada processo é representado por um PCB ( Process Control Block) que contém – Estado do processo: ( Rodando, Pronto ou bloqueado) – Número do processo – Contador de Programa – Registradores – Localização da pilha de execução – Prioridade de execução, etcWhile (true) { espera_evento( ); // Espera por E/S; Espera por outro processo; pausa, erro salva_processo_corrente( ); // guarda os dados dos registradores no PCB do processo corrente escolhe_novo_processo( ); // escolhe um processo da fila de prontos // FIFO, Round-robin, prioridades, etc carrega_novo_processo( ) // Carrega os dados do PCB do processo escolhido nos registradores}
    • forkEstados de Processos UNIX Preempetd Created Não há memória Memória User suficiente preempt Suficiente Running return Ready to Swap out Ready toSystem Call, Rescheduleinterrupt process Run in Memory Swap in Run Swapped Kernel Running sleep Interrupt, wakeup exit wakeup interrupt return Asleep in Swap out Sleep, Zombie Memory Swapped
    • forkTransições de Estados UNIX User Running Executando no Modo Usuário Kernel Running Executando no Modo Kernel Ready to run, in Memory Pronto para executar, tão logo o Kernel o escalone Asleep in Memory Desabilitado para Execução até que ocorra um evento; processo está na memória principal ( estado bloqueado) Ready to Run, swapped O processo está pronto, mas o swapper precisa transferí-lo para a memória principal, antes do kernel poder escaloná-lo Sleeping, swapped O processo está aguardando um evento e se encontra em memória secundária (estado bloqueado) Preempeted O processo está retornando do modo kernel para o modo usuário; o kernel o retira do estado rodando e escalona outro processo Created O processo foi recentemente criado e ainda não está pronto Zombie Processo não mais existe, mas deixou um registro para o seu processo pai capturá-lo
    • Suporte de Hardware a Multiprogramação• A implementação da multiprogramação explora características de Hardware dos processadores• Mecanismos básicos – Dois modos de operação • Kernel/Supervisor (privilegiado) • Usuário• Interrupção• Proteção de periféricos, memória e processadorMecanismo de Interrupção• Sinaliza a ocorrência de algum evento• Provoca a execução de uma rotina especial – Tratador de interrupção• Ciclo de Execução de interrupção – Preparação da transferência do controle para o tratador - salvamento do contexto de execução – Desvio do controle para o tratador – Retorno da execução - Restauração do contexto original
    • Mecanismos de Interrupção• Tipos de Interrupção – Hardware- evento externo – Software - execução de uma instrução específica (trap) – Exceção - Erros de execução( overflow, underflow) – Identificadas por um número - Endereço (Vetor de Interrupção )• Prioridades• Instruções privilegiadasModos de operação do processador• O compartilhamento de recursos deve garantir que a execução incorreta de um programa não interfira na execução de outro programa• A arquitetura de processadores oferecem mecanismos para diferenciar pelo menos dois tipos diferentes de operação• Modos de operação do processador – Modo usuário • Certas instruções não podem ser executadas • Modo de execução dos processos usuários – Modo Kernel/Supervisor(protegido) • Possibilita a execução de todas as instruções do processador • Modo de execução do sistema operacional• Chaveamento entre modos – Interrupção - modo usuário ¨ modo protegido – Instrução - modo protegido ¨ modo usuário
    • Proteção de Memória• Necessário para evitar que um usuário não altere a memória pertencente a outros processos• Baseado em facilidades de arquiteturas de processadores – Registro de base – Registro de limite• Faixa de memória fora da fronteira delimitada pelos registradores base e limite é protegida• Técnica aplicada para proteger dispositivos de E/S - mapeamento de memóriaProteção de Processador• Para garantir a execução do Sistema Operacional, uma interrupção de tempo deve ocorrer periodicamente• Interrupção de tempo – Empregada para implementar multiprogramação – Mantém contabilização do tempo para o Sistema Operacional
    • Proteção de Periféricos • Instruções de E/S são privilegiadas • Interrupções de Software (traps) para chamadas de sistema instrução Int ( periférico ) Sistema Operacional Processo Int ( proteção) Usuário Interrupção de SoftwareProcessos usuários realizam operações de E/S através de Chamadas de Sistema Processo USR •Normalmente baseada em Interrupção de Software resultado •Acionamento da Rotina de Tratamento de Interrupção call • Identificação do serviço requisitado Biblioteca Serviços • Verificação da Validade dos parâmetros return • Execução do serviço trap Kernel SO • Retorno ao processo do usuário
    • Sistema Operacional com estrutura simples ( Monolítica ) Processo USR1 Processo USR2 Chamada Kernel resultado Biblioteca Serviços return trap Kernel SO •Seleção serviço •Localização •Execução •Retorno
    • Estrutura do Sistema Operacional UNIX Usuários Shells e comandos Compiladores e Interpretadors Bibliotecas do sistema Interface de chamada ao sistema para o kernel Tratamento de sinal Sistema de arquivos Escalonamento de terminal Swapping Substituição de páginas Sistema de I/O de Drivers de Disco e fita caracteres drivers de terminal Interface do kernel para o hardware Controladoras termin Controladora Memória Terminais Controladora Disp Memória ísisca Discos e fitas
    • Sistema Operacional com estrutura em Camadas Camada M Novas Operaçòes Camada M-1 Operações ocultas Operações existentes
    • Estrutura em camadas do OS/2 Aplicação Aplicação Aplicação Extensão de API Interface de chamada ao sistema para o kernel Subsistema Subsistema Subsistema Gerência de Memória Kernel do Alocação de tarefas Sistema gerência de dispositivos Driver Disp Driver Disp Driver Disp Driver Disp
    • Estrutura Microkernel Aplicação Aplicação Servidor Servidor WIN32 OS/2 Gerência de Memória Kernel do Gerência de Processos Sistema Gerência de comunicação
    • Estrutura do Sistema Operacional - Máquinas Virtuais Processos Processos Processos Kernel Kernel Kernel VM! VM2 VM2 Implementação de Máquina Virtual Hardware
    • Estrutura Cliente Servidor em Ambiente DistribuídoMáquina 1 Máquina 2 Máquina 3 Máquina n Servidor Servidor Servidor de Cliente Arquivo de term Processos Kernel Kernel Kernel Kernel
    • Máquina Virtual JavaArquivos .class Carregador de Classes Arquivos .class Aplicação da API java bytecod es Interpretador JAVA Sistema Host Programa Programa Programa Programa Java Java Java Java Plataforma Plataforma Plataforma Plataforma Java Java Java Java Unix Windows Navegador Chip java
    • Princípios para Projeto e Implementação de Sistemas• Separação entre Políticas e Mecanismos (Flexibilidade) – Política denota o que fazer (pode mudar frequentemente) – Mecanismo determina como fazer• Implementação – Linguagens: de baixo nível: assembly – Linguagens de alto nível: C, Java