introducao a sistemas operacionais
TRANSCRIPT
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 hardwareOs 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 SOVisão Usuário Final X Programador X Projetista de Sistema Operacional
Hardware
SO
Utilitários
Aplicativo
UsuárioProgramador
Projetista SO
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 multiprogramadosA idéia básica surguiu com o Sistema Multics que evoluiu para o UNIX
EscalonamentoProteçãoTempo de respostaAtaquesSistema 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áquinasSoftware 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