Sistemas Operacionais

     Introdução
O que é um sistema operacional ?
 • Um programa que atua como intermediário entre o usuário
   e o hardware de um computador com propósito de
   fornecer um ambiente para execução de programas.


                     Programas

                 Sistema Operacional

                      Hardware
Componentes Genéricos de um Sistema Computacional
 • Hardware: Memória, dispositivos de E/S, CPU, etc

 •    Sistema Operacional: Coordena e controla o uso dos recursos do
     sistema entre os vários programas aplicativos e usuários

 •   Programas aplicativos e de sistema

 • Usuários
Objetivos de um Sistema Operacional

 •   Fornecer ao programador/usuário uma forma mais conveniente para a
     operação do computador
      – Esconde complexidade e detalhes internos inerentes à manipulação e controle dos
        componentes de hardware.
      – Reduz tempo de preparação de um programa.
      – Permite a execução do mesmo programa em ambientes diferentes
      – Permite várias aplicações trabalharem simultaneamente
          Controla a interação entre:
             Usuários e hardware
             Os diversos usuários
 •   Utilizar o Hardware e demais recursos de um computador de forma
     eficiente
      – Potencial maior de utilização de recursos em decorrência da implementação de
        boas políticas de distribuíçao de recursos
E afinal o que é um sistema operacional ?


 •   Uma máquina virtual
      –   Esconde aspectos de Hardware de modo a facilitar a vida do programador, apresentando uma
          interface simplificada
             • A interface do usuário não corresponde ao hardware existente.
             • Permite executar o mesmo programa em vários ambientes diferentes.


 •   Um Gerente/Alocador de Recursos
      –   Decide que pedidos devem ser atendidos de modo que o sistema possa trabalhar de forma
          eficiente


 •   Um Programa de Controle
      –   Controla a execução de programas do usuário para evitar erros e inconsistênciap proteger
          usuários uns dos outros
Principais Serviços e Funções de um SO


 •   Criação e execução de programas
 •   Acesso a dispositivos de E/S
 •   Controle de Acesso a arquivos
 •   Acesso a recursos do sistema
 •   Concorrência
 •   Contabilidade
 •   Detecção de erros (Hw/Sw)
Diferentes Visões de um SO
 Visão Usuário Final X Programador X Projetista de Sistema Operacional



                             Usuário
                                                   Programador

                             Aplicativo
                                                            Projetista SO
                            Utilitários
                                 SO
                             Hardware
Visão Usuário
• Chamadas de Sistema - maneira usada pelo programa para solicitar um serviço do SO
    - semelhante a chamada de uma sub-rotina
           •   Serviços executados pelo núcleo do SO
                     Gerência de memória, gerência de dispositivos, gerência de
                     arquivos e gerência de processador


Programas de Sistema
•   Programas executados fora do núcleo do SO ( Utilitários), normalmente confundido com o próprio
    SO: compiladores, interpretadores de comandos, GUI


Visão Projetista de SO
•   Forma pela qual o sistema implementa os serviços: interrupção, exceção, chamadas de Sistema
Revisão Histórica dos SO

 Fase primitiva
 •   Sistema Operacional inexistente
      –   Programação através de chaves no painel.
      –   Conjuntos de cartões manualmente carregados pelo operador(programador)para executar os programas.
      –   Toda atividade é sequencial: sem nenhuma sobreposição entre computação, E/S e tempo de ociosid do usuário
 Sistemas em Lote(Batch)
 •   Introdução de operadores profissionais
      – Preparação de jobs ( tarefas ) - progama, dados e informações de controle)
                      Jobs normalmente agrupados em lotes por necessidade semelhantes ( por exemplo,
                      mesmo compilador)
      – Sequenciamento automático de jobs
      – Idéia rudimentar de um SO: manter um monitor residente em memória que é executado
          inicialmente. O monitor passa o controle para um job que retorna quando encontrar um
          sinalizador de finalização (cartão de controle)
      – Niveis elevados de ociosidade de CPU - diferença de velocidades entre CPU e Dispositivos de
          Entrada/Saída
