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: leandro.uff.puro@gmail.com site: http://www.ic.uff.br/~lsousa Aula 8: 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! 2 Usuários Hardware Sistema Operacional Aplicativos
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) 3
Exemplos de tipos de sistemas operacionais (objetivos) 4 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 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.
Visão Abstrata dos Componentes do Sistema 6 Usuário 1 Usuário 2 Usuário 3 Usuário N Compilador Editor de Textos Aplicativo Qualquer Banco de Dados Sistema Operacional Hardware
Visão Abstrata dos Componentes do Sistema 7 Multiusuário Usuário 1 Usuário 2 Usuário 3 Usuário N Compilador Editor de Textos Aplicativo Qualquer Banco de Dados Sistema Operacional Hardware
Visão Abstrata dos Componentes do Sistema 8 Usuário 1 Usuário 2 Usuário 3 Usuário N Compilador Editor de Textos Aplicativo Qualquer Multitarefa Banco de Dados Sistema Operacional Hardware
Visão Abstrata dos Componentes do Sistema 9 Multiusuário Usuário 1 Usuário 2 Usuário 3 Usuário N Compilador Editor de Textos Aplicativo Qualquer Multitarefa Banco de Dados Como? Sistema Operacional Hardware
Visão Abstrata dos Componentes do Sistema 10 Usuário 1 Usuário 2 Usuário 3 Usuário N Compilador Editor de Textos Aplicativo Qualquer Banco de Dados Como? Sistema Operacional Tempo compartilhado Hardware
Visão Abstrata dos Componentes do Sistema 11 Usuário 1 Usuário 2 Usuário 3 Usuário N Compilador Editor de Textos Aplicativo Qualquer Cada processo em execução recebe um tempo e passa para o próximo Como? Banco de Dados Sistema Operacional Tempo compartilhado Hardware
Visão Abstrata dos Componentes do Sistema 12 Usuário 1 Usuário 2 Usuário 3 Usuário N Compilador Editor de Textos Aplicativo Qualquer Cada processo em execução recebe um tempo e passa para o próximo Como? Banco de Dados Todos os sistemas atuais usam essa técnica Com um ou mais processadores Sistema Operacional Hardware Tempo compartilhado
O sistema operacional deve ser projetado de acordo com os objetivos para sua utilização. 13
Ponto de vista do Sistema Computacional 14 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
Alguns exemplos: Sistemas Operacionais 15 Portáteis (em parte notebooks) Desktop/Notebook Multiprocessadores Sistemas em cluster Sistemas distribuídos Sistemas de tempo real
Alguns exemplos, portáteis Sistemas Operacionais 16 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 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 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 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
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 20
Alguns exemplos, sistemas distribuídos 21 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 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 )
Alguns exemplos, sistemas de tempo real 23 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 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
Aula 8 25 Sistemas Operacionais FIM