• Nenhum resultado encontrado

SO 02

N/A
N/A
Protected

Academic year: 2021

Share "SO 02"

Copied!
54
0
0

Texto

(1)

Capítulo 2: Estruturas do

Sistema Operacional

(2)

Objetivos

Descrever os serviços providos pelos sistemas operacionais

para os usuários, processos e outros sistemas

Discutir as diversas formas de estruturação dos sistemas

operacionais

(3)

Serviços do Sistema Operacional

Sistemas operacionais proveem um ambiente para execução de

programas e serviços para programas e usuários

Dois conjuntos de serviços do sistema operacional

 Funções que são úteis para o usuário

(4)

Serviços do Sistema Operacional

Funções que são úteis para o usuário:

Interface do usuário – Quase todos os sistemas operacionais

possuem uma interface com o usuário

 Varia entre Command-Line (CLI), Graphics User Interface (GUI),

e Batch

Execução de programas – O sistema deve estar apto a carregar

um programa na memória e executá-lo, terminar a execução, seja normalmente ou de forma anormal (indicando o erro)

Operações de entrada e saída (E/S) - Um programa em execução pode requisitar operações de E/S, as quais podem envolver um

arquivo ou um dispositivo de entrada e saída

Manipulação do sistema de arquivos - O sistema de arquivos é de interesse particular. Os programas precisam ler e escrever em arquivos e diretórios, criar e deletá-los, buscá-los, listar as

(5)

Serviços do Sistema Operacional

Funções que são úteis para o usuário (cont.):

Comunicação – Processos podem trocar informações entre si em

um mesmo computador ou em sistemas de computação diferentes conectados por uma rede de computadores

 As comunicações podem ser feitas através de memória

compartilhada ou da troca de mensagens – Neste último, pacotes de informação são transmitidos entre processos pelo sistema operacional

Detecção de erros – SO precisa monitorar constantemente

possíveis erros

 Erros podem ocorrer no hardware da CPU, memória,

dispositivos de I/O e programas

 Ação diferenciada para cada tipo de erro – garantia de

computação correta e consistente

 Depuração (debugging) pode melhorar as possibilidades de uso

(6)

Serviços do Sistema Operacional

 Outro conjunto de funções que garantem a eficiência da operação do sistema através do compartilhamento de recursos

Alocação de recursos – Quando existem múltiplos usuários ou jobs

ativos ao mesmo tempo, é necessário alocar recursos para cada um deles

 Diferentes tipos de recursos – alguns recursos (como ciclos de

CPU, memória e sistema de arquivos) podem ter um código de alocação especial, outros recursos como dispositivos de E/S podem ter um código de alocação genérico de solicitação e liberação

Contabilização – Registrar quantos e quais recursos cada usuário utilizou

Proteção e segurança – Proprietários de informações armazenadas em um sistema de computação podem querer controlar o uso dessas informações

Proteção envolve a garantia de que qualquer acesso a recursos

do sistema seja controlado.

Segurança garante que usuários de fora do sistema precisem se

(7)
(8)

Interfaces com o Usuário do SO – CLI

Command Line Interface (CLI) ou interpretador de comandos permite a execução direta de comandos

 Implementado no kernel ou como programa do sistema  Diversas implementações – shells

 Funcionamento – recebe comando do usuário e executa

» As vezes, comandos internos (built-in commands) ou

nomes de programas

» Neste último caso, a adição de novos recursos não

(9)

Bourne Shell Command Interpreter

(10)

Interfaces com o Usuário do SO – GUI

Graphical User Interface (GUI)sistema de janelas e menus caracterizado por uma simulação da área de trabalho – desktop

 Usualmente, mouse, teclado e monitor

Ícones representam arquivos, diretórios, programas, ações do sistema, etc.

 Cliques no mouse em objetos da interface causam ações variadas

(obter informações, opções, funções de execução, abertura de diretório – conhecido como pasta)

 Inventada pela Xerox PARC

 Muitos sistemas incluem ambas as interfaces CLI e GUI  Microsoft Windows é GUI com CLI “command” shell  Apple Mac OS X

 “Aqua” GUI interface

 Kernel do UNIX com os respectivos shells

(11)
(12)

