Introdução

Propaganda
Sistemas Operacionais
Evolução
Edson Moreno
[email protected]
http://www.inf.pucrs.br/~emoreno
Sumário
 Introdução
 Componentes de um sistema computacional
 Conceituação
 Características desejáveis
 Organização típica
 Tipos de sistemas operacionais
 Histórico
Introdução
 Hardware
 Provê recursos para execução de instruções, manipulação de
dados
 Aplicação
 Solução computacional de um problema
 Define a utilização dos recursos do sistema
 Problema
 O hardware sozinho não oferece um ambiente de utilização
simples para resolução computacional de problemas
Introdução
 Primeiros computadores
 Programação complexa
 Exigia grande conhecimento do hardware e de linguagem de máquina
 Solução
 Sistemas Operacionais
 Encapsulamento
 Interação se tornou mais fácil, confiável e eficiente
 Prove uma interface entra aplicação e hardware
Sumário
 Introdução
 Componentes de um sistema computacional
 Conceituação
 Características desejáveis
 Organização típica
 Tipos de sistemas operacionais
 Histórico
Componentes
 Usuários
 Utilizadores do sistema computacional
 Pessoas, máquinas, outros computadores.
 Aplicações
 Define o modo que o recursos do sistema serão utilizados para
resolver os problemas computacionais dos usuários
 Compiladores, B.D., jogos, programas comerciais.
Computador
Componentes
 Hardware
 Recursos básicos de computação
 Três subsistemas básicos:
 Unidade Central de Processamento;
 Memória principal;
 Dispositivos de entrada e saída.
Memória
principal
UCP
Sistema de
comunicação
E/S
 Sistema Operacional
 Possibilita o uso eficiente e controlado dos recursos de
hardware entre diferentes aplicações de diferentes usuários
 Implementa políticas e estruturas de software de modo a
assegurar um melhor desempenho do sistema de computação
Componentes
Componentes
Navegador
web
Modo usuário
Modo núcleo
Leitor de
e-mail
Programa de interface
com o usuário
Reprodutor
de música
Software
Sistema Operacional
Hardware
Sumário
 Introdução
 Componentes de um sistema computacional
 Conceituação
 Características desejáveis
 Organização típica
 Tipos de sistemas operacionais
 Histórico
Definição
 O que é um sistema operacional?
 Quais suas funções?
Definição
 O que é um sistema operacional?
 Programa especial que atua de forma intermediaria entre um usuário e os
componentes de um computador.
 Alocador de recursos
 Gerencia e aloca recursos
 Controlador de programas
 Controla a execução de programas do usuário
 Controla operações de I/O em dispositivos.
 Kernel/Núcleo
 O programa principal que roda a todo momento
Definição
 Quais suas funções?
 Possibilitar o uso eficiente e controlado dos diversos
componentes de hardware do computador
 Implementar políticas e estruturas de software de modo a
assegurar um melhor desempenho do sistema de computação
como um todo.
Definição
 Definições gerais de Sistemas Operacionais
 Conjunto de programas que trabalham de modo cooperativo
com o objetivo de prover uma máquina mais flexível e adequada
ao programador do que aquela apresentada pelo hardware
 A program that controls the execution of application programs
 An interface between applications and hardware
 Programa que age como um intermediário entre o usuário de
um computador e o hardware deste computador”.
Sumário
 Introdução
 Componentes de um sistema computacional
 Conceituação
 Características desejáveis
 Organização típica
 Tipos de sistemas operacionais
 Histórico
Características desejadas
 Concorrência
 Existência de várias atividades ocorrendo paralelamente.
 Ex: execução simultânea de “jobs”, E/S paralela ao processamento.
 Compartilhamento
 Uso coordenado e compartilhado de recursos de HW e SW.
 Motivação: custo de equipamentos, reutilização de programas,redução de
redundâncias, etc.
 Armazenamento de dados
 Capacidade de armazenamento a longo prazo.
Características desejadas
 Não determinismo
 Atendimento de eventos que podem ocorrer de forma não
prevista.
 Eficiência
 Baixo tempo de resposta, pouca ociosidade da UCP e alta taxa
de processamento.
 Confiabilidade
 Pouca incidência de falhas e exatidão dos dados computados.
Características desejadas
 Mantenabilidade
 Facilidade de correção ou incorporação de novas características
 Pequena dimensão
 Simplicidade e baixa ocupação da memória.
