Upload
leandro-ramos
View
5
Download
0
Embed Size (px)
Citation preview
Sistemas Operacionais
Prof. Leandro Meireles
1/9
Bibliografia
MACHADO, F. B.; MAIA, L. P.. Arquitetura de Sistemas Operacionais. 4. ed. Rio de Janeiro: LTC, 2007.
SILBERSCHATZ, A.; GALVIN, P. B.; GAGNE, G.. Sistemas operacionais com Java. Rio de Janeiro: Elsevier, 2008.
TANENBAUM, A. S.. Sistemas Operacionais Modernos. Rio de Janeiro: Editora Campus, 1995.
STUART, B.L, Princípios de Sistemas Operacionais- Projetos e Aplicações, Rio de Janeiro: LTC,2010
MARQUES, J.A. et al, Sistemas Operacionais, Rio de Janeiro:LTC, 2010. 2/9
Contextualização
Definição:
Conjunto de programas responsável pela gerência de recursos de hardware, segurança de acesso e utilização e interface com os usuários;
3/9
Contextualização
Componentes Básicos:
Interface com o usuário, gerencia de processador, gerência de memória, gerência de dispositivos, sistemas de arquivos;
Componentes Avançados:Segurança de acesso, ferramentas de auditoria
4/9
5/9
Definição de SO
É uma camada de software que opera entre o hardware e os programas aplicativos voltados ao usuário final.
É uma estrutura de software ampla, muitas vezes complexa, que incorpora aspectos de baixo nível (como drivers de dispositivos e gerência de memória física) e de alto nível (como programas utilitários e a própria interface gráfica).
6/9
Visão do Sistema Operacional
programadorese analistas
memória discos
UCP
Usuários
Hardware
Sistema OperacionalSistema Operacional
fitas
impressoras monitores
programas,sistemas eaplicativos
usuários
7/9
Abstração de Recursos
Cada hardware tem sua particularidadeCabe ao sistema operacional gerenciar as particularidades do hardware
– Um processador de texto não deve deter o conhecimento de como gravar um arquivo (disquetes, pen drive, hd´s).
8/9
Cabe ao Sistema Operacional
Prover interfaces de acesso aos dispositivos, mais simples de usar que as interface de baixo nível.
Tornar os aplicativos independentes do hardware.
Definir interfaces de acesso homogêneas para dispositivos com tecnologias distintas.
9/9
Gerência de Recursos
Cabe ao sistema operacional definir políticas para gerenciar o uso dos recursos de hardware pelos aplicativos, e resolver eventuais disputas e conflitos.
– Uso de processador– Acesso a disco– Memória
10/9
Atividade
Quais os sistemas operacionais que vocês conhecem ?
Como eles funcionam ?
Como é sua interface ?
Contextualização
Evolução Histórica dos Sistemas Operacionais
11/9
12/12
Roteiro
• Batch (lote)• De Rede• Distribuído• Multi-usuário• Desktop• Servidor• Embutido• Tempo real
13/12
Batch (lote)
• Todos os programas a executar eram colocados em uma fila.
• O processador recebia um programa após o outro, processando-os em seqüência, o que permitia um alto grau de utilização do sistema.
• O termo lote ainda é usado para definir um conjunto de comandos que rodam sem interferência do usuário
14/12
Bach (lote)
Processamento
Processamento
Processamento
(a)
(b)
(c)
fita de entrada
fita de entrada
cartões perfurados
fita de saída
relatórios
fita de saída
job 2
job n
relatório 1
relatório 2
relatório n
job 1
15/12
Rede
• Suporte a operação em rede– Maioria dos sistemas operacionais atuais
• Compartilhamento de recursos de/ou para vários computadores.
• Disponibilizar os próprios recursos.• São independentes e caso a conexão entre um
dos nós sofra qualquer problema, os demais continuam operando normalmente , apesar de alguns recursos se tornarem indisponíveis.
• Exemplo:• Os módulos do S.O Rede podem ser:
– Módulo Cliente do Sistema Operacional (SORC)
– Módulo Servidor do Sistema Operacional (SORS)
16/9
Rede
17/12
Distribuído
• Os recursos de cada máquina estão disponíveis globalmente, de forma transparente aos usuários.
• Para o usuário e suas aplicações é como se não existisse uma rede de computadores e sim um único sistema centralizado.– Usuário desconhece o computador em uso.
• Ainda não são uma realidade de mercado.• Exemplo: Google Docs, One Drive, ICloud
18/9
Distribuído
19/12
Multi-usuário
• Múltiplos usuários simultâneos– Maioria dos sistemas operacionais atuais
• Deve suportar a identificação do “dono” de cada recurso dentro do sistema – arquivos, processos, conexões de rede
• Imposição de regras de controle de acesso para impedir o uso desses recursos por usuários não autorizados
20/12
Desktop
• Sistema operacional “de mesa”.• Usuários domésticos e corporativos
– Atividades corriqueiras
• Ambiente gráfico, interatividade com usuário e suporte a rede.
21/12
Servidor
• Gestão de grandes quantidades de recursos – Discos, memórias e processadores e serviços
gerais
• Multi-usuários• Suporte a rede
22/12
Embutido
• Embedded
• Hardwares com pouca capacidade de processamento– Calculadores, tocadores de MP3, computador
de bordo para veículos
• Função específica
Embutido
23/9
24/12
Tempo real
• Comportamento temporal previsível– Tempo de resposta conhecido no melhor caso e pior
caso de operação
• soft real-time systems
– perda de prazo implica em degradação do serviço prestado (gravação de CD)
• hard real-time systems
– perda de prazo pode causar grandes prejuízos econômicos ou ambientais (usina nuclear, caldeiras industriais)
Tempo real
25/9
26/11
Roteiro
• Funcionalidades de um sistema operacional
• Gerência– Processador– Memória– Dispositivos– Arquivos– Proteção
27/11
Sistema Operacional e sua gerência
• Para cumprir sua função, deve atuar em várias frentes.
• São vários os recursos a serem gerenciados
– Atenção: Necessário Abstração
28/11
Gerência de Processador
• Conhecida como gerência de processos ou de atividades.
• Visa distribuir a capacidade de processamento de forma justa
– “Justa é diferente de igual”
Gerência de Processador• Sincronização de atividades
– Comunicação entre processos– Manter o processador ocupado a maior parte
do tempo;– Balancear o uso da CPU entre processos;– Privilegiar a execução de aplicações
críticas;– Maximizar o throughput (rendimento) e;– Oferecer tempos de resposta razoáveis
aos usuários interativos.29/9
30/11
Gerência de Memória
• Fornecer a cada aplicação um espaço próprio de memória– Independente e isolado das demais
aplicações
• Uso do disco como memória complementar– Aplicação desconhece o tipo da memória em
uso
31/11
Gerência de Dispositivos
• Gerência de Entrada/Saída• Vários dispositivos diferentes
– Pen drive, disquetes, discos IDE e SCSI
• Permitir, através de drivers, o uso de forma comum– Vetor de blocos de dados (endereçamento de
memória)
32/11
Gerência de Arquivos
• Construída sobre a gerência de dispositivos– Criando abstrações de arquivos e diretórios
• Outros dispositivos podem ser utilizados como arquivos– Gravar arquivos numa saída TCP– Outras devices;
33/11
Gerência de Proteção
• Políticas de acesso para sistemas – Em rede– Multi-usuários
• Definição de usuários, grupos de usuários, registro de recursos por usuários
34/11
Sistemas Operacionais Modernos
• Gerência de energia• Gerência de rede• Gerência de recursos multimidía
35/11
Os módulos de gerência sãointer-dependentes
36/13
Roteiro
• Estrutura de um sistema operacional• Componentes• Uso e importância• Programas Utilitários
37/13
Núcleo
• Kernel• Coração do sistema
operacional• Responsável pela
gerência dos recursos de hardwares utilizados
38/13
Drivers
• Códigos específicos– Acesso dispositivos físicos
• Normalmente fornecido pelo fabricante do hardware – Forma binária– Acoplado ao sistema operacional
Drivers
39/9
Dispositivo para o Drivers
40/9
41/13
Inicialização do Sistema Operacional
• Carregar o núcleo do sistema operacional em memória e iniciar sua execução.
Disco MemóriaPrincipal
boot
SistemaOperacional
Área doSistema
Operacional
42/13
Programas Utilitários
• Facilitam o uso do sistema operacional– Tradutor– Interpretador– Linker– Loader– Depurador– Interpretador de Comandos (shell)
• Qualquer, programas-fonte escritos não esta pronto para ser diretamente executado pelo processador. Para isso eles têm que passar pela ETAPA DE CONVERSÃO.
• “TODA REPRESENTAÇÃO DAS INSTRUÇÕES É TRADUZIDA PARA CÓDIGO DE MÁQUINA”
Tradutor
• Tradutor Montador (assembler);• Tradutor Compilador
44/13
Tradutor
programa fonte programa objetoTradutor
Compilador
45/13
Interpretador
• Considerado TRADUTOR que não gera módulo-objeto**
• **(Não é um arquivo executável propriamente dito, mas já se encontra em linguagem de máquina).
• Traduz cada comando e executa• Desvantagem: tempo na tradução• Vantagem: ados dinâmicos
46/13
Linker
Tem como função resolver todas as referências simbólicas existentes entre os
módulos e reservar memória para execução do programa.
função é unir vários programas já compilados de uma forma independente e unificá-los em
um programa executável.
47/13
Linker
48/13
Linker
49/13
Loader
• Normalmente é de responsabilidade do sistema operacional carregar e executar arquivos. A parte do sistema operacional que executa essa função é chamada de loader (carregador)
• Há dois tipos de loaders: relocável e absoluto.
50/13
LOADERS: RELOCÁVEL
• Carregará o programa em qualquer locação da memória, e altera vários endereços para assegurar a referência correta.
• A decisão sobre onde o programa é alocado na memória é feita pelo SISTEMA OPERACIONAL, não pelo arquivo de cabeçalho de programas.
51/13
LOADERS: ABSOLUTO.
• O loader carrega o arquivo em memória na locação especificada pela parte inicial (cabeçalho) do arquivo e passa o controle ao programa.
52/13
Depurador
• Permite acompanhar a execução de um programa e detectar erros.
• Breakpoints - Ponto de interrupção é uma parada intencional ou pausar lugar em um programa
• Watchpoints - Ponto programado é uma parada pré estabelecida num ponto determinado do programa
53/13
Interpretador de Comandos
• Interpretador de comandos ou shell permite ao usuário interagir com o sistema
• Linguagem de controle são os comandos disponíveis pelo interpretador
• Exemplos: Shell Bash, console e prompt de comando
54/25
Roteiro
• Hardware• Estrutura de um sistema operacional• Interrupções• Proteção do núcleo• Níveis de privilégio• Chamadas de sistema
55/25
Hardware
• Mono-processadores atuais seguem um padrão definido na década de 40 por János (John) Von Neumann
Arquitetura Von Neumann
• Programa armazenado
“John von Neumann formalizou o projeto lógico de um computador.
Em sua proposta, sugeriu que as instruções fossem armazenadas
na memória do computador. Até então elas eram lidas de cartões
perfurados e executadas, uma a uma. Armazená-las na memória,
para então executá-las, tornaria o computador mais rápido, já que,
no momento da execução, as instruções seriam obtidas com
rapidez eletrônica.”
56/9
57/25
Estrutura de um Sistema Operacional
Controladora de Dispositivos
Dispositivos físicosHardware
Software
Aplicativos
Programas Utilitários Nível usuário
Nível sistemaNúcleo
Código de Inicialização
Drivers de Dispositivo
58/25
Hardware
MemóriaPrincipal
Dispositivosde E/S
Processador / UCP
Unidade Lógicae Aritmética
Registradores
Unidade deControle
59/25
Processador
• É o núcleo do sistema de computação.• Responsável por continuamente ler as
instruções e dados da memória ou de periféricos, processá-los e enviar os resultados de volta a memória ou outros periféricos.
60/25
Processador
• Unidade Central de Processamento (UCP ou CPU)– Unidade de Controle (UC)– Unidade Lógica e Aritmética (ULA)– Clock– Memórias de alta velocidade
61/25
Processador
Processador cognitivo não é simular o cérebro humano, é usar o que já se sabe sobre o funcionamento dos cérebros biológicos para construir um sistema capaz de aprender e interagir com o ambiente. – WATSON IBM
• Pesquisa: Sobre o computador WATSON - IBM
62/9
VEJA NO LINK:
•http://www-03.ibm.com/systems/br/power/advantages/watson/
63/9
64/25
Barramento
• Ocorre todas as transferências de dados.• Barramento de endereços
– Indica a posição de memória (ou dispositivo) a acessar
• Barramento de controle– Indica a operação a efetuar (leitura ou escrita)
• Barramento de dados– Transporta a informação indicada entre o
processador e a memória ou controlador de dispositivo
65/25
Barramento
Barramento processador-memóriaBarr
am
ento
de
E/S
Barr
am
ento
de
E/S
Adaptador Adaptador
MemóriaPrincipal
UCP
66/25
MMU
• Memory Management Unit (Unidade de Gerência de Memória)
• Responsável por analisar cada endereço solicitado pelo processador, validá-los, efetuar conversões de endereçamento necessárias e executar a operação solicitada pelo processador – leitura ou escrita de uma posição de memória
67/25
Memória
maiorcapacidade de
armazenamento
maior custo evelocidadede acesso
Memória Secundária
Memória Cache
Memória Principal
Registradores
68/25
Memória
• Secundária• Chamadas de “memórias de
armazenamento em massa”, para armazenamento permanente de dados. – Não podem ser endereçadas diretamente, a
informação precisa ser carregada em memória principal antes de poder ser tratada pelo processador.
69/25
Memória
• Secundária
70/25
Memória
• PRIMÁRIA• “Chamadas de memória real, são memórias que o
processador pode endereçar diretamente, sem as quais o computador não pode funcionar.
• Estas fornecem geralmente uma ponte para as secundárias, mas a sua função principal é a de conter a informação necessária para o processador num determinado momento; esta informação pode ser, por exemplo, os programas em execução.
71/25
Memória
• Primária• Nesta categoria insere-se a RAM, que é uma
memória de semicondutores, volátil, com acesso aleatório, isto é, palavras individuais de memória são acessadas diretamente, utilizando uma lógica de endereçamento implementada em hardware.
72/25
Memória
• CACHE• Dispositivo de acesso rápido, interno a um
sistema, que serve de intermediário entre um operador de um processo e o dispositivo de armazenamento ao qual esse operador acede.
73/25
Memória
• CACHE• Atualmente há cache em processadores, discos
rígidos, sistemas, servidores, nas placa mãe, cluter de bancos de dados, entre outros. Qualquer dispositivo que requeira do usuário uma solicitação/requisição a algum outro recurso, seja de rede ou local, interno ou externo a essa rede, pode requerer ou possuir de fábrica o recurso de cache.
74/25
Memória
• CACHE
75/25
Memória
• REGISTRADORES• É uma unidade de memória capaz de armazenar n bits.
Os registradores estão no topo da hierarquia de memória, sendo assim, são o meio mais rápido e caro de se armazenar um dado.
• Obs: Apesar dos registradores apresentarem um bom desempenho no quesito rapidez, possuem uma capacidade de armazenamento baixíssima comparada a outros circuitos de armazenamento, como é o caso da memória secundária.
76/25
Diversos Dispositivos
• Memória secundária– Discos– Fitas magnéticas
• Interface usuário-máquina– Teclados– Impressoras
• Outros dispositivos– Placa de vídeo– Dispositivos USB’s
São acessados através de circuitos específicos denominados controladores
77/25
Arquitetura de um Computador
controle
endereços
dados
Processador MMU
Memória
ControladoraUSB
Mouse Teclado
Controladorade vídeo
Monitor
Controladorade disco
Controladorade rede
Unidade de disco
Conexãode rede
78/25
Interrupções
• Quando um controlador de periférico possui uma informação importante para fornecer ao processador– Aguarda até que o processador o consulte– Notifica o processador através do barramento
de controle• Requisição de interrupção (IRQ – Interrupt
ReQuest)
79/25
InterrupçãoA. EXEMPLO:1. O processador está executando um programa qualquer
(em outras palavras, um fluxo de execução);2. Um pacote vindo da rede é recebido pela placa
Ethernet;3. A placa envia uma solicitação de interrupção (IRQ) ao
processador;4. O processamento é desviado do programa em
execução para a rotina de tratamento da interrupção5. A rotina de tratamento é executada para receber as
informações da placa de rede (via barramentos de dados e de endereços) e atualizar as estruturas de dados do sistema operacional;
6. A rotina de tratamento da interrupção é finalizada e o processador retorna à execução do programa que havia sido interrompido.
80/25
Interrupção
controle
endereços
dados
Processador MMUControladora
de rede
Programa emexecução
memória1 Rotina de
tratamento dainterrupção
4
6
2
5
5
3
81/25
Proteção ao Núcleo
• Certas instruções não podem estar disponíveis para as aplicações, pois isso poderia ocasionar um sério problema de integridade no sistema.– Por exemplo, um acesso ao disco rígido para
gravação de um arquivo.– Atenção: Aplicativos de auto gravação
exercem a mesma função de solicitação de IRQ
82/25
Níveis de privilégio
• Então, existe 2 tipos de instruções:
• Instruções privilegiadas Instruções não-privilegiadas.
• O processador implementa 2 modos de acesso:
• Modo usuário• Modo kernel (ou supervisor).
CPU Intel x86
Sistema Operacional
Aplicação
Não utilizado
Não utilizado
0
1
2
3
83/25
Separação entre núcleo e as aplicações
Hardware
NúcleoNívelnúcleo
Nívelusuário
Aplicação Aplicação Aplicação Aplicação
84/25
Chamadas de Sistema
• É o mecanismo usado pelo programa para requisitar um serviço do sistema operacional, ou mais especificamente, do núcleo do sistema operacional.
85/25
Chamadas de Sistema
• São portas de entrada para se ter acesso ao núcleo do sistema operacional.
• Exemplo: Quando o usuário deseja algum serviço, realiza uma chamada a uma de suas rotinas através de system calls (chamadas ao sistema).
• Para cada serviço existe um system callassociada e cada sistema operacional tem o seu próprio conjunto de chamadas.
86/25
System Calls
Aplicação System CallNúcleo
Hardware
87/25
Syscalls - Grupos de Função
• Gerência de Processos– Criação e eliminação de processos, alteração das
características do processo e sincronização e comunicação entre processos.
• Gerência de memória– Alocação e desalocação de memória.
• Gerência de entrada/saída– Operações de entrada e saída e manipulação de
arquivos e diretórios.
88/25
Chamada a uma rotina de acesso
89/25
API - Interface de Programação de Aplicativos
• Conjunto de chamadas de sistema oferecidas por um núcleo, é chamada de API
– API Win32 (Windows)
– POSIX (Unix/Linux)
90/25
API - Interface de Programação de Aplicativos
– API Win32 (Windows)– APIs do Windows são bibliotecas de vínculo
dinâmico (DLLs) que fazem parte do sistema operacional Windows. Você as usa para executar tarefas quando é difícil escrever procedimentos equivalentes de sua preferência. Por exemplo, o Windows fornece uma função chamada FlashWindowEx que permite que você crie a barra de título para um aplicativo alternativo entre tonalidades claras e escuras.
91/25
API - Interface de Programação de Aplicativos
– POSIX (Unix/Linux)– Interface Portável entre Sistemas
Operacionais) é uma família de normas definidas pelo IEEE e designada formalmente por IEEE 1003, que tem como objetivo garantir a portabilidade do código-fonte de um programa a partir de um sistema operacional que atenda as normas POSIX para outro sistema POSIX, desta forma as regras atuam como uma interface entre sistemas operacionais distintos.
92/25
API - Interface de Programação de Aplicativos
• Um sistema operacional possui uma grandequantidade de funções na API, que permitem aoprogramador criar janelas, acessar arquivos,criptografar dados etc.
• As APIs dos sistemas operacionais costumamser dissociadas de tarefas mais essenciais,como a manipulação de blocos de memória eacesso a dispositivos. Essas tarefas sãoatributos do núcleo de sistema e raramente sãoprogramáveis.
Avaliação Bimestral
• Data:_______
- Leitura do material- Revisão de exercícios/Exemplos
93/9
94/13
Roteiro
• Sistemas monolíticos• Sistemas em camadas• Sistemas micro-núcleo• Máquinas virtuais
95/13
Sistema Monolítico
• A organização mais comum é aquela queestrutura o sistema como um conjunto de rotinasque podem interagir livremente umas com asoutras.
• Pode ser comparada com uma aplicaçãoformada por vários procedimentos que sãocompilados separadamente e depois linkados,formando um grande e único programaexecutável.– Grande desempenho– Uma falha pode paralisar o todo o núcleo
96/13
Sistema Monolítico
Aplicação Aplicação
System Calls
Hardware
Modo Usuário
Modo Kernel
núcleo
Sistema Monolítico
•PESQUISAR OS TIPOS DE SISTEMAS
OPERACIONAIS MONOLÍTICOS
98/13
Sistema em Camadas
• Divide o sistema operacional em sistemas sobrepostos. Cada módulo oferece um conjunto de funções que pode ser usado por outros módulos.
• A vantagem da estruturação em camadas é isolar o sistema operacional, facilitando sua alteração e depuração, além de criar uma hierarquia de níveis de modos, protegendo as camadas mais internas.
99/13
Sistema em Camadas
• O empilhamento de várias camadas de software faz com que cada pedido de uma aplicação demore mais tempo para chegar até o dispositivo periférico ou recurso a ser acessado, prejudicando o desempenho do sistema.
• Não é óbvio dividir as funcionalidades de um núcleo de sistema operacional em camadas horizontais de abstração crescente, pois essas funcionalidades são inter-dependentes, embora tratem muitas vezes de recursos distintos.
100/13
Sistema em Camadas
2
1
3
Programas de Usuário
Multiprogramação0
Gerência de Memória
Entrada/Saída
Comunicação
4
5 Operador
Kernel
Supervisor
Usuário
Executivo
Sistema VMS
Sistema Multics
Sistema em Camadas
PESQUISAR OS TIPOS DE SISTEMAS
OPERACIONAIS CAMADAS
102/13
Sistemas micro-núcleo (microkernel)
• Uma tendência dos sistemas operacionais é tornar o núcleo menor e mais simples possível e para implementar esta idéia o sistema é dividido em processos.
• Desta forma, sempre que uma aplicação deseja algum serviço ela solicita ao processo responsável, assim, a aplicação que solicita um serviço é chamada de cliente e o processo que responde a solicitação é chamado de servidor.
103/13
Sistema micro-núcleo
• A utilização deste modelo permite que os servidores executem em modo usuário.
• Apenas o núcleo do sistema, responsável pela comunicação entre clientes e servidores, executa no modo kernel.
• O sistema operacional passa a ser de mais fácil manutenção.
• Não importa se o serviço esta sendo processado em um único processador, com múltiplos processadores (fortemente acoplado) ou em sistema distribuído (fracamente acoplado).
104/13
Sistema micro-núcleo
• Em ambiente distribuído permite que um cliente solicite um serviço e a resposta seja processada remotamente.
• Sua implementação é difícil e mais usualmente é implantado uma combinação do modelo de camadas com o cliente-servidor.
• O núcleo do sistema passa a incorporar o escalonamento e gerência de memória além das funções de device drivers.
105/13
Micro-núcleo – Visão Geral
Micro-núcleo
Gerente de memória
Gerente de proteção
Gerente de discos
Gerente de arquivos
Nívelnúcleo
Nívelusuário
aplicação aplicação aplicação
Sistema micro-núcleo
PESQUISAR OS TIPOS DE SISTEMAS
OPERACIONAIS MONOLÍTICOS
107/13
Máquina Virtual
Hardware
Gerência de Máquinas Virtuais
HV1 HV2 HV3
SO1 SO2 SO3
APL1 APL1 APL1