1 Universidade Federal Fluminense Campus de Rio das Ostras Curso de Ciência da Computação Introdução à Ciência da Computação Professor: Leandro Soares de Sousa e-mail: [email protected] site: http://www.ic.uff.br/~lsousa Aula 8: Sistemas Operacionais 2 Sistemas Operacionais • O que é um sistema operacional? – Um programa que atua como intermediário entre o usuário de um computador e o hardware – É o primeiro a ser iniciado! Usuários Hardware Sistema Operacional Aplicativos 3 Sistemas Operacionais • Objetivos de um sistema operacional • Executar programas do usuário de forma fácil e eficiente • Projetado para atender diferentes situações (facilidade X eficiência) 4 Sistemas Operacionais • Exemplos de tipos de sistemas operacionais (objetivos) • S.O. mainframe: otimizar utilização de hardware • S.O. PCs: diversidade de aplicações (aplicações comerciais, ..., jogos) • S.O. sistemas portáteis: interface intuitiva, economia de recursos 5 Sistemas Operacionais • Os componentes do sistema: – Hardware: fornece recursos básicos de computação (CPU, memória, dispositivos de E/S,...) – Sistema operacional: controla e coordena o uso do hardware entre vários programas aplicativos para os diversos usuários – Programas aplicativos: definem as maneiras como os recursos do sistema são usados para resolver os problemas de computação dos usuários (processadores de texto, planilhas, compiladores, navegadores web, programas comerciais) – Usuários: pessoas, outros computadores, outros equipamentos – Observação: um programa executável é apenas um arquivo em disco, um processo é um programa em execução no sistema operacional. 6 Sistemas Operacionais • Visão Abstrata dos Componentes do Sistema Usuário 1 Usuário 2 Usuário 3 Usuário N Compilador Editor de Textos Aplicativo Qualquer Banco de Dados Sistema Operacional Hardware 7 Sistemas Operacionais • Visão Abstrata dos Componentes do Sistema Usuário 1 Usuário 2 Usuário 3 Compilador Editor de Textos Aplicativo Qualquer Multiusuário Sistema Operacional Hardware Usuário N Banco de Dados 8 Sistemas Operacionais • Visão Abstrata dos Componentes do Sistema Usuário 1 Usuário 2 Usuário 3 Compilador Editor de Textos Aplicativo Qualquer Usuário N Multitarefa Sistema Operacional Hardware Banco de Dados 9 Sistemas Operacionais • Visão Abstrata dos Componentes do Sistema Usuário 1 Usuário 2 Usuário 3 Compilador Editor de Textos Aplicativo Qualquer Multiusuário Multitarefa Como? Sistema Operacional Hardware Usuário N Banco de Dados 10 Sistemas Operacionais • Visão Abstrata dos Componentes do Sistema Usuário 1 Usuário 2 Usuário 3 Usuário N Compilador Editor de Textos Aplicativo Qualquer Banco de Dados Como? Sistema Operacional Hardware Tempo compartilhado 11 Sistemas Operacionais • Visão Abstrata dos Componentes do Sistema Usuário 1 Usuário 2 Usuário 3 Compilador Editor de Textos Aplicativo Qualquer Cada processo em execução recebe um tempo e passa para o próximo Usuário N Banco de Dados Como? Sistema Operacional Hardware Tempo compartilhado 12 Sistemas Operacionais • Visão Abstrata dos Componentes do Sistema Usuário 1 Usuário 2 Usuário 3 Compilador Editor de Textos Aplicativo Qualquer Cada processo em execução recebe um tempo e passa para o próximo Usuário N Banco de Dados Como? Todos os sistemas atuais usam essa técnica Com um ou mais processadores Sistema Operacional Hardware Tempo compartilhado 13 Sistemas Operacionais O sistema operacional deve ser projetado de acordo com os objetivos para sua utilização. 14 Sistemas Operacionais • Ponto de vista do Sistema Computacional – SO é o programa mais próximo do hardware – Alocador de recursos: aloca e gerencia tempo de CPU, espaço de memória, espaço para arquivos, dispositivos de E/S – Programa de controle: gerencia execução de programas (evita erros e uso indevido), facilita o acesso aos recursos computacionais 15 Sistemas Operacionais • Alguns exemplos: – – – – – – Portáteis (em parte notebooks) Desktop/Notebook Multiprocessadores Sistemas em cluster Sistemas distribuídos Sistemas de tempo real 16 Sistemas Operacionais • Alguns exemplos, portáteis – Tablets, celulares, notes (em parte – modos de trabalho), ... – Características importantes: • Memória limitada • Processadores lentos • Telas pequenas – SO: • Deve economizar energia: aumentar duração da bateria • Deve proporcionar interface fácil (telas/teclados pequenos) • Acesso remoto a outros dispositivos (BlueTooth, wifi...) 17 Sistemas Operacionais • Alguns exemplos, Sistemas desktop/notebook – PCs surgiram na década de 70: computador dedicado a um único usuário – Inicialmente: • CPU sem suporte para proteger SO dos demais programas • Nem multiusuário nem multitarefa – Com o passar do tempo... 18 Sistemas Operacionais • Alguns exemplos, sistemas desktop/notebook – Com o passar do tempo... • Ao invés de maximizar uso de CPU e E/S, maximizar resposta ao usuário • Necessidade do usuário: monopolizar recursos (trabalho, jogo) • SO: fácil uso, bom desempenho, recursos ociosos, E/S lenta • Melhoria nas capacidades de armazenamento e processamento • Novos dispositivos: placas gráficas com maior capacidade, monitores de alta resolução... • Diversos tipos de SO: Windows, MacOS, Linux... • Conexão com a Internet – SO não garante segurança completa 19 Sistemas Operacionais • Alguns exemplos, sistemas multiprocessadores – Sistemas com mais de uma CPU – Compartilham: • Barramentos / Relógio / Memória e dispositivos de E/S – Vantagens do sistema multiprocessado • Maior “velocidade”: mais trabalho em menos tempo • Economia de escala: compartilhamento de periféricos – Ex.: vários programas operando sobre um mesmo banco de dados (disco) • Maior confiabilidade – Se um processador falhar, sistema fica mais lento mas não para • Sistemas tolerantes a falhas de software 20 Sistemas Operacionais • Alguns exemplos, Sistemas agrupados (em cluster) – Cluster: múltiplos PCs para agrupados para realizar um trabalho (ou vários – ex.: Google, Youtube,...) • Usa rede local de alta velocidade • O agrupamento fornece alta disponibilidade • Cada nó (PC) pode monitorar os demais através da rede local • Se um nó falhar, é possível recuperar sua execução e executar o seu trabalho em outros nós 21 Sistemas Operacionais • Alguns exemplos, sistemas distribuídos – Redes de computadores: via de comunicação entre um ou mais sistemas separados – Sistemas distribuídos: dependem de rede para funcionar • Não possuem relógio compartilhado • Distribuem a computação entre vários computadores interligados • Dados são “empacotados” antes de enviá-los e “desempacotados” ao recebê-los • Informações de controle também são trocadas via rede 22 Sistemas Operacionais • Alguns exemplos, sistemas distribuídos (Cliente ↔ Servidor) – – – – Servidor: possui dados ou realiza processamento Cliente: utiliza dados do servidor ou solicita processamento Comunicação ocorre através da rede Servidor de processamento: possuem interface para a qual clientes enviam tarefas. Ao final, retornam o resultado aos clientes – Servidor de arquivos: possuem interface onde os clientes podem manipular (acessar, criar, atualizar, apagar) arquivos – Um computador pode ser cliente e servidor ao mesmo tempo (“torrent”) 23 Sistemas Operacionais • Alguns exemplos, sistemas de tempo real – Usado quando requisitos de tempo rígidos são exigidos • Normalmente usado em aplicação dedicada – Sensores coletam dados e computador deve analisar a tempo • Ex.: experimentos científicos, processamento de imagens médicas, injeção eletrônica de combustível, controle de tráfego aéreo, etc. – Restrições de tempo são bem definidas • Se o sistema não processa dentro do tempo, o sistema falha 24 Sistemas Operacionais • Ambientes de Computação – Computação tradicional • Terminais conectados a mainframes • PCs conectados em rede • Servidores de arquivo e impressão • Acesso à Web em baixa velocidade – Computação baseada na Web • PCs são os dispositivos mais comuns de acesso • Conexão de rede rápida e sem fio – Computação embutida • Bastante frequente (carros, robôs, eletrodomésticos) • SO de tempo real • Tendência de integração com a Web 25 Aula 8 Sistemas Operacionais FIM