Revisão Histórica dos SO

 Sistemas em Lote(Batch)

 •   Introdução da multiprogramação

      –   Com hardware para tratamento de interrupções e para armazenamento de vários jobs em disco
          é possível ter acesso direto aos jobs, o que viabiliza a escala de jobs em uma determinada
          ordem, de modo a aproveitar os tempos de cpu ociosa.

      –   A idéia é manter vários programas em memória ao mesmo tempo. Enquanto um programa
          aguarda E/S, outro pode ser executado
Sistemas Time Sharing ( Tempo Compartilhado )
     –   Extensão lógica da multiprogramação que permite a interação do usuário com o sistema de
         computação

•   Permite a comunicação direta entre os usuários e o sistema através de uma conexão terminal-
    computador

•   Divisão do tempo de processamento entre os vários usuários

•   Requer tempo de resposta curto

•   São mais complexos que os sistemas operacionais multiprogramados
         A idéia básica surguiu com o Sistema Multics que evoluiu para o UNIX
           Escalonamento
           Proteção
           Tempo de resposta
           Ataques
           Sistema de arquivos.


•   Base dos SOs modernos.
Sistemas Monousuário
     –   Projetados para serem usados por um único usuário, por exemplo,MS- DOS, Winsows 3.x,
         Windows 9x


Sistemas Multiusuário
     –   Suportam várias sessões de usuário em um computador, por exemplo, UNIX, Windows-NT


Sistemas Monotarefa
     –   Podem executar apenas uma tarefa de cada vez, por exemplo o MS-DOS


Sistemas Multitarefa
     –   Permitem executar várias tarefas simultaneamente
           • Tarefas cooperativas, por exemplo, Windows 9x
           • Tarefas preemptivas, por exemplo UnIX, OS/2


Sistemas de Computadores Pessoais
•   Inicialmente baratos e simples e depois beneficiados com as idéias dos sistemas para mainframes
    MS-DOS, Microsoft Windows, Apple Macintosh, OS/2
Sistemas Distribuídos
     –   Conjunto de computadores autônomos interconecatados por uma rede, que colaboram para a
         execuçã de determinados serviçõs.
              Transparência em relação ao número de máquinas
              Software fornece uma visão única do sistema



Sistemas de Tempo Real
     –   Requisitos rígidos de tempo na operação de um processador ou de um fluxo de dados

