aulas - sistemas operacionais 1 a 107

Post on 19-Jan-2016

6 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related