SlideShare a Scribd company logo
1 of 23
Download to read offline
Estruturas de Sistemas
     Operacionais
Estruturas de Sistemas Operacionais
Componentes 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ídos


Processos/Multiprogramação

Por que executar vários programas simultaneamente?
     –   Permitir que vários usuários usem uma máquina simultaneamente
     –   Melhorar a eficiência do sistema
Processo
     Um programa em execução
          Programa - entidade estática
          Processo - entidade dinâmica
Estruturas de Sistemas Operacionais
Um 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 processo
Escalonador
     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 processos
Processos 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 processos


Criaçã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ários


Tipos 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, etc


While (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
}
fork


Estados de Processos UNIX

                      Preempetd
                                                                                    Created



                                                                                                         Não há memória
                                                              Memória
   User                                                                                                    suficiente
                                       preempt
                                                              Suficiente
  Running


                     return                                     Ready to            Swap out                       Ready to
System Call,                                     Reschedule
interrupt                                        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
fork


Transiçõ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 processador


Mecanismo 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 privilegiadas


Modos 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ória



Proteçã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 Software




Processos 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ído

Má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 Java

Arquivos .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

More Related Content

What's hot

Resumo LPIC-1 101
Resumo LPIC-1 101Resumo LPIC-1 101
Resumo LPIC-1 101foschi
 
Cap05 processos e threads
Cap05   processos e threadsCap05   processos e threads
Cap05 processos e threadsfernandao777
 
Sistemas operacionais escalonamento de processos
Sistemas operacionais  escalonamento de processosSistemas operacionais  escalonamento de processos
Sistemas operacionais escalonamento de processosTalles Nascimento Rodrigues
 
Apostila 9 virtualização - nova
Apostila 9   virtualização - novaApostila 9   virtualização - nova
Apostila 9 virtualização - novaPaulo Fonseca
 
Sistema operacional
Sistema operacionalSistema operacional
Sistema operacionalMichael Soto
 
Aula 12 - Escalonamento
Aula 12 - EscalonamentoAula 12 - Escalonamento
Aula 12 - Escalonamentocamila_seixas
 
Coroutine e concorrência python
Coroutine e concorrência   python Coroutine e concorrência   python
Coroutine e concorrência python Kaueh Moreno
 
Introducao a Sistemas Operacionais
Introducao a Sistemas OperacionaisIntroducao a Sistemas Operacionais
Introducao a Sistemas OperacionaisIsaac Vieira
 
2. conceito de processos
2. conceito de processos2. conceito de processos
2. conceito de processosvini_campos
 
Unix - Sistemas Operacionais
Unix - Sistemas OperacionaisUnix - Sistemas Operacionais
Unix - Sistemas OperacionaisJunior Silva
 
Máquinas Multiníveis - Nível da Microarquitetura
Máquinas Multiníveis - Nível da MicroarquiteturaMáquinas Multiníveis - Nível da Microarquitetura
Máquinas Multiníveis - Nível da MicroarquiteturaLincoln Lamas
 
2010 02 26 Sistemas Operacionais Aula1
2010 02 26 Sistemas Operacionais Aula12010 02 26 Sistemas Operacionais Aula1
2010 02 26 Sistemas Operacionais Aula1Universal.org.mx
 
Sistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SOSistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SOMauro Duarte
 

What's hot (20)

Resumo LPIC-1 101
Resumo LPIC-1 101Resumo LPIC-1 101
Resumo LPIC-1 101
 
Cap05 processos e threads
Cap05   processos e threadsCap05   processos e threads
Cap05 processos e threads
 
Sistemas operacionais escalonamento de processos
Sistemas operacionais  escalonamento de processosSistemas operacionais  escalonamento de processos
Sistemas operacionais escalonamento de processos
 
Arquitetura 8 3
Arquitetura 8 3Arquitetura 8 3
Arquitetura 8 3
 
Apostila 9 virtualização - nova
Apostila 9   virtualização - novaApostila 9   virtualização - nova
Apostila 9 virtualização - nova
 
Sistema operacional
Sistema operacionalSistema operacional
Sistema operacional
 