Chamadas de Sistema

 Fornecem uma interface com os serviços disponibilizados pelo SO

 Tipicamente escrita em linguagem de alto nível (C ou C++)

 Em geral, acessado por programas por meio de Application Program Interface (API) de alto nível ao invés de uso direto

 Três tipos mais comuns de APIs  Win32 API – Windows

 POSIX API – Sistemas baseados em POSIX

 Todas as versões de UNIX, Linux e Mac OS X

 Java API – Java virtual machine (JVM)

 Por que usar APIs ao invés de usar as chamadas de sistema diretamente?

(13)

Exemplo de Chamada de Sistema

Sequência de chamadas de sistema para copiar o conteúdo de um

arquivo para outro

Exemplo de sequência de Chamadas de Sistema

Obtém nome do arquivo de entrada

Exibe prompt na tela Aceita entrada

Obtém nome do arquivo de saída

Exibe prompt na tela Aceita entrada

Abre arquivo de entrada

Se arquivo não existir, aborta

Cria arquivo de saída

Se arquivo existir, aborta

Loop

Lê arquivo de entrada Grava no arquivo de saída

Até a leitura falhar Fecha arquivo de saída

Exibe mensagem de conclusão na tela Termina normalmente

(14)

Exemplo de API padrão

Considere a função ReadFile() da API Win32 para ler um arquivo:

 Descrição dos parâmetros passados para a função ReadFile()  HANDLE file – arquivo a ser lido

 LPVOID buffer – um buffer a partir do qual os dados serão lidos ou no qual os dados serão escritos

 DWORD bytesToRead – número de bytes a serem lidos do buffer

 LPDWORD bytesRead – número de bytes lidos durante a última leitura  LPOVERLAPPED ovl – indica dados sobre o tipo de entrada e saída

(15)

Implementação da Chamada de Sistema

 Tipicamente, um número é associado a cada chamada de sistema  A interface de chamada ao sistema mantém uma tabela indexada

de acordo com esses números

 A interface da chamada de sistema invoca a referida chamada no kernel do SO

 A interface retorna o status da chamada de sistema e outros valores retornados

 Quem faz a chamada de sistema não precisa saber nada sobre como ela é implementada

 Só é necessário obedecer a API e entender os resultados gerados pelo sistema operacional

 A maior parte dos detalhes da interface do SO são escondidos do programador pela API

(16)
(17)

Exemplo: Biblioteca Padrão de C

Programa em C chamando a função de biblioteca printf(), a

qual invoca a chamada de sistema write()

(18)

Passagem de Parâmetros para

Chamada de Sistema

Frequentemente, mais informações são solicitadas do que a

simples identificação da chamada do sistema

 O número informações e o seus tipos variam de acordo com o SO e a chamada de sistema.

Três métodos gerais para a passagem de parâmetros para o

sistema operacional

 Forma simples: passagem dos parâmetros em registradores

 Problema: em alguns casos, existem mais parâmetros do que

registradores

 Parâmetros armazenados em um bloco ou tabela na memória e o endereço correspondente do bloco é colocado em um registrador

 Método usado por Linux e Solaris

 Parâmetros são colocados em uma pilha (empilhados/pushed) pelo programa e retirados dessa pilha (desempilhados/popped) pelo sistema operacional

 Métodos que armazenam parâmetros em tabela ou pilha não limitam o número de parâmetros

(19)
(20)

Tipos de Chamadas de Sistema

 As chamadas de sistema podem ser agrupadas em seis categorias:  Controle de processos

 Manipulação/gerenciamento de arquivos  Manipulação/gerenciamento de dispositivos  Manutenção de informações

(21)

Tipos de Chamadas de Sistema

 Controle de processo  end, abort

 load, execute

 create process, terminate process

 get process attributes, set process attributes  wait for time

 wait event, signal event  allocate and free memory

 Gerenciamento de arquivos  create file, delete file  open, close file

 read, write, reposition  get and set file attributes

(22)

Tipos de Chamadas de Sistema

 Gerenciamento de dispositivos  request device, release device  read, write, reposition

 get device attributes, set device attributes  logically attach or detach devices

 Manutenção de informações

 get time or date, set time or date  get system data, set system data

 get and set process, file, or device attributes

 Comunicação

 create, delete communication connection  send, receive messages

 transfer status information

(23)
(24)

Execução do MS-DOS

(25)

Execução do FreeBSD

(26)

