Baixe o app para aproveitar ainda mais
Prévia do material em texto
CCT0011 – Sistemas Operacionais Aula 01 – Introdução aos Sistemas Operacionais Sistemas Operacionais Conteúdo da Aula Conceitos Fundamentais de Sistemas Operacionais Evolução Histórica dos Sistemas Operacionais Classificação dos Sistemas Operacionais Sistemas Operacionais Sistemas Operacionais O Sistema Operacional é um programa responsável por controlar o funcionamento do computador, como um gerente dos vários recursos disponíveis do sistema.” Tanembaum É um conjunto de programas responsável pela gerência de recursos de hardware, interfaces com o usuários e segurança de acesso e utilização. O que é um Sistema Operacional? Hardware ou Software? Sistemas Operacionais Sistemas Operacionais Segundo Silberschatz et al. (2004), um sistema operacional é um programa que efetua o gerenciamento dos componentes físicos do computador (hardware), como também uma base para os programas aplicativos. Além disso, atua como intermediário entre o usuário e o hardware do computador. A função do sistema operacional é permitir uma interface homem - máquina mais amigável com o usuário, isto porque encapsula as complexas rotinas de acesso a recursos de hardware, tais como, interface de programação e gerenciamento de recursos. Sistemas Operacionais Sistemas Operacionais O sistema operacional é uma coleção de programas que: • Inicializa o hardware do computador • Fornece rotinas básicas para controle de dispositivos • Fornece gerência, escalonamento e interação de tarefas • Mantém a integridade de sistema Um sistema operacional muito simples para um sistema de controle de segurança, poderia ser armazenado numa memória ROM , e assumir o controle ao ser ligado o computador. Sistemas Operacionais Sistemas Operacionais Cada parte de um sistema operacional (módulo ou função) é responsável pelo gerenciamento de um recurso específico. • Tempo de CPU. • Espaço de memória. • Espaço de disco. • Acesso aos dispositivos de comunicação. • Bibliotecas de software. Sistemas Operacionais Sistema Operacionais Gerenciar recursos é garantir a utilização compartilhada do recurso sem que ocorram erros que possam gerar instabilidade ou falha no sistema. Na visão do usuário o sistema operacional fornece: • Acesso ao sistema. • Possibilidade de criar e gerir arquivos e diretórios. • Ambiente para execução de programas. • Acesso aos dispositivos de entrada e saída. • Acesso ao conteúdo de arquivos. • Detecção de erros. Sistemas Operacionais Evolução dos Sistema Operacionais Primeira geração da computação moderna (1945 – 1955): • Não trabalhavam o conceito de sistemas operacionais propriamente dito. • As operações eram definidas através de hardware (chaves e fios). • Muito difícil criar rotinas programáveis. • Projetista era responsável pela “programação” Sistemas Operacionais Evolução dos Sistema Operacionais Segunda geração da computação moderna (1955 – 1965): • Comandos executados em sequência através de cartões perfurados. • Chamada programação em batch. Em meados da década de 60, os primeiros sistemas operacionais foram desenvolvidos. Contudo, cada computador possuía seu próprio SO específico, o que implicava na incompatibilidade de mainframes distintos. Um dos maiores representantes foi o CTSS, criado pela MIT, sendo lançado em 1961 para o computador IBM 7090. Sistemas Operacionais Evolução dos Sistema Operacionais Primeiro Sistema Operacional Os sistemas operacionais modernos surgem a partir de 1969 com o fim do projeto de uma equipe de desenvolvedores da AT&T Bell Labs e o resultado foi o sistema proprietário apelidado de UNIX. • Foi desenvolvido inicialmente para um tipo específico de computador. • Em 1973 foi recodificado para linguagem C. • Introduziu conceitos de suporte a multiusuários, multitarefas e portabilidade. • Tornou-se base para outros sistemas como: • BSD (1977 – Berkeley Software Distribution) • Solaris • GNU/Linux • Mac OS X Sistemas Operacionais Evolução dos Sistema Operacionais • 1978 – Apple DOS, código fechado, utilizado no Apple II. • 1979 – Atari DOS, código fechado, utilizado nos computadores domésticos de 8 bits da marca. • 1980 – Apple SOS, código fechado, utilizado no Apple III. Xenix, código fechado, utilizado nos computadores Zilog Z8000 16 bits. 86-DOS (Q-DOS), código fechado, foi desenvolvido especificamente para processadores Intel 8086. Comprado pela Microsoft que transformou no MS-DOS. • 1981 – MS-DOS /IBM PC DOS, código fechado, utilizado nos computadores IBM devido a parceria entre as empresas. • 1984 – HP-UX, código fechado, desenvolvido pela Hewlett-Packard, primeiro a trazer um gerenciador de unidades lógicas e listas de controle de acesso. Mac OS, código fechado, removeu necessidade de comandos e introduziu uso do mouse. Sistemas Operacionais Evolução dos Sistema Operacionais • 1985 – Windows 1.0, código fechado, primeiro desenvolvido pela Microsoft com interface gráfica e suporte para multitarefas. Rodava sobre MS-DOS. • 1987 – MINIX, código aberto, desenvolvido por Andrew S. Tanenbaum para fins educacionais foi uma das inspirações para o lançamento do Linux. OS/2,código fechado, desenvolvido pela IBM depois do fim da parceria com a Microsoft. • 1990 – Windows 3.0, código fechado, capaz de trabalhar com processadores Intel 8086/8088, 80286 e 80386. Compatível com adaptadores gráficos de 256 cores. • 1991 – Linux, código aberto e livre, criado por Linus Torvalds tem o núcleo principal em constante evolução para englobar novas tecnologias e melhorias. Não se preocupou com interface gráfica. • 1993 – Debian, código aberto e livre, considerado um dos maiores sistemas de todos os tempos. Reúne o kernel do Linux e ferramentas do GNU. Apoio a diferentes arquiteturas, roda em x86, x64, PowerPC, SPARK, ARM, MIPS, S#() e AI-64. Sistemas Operacionais Evolução dos Sistema Operacionais • 1995 – Windows 95, código fechado, definiu alguns padrões e foi o responsável por tornar o Windows o sistema mais usado do mundo. • 1997 – Symbian, um dos primeiros sistemas mobile, equipou celulares da Nokia e de outra marcas. • 1998 – Windows 98, código fechado, substituiu o Windows 95. • 2000 – Windows 2000, código fechado, desenvolvido para servidores e clientes de rede. Suportava encriptação e outros recursos avançados. • 2001 – Windows XP, código fechado, provavelmente o sistema mais utilizado. Ganhou muitas atualizações. Sistemas Operacionais Evolução dos Sistema Operacionais • 2004 – Ubuntu, código aberto e gratuito, é o mais popular com cara do Pinguim. Baseado no Debian facilitou a utilização pelo usuário. Disponível para plataformas x86, x64, i486 e ARM. • 2008 - Android, código aberto, sistema portátil mais utilizado no mundo. • 2011 – Chrome OS – código aberto, desenvolvido pelo Google para os Chromebooks, utiliza recursos em nuvem. Versão de código para outros computadores chamada Chromium OS. • 2013 – Xbox OS, código fechado, adota parte do código Windows e é mais enxuto para focar na execução do Direct3D. Ubuntu Touch, código aberto, sistema para smartphones e tablets. Plataforma x86 e ARM. Firefox OS, código aberto, sistema enxuto focado em HTML5 para smartphones. Orbis OS, baseado em FreeBSD é o sistema operacional do PlayStation 4. Sistemas Operacionais Módulos de um Sistema Operacional Os módulos típicos em um SO geralmente são: • Núcleo (Kernel que gerencia os recursos do sistema e permite que os programas façam uso deles). • Interpretador de comandos (shell). • Gerenciador de processo. • Escalonador de processos (Scheduler) • Sistema de arquivo Sistemas Operacionais Componentes Básicos de um Sistema Operacional Gerenciador de E/S: atendeàs solicitações de E/S para dispositivos de hardware (buffer e drivers). Gerenciador de sistema de arquivos: organiza coleções nomeadas de dados em dispositivos de armazenamento e fornece interface para acessar os dados nesses dispositivos. (criação e deleção de arquivos e diretórios, gerenciamento de espaços livres, mapeamento de arquivos em disco) Gerenciador de processos: criação e extinção de processos, escalonamento de processos, mecanismos de comunicação e sincronização entre processos, entre outros. Gerenciador de memória: alocação e liberação de espaço de memória, gerenciamento de memória virtual (paginação e segmentação). Proteção do Sistema: protetor do sistema operacional, atuando com mecanismos de memória virtual, dos modos de execução (usuário e administrador), que limitam o acesso à usuários não autorizados. Sistemas Operacionais Gerenciador de Processos Gerenciador de Memória Gerenciador de Disco Gerenciador de Rede Gerenciador de E / S Gerenciador de Arquivos Sistema de Proteção (segurança de acesso) Sistema Interpretador de Comandos S.O. Componentes Básicos de um Sistema Operacional Sistemas Operacionais Componentes de um Sistema Operacional Conceitos fundamentais de sistemas operacionais • Conjunto de rotinas executadas pelo processador • Conjunto de programas responsáveis pela gerência de recursos (hardware, segurança de acesso e utilização, interface com o usuário) • Atua como uma interface entre o usuário e o computador (torna a utilização do computador mais fácil e segura) • Sem um sistema operacional um usuário precisaria conhecer profundamente detalhes sobre o hardware Sistemas Operacionais Arquitetura do sistema operacional Sistemas Operacionais Classificação de Sistemas Operacionais Os sistemas operacionais podem ser classificados quanto: • Tarefas. • Usuários. • Interface. • Processamento Sistemas Operacionais Classificação de Sistemas Operacionais Quanto a execução de tarefas Sistema Monotarefa x Sistema Multitarefa Definem a capacidade de gerenciar mais de uma tarefa ao mesmo tempo. Falamos em gerenciamento de várias tarefas e não de execução. Sistemas Operacionais Classificação de Sistemas Operacionais Sistemas monotarefa • Gerenciam apenas uma tarefa por vez • Todos os recursos computacionais (CPU, memória e dispositivos de E/S) são alocados para um único programa • Mesmo que o processador esteja ocioso aguardando por uma operação de E/S (digitação/impressão), nenhum outro programa é executado Sistemas Multitarefa • Recursos computacionais são utilizados por diferentes programas • Processador utiliza o tempo de ociosidade gerado por um determinado processo para processar outra tarefa • Garante uso mais otimizado dos recursos mas sua implementação é mais complexa Sistemas Operacionais Classificação de Sistemas Operacionais Sistema Monotarefa x Sistema Multitarefa Monotarefa: Admite e gerencia apenas uma tarefa em execução por vez. Ex.: DOS Multitarefa: Admite e gerencia várias tarefas em processamento concorrente. Ex.: Windows XP, Windows 2003, Linux, MacOS, etc. Sistemas Operacionais Monotarefa x Multitarefa Concorrente ≠ Simultâneo Processamento Monotarefa Processamento Multitarefa Sistemas Operacionais Sistemas multitarefa As tarefas se ALTERNAM no uso da CPU e dos demais recursos. Sistemas Operacionais PERCENTUAL DE TEMPO QUE A TAREFA UTILIZOU A CPU NO ÚLTIMO MINUTO Sistemas multitarefa Sistemas Operacionais Classificação de Processamento De acordo com o gerenciamento das aplicações, os sistemas multiprogramáveis podem ser classificados como: • Sistemas Batch • Sistemas de tempo compartilhado • Sistema de tempo real. Sistemas Operacionais Classificação de Processamento Sistemas operacionais Batch (lote) • Programas eram escritos em cartões perfurados • Leitoras liam os cartões e gravavam em fita magnética • As fitas eram lidas e processadas e os resultados gravados em outra fita • Os resultados eram então impressos Apesar de apresentarem um tempo de resposta muito longos eram considerados altamente eficientes. Sistemas Operacionais Classificação de Processamento Sistemas operacionais de Tempo Compartilhado (time-sharing) Os sistemas operacionais de tempo compartilhado são sistemas onde o tempo do processador é dividido em pequenas partes (time-slice) permitindo a cada programa utilizar uma destas partes para a sua execução. O controle do sistema operacional é feito em um computador central. Os usuários interagem com o computador central através de comandos digitados em terminais compostos por teclado, monitor e mouse. Grande parte das atuais aplicações comerciais é processada em sistemas de tempo compartilhado. Sistemas Operacionais Classificação de Processamento Sistemas de Tempo Real Sistemas que possuem forte vínculo com o tempo. O resultado só é considerado correto se a execução acontecer no tempo previsto. O sistema deve garantir que uma tarefa possua todos os recursos necessários para sua execução em um intervalo de tempo pré-definido. Não se trata de “velocidade” de processamento e sim garantia de tempo de resposta. Sistemas Operacionais Classificação de Processamento Sistemas com Múltiplos Processadores São sistemas que gerenciam mais de um processador interligado e trabalhando em conjunto. Os processadores podem estar num mesmo computador ou espalhados fisicamente em uma rede de computadores. Dessa forma diversos programas podem ser executados simultaneamente, ou um programa pode ser dividido em partes e executados em processadores diferentes numa mesma máquina ou em várias. Devido a sua capacidade de ampliar consideravelmente o poder de processamento a medida que novos processadores são adicionados, este tipo de sistema é muito empregado em aplicações de processamento de imagens, simulações, prospecção de petróleo, processamento científico entre outros. Sistemas Operacionais Sistemas com Múltiplos Processadores Classificação de Processamento Sistemas Operacionais Classificação de Processamento Sistemas fortemente acoplados Os sistemas fortemente acoplados têm como características possuir vários processadores compartilhando uma única memória física e dispositivos de entrada e saída e apenas um sistema operacional efetuando o gerenciamento. Segundo Silberschatz et al. (2004) os sistemas fortemente acoplados podem ser divididos em Multiprocessamento Simétrico (SMP – Symmetric Multiprocessing) e Multiprocessamento Assimétrico (NUMA – Non-Uniform Memory Access). Os sistemas multiprocessamento simétrico os processadores compartilham o mesmo tempo de memória. No multiprocessamento assimétrico, o tempo de acesso à memória pode variar dependendo da localização física dos processadores em relação à memória. Sistemas Operacionais Classificação de Processamento Sistemas fracamente acoplados Os sistemas fracamente acoplados, conhecidos também como multicompudadores, conectam vários sistemas computacionais (computadores) através de linhas de comunicação. Os sistemas computacionais funcionam de forma independente, assim cada qual tem sua própria UCP, memória, dispositivos de entrada e saída e sistema operacional. Levando em considera o grau de integração dos computadores da rede, os sistemas fracamente acoplados podem ser classificados como: • Sistemas operacionais de rede (SOR). • Sistemas operacionais distribuídos (SOD). Sistemas Operacionais Classificação de Sistemas Operacionais Resumo Sistemas Operacionais Classificação de Sistemas Operacionais Quanto aos usuários Sistema Monousuário x Sistema MultiusuárioDefinem a capacidade de gerenciar mais de um usuário ao mesmo tempo, compartilhando os mesmos recursos de software e hardware. Monousuário: Admite e gerencia apenas um usuário - não permite mais de um usuário “logado” ao mesmo tempo. Ex.: Windows XP e Windows NT (exceto versão Terminal Server). Multiusuário: Admite vários usuários – permite que mais de um usuário esteja “logado” simultaneamente. Ex.: Linux e VMS. Sistemas Operacionais Classificação de Sistemas Operacionais Sistema Monousuário x Sistema Multiusuário TODO SISTEMA MULTIUSUÁRIO É OBRIGATORIAMENTE MULTITAREFA Multiusuário Significa mais de uma usuário no mesmo sistema. Monousuário Apenas um usuário por sistema. Sistemas Operacionais Classificação de Sistemas Operacionais Quanto ao número de processadores Sistema Monoprocessados x Sistema Multiprocessados Sistemas capazes de reconhecer e gerencias computadores com apenas um ou mais processadores. Monoprocessados: Somente reconhecem e utilizam um processador Ex.: Windows 98. Multiprocessados: Reconhecem e utilizam mais de um processador Ex.: Linux , Windows XP, Windows Vista, Windows 7. Sistemas com suporte a multiprocessamento podem executar mais de uma tarefa ao mesmo tempo, uma em cada processador simultaneamente. Sistemas Operacionais Classificação de Sistemas Operacionais Outros sistemas com finalidades específicas: Sistemas Embarcados: Sistemas inseridos em produtos com funções específicas como celulares. Nem todo dispositivo eletrônico possui microcontrolador e nem todo aparelho com microcontrolador possui um sistema operacional. Sistemas Operacionais Estruturas dos Sistemas Operacionais Os sistemas operacionais são diferentes dos demais programas , não são executados sequencialmente. A execução das rotinas está baseada em eventos relacionados às tarefas internas do sistema operacional e do hardware. O conjunto destas rotinas é chamado Kernel (cérebro) ou núcleo do sistema. Sistemas Operacionais Estruturas dos Sistemas Operacionais As principais funções do Kernel são: • Tratamento de interrupções e exceções; • Criação e eliminação de processos e threads; • Sincronização e comunicação entre processos e threads; • Escalonamento e controle dos processos e threads; • Gerência de memória, de sistema de arquivos, de dispositivos de E/S; • Suporte a redes locais e distribuídas; • Contabilização do uso do sistema; • Auditoria e segurança do sistema. Sistemas Operacionais Estruturas dos Sistemas Operacionais Modos de acesso Existe uma preocupação dos desenvolvedores de sistemas operacionais quanto ao acesso direto ao Kernel por usuário e seus aplicativos. Uma instrução indevida executada diretamente, pode corromper o kernel comprometendo todo o sistema. Instruções deste tipo são denominadas instruções privilegiadas. A execução de uma destas instruções está vinculada ao que chamamos de modos de acesso. Sistemas Operacionais Estruturas dos Sistemas Operacionais Modos de acesso Os modos de acesso são: • Modo usuário: não permite que o usuário ou aplicações executem instruções privilegiadas, tais como escrever no disco, criar novas tarefas, etc. • Modo Kernel: permite acesso total as instruções privilegiadas. A mudança do modo de execução ocorre através de uma “system call” ou chamado ao sistema. Sistemas Operacionais Estruturas dos Sistemas Operacionais Chamadas ao sistema (system calls) Para que o usuário ou alguma aplicação possa usufruir de algum serviço fornecido pelo Kernel deve acessá-lo através de um mecanismo conhecido como System Calls. O System Call é um intermediário entre as aplicações do usuário e o sistema operacional. Usuários ou aplicações acessam os serviços do Kernel chamando uma das suas rotinas através de uma System Call. O serviço é processado, com bases nos parâmetros definidos na System Call, e retorna à aplicação os resultados obtidos. Sistemas Operacionais Proteção de Acesso SYSTEM CALL (CHAMADA AO SISTEMA): Porta De Acesso Ao Kernel Instruções privilegiadas MODO USUÁRIO MODO KERNEL Instruções não Privilegiadas SYSTEM CALL Sistemas Operacionais Reflexões e Dúvidas
Compartilhar