Aula 12 - Escalonamento
Aula 12 - EscalonamentoAula 12 - Escalonamento
Aula 12 - Escalonamento
 
Coroutine e concorrência python
Coroutine e concorrência   python Coroutine e concorrência   python
Coroutine e concorrência python
 
Capitulo1
Capitulo1Capitulo1
Capitulo1
 
Unix - Sistema Operacional
Unix - Sistema OperacionalUnix - Sistema Operacional
Unix - Sistema Operacional
 
Conceito de processos
Conceito de processosConceito de processos
Conceito de processos
 
Introducao a Sistemas Operacionais
Introducao a Sistemas OperacionaisIntroducao a Sistemas Operacionais
Introducao a Sistemas Operacionais
 
Escalonamento de processos
Escalonamento de processosEscalonamento de processos
Escalonamento de processos
 
2. conceito de processos
2. conceito de processos2. conceito de processos
2. conceito de processos
 
Unix - Sistemas Operacionais
Unix - Sistemas OperacionaisUnix - Sistemas Operacionais
Unix - Sistemas Operacionais
 
Máquinas Multiníveis - Nível da Microarquitetura
Máquinas Multiníveis - Nível da MicroarquiteturaMáquinas Multiníveis - Nível da Microarquitetura
Máquinas Multiníveis - Nível da Microarquitetura
 
02 so
02 so02 so
02 so
 
2010 02 26 Sistemas Operacionais Aula1
2010 02 26 Sistemas Operacionais Aula12010 02 26 Sistemas Operacionais Aula1
2010 02 26 Sistemas Operacionais Aula1
 
Introdução a Arquitetura Computadores
Introdução a Arquitetura ComputadoresIntrodução a Arquitetura Computadores
Introdução a Arquitetura Computadores
 
Sistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SOSistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SO
 

Viewers also liked

fundamentos de sistema operacional- S.O
fundamentos de sistema operacional- S.Ofundamentos de sistema operacional- S.O
fundamentos de sistema operacional- S.OPablo Lopes
 
Sistemas Operacionais - Introducao
Sistemas Operacionais - IntroducaoSistemas Operacionais - Introducao
Sistemas Operacionais - IntroducaoLuiz Arthur
 
Sistemas operativos distribuidos e de redes
Sistemas operativos distribuidos e de redesSistemas operativos distribuidos e de redes
Sistemas operativos distribuidos e de redesPortal_do_Estudante_SD
 
Sistemas operacionais de computadores de grande porte
Sistemas operacionais de computadores de grande porteSistemas operacionais de computadores de grande porte
Sistemas operacionais de computadores de grande portetiagohinke
 
Redes - Camada Enlace
Redes - Camada EnlaceRedes - Camada Enlace
Redes - Camada EnlaceLuiz Arthur
 
Sistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidosSistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidosrobsons75
 
Tipos de Sistemas Operacionais
Tipos de Sistemas OperacionaisTipos de Sistemas Operacionais
Tipos de Sistemas OperacionaisLuciano Crecente
 

Viewers also liked (10)

fundamentos de sistema operacional- S.O
fundamentos de sistema operacional- S.Ofundamentos de sistema operacional- S.O
fundamentos de sistema operacional- S.O
 
Sistemas Operacionais - Introducao
Sistemas Operacionais - IntroducaoSistemas Operacionais - Introducao
Sistemas Operacionais - Introducao
 
Sistemas operativos distribuidos e de redes
Sistemas operativos distribuidos e de redesSistemas operativos distribuidos e de redes
Sistemas operativos distribuidos e de redes
 
Sistemas operacionais de computadores de grande porte
Sistemas operacionais de computadores de grande porteSistemas operacionais de computadores de grande porte
Sistemas operacionais de computadores de grande porte
 
Redes - Camada Enlace
Redes - Camada EnlaceRedes - Camada Enlace
Redes - Camada Enlace
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Sistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidosSistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidos
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
Tipos de Sistemas Operacionais
Tipos de Sistemas OperacionaisTipos de Sistemas Operacionais
Tipos de Sistemas Operacionais
 

Similar to Estruturas de Sistemas Operacionais

