Sistemas Operacionais
Evolução
Edson Moreno
edson.moreno@pucrs.br
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
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
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.
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
Memória principal E/S Sistema de comunicação UCP Computador
Componentes
Sistema Operacional Programa de interface com o usuário Modo usuário Modo núcleo Software Hardware Navegador web Leitor de e-mail Reprodutor de músicaSumá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
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
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
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
Características desejadas
Mantenabilidade
Facilidade de correção ou incorporação de novas características
Pequena dimensão
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.
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
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
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
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:
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
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 ...
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
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
Histórico
Década de 60
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:
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
Histórico
Década de 60
IBM
Família de Computadores IBM/360 OS/360
Multics (
Multiplexed Information and Computing Service)
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
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
Workstation pessoal
SUN-Stanford University Network, Xerox Alto
IBM, Personal Computer
Apple II Macintosh
Histórico
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
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 1960
Serviços executados
seqüencialmente, CPU ociosa em vários
momentos. Simples
Serviços mantidos em um “pool de serviços“ são escalados para execução sempre que a CPU está livre. Multiprogramados
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
Sistemas multitarefa:
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.