Introducao a Sistemas Operacionais

  • 1.
  • 2.
    O que éum sistema operacional ? • Um programa que atua como intermediário entre o usuário e o hardware de um computador com propósito de fornecer um ambiente para execução de programas. Programas Sistema Operacional Hardware
  • 3.
    Componentes Genéricos deum Sistema Computacional • Hardware: Memória, dispositivos de E/S, CPU, etc • Sistema Operacional: Coordena e controla o uso dos recursos do sistema entre os vários programas aplicativos e usuários • Programas aplicativos e de sistema • Usuários
  • 4.
    Objetivos de umSistema Operacional • Fornecer ao programador/usuário uma forma mais conveniente para a operação do computador – Esconde complexidade e detalhes internos inerentes à manipulação e controle dos componentes de hardware. – Reduz tempo de preparação de um programa. – Permite a execução do mesmo programa em ambientes diferentes – Permite várias aplicações trabalharem simultaneamente Controla a interação entre: Usuários e hardware Os diversos usuários • Utilizar o Hardware e demais recursos de um computador de forma eficiente – Potencial maior de utilização de recursos em decorrência da implementação de boas políticas de distribuíçao de recursos
  • 5.
    E afinal oque é um sistema operacional ? • Uma máquina virtual – Esconde aspectos de Hardware de modo a facilitar a vida do programador, apresentando uma interface simplificada • A interface do usuário não corresponde ao hardware existente. • Permite executar o mesmo programa em vários ambientes diferentes. • Um Gerente/Alocador de Recursos – Decide que pedidos devem ser atendidos de modo que o sistema possa trabalhar de forma eficiente • Um Programa de Controle – Controla a execução de programas do usuário para evitar erros e inconsistênciap proteger usuários uns dos outros
  • 6.
    Principais Serviços eFunções de um SO • Criação e execução de programas • Acesso a dispositivos de E/S • Controle de Acesso a arquivos • Acesso a recursos do sistema • Concorrência • Contabilidade • Detecção de erros (Hw/Sw)
  • 7.
    Diferentes Visões deum SO Visão Usuário Final X Programador X Projetista de Sistema Operacional Usuário Programador Aplicativo Projetista SO Utilitários SO Hardware
  • 8.
    Visão Usuário • Chamadasde Sistema - maneira usada pelo programa para solicitar um serviço do SO - semelhante a chamada de uma sub-rotina • Serviços executados pelo núcleo do SO Gerência de memória, gerência de dispositivos, gerência de arquivos e gerência de processador Programas de Sistema • Programas executados fora do núcleo do SO ( Utilitários), normalmente confundido com o próprio SO: compiladores, interpretadores de comandos, GUI Visão Projetista de SO • Forma pela qual o sistema implementa os serviços: interrupção, exceção, chamadas de Sistema
  • 9.
    Revisão Histórica dosSO Fase primitiva • Sistema Operacional inexistente – Programação através de chaves no painel. – Conjuntos de cartões manualmente carregados pelo operador(programador)para executar os programas. – Toda atividade é sequencial: sem nenhuma sobreposição entre computação, E/S e tempo de ociosid do usuário Sistemas em Lote(Batch) • Introdução de operadores profissionais – Preparação de jobs ( tarefas ) - progama, dados e informações de controle) Jobs normalmente agrupados em lotes por necessidade semelhantes ( por exemplo, mesmo compilador) – Sequenciamento automático de jobs – Idéia rudimentar de um SO: manter um monitor residente em memória que é executado inicialmente. O monitor passa o controle para um job que retorna quando encontrar um sinalizador de finalização (cartão de controle) – Niveis elevados de ociosidade de CPU - diferença de velocidades entre CPU e Dispositivos de Entrada/Saída
  • 10.
    Revisão Histórica dosSO Sistemas em Lote(Batch) • Introdução da multiprogramação – Com hardware para tratamento de interrupções e para armazenamento de vários jobs em disco é possível ter acesso direto aos jobs, o que viabiliza a escala de jobs em uma determinada ordem, de modo a aproveitar os tempos de cpu ociosa. – A idéia é manter vários programas em memória ao mesmo tempo. Enquanto um programa aguarda E/S, outro pode ser executado
  • 11.
    Sistemas Time Sharing( Tempo Compartilhado ) – Extensão lógica da multiprogramação que permite a interação do usuário com o sistema de computação • Permite a comunicação direta entre os usuários e o sistema através de uma conexão terminal- computador • Divisão do tempo de processamento entre os vários usuários • Requer tempo de resposta curto • São mais complexos que os sistemas operacionais multiprogramados A idéia básica surguiu com o Sistema Multics que evoluiu para o UNIX Escalonamento Proteção Tempo de resposta Ataques Sistema de arquivos. • Base dos SOs modernos.
  • 12.
    Sistemas Monousuário – Projetados para serem usados por um único usuário, por exemplo,MS- DOS, Winsows 3.x, Windows 9x Sistemas Multiusuário – Suportam várias sessões de usuário em um computador, por exemplo, UNIX, Windows-NT Sistemas Monotarefa – Podem executar apenas uma tarefa de cada vez, por exemplo o MS-DOS Sistemas Multitarefa – Permitem executar várias tarefas simultaneamente • Tarefas cooperativas, por exemplo, Windows 9x • Tarefas preemptivas, por exemplo UnIX, OS/2 Sistemas de Computadores Pessoais • Inicialmente baratos e simples e depois beneficiados com as idéias dos sistemas para mainframes MS-DOS, Microsoft Windows, Apple Macintosh, OS/2
  • 13.
    Sistemas Distribuídos – Conjunto de computadores autônomos interconecatados por uma rede, que colaboram para a execuçã de determinados serviçõs. Transparência em relação ao número de máquinas Software fornece uma visão única do sistema Sistemas de Tempo Real – Requisitos rígidos de tempo na operação de um processador ou de um fluxo de dados