2 organização do sistema operativo - sistemas operativos
2   organização do sistema operativo - sistemas operativos2   organização do sistema operativo - sistemas operativos
2 organização do sistema operativo - sistemas operativosMaria194536
 
12/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula312/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula3Universal.org.mx
 
Componentes do Sistema operacional
Componentes do Sistema operacional Componentes do Sistema operacional
Componentes do Sistema operacional Rodrigo Rodrigues
 
Arquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsArquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsEvandro Júnior
 
Visão Geral: Introdução
Visão Geral: IntroduçãoVisão Geral: Introdução
Visão Geral: IntroduçãoAlexandre Duarte
 
Aula 5a - Sistemas Operacionais
Aula 5a - Sistemas OperacionaisAula 5a - Sistemas Operacionais
Aula 5a - Sistemas OperacionaisJocelma Rios
 
Aula 2 sistemas operacionais
Aula 2 sistemas operacionaisAula 2 sistemas operacionais
Aula 2 sistemas operacionaisCarlos Melo
 
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdfSO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdfSilvano Oliveira
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threadsPaulo Fonseca
 
Apresentação Sobre Sistemas Operacionais com Orbis OS
Apresentação Sobre Sistemas Operacionais com Orbis OSApresentação Sobre Sistemas Operacionais com Orbis OS
Apresentação Sobre Sistemas Operacionais com Orbis OSLucasNogueira565696
 
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionaisSuperTec1
 
Material de hardware - SI 2012
Material de hardware - SI 2012Material de hardware - SI 2012
Material de hardware - SI 2012Camila Seródio
 

Similar to Estruturas de Sistemas Operacionais (20)

2 organização do sistema operativo - sistemas operativos
2   organização do sistema operativo - sistemas operativos2   organização do sistema operativo - sistemas operativos
2 organização do sistema operativo - sistemas operativos
 
12/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula312/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula3
 
Apresentacao Aula04 So
Apresentacao Aula04 SoApresentacao Aula04 So
Apresentacao Aula04 So
 
Processos
ProcessosProcessos
Processos
 
Componentes do Sistema operacional
Componentes do Sistema operacional Componentes do Sistema operacional
Componentes do Sistema operacional
 
Arquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsArquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e Threads
 
Visão Geral: Introdução
Visão Geral: IntroduçãoVisão Geral: Introdução
Visão Geral: Introdução
 
Processos e threads cap 02 (i unidade)
Processos e threads   cap 02 (i unidade)Processos e threads   cap 02 (i unidade)
Processos e threads cap 02 (i unidade)
 
Apresentacao Aula03 So
Apresentacao Aula03 SoApresentacao Aula03 So
Apresentacao Aula03 So
 
Aula 5a - Sistemas Operacionais
Aula 5a - Sistemas OperacionaisAula 5a - Sistemas Operacionais
Aula 5a - Sistemas Operacionais
 
Aula 2 sistemas operacionais
Aula 2 sistemas operacionaisAula 2 sistemas operacionais
Aula 2 sistemas operacionais
 
Aula3so
Aula3soAula3so
Aula3so
 
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdfSO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threads
 
Apresentação Sobre Sistemas Operacionais com Orbis OS
Apresentação Sobre Sistemas Operacionais com Orbis OSApresentação Sobre Sistemas Operacionais com Orbis OS
Apresentação Sobre Sistemas Operacionais com Orbis OS
 
Processos+threads.2pp
Processos+threads.2ppProcessos+threads.2pp
Processos+threads.2pp
 
Sistemas operacionais 04
Sistemas operacionais   04Sistemas operacionais   04
Sistemas operacionais 04
 
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
 
LInux - Iinit e systemd
LInux - Iinit e systemdLInux - Iinit e systemd
LInux - Iinit e systemd
 
Material de hardware - SI 2012
Material de hardware - SI 2012Material de hardware - SI 2012
Material de hardware - SI 2012
 

More from Isaac Vieira

Tarefa 1 bancos_de_dados
Tarefa 1 bancos_de_dadosTarefa 1 bancos_de_dados
Tarefa 1 bancos_de_dadosIsaac Vieira
 