Sumário
 Introdução
 Componentes de um sistema computacional
 Conceituação
 Características desejáveis
 Organização típica
 Tipos de sistemas operacionais
 Histórico
Organização típica
 Núcleo
 Responsável pela gerência do processador, tratamento de
interrupções, comunicação e sincronização entre processos.
 Gerenciador de Memória
 Responsável pelo controle e alocação de memória aos processos
ativos.
 Gerenciador de E/S
 Responsável pelo controle e execução de operações de E/S e
otimização do uso dos periféricos.
 Responsável pela interface conversacional com o usuário.
Organização típica
 Sistema de Arquivos
 Responsável pelo acesso e integridade dos dados residentes na
memória secundária.
 Processador de Comandos / Interface com o Usuário
 Responsável pela interface conversacional com o usuário.
Sumário
 Introdução
 Componentes de um sistema computacional
 Conceituação
 Características desejáveis
 Organização típica
„‟‟ operacionais
 Tipos de sistemas
 Histórico
Tipos de sistemas operacionais
 Vários tipos de SOs que surgiram
 Gerações de Sistemas operacionais
 Tipos mais comuns







SO de Computadores de Grande Porte
SO de Servidores
SO de multiprocessadores
SO de Computadores Pessoais
SO de Tempo Real
SO de Embarcados
SO de Cartões Inteligentes
Tipos de sistemas operacionais
 SO de Computadores de Grande Porte
 O hardware caracteriza-se por grande capacidade de E/S
 Servidores WEB / business 2 business
 As operações caracterizam-se por execução simultânea de
muitas tarefas requerendo muita E/S
 Tarefas
 Transações
 Tempo Compartilhado
Tipos de sistemas operacionais
 SO de Servidores
 São “computadores pessoais de grande porte”
 Permitem o compartilhamento de hardware e software
 Prestam serviço a muitos usuários




Impressão
Arquivo
Mensagens
Web
Tipos de sistemas operacionais
 SO de multiprocessadores
 Gerenciam múltiplas CPUs
 Podem ser multiprocessadores ou multicomputadores
 A preocupação principal está em:
 Sincronização e comunicação de processos
Tipos de sistemas operacionais
 SO de Tempo Real
 O atendimento ao tempo de resposta é a principal preocupação
 O tempo de resposta pode ser crítico ou não crítico
 SO de Embarcados
 Apresentam restrições quanto ao espaço de memória ocupado e
consumo de potência
 Geralmente também possuem restrição de tempo
Sumário
 Introdução
 Componentes de um sistema computacional
 Conceituação
 Características desejáveis
 Organização típica
 Tipos de sistemas operacionais
 Histórico
„‟‟
Histórico
 Fase 0
 Computadores são uma ciência experimental e exótica:
 Não precisa de sistema operacional
 Programação através de "plugs“
 Usuário presente todo o tempo toda atividade é sequencial
 Conjuntos de cartões manualmente carregados para executar os programas
 Primeiras bibliotecas, utilizadas por todos
 O usuário é programador e operador da máquina ao mesmo tempo
 Problema: muita espera!
 Usuário tem que esperar pela máquina ...
 Máquina tem que esperar pelo usuário ...
 Todos têm que esperar pela leitora de cartões !
Histórico
 Fase 1
 Altos preços
 Computadores são caros; pessoas não
 S.O. surge com o objetivo básico de automatizar a preparação, carga e
execução de programas.
 S.O.Torna utilização do computador mais eficiente, desacoplando as
atividades das pessoas das atividades do computador
 Mais tarde: otimização do uso dos recursos de hardware pelos programas
 S.O. funciona como um monitor batch, continuamente carregando um job,
executando e continuando com o próximo job. Se o programa falhasse, o
SO salvava uma cópia do conteúdo de memória para o programador
depurar.
Histórico
 Fase 1
 Altos preços
 Computadores são caros; pessoas não
 Problemas:
 Só um usuário de cada vez na máquina
 Usuário tem que esperar pela máquina
 Bem difícil para depurar
Histórico
 Fase 1
 Altos preços
 Computadores são caros; pessoas não
 Técnicas de hardware: adiciona proteção à memória e relocação
