visão geral: estruturas do sistema operacional
DESCRIPTION
Descrever os serviços que o sistema operacional oferece para usuários, processos e outros sistemas Discutir as várias maneiras de estruturar um sistema operacional Explicar como um sistema operacional é instalado, customizado e inicializadoTRANSCRIPT
![Page 1: Visão Geral: Estruturas do Sistema Operacional](https://reader034.vdocuments.net/reader034/viewer/2022042715/55939edb1a28abdd7f8b46ee/html5/thumbnails/1.jpg)
Visão Geral: Estruturas do Sistema Operacional
Sistemas Operacionais I
Prof. Alexandre Duarte : http://alexandrend.comCentro de Informática | Universidade Federal da Paraíba
Estes slides são baseados no material que acompanha o livro Operating Systems Concepts de Silberschatz, Galvin and Gagne
![Page 2: Visão Geral: Estruturas do Sistema Operacional](https://reader034.vdocuments.net/reader034/viewer/2022042715/55939edb1a28abdd7f8b46ee/html5/thumbnails/2.jpg)
Objetivos
Descrever os serviç os que o sistema operacional oferece para usuários, processos e outros sistemas
Discutir as várias maneiras de estruturar um sistema operacional
Explicar como um sistema operacional é instalado, customizado e inicializado
![Page 3: Visão Geral: Estruturas do Sistema Operacional](https://reader034.vdocuments.net/reader034/viewer/2022042715/55939edb1a28abdd7f8b46ee/html5/thumbnails/3.jpg)
Serviços do sistema operacional
![Page 4: Visão Geral: Estruturas do Sistema Operacional](https://reader034.vdocuments.net/reader034/viewer/2022042715/55939edb1a28abdd7f8b46ee/html5/thumbnails/4.jpg)
Serviços do sistema operacional: comodidade do usuário Interface do usuário
Quase todo sistema operacional oferece uma Varia entre interface de linha de comando (CLI), interface gráfica (GUI) e Batch
Execuç ão de programas O sistema deve ser capaz de carregar um programa na memó ria e iniciar e
finalizar sua execuç ão com ou sem sucesso (indicando caso ocorra um erro)
Operaç ões de E/S Um programa em execuç ão pode precisar realizar E/S, o que pode envolver um
arquivo ou algum dispositivo de E/S
Manipulaç ão do Sistema de Arquivos O sistema de arquivos é de particular interesse. Obviamente, programas
precisam realizar uma série de operaç ões envolvendo arquivos e diretó rios, incluindo: ler, gravar, criar, apagar, localizar, listar informaç ões e gerenciar permissões
![Page 5: Visão Geral: Estruturas do Sistema Operacional](https://reader034.vdocuments.net/reader034/viewer/2022042715/55939edb1a28abdd7f8b46ee/html5/thumbnails/5.jpg)
Serviços do sistema operacional: comodidade do usuário Comunicaç ão
Processos podem trocar informaç ão em um mesmo computador ou através de uma rede
A comunicaç ão pode ser realizada através de uma memó ria compartilhada ou por troca de mensagens
Detecç ão de erros O SO precisa estar constantemente ciente sobre possíveis erros Podem ocorrer na CPU, no hardware de memó ria, nos
dispositivos de E/S ou em um programa do usuário Para cada tipo de erro o SO deve tomar a medida apropriada
para garantir uma computaç ão correta e consistente Mecanismos de depuraç ão podem melhorar significativamente a
habilidade do usuário de fazer uso eficiente do sistema
![Page 6: Visão Geral: Estruturas do Sistema Operacional](https://reader034.vdocuments.net/reader034/viewer/2022042715/55939edb1a28abdd7f8b46ee/html5/thumbnails/6.jpg)
Serviços do sistema operacional: operação eficiente do sistema
Alocaç ão de recursos Quando múltiplos usuários ou múltiplos jobs utilizam o sistema de forma
concorrente os recursos precisam ser alocados para cada um deles
Contabilidade Controlar quanto de cada tipo de recurso os usuários utilizam
Proteç ão e Seguranç a Os donos da informaç ão armazenada em um sistema com múltiplos usuários ou
em um computador conectado a rede podem desejar controlar o uso da informaç ão
Proteç ão envolve garantir que todo acesso a qualquer recurso do sistema é controle
Seguranç a do sistema contra intrusos requer autenticaç ão e se estende para proteger dispositivos de E/S externos contra acessos inválidos
![Page 7: Visão Geral: Estruturas do Sistema Operacional](https://reader034.vdocuments.net/reader034/viewer/2022042715/55939edb1a28abdd7f8b46ee/html5/thumbnails/7.jpg)
Interface do usuário: CLI
Uma interface de linha de comando (CLI) ou interpretador de comandos permite o fornecimento direto de comandos ao sistema
Algumas vezes são implementados no núcleo, algumas vezes são implementados como programas do usuário
Algumas vezes têm-se muitas variaç ões: shells Inicialmente recebe um comando do usuário e o executa
Os comandos podem ser comandos internos do SO ou apenas nomes de programas
No segundo caso, adicionar novas funcionalidades ao sistemas não requer alteraç ões no shell
![Page 8: Visão Geral: Estruturas do Sistema Operacional](https://reader034.vdocuments.net/reader034/viewer/2022042715/55939edb1a28abdd7f8b46ee/html5/thumbnails/8.jpg)
Interface do usuário: GUI
Uma metáfora mais amigável para a interface com o usuário (desktop) Geralmente inclui mouse, teclado e monitor Icones representam arquivos, programas, aç ões ,etc Diferentes botões do mouse causam aç ões diferentes no objetos
da interface Conceito criado no Xerox PARC
Muitos sistemas incluem tanto CLIs quanto GUIs Microsoft Windows tem uma GUI com um shell de comando Mac OS X da Apple usa a GUI “Aqua” com um kernel UNIX por
baixo e vários shells disponíveis Solaris tem uma CLI como GUIs opcionais (Java Desktop, KDE)
![Page 9: Visão Geral: Estruturas do Sistema Operacional](https://reader034.vdocuments.net/reader034/viewer/2022042715/55939edb1a28abdd7f8b46ee/html5/thumbnails/9.jpg)
Interpretador de comando bash
![Page 10: Visão Geral: Estruturas do Sistema Operacional](https://reader034.vdocuments.net/reader034/viewer/2022042715/55939edb1a28abdd7f8b46ee/html5/thumbnails/10.jpg)
GUI do Mac OS X
![Page 11: Visão Geral: Estruturas do Sistema Operacional](https://reader034.vdocuments.net/reader034/viewer/2022042715/55939edb1a28abdd7f8b46ee/html5/thumbnails/11.jpg)
Chamadas de sistema
Interface de programaç ão para os serviç os oferecidos pelo SO
Geralmente escrita em uma linguagem de alto nível (C, C++)
Na maioria das vezes são utilizadas pelos programas através de uma Application Program Interface (API) de mais alto nível ao invés de serem chamadas diretamente
As três APIs mais comuns são Win32 API do Windows, POSIX API para sistemas POSIX-based (incluindo praticamente todas as versões do UNIX, Linux, e Mac OS X), e a API Java para a Java Virtual Machine (JVM)
Por que usar APIs ao invés de chamadas de sistema?
![Page 12: Visão Geral: Estruturas do Sistema Operacional](https://reader034.vdocuments.net/reader034/viewer/2022042715/55939edb1a28abdd7f8b46ee/html5/thumbnails/12.jpg)
Implementação de chamadas de sistema Tipicamente, cada chamada de sistema possui um número
associado A interface de chamada de sistemas mantém uma tabela
indexada com esses números
A interface de chamada de sistema invoca a chamada desejada no kernel do SO e retorna o estado e valores de retorno para o usuário
Quem faz a chamada não precisa ter qualquer informaç ão sobre como a chamada de sistema foi implementada Precisa apenas conhecer a interface e saber o que o SO fará
como resultado da chamada A maioria dos detalhes do SO ficam escondidos dos usuários
atrás de APIs
![Page 13: Visão Geral: Estruturas do Sistema Operacional](https://reader034.vdocuments.net/reader034/viewer/2022042715/55939edb1a28abdd7f8b46ee/html5/thumbnails/13.jpg)
Relação entre API e chamada de sistema
![Page 14: Visão Geral: Estruturas do Sistema Operacional](https://reader034.vdocuments.net/reader034/viewer/2022042715/55939edb1a28abdd7f8b46ee/html5/thumbnails/14.jpg)
Exemplo: biblioteca padrão de C
Programa em C invocando a funç ão printf(), que utiliza a chamada de sistema write()
![Page 15: Visão Geral: Estruturas do Sistema Operacional](https://reader034.vdocuments.net/reader034/viewer/2022042715/55939edb1a28abdd7f8b46ee/html5/thumbnails/15.jpg)
Passagem de parâmetros em chamadas de sistema
Frequentemente a execuç ão de uma chamada de sistema requer mais do que a identificaç ão da chamada desejada
Existem três métodos comuns para passagem de parâmetros para o SO Mais simples: passar os parâmetros em registradores Parâmetros armazenados em um bloco ou tabela na memó ria e
o endereç o do bloco passado através de um registrador Parâmetros inseridos em uma pilha pelo programa e
desempilhados pelo sistema operacional
O método do bloco e da pilha não limitam o número ou tamanho dos parâmetros
![Page 16: Visão Geral: Estruturas do Sistema Operacional](https://reader034.vdocuments.net/reader034/viewer/2022042715/55939edb1a28abdd7f8b46ee/html5/thumbnails/16.jpg)
Passagem de parâmetros via tabela
![Page 17: Visão Geral: Estruturas do Sistema Operacional](https://reader034.vdocuments.net/reader034/viewer/2022042715/55939edb1a28abdd7f8b46ee/html5/thumbnails/17.jpg)
Tipos de chamadas de sistema
Controle de processos
Gerencia de arquivos
Gerencia de dispositivos
Manutenç ão da informaç ão
Comunicaç ão
Proteç ão
![Page 18: Visão Geral: Estruturas do Sistema Operacional](https://reader034.vdocuments.net/reader034/viewer/2022042715/55939edb1a28abdd7f8b46ee/html5/thumbnails/18.jpg)
Exemplos de chamadas de sistema do Windows e Linux
![Page 19: Visão Geral: Estruturas do Sistema Operacional](https://reader034.vdocuments.net/reader034/viewer/2022042715/55939edb1a28abdd7f8b46ee/html5/thumbnails/19.jpg)
Execução do MS-DOS
Apó s o boot Rodando um processo
![Page 20: Visão Geral: Estruturas do Sistema Operacional](https://reader034.vdocuments.net/reader034/viewer/2022042715/55939edb1a28abdd7f8b46ee/html5/thumbnails/20.jpg)
FreeBSD rodando múltiplos processos
![Page 21: Visão Geral: Estruturas do Sistema Operacional](https://reader034.vdocuments.net/reader034/viewer/2022042715/55939edb1a28abdd7f8b46ee/html5/thumbnails/21.jpg)
Programas de sistema
Programas de Sistema fornecem um ambiente conveniente para o desenvolvimento e execuç ão de programas.
Podem ser divididos em 7 categorias: Manipulaç ão de arquivos Informaç ões de estado Modificaç ão de arquivos Suporte a linguagens de programaç ão Carga e execuç ão de programas Comunicaç ão Aplicativos
A visão que a maioria dos usuários tem do SO é definido pelos programas de sistema e não pelas chamadas de sistema
![Page 22: Visão Geral: Estruturas do Sistema Operacional](https://reader034.vdocuments.net/reader034/viewer/2022042715/55939edb1a28abdd7f8b46ee/html5/thumbnails/22.jpg)
Programas de sistema
Fornecem um ambiente conveniente para desenvolvimento e execuç ão de programas Alguns são apenas interfaces para chamadas de sistema; outros são
consideravelmente mais complexos
Gerencia de arquivos: criar, remover, copiar, renomear, imprimir, listar, e manipular arquivos e diretó rios
Informaç ões de estado Consulta de informaç ões do sistema: data, hora, quantidade de memó ria
disponível, espaç o em disco, número de usuários Informaç ões detalhadas de desempenho, registro de execuç ão e depuraç ão Tipicamente estes programas formatam e imprimem informaç ões na saída
padrão Alguns sistemas podem implementar um registro, utilizado para armazenar
informaç ões de configuraç ão
![Page 23: Visão Geral: Estruturas do Sistema Operacional](https://reader034.vdocuments.net/reader034/viewer/2022042715/55939edb1a28abdd7f8b46ee/html5/thumbnails/23.jpg)
Programas de sistema
Modificaç ão de arquivos Editores de texto para criar e modificar arquivos Comandos especiais para localizar conteúdo em arquivos e realizar
transformaç ões no texto
Suporte a linguagens de programaç ão Compiladores, montadores, depuradores, interpretadores
Carga e execuç ão de programas Carregadores absolutos, carregadores com relocaç ão, editores de ligaç ão
Comunicaç ão Prover mecanismos para criar conexões virtuais entre processos, usuários e
sistemas computacionais Permitir que usuários enviem mensagens para outros usuários, naveguem
em páginas na web, se conectem remotamente, transfiram arquivos de um máquina para outra, etc
![Page 24: Visão Geral: Estruturas do Sistema Operacional](https://reader034.vdocuments.net/reader034/viewer/2022042715/55939edb1a28abdd7f8b46ee/html5/thumbnails/24.jpg)
Projeto e implementação de sistemas operacionais
Não há uma soluç ão única universalmente aceita para o projeto e desenvolvimento de sistemas operacionais mas algumas abordagens têm sido utilizadas com sucesso
A estrutura interna dos sistemas operacionais pode variar amplamente
Inicia-se pela definiç ão de objetivos e especificaç ões
Afetada pela escolha do hardware e pelo tipo do sistema
Requisitos do usuário e Requisitos do Sistema Requisitos do usuário: o SO deve ser conveniente, fácil de
aprender, confiável, seguro e rápido Requisitos do sistema: o SO deve ser fácil de projetar,
implementar e manter e também flexível, confiável, sem erros e eficiente
![Page 25: Visão Geral: Estruturas do Sistema Operacional](https://reader034.vdocuments.net/reader034/viewer/2022042715/55939edb1a28abdd7f8b46ee/html5/thumbnails/25.jpg)
Projeto e implementação de sistemas operacionais
Um princípio importante é separar política de mecanismo
Política: O que será feito? Mecanismo: Como fazer ?
Mecanismos determinam como fazer algo, políticas decidem o que deve ser feito A separaç ão de política de mecanismo é importante
pois permite uma maior flexibilidade caso decisões políticas precisem ser alteradas mais tarde
![Page 26: Visão Geral: Estruturas do Sistema Operacional](https://reader034.vdocuments.net/reader034/viewer/2022042715/55939edb1a28abdd7f8b46ee/html5/thumbnails/26.jpg)
Estrutura simples
MS-DOS – escrito para prover o máximo de funcionalidade utilizando o mínimo possível de memó ria Não foi dividido em mó dulos Apesar de o MS-DOS ter alguma estrutura, suas
interfaces e funcionalidades não são bem separadas
![Page 27: Visão Geral: Estruturas do Sistema Operacional](https://reader034.vdocuments.net/reader034/viewer/2022042715/55939edb1a28abdd7f8b46ee/html5/thumbnails/27.jpg)
Estrutura em camadas do MS-DOS
![Page 28: Visão Geral: Estruturas do Sistema Operacional](https://reader034.vdocuments.net/reader034/viewer/2022042715/55939edb1a28abdd7f8b46ee/html5/thumbnails/28.jpg)
Abordagem de camadas
O sistema operacional é dividido em um número de camadas (níveis), cada uma construída sobre camadas inferiores. A camada mais baixa (camada 0) é o hardware A camada mais alta (camada N) é a interface do
usuário
Como modularidade, camadas são selecionadas de forma que uma cada só utilize serviç os e funç ões de camadas de nível inferior
![Page 29: Visão Geral: Estruturas do Sistema Operacional](https://reader034.vdocuments.net/reader034/viewer/2022042715/55939edb1a28abdd7f8b46ee/html5/thumbnails/29.jpg)
Camadas de um sistema operacional
![Page 30: Visão Geral: Estruturas do Sistema Operacional](https://reader034.vdocuments.net/reader034/viewer/2022042715/55939edb1a28abdd7f8b46ee/html5/thumbnails/30.jpg)
UNIX
Por conta de limitaç ões na funcionalidade do hardware, o UNIX original tinha estruturaç ão limitada.
O UNIX é composto por duas partes distintas Programas de sistema Núcleo (kernel)
Formado por tudo localizado abaixo da interface de chamada de sistemas e acima do hardware
Fornece o sistema de arquivos, escalonamento de CPU, gerenciamento de memó ria, e outras funç ões do SO
Um número muito grande de funç ões para um único nível
![Page 31: Visão Geral: Estruturas do Sistema Operacional](https://reader034.vdocuments.net/reader034/viewer/2022042715/55939edb1a28abdd7f8b46ee/html5/thumbnails/31.jpg)
Estrutura de um sistema UNIX tradicional
![Page 32: Visão Geral: Estruturas do Sistema Operacional](https://reader034.vdocuments.net/reader034/viewer/2022042715/55939edb1a28abdd7f8b46ee/html5/thumbnails/32.jpg)
Estrutura de microkernel
Move o máximo possível de funcionalidades do kernel para o espaç o do usuário
Utiliza mecanismos de comunicaç ão por troca de mensagens para permitir a interoperaç ão dos mó dulos
Benefícios: Mais fácil estender um microkernel Mais fácil portar o sistema operacional para novas arquiteturas Mais confiável (menos có digo rodando em modo kernel) Mais seguro
Desvantagens: Perda de desempenho por conta da comunicaç ão entre os
mó dulos em modo kernel e modo usuário
![Page 33: Visão Geral: Estruturas do Sistema Operacional](https://reader034.vdocuments.net/reader034/viewer/2022042715/55939edb1a28abdd7f8b46ee/html5/thumbnails/33.jpg)
![Page 34: Visão Geral: Estruturas do Sistema Operacional](https://reader034.vdocuments.net/reader034/viewer/2022042715/55939edb1a28abdd7f8b46ee/html5/thumbnails/34.jpg)
![Page 35: Visão Geral: Estruturas do Sistema Operacional](https://reader034.vdocuments.net/reader034/viewer/2022042715/55939edb1a28abdd7f8b46ee/html5/thumbnails/35.jpg)
![Page 36: Visão Geral: Estruturas do Sistema Operacional](https://reader034.vdocuments.net/reader034/viewer/2022042715/55939edb1a28abdd7f8b46ee/html5/thumbnails/36.jpg)
Módulos
A maioria dos sistemas operacionais modernos implementam mó dulos de kernel Abordagem orientada a objetos Cada componente chave é separado dos demais Conversam entre si através de interfaces bem
definidas Cada um pode ser carregado no kernel apenas
quando necessário De forma geral é similar ao uso de camadas
mas mais flexível
![Page 37: Visão Geral: Estruturas do Sistema Operacional](https://reader034.vdocuments.net/reader034/viewer/2022042715/55939edb1a28abdd7f8b46ee/html5/thumbnails/37.jpg)
Abordagem em módulos do Solaris
![Page 38: Visão Geral: Estruturas do Sistema Operacional](https://reader034.vdocuments.net/reader034/viewer/2022042715/55939edb1a28abdd7f8b46ee/html5/thumbnails/38.jpg)
Máquinas virtuais
Uma máquina virtual leva a abordagem de camadas ao seu limite. Ele trata o hardware e o kernel do sistema operacional como se fossem ambos hardware
A interface de uma máquina virtual fornece uma interface idêntica ao hardware
O sistema operacional hospedeiro (host) cria a ilusão de que um processo tem seu pró prio processador e memó ria
Cada convidado (guest) recebe sua pró pria có pia (virtual) do computador
![Page 39: Visão Geral: Estruturas do Sistema Operacional](https://reader034.vdocuments.net/reader034/viewer/2022042715/55939edb1a28abdd7f8b46ee/html5/thumbnails/39.jpg)
Histórico e benefícios das máquinas virtuais
Apareceram inicialmente em 1972 em mainframes da IBM Consiste, fundamentalmente, em múltiplos ambientes de
execuç ão (sistemas operacionais diferentes) compartilhando o mesmo hardware
Protege um ambiente do outro Permite compartilhamento de arquivos Se comunicam entre si e com outros sistemas através da rede Consolidaç ão de muitos sistemas com pouca demanda de
recursos em poucos computadores com muitos recursos
Muito útil para desenvolvimento e testes
O padrão “Open Virtual Machine Format”, permite que uma máquina virtual possa ser executada por diferentes plataformas de virtualizaç ão
![Page 40: Visão Geral: Estruturas do Sistema Operacional](https://reader034.vdocuments.net/reader034/viewer/2022042715/55939edb1a28abdd7f8b46ee/html5/thumbnails/40.jpg)
Máquinas virtuais
![Page 41: Visão Geral: Estruturas do Sistema Operacional](https://reader034.vdocuments.net/reader034/viewer/2022042715/55939edb1a28abdd7f8b46ee/html5/thumbnails/41.jpg)
Para-virtualização
Apresenta aos guests uma visão similar mas não idêntica do hardware
Os guests precisam ser modificados para rodar em hardware para-virtualizado
![Page 42: Visão Geral: Estruturas do Sistema Operacional](https://reader034.vdocuments.net/reader034/viewer/2022042715/55939edb1a28abdd7f8b46ee/html5/thumbnails/42.jpg)
Arquitetura do VMWare
![Page 43: Visão Geral: Estruturas do Sistema Operacional](https://reader034.vdocuments.net/reader034/viewer/2022042715/55939edb1a28abdd7f8b46ee/html5/thumbnails/43.jpg)
A máquina virtual Java