Programas do Sistema

 Programas do sistema fornecem um ambiente conveniente para o desenvolvimento e a execução de programas

 Podem ser divididos em:

 Manipulação de arquivos  Informação de status  Modificação de arquivos

 Suporte a linguagem de programação  Carga e execução de programas

 Comunicações  Aplicações

 A maior parte da visão do usuário sobre o sistema operacional é definida pelos programas do sistema e não pelas chamadas de sistema de fato

(27)

Programas do Sistema

Usuário

1 Usuário 2

Usuário

3 Usuário n

Aplicações e programas do sistema

Sistema Operacional Hardware Banco de Dados Navegador Editor Compilador de texto

(28)

Programas do Sistema

 Fornecem um ambiente conveniente para o desenvolvimento e execução de programas

 Alguns são interfaces simples para chamadas de sistema e outros são consideravelmente mais complexos

Gerenciamento de arquivos – Criar, apagar, copiar, renomear,

imprimir, despejar, listar e manipular arquivos e diretórios

Informação de status

 Alguns perguntam ao sistema sobre informações como data hora, quantidade de memória disponível, espaço de disco e número de usuários

 Outros fornecem informação detalhada de desempenho, de registro (logging) e de depuração

 Normalmente, esses programas formatam e imprimem a saída para o terminal e outros dispositivos de saída

(29)

Programas do Sistema

Modificação de arquivos

 Editores de texto

 Comandos especiais para buscar conteúdo de arquivos ou realizar transformações no texto

Suporte de linguagem de programação

 Compiladores, assemblers, debuggers e interpretadores. Geralmente são fornecidos para os usuários com o SO

Carregamento e execução de programas

 Programas necessitam ser carregados na memória após a compilação ou montagem

Comunicações

 Mecanismos para criar conexões virtuais entre processos, usuários e sistemas de computadores

 Mecanismos para garantir que usuários troquem mensagens,

naveguem na web, enviem e-mails, façam login remoto, transfiram arquivos, etc.

(30)

Projeto e Implementação de Sistema Operacional

 Projeto e Implementação de SO não é um problema com soluções definitivas, entretanto algumas abordagens mostraram sucesso

 Estrutura interna de diferentes Sistemas Operacionais podem variar muito

 Primeiro problema: definir objetivos e especificações

 Afetado pela escolha do hardware, tipo de sistema (monousuário, multiusuário, distribuído, tempo real, monotarefa, etc)

 Requisitos do SO divididos em dois grupos: objetivos do Usuário e do

Sistema

 Objetivos do Usuário – o sistema operacional deve ser conveniente ao uso, fácil de aprender, confiável, seguro e rápido

 Objetivos do Sistema – o sistema operacional deve ser fácil de projetar, implementar e manter; bem como ser flexível, confiável, livre de erros e eficiente

(31)

Projeto e Implementação de Sistema Operacional

 Princípio importante para separar

Política: O que será feito? Mecanismo: Como será feito?

 Mecanismos determinam como fazer algo, políticas decidem o que será feito

 A separação de política e mecanismo é um princípio muito importante. É possível obter máxima flexibilidade se decisões políticas possam ser realizadas posteriormente

(32)

Estrutura Simples

 MS-DOS – escrito para fornecer a maior funcionalidade no menor espaço

 Não é dividido em módulos

 Apesar do MS-DOS ter alguma estrutura, sua interface e seus níveis de funcionalidade não são bem separados

(33)
(34)

UNIX

 UNIX – limitado pela funcionalidade do hardware, o sistema

operacional UNIX original tinha estrutura limitada. O SO UNIX consiste de duas partes separáveis

 Programas de sistemas  Kernel

 Consiste de tudo abaixo da interface de chamadas de sistemas

e acima do hardware físico

 Fornece o sistema de arquivos, escalonamento da CPU,

gerência de memória e outras funções do sistema operacional;

(35)
(36)

Sistemas Operacionais em Camadas

 Sistema operacional dividido camadas

 Menor camada (Camada 0) – hardware

 Maior camada (Camada N) – Interface do usuário

 As camadas devem ser uma parte bem definida do sistema com entradas, saídas e funções cuidadosamente definidas

 Modularidade: o acesso a funções entre camadas deve ser feito sempre acessando as funções de camadas inferiores

 Vantagens

 Facilidade de construção e depuração

 Dificuldades

 Definição das camadas

(37)
(38)

