INF 1019: Sistemas de Computação (Sistemas Operacionais) Markus Endler Sala RDC 503! endler@inf.puc-rio.br!! http://www.inf.puc-rio.br/~endler/courses/inf1019/!! 1
Introdução 2
O Que é um Sistema Operacional? É um software que age como intermediário entre o usuário e o hardware Fornece um ambiente onde o usuário pode executar programas Garante a utilização eficiente dos recuros de hardware Protege o próprio sistema operacional e os programas de usuários de violações mútuas. Cria abstrações dos recursos de hardware e esconde os detalhes do acesso a esses recursos (evitando que o programador/usuário tenha que se preocupar com a heterogeneidade de sistemas) 3
A função do Sistema Operacional Usuário B! Aplicativo 1! Utilitário 1! Usuário A! Usuário C! Usuário D! Sistema 1! Sistema Operacional! Usuário-! Sistema! Recurso HW1! Recurso HW2! Recurso HW3! Exemplos: Aplicativos: Planilha, processador de texto,... Utilitários: Compilador, editor de texto, SGBD, browser Web,... Sistema de Informação: ERP, CRM, reserva de passagens aéreas,... Interface Usuário-sistema: Shell (em texto) ou Sistema de Janelas Recurso de Hardware: CPU, memória, HD, dispositivos de E/S,... 4
Interface Usuário-sistema O Sistema Operacional fornece as seguintes facilidades para o usuário: Acessar o sistema (segurança de acesso) Criar e gerir diretórios, arquivos e programas Executar programas Acessar conteúdo de arquivos Detectar erros de execução Usar dispositvos periféricos (impressora, scanner, driver de DVD, etc.) Contabilizar a utilizacão do sistema 5
O que é um Sistema Operacional? É uma máquina estendida Implementa abstrações que escondem (do programador e do usuário final) os detalhes de como usar e controlar os recursos específicos; Fornece ao programador uma máquina virtual, que é mais fácil de usar (APIs simples baseada em conceitos independentes do hardware) e genérica (sem expor a diversidade dos recursos/ dispositivos) É um gerenciador de recursos Garante o compartilhamento seguro de recursos pelas várias tarefas executando concorrentemente no sistema; Visa maximizar a utilização dos recursos (CPU, Memória, Disco, etc.) 6
Concorrência Nos sistemas ditos multiprogramados (multi-tarefa), existem vários programas que executam concorrentemente (ao mesmo tempo), aproveitando o fato de que: a CPU e os dispositivos de Entrada/Saida (E/S) poderem executar em paralelo; Existem vários dispositivos de Entrada/Saída que podem ser acionados em paralelo. Cada programa intercala períodos de processamento puro (na CPU) com períodos de E/S em dispositivos. Seria um disperdício fazer a CPU esperar pelo término de cada E/S com um dispositivo Para tal, é importante que o SO possa inciar uma E/S e prosseguir com a execução de outro programa. Ou seja, multiprogramação aumenta a utilizacão da CPU. 8
Sistemas Operacionais Classificação Monotarefa x Multitarefa Sistema Monotarefa: Admite e gerencia apenas uma tarefa em execução por vez. Ex: DOS Sistema Multitarefa: Admite e gerencia várias tarefas em processamento concorrente. Ex: Windows 98,Windows 2000/NT/XP, Linux... Run! Espera Run! Espera Programa A Run! Espera Run! Espera Tempo Monotarefa Programa B Espera Run! Espera Run! Espera Tempo Multitarefa Vantagens x Desvantagens Multitarefa e Multiprogramação são a mesma coisa
Sistemas Operacionais Classificação Monousuário x Multiusuário Sistema Monousuário: Admite e gerencia apenas um usuário não permite que mais de um usuário esteja logado simultaneamente Ex: Windows 98, Windows NT (exceto versão com Terminal Server) Sistema Multiusuário: Admite e gerencia vários usuários permite que mais de um usuário esteja logado no sistema simultaneamente. Ex: Linux, Windows 2000, VMS
Sistemas Operacionais Classificação Monoprocessado x Multiprocessado Sistemas Monoprocessados Somente reconhece uma única CPU Multitarefa ou monotarefa Ex: Windows 98 Sistemas Multiprocessados Reconhece mais de uma CPU Permite execução simultânea Ex:Windows 2000/NT/XP, Linux
Sistemas Operacionais Batch x Time Sharing Sistemas Batch Classificação Os programas são processados em Lote, um de cada vez, não havendo interação com o usuário. Sistemas Time Sharing Os usuários compartilham o tempo de uso do computador que, em seqüência, dedica uma fatia do tempo de processamento para cada usuário. Isso não é perceptível para os usuários, que têm respostas quase imediatas. User3! User2! User1! Fatias de tempo da CPU!
Sistemas Operacionais Classificação Aplicações Específicas Sistemas de Tempo Real Sistemas que possuem um forte vínculo com o tempo. O resultado correto deve ser dado no tempo previsto. Sistemas Embarcados Sistemas inseridos em produtos com funções específicas como forno de micro-ondas, tocador de CD/DVD, consoles de games, carros, etc.
Cada Sistema com seu foco Aumentar a praticidade de uso; Obter o máximo de desempenho; Minimizar o tempo de resposta para todos usuários/programas Funcionar com poucos recursos (sist. embarcados e celulares simples, feature phone ); Garantir tempos de resposta previsíveis (controle e automação, sistemas de tempo real); Ser tolerante a falhas (em sistemas distribuidos); 14
Tipos de Sistemas Mica Mote! Personal Comp.! Tablets! Mainframe Server! Process Control Board! Game Console! ipod Touch/ iphone! Cluster/ Server farm para Cloud! MP3 Player! Cell / Smart Phone! 15
Tipos de Sistema: Sistemas em Rede Automotive Vehicle Network! Network Routers! Wireless Routers! Redes de Sensores sem fio! Robôs Autonômicos (em depósito)! 16
Sipos de Sistemas: Sistemas Emergentes Watch Computer! Car Computer! Wearable Comp.! Data Centers! Table Computing! Embedded Computing! 17
Um S.O. para cada tipo de máquina Alguns Exemplos: PCs/Notebooks: Linux, variantes do UNIX, Windows XP/NT/7, Vista, Mac OS X, Computação em nuvem: Amazon EC, Xen, Smartphones/Tablets: ios, PalmOS, Android, Windows Phone, BlackBerry, AlyunOS Embarcados: Android, Inferno, Maemo, etc. Sistemas de Tempo Real: QNX, RT-UNIX, Redes de Sensores (MicaMotes): TinyOS, Contiki, Clusters/Sist. distribuídos: Mach, Plan9, Amoeba, Beowulf, Chorus WebOS: ChromeOS, JoliOS, DesktopTwo, EyeOS, 18
Elementos centrais Apesar das diferenças, todos os SOs provêm as seguintes funções: Gerência e escalonameno de processos e threads Comunicação/sincronização entre processos/threads Sistema de Arquivos Gerenciamento de memória Subsistema de Entrada/Saida Drivers e gerenciadores de dispositivos perifericos: teclado, monitor, mouse, rede, HDs, CD/DVD, etc.) 19
Componentes Típicos de um S.O. Programas utilitários: Auxiliam o usuário/desenvolvedor em tarefa específica Exemplos: Compiladores, loader, linker, depuradores, interpretadores de comando (shell), gerenciador de janelas, clientes de email, etc. Programas de sistema: São ativados automaticamente, ao iniciar, ou periodicamente São indispensáveis para a operação do sistema Permitem configuração do sistema, corrigem erros no disco, fazem back-up, gerenciam a comunicação pela rede, monitoram e colhem estatísticas sobre a ocupação de recursos, etc. Núcleo (kernel) e drivers: Executam as funções mais básicas para alocacão e gerenciamento compartilhado e seguro dos recursos Controla todas as atividades do SO e tem acesso a todas as operações do hardware Drivers: fazem o controle específico de uma (classe de) dispositivos de Entrada e Saida
Niveis de Privilégio: Modos Usuário e Supervisor (kernel) As arquiteturas atuais permitem a operação em dois (ou mais) níveis de privilégio da CPU: Modo supervisor/kernel: acesso a todas as instruções de máquina e regiões da memória; Modo usuário: apenas conjunto restrito de instruções e acesso controlado à memória (apenas a certos endereços da memória) Exemplo: No modo supervisor é possível trocar de modo, acessar estruturas de dados do núcleo, executar instruções de mudança de mapeamento de memória, manipular qualquer processo, desabilitar certas interruções, etc. Progr. B! Progr. A! Modo usuário! Modo kernel! t! 23
Três eventos que causam a troca para o modo supervisor (kernel mode) 1. Interrupções de um dispositivo de E/S (disco, mouse, etc.): São assíncronos, e independentes do processo em execução Por Exemplo: timer informa que fatia de tempo terminou, ou dispositivo de E/S avisa que completou operação de escrita 2. Execução de uma tarefa levanta uma exceção Por exemplo: divisão por zero, ou acessso a endereço inválido Núcleo precisa interromper o processo! 3. Programa em execução faz uma chamada de sistema (system call) solicitando um serviço do Sistema Operacional Núcleo faz a troca de contexto e passa controle da CPU a outra tarefa (processo). 25