Sistemas Operacionais I Prof. Fernando Freitas Introdução 1.1 O que é um sistema operacional 1.2 História dos sistemas operacionais 1.4 O zoológico de sistemas operacionais 1.5 Conceitos sobre sistemas operacionais 1.6 Chamadas de sistema 1.7 Estrutura de sistemas operacionais 1.8 O mundo de acordo com a linguagem C 1.11 Unidades Métricas 1 Introdução • Um sistema computacional consiste em – hardware – Programas do modo núcleo – Programas do modo usuário 2 O que é um Sistema Operacional • É uma máquina estendida – Oculta os detalhes complicados que têm quer ser executados – Apresenta ao usuário uma máquina virtual, mais fácil de usar • É um gerenciador de recurso – Cada programa tem um tempo com o recurso – Cada programa tem um espaço no recurso 3 História dos Sistemas Operacionais • Primeira geração 1945 - 1955 – Válvulas, painéis de programação Antigo sistema em lote – – – – traz os cartões para o 1401 lê os cartões para a fita coloca a fita no 7094 que executa o processamento coloca a fita no 1401 que imprime a saída 4 História dos Sistemas Operacionais • Segunda geração 1955 - 1965 – transistores, sistemas em lote Estrutura de um job FMS típico – 2ª geração 5 História dos Sistemas Operacionais • Terceira geração 1965 – 1980 – CIs e multiprogramação – SO enorme e complexo (2x ou 3x > FMS) – Surge o spooling (simultaneous peripheral operation online) – CTSS – 1º SO com tempo compartilhado • Sistema de multiprogramação – Três jobs na memória – 3ª geração 6 História dos Sistemas Operacionais • Quarta geração 1980 – presente – – – – – – – – Computadores pessoais CP/M – Kildall MS-DOS – Bill Gates GUI (Graphical User Interface) – Engelbart – Stanford Research Macintosh – Steve Jobs Microsoft Windows – Sucessor do MS-DOS Windows 95 Windows NT (New Technology) 7 O Zoológico de Sistemas Operacionais • Sistemas operacionais de computadores de grande porte – – – – Em lote Processamento de transações Tempo compartilhado Ex: OS/390 • Sistemas operacionais de servidores – Servem múltiplos usuários – Compartilham recursos – Ex: Solaris, FreeBSD, Linux e Windows Server 8 O Zoológico de Sistemas Operacionais • Sistemas operacionais de multiprocessadores – Múltiplas CPU´s em um único sistema – Ex: Linux e Windows • Sistemas operacionais de computadores pessoais – Boa Interface com usuário – Ex: Linux, FreeBSD, Windows 7, etc. • Sistemas operacionais de computadores portáteis – Não trabalham com discos rígidos – Ex: Palm OS, Symbiam OS, etc 9 O Zoológico de Sistemas Operacionais • Sistemas operacionais embarcados – Não aceitam softwares instalados por usuários – Ex: QNX, VxWorks • Sistemas operacionais de nós sensores – SO dirigido por eventos. – Deve ser pequeno e simples – Ex: TinyOS 10 O Zoológico de Sistemas Operacionais • Sistemas operacionais de tempo-real – Ações devem acontecer em determinado momento – Crítico e não crítico – Ex: e-Cos • Sistemas operacionais de cartões inteligentes – Muito primitivo – Possuem restrições de consumo de energia e de memória – Geralmente são sistemas proprietários 11 Conceitos sobre Sistemas Operacionais (1) • Uma árvore de processos – A criou dois processos filhos: B e C – B criou três processos filhos: D, E, e F – Processos filhos recebem mesmo UID do pai 12 Conceitos sobre Sistemas Operacionais (2) • Espaços de Endereçamento – Nos sistemas atuais devem ser protegidos para evitar intervenções de outros processos. – Espaço de endereçamento do processo > memória disponível – memória virtual 13 Conceitos sobre Sistemas Operacionais (3) • Arquivos – – – – – – – – SO oculta detalhes do disco Há chamadas de sistema Arquivos são armazenados em diretórios Sistema de Arquivos – Organização em Árvore Caminhos absolutos ou relativos Sucesso ao acessar arquivos – descritor de arquivo Mount Arquivo especial (bloco e caractere) 14 Conceitos sobre Sistemas Operacionais (4) Sistema de arquivos de um departamento universitário 15 Conceitos sobre Sistemas Operacionais (5) • Antes da montagem, – os arquivos do disco flexível são inacessíveis • Depois da montagem do disco flexível em b, – os arquivos do disco fazem parte da hierarquia de arquivos 16 Conceitos sobre Sistemas Operacionais (6) Dois processos conectados por um pipe 17 Conceitos sobre Sistemas Operacionais (7) • E/S – Gerenciar dispositivos • Segurança – Bits de proteção – Outros tipos de segurança (contra usuários, por exemplo) • Shell – Não faz parte do SO, assim como as GUI´s – cat arq1 arq2 arq3 | sort > /dev/lp & 18 Conceitos sobre Sistemas Operacionais (8) • Ontogenia recapitula a filogenia – Memória grande – assembly • Comp. grande porte > Comp. comercial > microcomputadores – Hardware de proteção • Multi e monoprogramação – Discos • Tamanho físico / capacidade – Memória virtual 19 Os Passos de uma Chamada ao Sistema Os 11 passos para fazer uma chamada ao sistema read (fd, buffer, nbytes) 20 Algumas Chamadas ao Sistema para Gerenciamento de Processos Fork retorna um valor. Ele vale zero para o processo filho e é igual ao PID do processo filho no processo pai. 21 Chamadas ao Sistema - Processos • O interior de um shell: 22 Chamadas ao Sistema - Processos Os processos têm três segmentos: texto, dados e pilha 23 Algumas Chamadas ao Sistema para Gerenciamento de Arquivos 24 Algumas Chamadas ao Sistema para Gerenciamento de Diretório 25 Chamadas ao Sistema - Diretórios I-node (a) Dois diretórios antes da ligação de /usr/jim/memo ao diretório ast (b) Os mesmos diretórios depois dessa ligação Diretórios fazem referência a pares de informações (i-node e nome ASCII) 26 Chamadas ao Sistema - Diretórios (a) Sistema de arquivos antes da montagem (b) Sistema de arquivos depois da montagem 27 Algumas Chamadas ao Sistema para Tarefas Diversas 28 Chamadas ao Sistema Algumas chamadas da interface API Win32 29 Exercícios 1. 2. 3. 4. 5. 6. 7. 8. O que é um Sistema Operacional? Quais suas funções principais? Comente sobre os SO´s da terceira geração. Diferencie SO de grande porte e SO de servidores. Diferencie SO de tempo real crítico e não crítico. Quando dizemos que na computação “Ontogenia recapitula a filogenia”, o que estamos querendo dizer? De modo resumido, fale sobre os 11 passos para efetuar uma chamada de Sistema read. O que acontece quando uma chamada unlink ocorre? Qual a função da chamada de sistema mount? 30 Estrutura de Sistemas Operacionais Sistemas Monolíticos • De longe o mais comum • Coleção de rotinas ligados a um único grande programa binário executável • Estrutura básica 1. 2. 3. Prog. principal invoca rotina serviço requisitado Rotina serviço executa chamada sistema Rotinas utilitárias auxiliam rotinas de serviço (ex: buscar dados em programas de usuários) 31 Estrutura de Sistemas Operacionais Sistemas Monolíticos Modelo simples de estruturação de um sistema monolítico 32 Estrutura de Sistemas Operacionais Sistemas de Camadas • Surgiu em 1968 com o sistema operacional THE – implementado por Dijkstra e seus alunos • Sistema em lote simples com 6 camadas • Desenvolvido para Electrologica X8 o computador holandês • Posteriormente surgiu o MULTICS que também utilizou o conceito de camadas – Série de anéis concêntricos. 33 Estrutura de Sistemas Operacionais Sistemas de Camadas Estrutura do sistema operacional THE 34 Estrutura de Sistemas Operacionais Micronúcleo • Fortes argumentos p/ colocar o mínimo possível no núcleo 1. Erros no núcleo podem derrubar o SO 2. Erros no modo usuário são menos trágicos • Idéia Básica 1. Dividir o SO em módulos pequenos e bem definidos 2. Criar o micronúcleo 35 Estrutura de Sistemas Operacionais Micronúcleo Estrutura do Sistema Minix 3 36 Estrutura de Sistemas Operacionais O modelo cliente-servidor • Ligeira variação da idéia de micronúcleo • Duas classes de processos: – Servidores – prestam algum serviço – Clientes – usam este serviço • Normalmente se comunicam por uma rede 37 Estrutura de Sistemas Operacionais O modelo cliente-servidor O modelo cliente-servidor em uma rede 38 Estrutura de Sistemas Operacionais Máquinas Virtuais • Monitor de máquina virtual – coração do sistema. Atualmente conhecido como hipervisor. – Provê n máquinas virtuais para a próxima camada. – Cópias exatas do hardware • Utilizada por: – Servidores empresariais de alto desempenho (união de servidores) – Empresas de hospedagem web (máquinas completas para clientes) – Usuários finais (2 SO’s em um mesmo pc) 39 Estrutura de Sistemas Operacionais Máquinas Virtuais Estrutura do VM/370 com o CMS 40 Estrutura de Sistemas Operacionais Máquinas Virtuais 41 Estrutura de Sistemas Operacionais Exonúcleo • Utiliza a divisão de recursos como estratégia alternativa a clonagem existente em máquinas virtuais • Exonúcleo – – – – Programa na camada mais inferior executado em modo núcleo Aloca recursos às máquinas virtuais Assegura os recursos de cada máquina Poupa uma camada de mapeamento 42 Exercícios 1. Diferencie Sistemas Monolíticos e Sistemas de Micronúcleo. 2. Qual a principal característica de um Sistema de camadas? 3. Qual a vantagem de se trabalhar com sistemas de micronúcleo? 4. Diferencie Máquinas Virtuais e Exonúcleo. 5. Na sua opinião, qual sistema é melhor: Máquinas Virtuais ou Exonúcleo? Por quê? 43 O mundo de acordo com a linguagem C • A linguagem C – Controle sobre memória é um atrativo – A Falta de um coletor de lixo é um defeito • Arquivos de cabeçalho – Permite definição de macros – Podem conter compilações condicionais 44 O mundo de acordo com a linguagem C • Grandes projetos de programação – Cada arquivo .c é compilado em um arquivo objeto .o – Recompilação completa é inaceitável (>= 5 milhões linhas) – Make • Identifica arquivos requeridos, • Verifica modificações • Recompilações mínimas – Linker • Combina .o em um único arquivo binário executável 45 O mundo de acordo com a linguagem C O processo de compilação C e arquivos de cabeçalho para criar um arquivo executável 46 O mundo de acordo com a linguagem C • O modelo de execução – Pode carregar pedaços. Ex: • Drivers • Sistemas de arquivos – Múltiplos segmentos • Texto (fixo) • Dados (crescente) • Pilha (variável) 47 Unidades Métricas Os prefixos métricos OBS: Vale lembrar que quando fazemos referências a unidades métricas para armazenamento de dados, os prefixos fazem referência a base 2 e não base 10. Ex: 5 MB = 5 * 220 bytes e não 5 * 106 bytes 48