multiprogramação: muitos usuários podem compartilhar o sistema
 Jobs pequenos podem completar rapidamente
 SO passa a ter que gerenciar interação entre jobs concorrentes
 SO passa a ser um assunto de estudo em ciência da computação !!!
 ... SOs passaram a ser estudados porque eles não funcionavam!
 Novos problemas:
 SOs extremamente complicados
 Usuários ainda esperando pela máquina; isso motivou a fase 2
Histórico
Década de 60
 Sistemas em lote multiprogramados
Histórico
 Fase 2
 Produtividade - Custo/Beneficio
 Computadores são rápidos; pessoas são lentas; ambos são caros.
 "Timesharing" interativo: permitir que vários usuários utilizem a
mesma máquina simultaneamente
 Um terminal para cada usuário
 Manter os dados "on-line": utilização de sistemas de arquivos
estruturados
 Problema:
 Como alcançartempo de resposta razoável?
Histórico
Década de 60
 Periféricos
 Leitoras e perfuradoras de cartão
 Impressoras
 Unidades de fita e disco
 Multiprogramação – Time Sharing
 Produtividade
 Custos (1960):
 Programador: US$4/hora
 Aluguel de tempo do computador: US$500/hora
 Tempo das pessoas
Histórico
Década de 60
 IBM
 Família de Computadores
 IBM/360
 OS/360
 Multics (Multiplexed Information and Computing Service)
 Primeiro sistema operacional de tempo compartilhado
Histórico
 Fase 3
 Produtividade - Custo/Beneficio
 Computadores são baratos; pessoas são caras.
 Dar um computador para cada pessoa.
 SOs de redes de computadores – LANs e WANs
 Modelo cliente/servidor
 Conceito de processamento distribuído
 Computadores pessoais
 Interfaces user friendly
 Conceito de máquina virtual
 Retira do usuário preocupação com detalhes físicos da máquina
Histórico
Década de 70
 Sistemas experimentais da década de 60 viraram comerciais
 Interface gráfica (GUI)
 Xerox PARC (Palo Alto Research Center)
 TCP/IP
 DoD (Departamento de Defesa) Americana
 Ethernet
 PARC, da Xerox
 Militares e universitários
 Problemas de segurança
 Criptografia
Histórico
Década de 80
 Workstation pessoal
 SUN-Stanford University Network, Xerox Alto
 IBM, Personal Computer
 Apple II Macintosh
Histórico
 Fase 4
 SOs distribuídos
 Computação dividida em subcomputações
 Subcomputações distribuídas para diferentes sistemas através da rede
 Controla compartilhamento de recursos e gerencia comunicação e distribuição de
tarefas
 Popularização
 Computadores Pessoais (PCs) difundido
 Introdução de laptops
 Desenvolvimento de protocolos de comunicação para transferência de dados
o Segurança
o Confiabilidade
 Configuração dinâmica de redes
 Redes possibilitam aparecimento de novas aplicações importantes
 Problemas:
 As pessoas ainda continuam esperando por computadores
 Viruses, worms, hackers...
Histórico
Década de 90
 Desempenho melhorou
 Fabricação dos processadores
 Advento do Windows
 Orientação a objetos
 Software Livre
Histórico
2000 em diante
 Serviços Web
 Paralelismo maciço
 Máquinas virtuais e emuladores
 Computação pervasiva
Referências
 Silberschatz, G. “Operating System Concepts”. Capítulo 1
 Tanenbaum, A. “Sistemas Operacionais: projeto e implementação”.
Capítulo 1
 Tanenbaum, A. “Sistemas Operacionais Modernos”. Capítulo 1
Sistemas Batch:
Inexiste interação entre usuário e serviço (job).
Necessita operador e cartões de controle.
Saída capturada minutos, horas ou dias após a submissão do serviço ao sistema.
1950
Simples
Serviços executados
seqüencialmente, CPU ociosa em vários
momentos.
Multiprogramados
1960
Serviços mantidos em um “pool de serviços“ são
escalados para execução sempre que a CPU está livre.
Sistemas multitarefa:
1960
Extensão lógica de multiprogramação.
Usuários podem interagir com cada programa, enquanto ele está sendo executado.
Compartilhamento do computador por diversos usuários.
Sistemas de computadores pessoais:
Custo do hardware suficientemente baixo para permitir uso reservado a um único usuário.
Incorporam tecnologia usada em sistemas de computadores de grande porte.
Procuram maximizar a conveniência e rapidez de atendimento aos usuários.
1970
Download