Baixe o app para aproveitar ainda mais
Prévia do material em texto
CCT0011 – Sistemas Operacionais Aula 01 – Introdução a Sistemas Operacionais Professor Ricardo Bernardo 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 O que é um sistema Operacional ? Hardware ou Software? 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 O que é um Sistema Operacional? Hardware ou Software? 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. Definição Sistemas Operacionais Sistemas Operacionais De acordo com Tanenbaum e Woodhyll (1999) e Silberschatz et al. (2004), os sistemas operacionais podem ser conceituados de duas formas: Topdown (visão do usuário) • Acesso ao sistema. • Possibilidade de criar e gerenciar 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 Bottom-up (considerando um gerenciador de recursos) • Tempo de CPU. • Espaço em memória. • Espaço em disco. • Acesso aos dispositivos de comunicação. • Bibliotecas de software. 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 de um Sistema Operacional Sistemas Operacionais 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 Componentes de um Sistema Operacional Sistemas Operacionais Arquitetura do sistema operacional Sistemas Operacionais Classificação de Sistemas Operacionais Os sistemas operacionais podem ser classificados conforme: • Processamento de tarefas • Usuários • Interface. Sistemas Operacionais Classificação de Sistemas Operacionais 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 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 Classificação de Sistemas Operacionais 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 como as aplicações são gerenciadas, os sistemas multiprogramáveis podem ser classificados como: • Batch • Sistemas de tempo compartilhado • Sistema de tempo real. Sistemas Operacionais 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. Classificação de Processamento Sistemas Operacionais 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. Classificação de Processamento Sistemas Operacionais 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. Classificação de Processamento Sistemas Operacionais 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. Classificação de Processamento Sistemas Operacionais Sistemas com Múltiplos Processadores Classificação de Processamento Sistemas Operacionais 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 tempode acesso à memória pode variar dependendo da localização física dos processadores em relação à memória. Classificação de Processamento Sistemas Operacionais 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 e sistemas distribuídos. Classificação de Processamento Sistemas Operacionais Classificação de Sistemas Operacionais Resumo Sistemas Operacionais Classificação de Sistemas Operacionais Sistema Monousuário x Sistema Multiusuário Definem 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 Sistema Monousuário x Sistema Multiusuário TODO SISTEMA MULTIUSUÁRIO É OBRIGATORIAMENTE MULTITAREFA Multiusuário Significa mais de uma usuário no mesmo sistema Classificação de Sistemas Operacionais Monousuário Apenas um usuário por sistema Sistemas Operacionais Classificação de Sistemas Operacionais 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. 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 aos 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. • Modo Kernel: permite acesso total as instruções privilegiadas, tanto pelo usuário quanto pelas aplicações. 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 MODO USUÁRIO MODO KERNEL Instruções não Privilegiadas SYSTEM CALL SYSTEM CALL (CHAMADA AO SISTEMA): Porta De Acesso Ao Kernel Instruções privilegiadas Sistemas Operacionais Execução de chamada ao sistema Ref: Understanding the Linux Kernel Exemplo do Linux
Compartilhar