Baixe o app para aproveitar ainda mais
Prévia do material em texto
03/03/2017 1 Fundamentos de Sistemas Operacionais Análise e Desenvolvimento de Sistemas Prof. MSc. Douglas Rodrigues E-mail: dogrodrigues@gmail.com Introdução Fundamentos de Sistemas Operacionais Considerações Iniciais � Um computador digital é uma máquina capaz de nos solucionar problemas através de instruções que lhe são fornecidas � Um programa é uma sequência de instruções que descreve como executar uma determinada tarefa 3 Introdução � O que é um sistema operacional? � Ele possui duas funções: � Estender a máquina: � Na perspectiva do usuário ou programador, é uma abstração do hardware, e faz o papel de intermediário entre o software (programas do usuário) e os componentes físicos do computador (hardware) � Gerenciar recursos: � Como gerenciador de recursos, o SO controla quais aplicações (processos) podem ser executadas, quando devem ser executadas e quais recursos (memória, disco, periféricos) podem ser utilizados 4 Introdução A importância do sistema operacional (SO) � Sistema sem SO � Gasto maior de tempo de programação � Aumento da dificuldade � Usuário preocupado com detalhes de hardware 5 Introdução � Sistema com SO � Maior racionalidade � Maior dedicação aos problemas de alto nível � Maior portabilidade 6 03/03/2017 2 Introdução � Definição de sistema operacional � Um sistema operacional é um programa, ou conjunto de programas, inter-relacionados, cuja finalidade é agir como intermediário entre o usuário e o hardware � Possui várias funções, entre elas: � Apresentar uma máquina mais flexível � Permitir o uso eficiente e controlado dos componentes de hardware � Permitir o uso compartilhado e protegido dos diversos componentes de hardware e software, por diversos usuários 7 Introdução Interação com o sistema operacional � O usuário: � Interage com o SO de maneira direta, através de comandos pertencentes à uma linguagem de comunicação especial, chamada linguagem de comando � Ex: JCL (Job Control Language), DCL (Digital Control Language) e outras 8 Introdução Interface texto (linha de comando) MS-DOS 9 Interface texto (linha de comando) Linux Introdução Interface gráfica (GUI) Windows 7 10 Introdução Interação com o sistema operacional � Os programas de usuário: � Invocam os serviços do SO por meio das chamadas ao sistema operacional (system calls) 11 Introdução A evolução dos sistemas operacionais � O alcance e extensão dos serviços de um SO dependem das necessidades e características do ambiente que deve suportar � Um SO pode processar sua carga de trabalho (workload) de duas formas: � Serial: neste, os recursos são dedicados à um único programa, até o seu término � Concorrente: os recursos são dinamicamente reassociados entre uma coleção de programas ativos, em diferentes estágios de execução 12 03/03/2017 3 Introdução Um breve histórico � 1ª geração de computadores (1945-1955) � Computadores à válvula � Ausência de um SO: a programação era feita diretamente em linguagem de máquina 13 Colossus Mark I Introdução 14 ENIAC Introdução � 2ª geração de computadores (1955-1965) � Invenção do transistor (William Shockley, John Bardeen e Walter Brattain) � Uso da linguagem Assembler e FORTRAN � SOs do tipo lote (batch) 15 Introdução � Até 1956: 16 Introdução � 1957: uso de sistema auxiliar (técnica do spooling) 17 Introdução � 1959: � Introdução de canais autônomos de entrada/saída � Criação das interrupções � Entrada/saída em paralelo com o cálculo 18 03/03/2017 4 Introdução � 1960: � Uso de spooler automático � Invenção dos discos e tambores magnéticos � SOs típicos: FMS (Fortran Monitor System) e IBSYS (da IBM) 19 Introdução � 3ª geração de computadores (1965-1980) � Invenção dos circuitos integrados (chips) com baixa escala de integração (SSI - Small Scale Integration) � Sistema OS/360 (IBM): primeiro a usar circuitos SSI 20 Introdução � 3ª geração de computadores (1965-1980) � Introdução dos conceitos de multiprogramação e de tempo compartilhado (time sharing) � Proliferação dos minicomputadores (ex: PDP-1) � Sistema MULTICS (MULTiplexed Information and Computing Service) 21 Introdução Sistema GE 625 (SO MULTICS) 22 Introdução � 4ª geração de computadores (1980-atualmente) � Invenção dos Circuitos Integrados com alta escala de integração (LSI – Large Scale Integration) � Era dos computadores pessoais � Sistemas operacionais para microcomputadores � CP/M (8 bits) � DOS (16 bits) � UNIX (32 bits) � Sistemas Operacionais de Rede � Sistemas Operacionais Distribuídos 23 Introdução Tipos de sistemas operacionais � Classificação quanto ao compartilhamento de hardware � Sistemas operacionais monoprogramados � Só permite um programa ativo em um dado período de tempo, o qual permanece na memória até seu término � Ex: DOS � Sistemas operacionais multiprogramados � Mantém mais de um programa simultaneamente na memória principal, para permitir o compartilhamento efetivo do tempo de CPU e demais recursos � EX: Unix, VMS, Windows NT, etc. 24 03/03/2017 5 Introdução � Classificação quanto a interação permitida � (Fator determinante � tempo de resposta) � SO para processamento em batch (lote) � Os jobs dos usuários são submetidos em ordem sequencial para a execução � Não existe interação entre o usuário e o job durante sua execução 25 Introdução Sistema batch (processamento em lote) 26 Introdução � SO interativo � O sistema permite que os usuários interajam com suas computações na forma de diálogo � Podem ser projetados como sistemas monousuários ou multiusuários (usando conceitos de multiprogramação e tempo compartilhado) 27 Introdução � SO de tempo real � Usados para servir aplicações que atendem processos externos, e que possuem tempos de resposta limitados � Geralmente sinais de interrupções comandam a atenção do sistema � Geralmente são projetados para uma aplicação específica 28 Introdução � Classificação segundo o porte (Tanenbaum, 2003) � SOs de computadores de grande porte � Ocupam uma sala inteira, ainda encontrados em centros de dados de grandes corporações � Estão ressurgindo como sofisticados servidores Web � Ex: OS/390 � SOs de servidores � Servem múltiplos usuários de uma vez em uma rede � Compartilham recursos de hardware e software � Ex: serviço de impressão, de arquivo ou serviços Web � Ex: Unix, Windows 2000, Linux 29 Introdução � SOs de multiprocessadores � Para obter maior potência computacional � conectar múltiplas CPUs em um único sistema � SOs de computadores pessoais � Função: oferecer uma boa interface para um único usuário � Usados para processadores de texto, planilhas e acesso à Internet � SOs de tempo real � Tempo é um fator fundamental � Prazos rígidos para a execução de determinadas tarefas � Ex: VxWorks e QNX 30 03/03/2017 6 Introdução � SOs embarcados � Sistemas embarcados são executados em computadores que controlam dispositivos que geralmente não são considerados computadores � Ex: aparelhos de TV, forno de micro-ondas, PDAs, etc. � Apresentam restrições de tamanho, memória , consumo de energia, etc. � Ex: PalmOS, Windows CE � SOs de cartões inteligentes � Executados em cartões inteligentes (do tamanho de um cartão de crédito que contém um chip de CPU) � Podem realizar apenas uma função, como pagamentos eletrônicos 31 Introdução Diferentes visões de um SO � Visão do usuário da linguagem de comando � As linguagens de comando são específicas de cada sistema 32 Introdução � Visão do usuário das chamadas do sistema � Permitemum controle mais eficiente sobre as operações do sistema e um acesso mais direto sobre as operações de hardware (especialmente E/S) 33 Introdução Estrutura de sistemas operacionais � Como os sistemas operacionais são normalmente grandes e complexas coleções de rotinas de software, os projetistas devem dar grande ênfase à sua organização interna e estrutura � Estrutura monolítica � Estrutura do microkernel � Sistema de camadas � Máquinas virtuais 34 Introdução � Estrutura monolítica � É a forma mais primitiva de SO � Consiste de um conjunto de programas que executam sobre o hardware, como se fosse um único programa. � Os programas de usuário podem ser vistos como sub-rotinas, invocadas pelo SO, quando este não está executando nenhuma das funções do sistema 35 Introdução Estrutura monolítica 36 03/03/2017 7 Introdução Estrutura do microkernel � Micronúcleo (microkernel): incorpora somente as funções de baixo nível mais vitais � Executa a maioria dos processos fora do kernel � O microkernel fornece uma base sobre a qual é construído o resto do SO � A maioria destes sistemas são construídos como coleções de processos concorrentes � Fornece serviços de alocação de CPU e de comunicação aos processos 37 Introdução Estrutura do microkernel 38 Introdução Sistemas de camadas – Estrutura hierárquica de níveis de abstração � Os princípios utilizados nesta abordagem são: � Modularização: divisão de um programa complexo em módulos de menor complexidade. Os módulos interagem através de interfaces bem definidas � Conceito de “informação escondida”: os detalhes das estruturas de dados e algoritmos são confinados em módulos. Externamente, um módulo é conhecido por executar uma função específica sobre objetos de determinado tipo 39 Introdução Estrutura hierárquica de níveis de abstração � A ideia básica é criar um SO como uma hierarquia de níveis de abstração, de modo que, a cada nível, os detalhes de operação dos níveis inferiores possam ser ignorados � Através disso, cada nível pode confiar nos objetos e operações fornecidas pelos níveis inferiores 40 Introdução Estrutura hierárquica de níveis de abstração 41 Introdução Máquina virtual � Definição: uma duplicata de uma máquina real � O modelo de máquina virtual (Virtual Machine - VM) cria um nível intermediário entre o hardware e o SO � Denominado Gerência de Máquinas Virtuais � Este nível cria diversas máquinas virtuais independentes, onde cada uma oferece uma cópia virtual do hardware, incluindo modos de acesso, interrupções, dispositivos de E/S, etc. � Como cada VM é independente das demais, é possível que cada uma tenha seu próprio SO 42 03/03/2017 8 Introdução Máquina virtual 43 Introdução Máquina virtual � Outro exemplo de utilização desta estrutura ocorre na linguagem Java � Para executar um programa Java, é necessário uma máquina virtual Java (Java Virtual Machine - JVM) 44 Exercícios 1. Quais são as duas principais funções de um sistema operacional? Explique-as. 2. Quais as diferenças entre SOs monoprogramados e SOs multiprogramados? 3. Quais as diferenças entre SOs em lote (batch) e SOs interativos? 4. Em relação à estrutura de um SO, quais as diferenças entre os sistemas monolíticos e sistemas de camadas? 5. Defina e explique o conceito de tempo compartilhado em sistemas operacionais. 6. Defina e explique o conceito de processos em sistemas operacionais. 45
Compartilhar