Tarefa 5 exercicios
Tarefa 5 exerciciosTarefa 5 exercicios
Tarefa 5 exerciciosIsaac Vieira
 
Tarefa 4 exercicios
Tarefa 4 exerciciosTarefa 4 exercicios
Tarefa 4 exerciciosIsaac Vieira
 
Tarefa 3 estimativa
Tarefa 3 estimativaTarefa 3 estimativa
Tarefa 3 estimativaIsaac Vieira
 
Tarefa 2 guindastes_estrategicos
Tarefa 2 guindastes_estrategicosTarefa 2 guindastes_estrategicos
Tarefa 2 guindastes_estrategicosIsaac Vieira
 
Tarefa 6 proposta_de_site
Tarefa 6 proposta_de_siteTarefa 6 proposta_de_site
Tarefa 6 proposta_de_siteIsaac Vieira
 
Tarefa 1 cio_e_ceo
Tarefa 1 cio_e_ceoTarefa 1 cio_e_ceo
Tarefa 1 cio_e_ceoIsaac Vieira
 

More from Isaac Vieira (7)

Tarefa 1 bancos_de_dados
Tarefa 1 bancos_de_dadosTarefa 1 bancos_de_dados
Tarefa 1 bancos_de_dados
 
Tarefa 5 exercicios
Tarefa 5 exerciciosTarefa 5 exercicios
Tarefa 5 exercicios
 
Tarefa 4 exercicios
Tarefa 4 exerciciosTarefa 4 exercicios
Tarefa 4 exercicios
 
Tarefa 3 estimativa
Tarefa 3 estimativaTarefa 3 estimativa
Tarefa 3 estimativa
 
Tarefa 2 guindastes_estrategicos
Tarefa 2 guindastes_estrategicosTarefa 2 guindastes_estrategicos
Tarefa 2 guindastes_estrategicos
 
Tarefa 6 proposta_de_site
Tarefa 6 proposta_de_siteTarefa 6 proposta_de_site
Tarefa 6 proposta_de_site
 
Tarefa 1 cio_e_ceo
Tarefa 1 cio_e_ceoTarefa 1 cio_e_ceo
Tarefa 1 cio_e_ceo
 

Estruturas de Sistemas Operacionais

  • 1. Estruturas de Sistemas Operacionais
  • 2. Estruturas de Sistemas Operacionais Componentes 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ídos Processos/Multiprogramação Por que executar vários programas simultaneamente? – Permitir que vários usuários usem uma máquina simultaneamente – Melhorar a eficiência do sistema Processo Um programa em execução Programa - entidade estática Processo - entidade dinâmica
  • 3. Estruturas de Sistemas Operacionais Um 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 processo Escalonador Programa que controla/decide que thread deve ser executada a cada instante
  • 4. 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 processos Processos 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
  • 5. 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
  • 6. 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 processos Criação Escalonador Término Pronto Executando Prazo Evento E/S Bloqueado
  • 7. 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ários Tipos 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
  • 8. 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, etc While (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 }
  • 9. fork Estados de Processos UNIX Preempetd Created Não há memória Memória User suficiente preempt Suficiente Running return Ready to Swap out Ready to System Call, Reschedule interrupt 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
  • 10. fork Transiçõ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
  • 11. 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 processador Mecanismo 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
  • 12. 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 privilegiadas Modos 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
  • 13. 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ória Proteçã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
  • 14. 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 Software Processos 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
  • 15. 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
  • 16. 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
  • 17. Sistema Operacional com estrutura em Camadas Camada M Novas Operaçòes Camada M-1 Operações ocultas Operações existentes
  • 18. 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
  • 19. 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
  • 20. Estrutura do Sistema Operacional - Máquinas Virtuais Processos Processos Processos Kernel Kernel Kernel VM! VM2 VM2 Implementação de Máquina Virtual Hardware
  • 21. Estrutura Cliente Servidor em Ambiente Distribuído Máquina 1 Máquina 2 Máquina 3 Máquina n Servidor Servidor Servidor de Cliente Arquivo de term Processos Kernel Kernel Kernel Kernel
  • 22. Máquina Virtual Java Arquivos .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
  • 23. 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