Estrutura de Sistema Microkernel

 Mover o máximo possível de funções do kernel para o espaço do usuário

 Função do microkernel: fornecer um recurso de comunicação entre o programa cliente e os diversos serviços que estão no espaço do

usuário. Comunicação: transmissão de mensagens

 Vantagens:

 Mais simples para fazer extensões

 Mais simples portar o sistema para novas arquiteturas  Mais confiável (menos código rodando em modo kernel)  Mais seguro (maioria dos serviços em modo usuário)

 Desvantagem:

 Sobrecarga de desempenho causada pela comunicação entre o modo usuário e o modo kernel

(39)
(40)

Sistemas Operacionais em Módulos

 Maioria dos sistemas operacionais modernos é implementada em módulos do kernel

 Utiliza abordagem orientada a objetos  Cada componente do núcleo é separado

 Comunicação entre módulos por interfaces bem conhecidas

 Cada módulo é carregado de acordo com a necessidade no kernel

 De forma geral, mais flexível que camadas, porque módulo pode chamar qualquer outro módulo

 Exemplo:

(41)
(42)

Máquinas Virtuais

 Virtualização

 Consolidação

 Multiplexação do uso do hardware

– Vários ambientes virtuais sendo executados sobre o mesmo hardware físico

(43)

Máquinas Virtuais

 Máquina virtual

 Simulação do hardware físico para o sistema operacional

 Interface idêntica à interface provida pelo hardware

– Ilusão de que o sistema operacional possui processador, memória, e outros dispositivos próprios

(44)

Máquinas virtuais

 Entidades

 Hospedeiro (host)  Convidado (guest)

 Histórico

 Criado para os mainframes da IBM em 1972

Hardware sub-utilizado

– União dos sistemas de diversas máquinas em uma única máquina física

(45)

Máquinas virtuais

 Diversos níveis e tipos de virtualização

(46)

Máquinas virtuais

 Conceitos

 Fundamentalmente, diversos ambientes, com diferentes sistemas operacionais, podem compartilhar o mesmo hardware

 Isolamento

 Compartilhamento de arquivos pode ser permitido, desde que

seja controlado

 Comunicação entre máquinas virtuais e outros sistemas externos através da rede

(47)

Máquinas Virtuais

 Utilização da virtualização

 Consolidação de servidores

 Computação verde

 Manutenção e gerenciamento de servidores  Teste e desenvolvimento

(48)

Máquinas Virtuais

(49)

Paravirtualização

 Sistemas convidados adaptados para a virtualização  Assume uma interface de hardware modificada

 Em vez de tentar fazer com que um SO convidado acredite que

ele tem um sistema para si próprio, a paravirtualização

apresenta o convidado a um sistema que é semelhante, mas não idêntico, ao sistema que ele prefere.

 Objetivo

 Aumentar o desempenho no tratamento das instruções

privilegiadas  Vantagens

 Uso mais eficiente dos recursos  Camada de virtualização menor

(50)

Implementação da Virtualização

 Desafios para implementação

 Criar uma duplicata exata da máquina física

 Duplicata funciona em modo usuário

– Simulação do modo kernel

– Interceptação das instruções privilegiadas feitas em modo kernel virtual

 Temporização

 Tempo na máquina virtual é mais lento do que na máquina real

 Suporte via hardware

 Instruções para virtualização

(51)
(52)
(53)
(54)

Referências

Documentos relacionados

Dessa forma, buscarão manter carteira de títulos com prazo médio superior a trezentos e sessenta e cinco dias calculado conforme metodologia de cálculo do prazo médio

Este trabalho apresentou o estudo, projeto e implementação prática de uma estrutura UPS line-interactive monofásica com compensação ativa de potência série e paralela, utilizando

Neste trabalho estarei desenvolvendo um estudo sobre Equações Diferenciais Or- dinárias Lineares de 2 a Ordem, apresentando a teoria, métodos para resolução destas.. equações

Atualmente, o tema “funções” é trabalhado em sala de aula de forma paralela pelo professor de Matemática, na 1ª série do Ensino Médio, e pelo professor de Física ao

(2004), para testar o uso de bioestimulantes a base de citocinina, giberilina e ácido indolcanóico na cultura do milho, realizaram uma pesquisa na qual os resultados

Neste contexto, os impactos ocasionados pelo uso e manejo na estrutura física do solo, vêm sendo quantificado através de diferentes propriedades físicas do solo, tais como