O que é Sistema Operacional? 1 Introdução 2 Um sistema operacional, por mais complexo que possa parecer, é apenas um conjunto de rotinas executadas pelo processador, de forma semelhante aos programas dos usuários. Sua principal função é controlar o funcionamento de um computador, gerenciando a utilização e o compartilhamento dos seus diversos recursos, como processadores, memórias, e dispositivos de entrada e saída. Introdução 3 Sem o sistema operacional, um usuário para interagir com o computador deveria conhecer profundamente diversos detalhes sobre hardware do equipamento, o que tornaria seu trabalho lento e com grandes possibilidades de erros. O sistema operacional tem por objetivo funcionar como uma interface entre o usuário e o computador, tornando sai utilização mais simples, rápida e segura. Introdução Definição de SO: é um programa cuja tarefa principal é controlar o funcionamento do computador, facilitando seu uso e gerenciando seus recursos Funções: Facilitar o acesso aos recursos do sistema Gerenciar o compartilhamento dos recursos do sistema Exemplos: 4 Windows, UNIX, OS/2 Onde está o SO? 5 Sistema computacional multicamada Linguagens de Programas de aplicação Programas do sistema Aplicações Programação Compiladores, editores, shell Sistema Operacional Estamos Aqui Linguagem de Máquina Hardware Microarquitetura Dispositivos Físicos 6 Organização e Arquitetura de Computadores I e II SO Parte do software que executa no modo supervisor – Funciona como uma máquina estendida ou máquina virtual mais fácil de programar que o hardware – 7 Demais programas executam no modo usuário Fornece serviços que os programas podem usar SO Funciona como um gerente de recursos – – 8 Manter o controle sobre quem está usando qual recurso Gerenciamento no tempo X espaço Histórico dos S. Operacionais Primeira Geração (1945-1955): Válvulas e Painéis 9 Surgimento dos primeiros computadores digitais Surgimento do modelo de von Neumann Máquinas enormes, com milhares de válvulas Não havia Linguagens de Programação Não havia Sistema Operacional Utilizado para cálculos matemáticos Uma mesma equipe projetava, construía, programava, operava e realizava manutenção de cada máquina Histórico dos S. Operacionais Arquitetura de von Neumann: UCP Unidade de Controle Unidade Aritmética e Lógica Dispositivo de Entrada 10 Armazenamento Dispositivo de Saída Histórico dos S. Operacionais – Segunda Geração (1955-1965): Transistores e Sistemas Batch 11 Aumento de velocidade de processamento, graças à troca de válvulas por transistores (semicondutores) Início do domínio IBM (mainframes) Aparecimento de Linguagens de Programação como Assembly e FORTRAN Uso de cartões perfurados Processamento de Jobs era feito em Lote (batch) Surgimento de Sistemas Operacionais, como o FMS (Fortran Monitor System) Histórico dos S. Operacionais – Terceira Geração (1965-1980):CIs e Multiprogramação IBM lança a idéia de uma família de computadores compatíveis (série 360) Surgimento de SOs mais voltados ao usuário (como o OS/360 da IBM) Criação da técnica de multiprogramação Criação da técnica de spooling (Simultaneous Peripheral Operation On Line) Através da criação do terminal de vídeo e teclado foi possível a interação on-line Surgimento dos sistemas de Compartilhamento de tempo (Timesharing) 12 Histórico dos S. Operacionais – 13 Terceira Geração (1965-1980): CIs e Multiprogramação Minicomputadores com 4K de memória Criação do UNIX por Ken Thompson, do Bell Labs: um sistema multiusuário, multiprogramado e extremamente sofisticado para sua época Histórico dos S. Operacionais – Quarta Geração (A partir de 1980): Computadores Pessoais Desenvolvimento da tecnologia LSI (Large Scale Integration) – 14 milhares de transistores encapsulados em um chip de 1cm2 Surgimento dos computadores pessoais (PC) Sistemas Operacionais e aplicativos voltados ao usuário final (user-friendly) GUI Domínio de PCs baseados em processadores INTEL (8088, 80286, 80386, 80486, Pentium, ...) Surgimento dos sistemas operacionais de rede e sistemas distribuídos Tipos de Sistemas Operacionais Sistemas Operacionais Sistemas Monoprogramáveis 15 Sistemas com Múltiplos Processadores Sistemas Multiprogramáveis Tipos de Sistemas Operacionais 16 Sistemas Monoprogramáveis/Monotarefas Esse sistema foi projetado para gerenciar a execução de um único programa (job) por vez Qualquer outro programa para ser executado, deve aguardar o término do programa corrente Nesse sistema o processador, a memória e os periféricos permanecem exclusivamente dedicados à execução de um único programa Tipos de Sistemas Operacionais Sistemas Multiprogramáveis/Multitarefas Os sistemas multiprogramáveis permitem que vários programas possam usar os diversos recursos existentes De acordo com o número de usuários que interagem com o sistema, podem ser: Monousuário Multiusuário 17 Tipos de Sistemas Operacionais Sistemas Multiprogramáveis/Multitarefas Os sistemas multiprogramáveis também podem ser classificados pela forma com que suas aplicações são gerenciadas Sistemas Multiprogramáveis 18 Sistemas em Batch Sistemas de Tempo Compartilhado Sistemas de Tempo Real Tipos de Sistemas Operacionais 19 Sistemas Batch Caracterizam-se por terem seus programas armazenados em disco ou fita, onde esperam para ser executados seqüencialmente Geralmente, esses programas não exigem interação com os usuários, lendo e gravando dados em discos ou fitas Tipos de Sistemas Operacionais Sistemas de Tempo Compartilhado Permitem a interação dos usuários com o sistema, através de terminais que incluem vídeo, teclado e mouse Para cada usuário, o SO aloca uma fatia de tempo do processador Uso Provê 20 cíclico do processador maior interatividade Tipos de Sistemas Operacionais Sistemas de Tempo Real O tempo é um parâmetro fundamental Os tempos de resposta estão dentro de limites rígidos, que devem ser obedecidos Alocação do processador leva em conta restrições de tempo Sistemas TR críticos X não-críticos 21 Tipos de Sistemas Operacionais Sistemas Operacionais Sistemas Monoprogramáveis 22 Sistemas com Múltiplos Processadores Sistemas Multiprogramáveis Tipos de Sistemas Operacionais 23 Sistemas com Múltiplos Processadores Caracterizam-se por possuir duas ou mais CPU´s interligadas, trabalhando em conjunto Um fator importante nesses sistemas é a forma de comunicação entre as UCP´s e o grau de compartilhamento da memória Tipos de Sistemas Operacionais Sistemas com Múltiplos Processadores Multiprocessadores (memória compartilhada) Sistemas Simétricos 24 Sistemas Assimétricos Multicomputadores (memória local privada) S. O. de Rede S. O. Distribuído Conceitos Básicos de SO O SO é formado por um conjunto de rotinas (procedimentos) que oferecem serviços aos usuários do sistema e suas aplicações, bem como a outras rotinas do próprio sistema Esse conjunto de rotinas é chamado de núcleo do sistema ou kernel 25 Conceitos Básicos de S.O. As principais funções do núcleo são: – – – – – – 26 tratamento de interrupções criação e eliminação de processos sincronização e comunicação entre processos gerência de memória gerência do sistema de arquivos gerência de E/S Conceitos Básicos de S.O. Solicitação de serviços ao SO – Chamadas ao sistema Chamadas ao sistema são a porta de entrada para ter acesso ao núcleo do sistema operacional Aplicação 27 Chamadas ao Sistema Núcleo Hardware Conceitos Básicos de S.O. Chamadas procedimentos de biblioteca que o programa pode chamar – – – – – 28 Transferência de controle para o SO através de um trap Alternância para o modo supervisor SO checa parâmetros para identificar o serviço requisitado SO executa procedimento para atender a solicitação SO informa resultado da operação realizada, devolvendo o controle ao programa do usuário Exemplo de uma Chamada ao Sistema cont=read(arq,buffer, nbytes) read da biblioteca Memória principal TRAP Despache 29 Espaço do usuário Tratador da chamada ao sistema Espaço do núcleo (Sistema Operacional) Conceitos Básicos de S.O. As chamadas ao sistema podem ser divididas em grupos de função: Gerência – fork, kill, CreateProcess Gerência – 30 de processos de arquivos open, read, write, close, mkdir, chmod, CreateFile Estrutura de Sistema Operacionais 31 Estrutura do SO: É a maneira como o código do sistema é organizado e como seus diversos componentes estão inter-relacionados Existem basicamente quatro abordagens: – Sistemas Monolíticos – Sistemas em Camada – Máquinas Virtuais – Sistemas Cliente-Servidor Estrutura de Sistema Operacionais Sistemas Monolíticos – – – 32 Não há estruturação visível SO é escrito como um conjunto de procedimentos, cada um dos quais podendo chamar qualquer dos demais sempre que necessário Cada procedimento é visível a todos os outros Estrutura de Sistema Operacionais Sistemas em Camadas – – – 33 Hierarquia de camadas A camada superior usa serviços da camada inferior A maioria dos SO modernos é baseada nesta estrutura: UNIX, OS/2, MS-Windows, entre outros SO em Camadas 34 Camada 4 Programas de Usuário Camada 3 Gerência dos Dispositivos de Entrada/Saída Camada 2 Comunicação operadorprocesso Camada 1 Gerência de memória Camada 0 Alocação do processador e implementação da multiprogramação Administrar os dispositivos de E/S Administra a comunicação entre cada processo Responsável pela alocação de espaço Estrutura de Sistema Operacionais Máquinas Virtuais – – Várias cópias de um único hardware Requisições feitas à máquina virtual são mapeadas para o hardware real Cópias Virtuais SO1 SO1 SO2 Monitor de máquina virtual Hardware 35 Estrutura de Sistema Operacionais Sistemas Cliente-Servidor – – – – 36 A tendência é tornar o núcleo do sistema operacional o menor e mais simples possível Serviços do SO são implementados como processos de usuário Sempre que uma aplicação deseja algum serviço ela solicita ao processo responsável A aplicação que solicita o serviço é chamada de cliente, enquanto o processo que responde à aplicação é chamado de servidor Estrutura de Sistemas Operacionais Sistemas Cliente-Servidor – Função do núcleo: tratar da comunicação entre clientes e servidores – 37 Apenas o núcleo executa no modo supervisor Adaptabilidade ao uso em sistemas distribuídos SO Cliente Servidor Servidor de memória cliente Servidor de arquivo Servidor de processo Servidor de rede Modo usuário Núcleo Hardware 38 Modo Kernel