Apresentação Inst tit ormátic ca - UF FRGS i Introdução Aula 0 INF042 Plano de ensino conforme resolução CEPE /203 Prof. Alexandre CARISSIMI (asc at inf.ufrgs.br) Turma A Objetivos da disciplina Prof. Sérgio CECHIN (cechin at inf.ufrgs.br) Turma B Apresentar os conceitos básicos de sistemas operacionais como gerência de processador, gerência de memória, subsistema de e sistemas de arquivos. Inclui conhecimentos dos procedimentos de compilação, ligação e carga de programas. 2 A regra é clara... (como diria Arnaldo Cezar Coelho) A regra é clara... (ainda) Avaliação teórica e prática Três provas teóricas (P, P2 e P3) Atividades id d autônomas Dois trabalhos práticos (T e T2) Conceitos (após critério de aprovação) Conceito A: média 9.0 Conceito B: 7.5 média < 9.0 Conceito C: 6.0 média < 7.5 Recuperação Conceito D: média < 6.0 Conceito FF: falta de frequência 2 P P2 P T T 3 Média _ Final 3 3 3 2 Critério de aprovação Média igual ou superior a SEIS 75% de presença 2 Apenas da parte teórica: substitui a pior nota entre a prova P, P 2 e P 3 Todo conteúdo programático da disciplina Casos particulares: conforme normas da UFRGS Datas das provas Prova : 29 de agosto de 206 Prova 2: 24 de outubro de 206 Prova 3: 23 de novembro de 206 Prova de recuperação: 4 de dezembro de 206 Datas sagradas! Não se mexe nelas. 3 4
Para concluir... e iniciar a parte interessante Introdução Bibliografia Oliveira, R.; Carissimi, A.; Toscani, S.; (4 a edição). Série Livros Didáticos INF/UFRGS vol. Porto Alegre. Editora Bookman. 200. Silberchatz, A.; Galvin, P.; Gagne, G.; Operating System Concepts (8 th ed), John Wiley & Sons, 2009. (ou edições anteriores) Tanenbaum, A.;. Modernos (3 a edição). São Paulo. Editora Prentice-Hall, 200. Material adicional: http://moodle.inf.ufrgs.br Senha para cadastro: sisop206 Slides no moodle não são substitutos dos livros textos da disciplina e estão sujeitos a erros. Definição de sistema operacional Camada de software inserida entre o hardware e os programas que executam tarefas para os usuários Software Sistema Operacional Hardware Objetivos de um sistema operacional Tornar a utilização de um computador, ao mesmo tempo, mais conveniente e eficiente, evitando a interferência de atividades entre si. 5 6 Conveniência, eficiência e não interferência Sistema operacional como máquina estendida Aspectos chaves A abstração fornece a conveniência Empregada para tratar t a complexidade d Gerência de recursos está vinculada a eficiência Maximiza o desempenho do sistema atendendo a necessidade de usuários e suas aplicações A virtualização traz não interferência Apresenta os componentes de forma diferente da real auxiliando no seu compartilhamento Fornecem as 3 visões de um sistema operacional Máquina estendida Gerente de recursos Máquina virtual Emprega abstração Esconde complexidade e características de mais baixo nível do hardware através de uma camada de software acima dele Fornece funções de alto nível que encapsulam operações e detalhes de baixo nível Exemplos: Graphical User Interface (GUI), Command Line Interface (CLI), bibliotecas de funções, etc... 7 8
Sistema operacional como gerente de recursos Sistema operacional como uma máquina virtual Maximizar e otimizar os recursos computacionais do sistema Evitar desperdícios no tempo e no espaço Reduzir o máximo possível de ociosidade dos componente do sistema e.g.: manter o processador ocupado, tempos de acesso e resposta, etc Minimizar perdas nos componente do sistema e.g.: tamanho de bloco de disco, tamanho de páginas em memória, etc Uma forma de obter eficiência é através de compartilhamento Introduz o problema da não interferência entre usuários Auxilia no compartilhamento de recursos criando a ilusão da existência de múltiplos recursos dedicados e.g.: noção de processador, memória e virtuais i CPU Memória CPU Memória CPU Memória Camada de software (sistema operacional) Programs em execução (processos) Recursos físicos (virtuais) CPU Memória Dispositivo Recursos físicos (únicos) 9 0 Componentes de um sistema operacional Sistema operacional = Núcleo + Programas de sistema Aplicações de usuário e do sistema biblioteca 4 Graphical User Interfaces (GUI) Gerência do processador Command Line Interface (CLI) Gerência de memória Ferramentas de gerência e monitoramento de Gerência de sistema Sistema de arquivos Bibiliotecas Programas aplicativos = programas úteis para resolver problemas comuns ou realizar operações comuns (navegador web, suítes de escritório, bancos de dados, etc). Não fazem parte do sistema operacional em si. etc Gerência de processador 3 3 Chamadas de sistema Gerência de memória Gerência de Núcleo mínimo (processador + memória) hardware Sistema de arquivos : instruções privilegiadas (system ISA) 3: chamadas de sistema 2: instruções não privilegiadas (User ISA) 4: chamadas de função 2 2 2
Chamadas de sistemas softw are hardware Chamadas de Aplicação sistema 0 Bibliotecas System ISA Sistema Operacional (núcleo) 2 3 3 Processador 4 5 Barramento MMU 6 7 8 RAM Instruction Set Architecture - ISA Chamada de funções User ISA Serviços implementados no núcleo e disponibilizados para as camadas superiores Similar a uma sub-rotina, mas NÃO É a mesma coisa Executam em modo privilegiado (núcleo) do processador Invocam uma interrupção de software 3 4 Histórico de sistemas operacionais Tipos de sistemas operacionais Nenhum Sistemas em lote Monitor residente Multiprogramação Tempo compartilhado Sistemas operacionais convencionais Monousuário versus multiusuário Monotarefa versus multitarefa Quatro combinações (três válidas, uma inválida) Sistemas operacionais de rede Sistemas operacionais distribuídos Sistemas operacionais de tempo real Hard real time Soft real time Sistemas operacionais embarcados 5 6
Organizações de sistemas operacionais Modelos monolíticos Monolítico Camadas Micronúcleo Máquinas virtuais Outras organizações O código do núcleo é organizado em um único programa Executado em modo núcleo (ou privilegiado) do processador Escrito como uma série éi de rotinas em vários ái programas fontes que são ligados e geram um único binário executável Possível que extensões sejam carregadas em tempo de execução Como ocorre com a noção de módulos no núcleo do Linux Organização mais comum 7 8 Modelo em camadas Modelo de micronúcleo As funções do sistema operacional são divididas em camadas Cada camada aumenta o nível de abstração Uma camada N implementa funções para a camada N+ e usa as funções implementada pela camada N- A implementação das funções de uma camada não são expostas para o exterior, apenas a sua interface (API) Sistemas de arquivos 3 Gerência de Gerência de memória Gerência processador 0 9 2 As funcionalidades de um sistema operacional são retiradas do núcleo e implementadas por processos gerenciados por ele Torna o núcleo menor, mais fácil de escrever e manter Tipicamente a comunicação entre esses processos e o núcleo mínimo é feito através de trocas de mensagens A função básica do micronúcleo é escalonar processos, prover a comunicação entre os processos, tratar interrupções Aplicações Gerência de memória micronúcleo Sistemas de arquivos Gerência de dispositivos de hardware 20
Máquinas virtuais Outras organizações O objetivo é fazer com o sistema operacional forneça a ilusão de que existem muitas cópias do hardware Possível que uma cópia (virtual) execute outro sistema operacional Noção de sistema hóspede e sistema hospedeiro Várias formas de implementação Máquina virtual de processo versus máquina virtual de sistema Noção de hipervisor (monitor de máquina virtual) Executa sobre um sistema operacional (hospedeiro) ou sobre o hardware diretamente (hipervisor nativo ou bare metal) Cliente-servidor Variação da noção de micronúcleo Os processos são divididos idid em clientes e servidores Servidores oferecem funções (serviços) para serem executados por clientes Comunicação é tipicamente feita por troca de mensagens Processos clientes e servidores podem estar em máquinas distintas Exonúcleo Variação de máquina virtual Invés de criar clones da máquina real, os recursos físicos são divididos idid e alocados para cada máquina virtual 2 22 Leituras adicionais Oliveira, R.; Carissimi, A.; Toscani, S.; (4 a edição). Série Livros Didáticos INF/UFRGS vol. Porto Alegre. Editora Bookman. 200. Silberchatz, A.; Galvin, P.; Gagne, G.; Operating System Concepts (8 th ed), John Wiley & Sons, 2009. (ou edições anteriores) Tanenbaum, A.;. Modernos (3 a edição). São Paulo. Editora Prentice-Hall, 200. 23