Baixe o app para aproveitar ainda mais
Prévia do material em texto
Universidade Federal de Ouro Preto - UFOP Departamento de Computação e Sistemas - DECSI CSI437 – Sistemas Operacionais Prof. Samuel Brito Introdução 2 O que é um Sistema Operacional? • Programa que gerencia o hardware do computador. • Oferece uma base para os programas aplicativos e atua como intermediário entre o usuário e o hardware. 3 O que é um Sistema Operacional? • Sistemas Operacionais são projetados para serem convenientes, eficientes ou uma combinação de ambos aspectos: – SOs de mainframes são projetados para otimizar a utilização do hardware. – SOs de computadores pessoais são desenvolvidos para suportar jogos complexos, aplicações comerciais, etc. – SOs de dispositivos móveis são focados no gerenciamento eficiente de recursos (energia, memória, processamento, etc.). 4 O que é um Sistema Operacional? • Um programa ilusionista: – Provê abstrações: • A interface do usuário não corresponde ao hardware existente. • Permite executar o mesmo programa em vários ambientes diferentes. – Coordena recursos: • Controla o acesso a recursos de modo a maximizar seu uso e a proteger os usuários uns dos outros. 5 O que é um Sistema Operacional? • Principais objetivos: – Controlar a execução dos programas do usuário. – Tornar sistemas computacionais mais simples de serem utilizados. – Fazer o uso do hardware de forma “eficiente”. • Alocação de recursos “justa”, proteção, segurança... 6 Visão do Usuário • Usuário enxerga a interface com o sistema, velocidade, capacidade de armazenamento e funcionalidades de periféricos. • Visão varia de acordo com a interface que está sendo usada. 7 Visão do Usuário • Modelo monopolista: – Maioria dos usuários de computador se senta à frente de um PC: • Monitor, teclado, mouse e unidade do sistema. – Objetivo: • Agilizar o trabalho realizado. – Facilidade de uso. – Atenção ao desempenho. » Nenhuma atenção à utilização de recursos (compartilhamento de hardware e software). 8 Visão do Usuário • Modelo compartilhado: – Vários usuários acessando um mainframe por meio de diferentes terminais. – Objetivos: • Sistema operacional é desenhado para maximizar a utilização de recursos. • Recursos alocados de forma eficiente para que nenhum usuário em específico tome mais recursos que outro. 9 Visão do Usuário • Modelo semi-compartilhado: – Estações de trabalho com recursos locais, mas conectadas a redes. – Compartilham os recursos como a própria rede e/ou dispositivos remotos: impressoras, scanners, servidores de arquivo, etc. – Objetivo: • Compromisso entre a facilidade de utilização individual e a utilização de recursos compartilhados. 10 Visão do Sistema • Alocador de recursos: – Gerencia e distribui os recursos do hardware. • Programa de controle: – Administra a execução dos programas do usuário para impedir erros e o uso impróprio do computador. • Em especial a operação e controle de dispositivos de E/S. 11 Definição • Em geral, não temos uma definição totalmente adequada de um sistema operacional. – Eles existem porque fornecem um modo razoável de solucionar o problema de criação de um sistema computacional utilizável. • Kernel: – Programa essencial que executa todo o tempo. – Restante seriam aplicativos. 12 Funções Principais • Coordenação: – Permite que múltiplos aplicativos/usuários trabalhem simultaneamente de forma eficiente. • Concorrência • Proteção de memória • Arquivos • Etc. • Padronização de Serviços: – Padronização da interface a fim de simplificar a programação e uso. 13 Por que estudar Sistemas Operacionais? • Entender como os computadores funcionam. – Melhor utilização das máquinas. • Conectam hardware e software. • Entendimento dos SOs revelam limitações e pontos fortes: – Exemplo: • Por que não utilizar Windows para se controlar uma usina nuclear? – Gerência de memória. 14 Por que estudar Sistemas Operacionais? • Combinam conceitos de praticamente todas as áreas da computação. • Seu conhecimento fornece base sólida para construção de sistemas complexos: – Hardware – Algoritmos – Estruturas de dados – Linguagens – Teoria da computação – Etc. HISTÓRIA DOS SISTEMAS OPERACIONAIS Introdução 16 História dos Sistemas Operacionais • Primeira Geração (1945-1955) – Válvulas • Segunda Geração (1955-1965) – Transistores • Terceira Geração (1965-1980) – CIs e Multiprogramação • Quarta Geração (1980-?) – Computadores Pessoais 17 Primeira Geração (1945-1955) - Válvulas • Não existiam sistemas operacionais. – Programação através de chaves em um painel. • Código de máquina. • Conexão de plugs em painéis para controlar as funções da máquina. – Operação: • Programador reservava tempo de máquina. • Inseria seu painel de programação. • Passava horas torcendo para que nenhuma das 20 mil válvulas queimasse durante a execução. – No início da década de 50 os cartões perfurados foram introduzidos. • Operação continua a mesma. 18 Primeira Geração (1945-1955) - Válvulas 19 Primeira Geração (1945-1955) - Válvulas 20 Segunda Geração (1955-1965) - Transistores • Mudança radical: – Computadores suficientemente confiáveis. • Computadores de grande porte (mainframes): – Isolados em salas especiais, operadas por equipes profissionais. – Grandes corporações, agências governamentais ou universidades. • Milhões de dólares! 21 Segunda Geração (1955-1965) - Transistores • Execução de uma tarefa: – Programador escrevia no papel e depois perfurava cartões. – Entregava os cartões para um dos operadores e esperava a saída. – Operador executava cartão por cartão e caminhava até a sala da impressora para retirar a saída. • Problema? – Muito tempo gasto no deslocamento dos operadores. 22 Segunda Geração (1955-1965) - Transistores • Introdução da tecnologia de disco. – Escalonamento de tarefas. • Sistema em lote (batch): – Programadores entregavam as tarefas para os operadores. – Operadores agrupavam tarefas com necessidades semelhantes. – Lotes eram executados no computador (quando disponível). – Saída de cada lote era enviada para o respectivo programador. • Sistema operacional simples: – Transferia o controle de uma tarefa para a seguinte. – Residente na memória. Área do Programa do Usuário Sistema Operacional 23 Segunda Geração (1955-1965) - Transistores 24 Terceira Geração (1965-1980) – CIs e Multiprogramação • IBM cria o System/360: – Família de computadores. – Softwares compatíveis. – Computação científica e comercial. – Pioneiros no uso de Circuitos Integrados (CIs). • Melhor custo-benefício. – Sistema operacional: OS/360. • Enorme e extraordinariamente complexo. • Milhares de erros. 25 Terceira Geração (1965-1980) – CIs e Multiprogramação 26 Terceira Geração (1965-1980) – CIs e Multiprogramação • Apesar dos problemas, OS/360 e sistemas operacionais similares atendiam razoavelmente bem à maioria dos clientes. – Popularizaram várias técnicas fundamentais. • Spooling: – Sistemas operacionais tinham a capacidade de transferir tarefas de cartões perfurados para discos magnéticos logo que chegassem à sala do computador. – Assim que uma tarefa era completada, o sistema operacional poderia carregar uma nova tarefa a partir do disco na partição que acabou de ser liberada e processá-la. – Diminui deslocamento dos operadores. 27 Terceira Geração (1965-1980) – CIs e Multiprogramação • Multiprogramação: – Memória dividida em partes, uma tarefa diferente em cada partição. – Enquanto uma tarefaesperava que uma operação de E/S se completasse, outra poderia usar a CPU. – CPU poderia permanecer ocupada por quase 100% do tempo. Tarefa 3 Tarefa 2 Tarefa 1 Sistema Operacional Partições de Memória 28 Terceira Geração (1965-1980) – CIs e Multiprogramação • Timesharing: – Intervalo entre submeter uma tarefa e obter uma saída era grande. • Erros levariam horas para serem corrigidos. – Timesharing surgiu como uma variante da multiprogramação: • Cada usuário se conectava por meio de um terminal on-line. • CPU executava várias tarefas, alternando entre elas. – Usuários podiam interagir com cada programa enquanto ele está sendo executado. • Tempo de resposta curto (~1 segundo). • Surgimento do UNIX. 29 Terceira Geração (1965-1980) – CIs e Multiprogramação 30 Quarta Geração (1980-?) – Computadores Pessoais • Circuitos integrados em larga escala (LSI): – Milhares de transistores em 1 cm² de silício. • Microcomputadores: – Inicialmente baratos mas com pouca potência e poder de processamento. – Sistemas Operacionais Simplificados: • CP/M, MS-DOS, etc. • Baseados na digitação de comandos. 31 Quarta Geração (1980-?) – Computadores Pessoais • Lisa (1983): – Projeto de Steve Jobs. – Dispendioso. – Falhou comercialmente. • Apple Macintosh (1984): – Enorme sucesso. – Baixo custo em relação ao projeto Lisa. – Amigável ao usuário. – Destinado a usuários que não sabiam e/ou não tinham interesse em aprender sobre computadores. 32 Quarta Geração (1980-?) – Computadores Pessoais • Windows (1985): – Baseado em interface gráfica. – Executado originalmente em cima do MS-DOS. • Ambiente gráfico sobre o MS-DOS. • Windows 95 e Windows 98: – Independentes do MS-DOS. – Incorporaram aspectos de um sistema operacional. • Windows NT, 2000, Millennium, XP, Vista... • UNIX, Linux, FreeBSD ... 33 Sistemas Operacionais Modernos • Enormes: – Centenas de milhares de linhas de código. – 100... 1000 homens-ano de desenvolvimento. • Complexos: – Tipos diferentes de hardware e usuários. – Foco em desempenho. • Mal compreendidos: – Muito grandes para serem compreendidos por um único desenvolvedor. – Nunca estão completamente sem erros. – Comportamento difícil de prever. 34 Sistemas Operacionais Modernos • Exemplo: – Evolução do número de linhas do kernel Linux: • Versão 0.01 (1991): 10.239 • Versão 1.0.0 (1994): 176.250 • Versão 1.2.0 (1995): 310.950 • Versão 2.2.0 (1999): 1.800.847 • Versão 2.4.0 (2001): 3.377.902 • Versão 2.6.0 (2003): 5.929.913 • Versão 2.6.36 (2010): 13.499.457 • Versão 3.0.0 (2011): 13.872.245 • Versão 3.2.1 (2012): 14.304.901 ARQUITETURAS DOS SISTEMAS DE COMPUTADORES Introdução 36 Sistemas Multiprocessados • Até algum tempo atrás, maioria dos sistemas utilizavam um único processador. • Atualmente, sistemas multiprocessados crescem em quantidade e importância. • Série de vantagens podem ser obtidas. 37 Sistemas Multiprocessados • Principais vantagens: – Maior vazão (througput): • Mais processadores, mais trabalho em menos tempo. – Economia de escala: • Sistemas multiprocessados podem custar menos do que múltiplos sistemas de processador único equivalentes (compartilhamento de periféricos, armazenamento, etc). – Maior confiabilidade: • A falha de um processador não interromperá o sistema. – Só o atrasará. • Rebalanceamento de carga. 38 Sistemas Multiprocessados • Tipos de sistemas multiprocessados: – Multiprocessamento simétrico (SMP): • Cada processador executa uma cópia do sistema operacional. • Cópias se comunicam entre si de acordo com a necessidade. • Sem relação mestre-escravo. • Exemplo: – Solaris da Sun Microsystems. – Sistemas operacionais modernos oferecem suporte para SMP. 39 Sistemas Multiprocessados • Multiprocessamento assimétrico (ASMP): • Cada processador recebe uma tarefa específica. • Processador mestre controla o sistema. – Outros (escravos) procuram instruções com o mestres ou possuem tarefas predefinidas. 40 Sistemas Distribuídos • Crescimento das redes de computadores teve uma profunda influência no desenvolvimento dos sistemas operacionais. • Sistemas Distribuídos: – Processadores comunicam entre si por meio de diversas linhas de comunicação. • Barramentos de alta velocidade, linhas telefônicas, rede, etc. – Processadores podem compartilhar tarefas de computação e oferecer um rico conjunto de recursos ao usuários. – Arquitetura cliente-servidor ou peer-to-peer. 41 Sistemas Distribuídos Estrutura de um sistema peer-to-peer. Estrutura geral de um sistema cliente-servidor. 42 Sistemas em Clusters • Reúnem diversas CPUs para realizar trabalho de computação. • Sistemas individuais e acoplados. – Compartilham recursos. • Conectados de maneira rígida por meio de redes locais rápidas. 43 Sistemas de Tempo Real • Sistemas com restrições bem definidas sobre tempos de resposta. • Frequentemente usados em aplicações dedicadas, como controladores de dispositivos. – Sistemas de imagens médicas, sistemas de injeção de combustível de motor de automóvel, controle industrial, etc. • Exigem planejamento de alocação de recursos em termos de limites garantidos. 44 Sistemas de Tempo Real 45 Sistemas Portáteis • Personal Digital Assistants (PDAs). – Exemplo: Palms, Pocket-PCs, smartphones. • Envolvem questões diferentes de computadores pessoais: – Memória limitada. – Processadores relativamente lentos. – Telas pequenas. – Gasto de energia. – Etc. 46 Sistemas Embutidos • Sistemas desenvolvidos para serem inseridos em dispositivos específicos. • Usualmente, as necessidades de interface com o usuário são definidas pelo dispositivo. • Muitas vezes trazem requisitos de tempo real. • Restrições de memória e capacidade de processamento podem ser severas. 47 Sistemas Embutidos 48 Dúvidas? Slide 1 O que é um Sistema Operacional? O que é um Sistema Operacional? O que é um Sistema Operacional? O que é um Sistema Operacional? Visão do Usuário Visão do Usuário Visão do Usuário Visão do Usuário Visão do Sistema Computacional Slide 11 Funções Principais Por que estudar Sistemas Operacionais? Por que estudar Sistemas Operacionais? História dos sistemas operacionais História dos Sistemas Operacionais Primeira Geração (1945-1955) - Válvulas Primeira Geração (1945-1955) - Válvulas Primeira Geração (1945-1955) - Válvulas Segunda Geração (1955-1965) - Transistores Segunda Geração (1955-1965) - Transistores Segunda Geração (1955-1965) - Transistores Segunda Geração (1955-1965) - Transistores Terceira Geração (1965-1980) – CIs e Multiprogramação Terceira Geração (1965-1980) – CIs e Multiprogramação Terceira Geração (1965-1980) – CIs e Multiprogramação Terceira Geração (1965-1980) – CIs e Multiprogramação Terceira Geração (1965-1980) – CIs e Multiprogramação Terceira Geração (1965-1980) – CIs e Multiprogramação Quarta Geração (1980-?) – Computadores Pessoais Quarta Geração (1980-?) – Computadores Pessoais Quarta Geração (1980-?) – Computadores Pessoais Sistemas Operacionais Modernos Sistemas Operacionais Modernos Arquiteturas dos Sistemas de Computadores Sistemas Multiprocessados Sistemas Multiprocessados Sistemas Multiprocessados Sistemas Multiprocessados Sistemas Distribuídos Sistemas Distribuídos Sistemas em Clusters Sistemas de Tempo Real Sistemas de Tempo Real Sistemas Portáteis Sistemas Embutidos Sistemas Embutidos Dúvidas?
Compartilhar