1 conceitos e estrutura do so prof. alexandre monteiro recife

63
1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

Upload: internet

Post on 21-Apr-2015

107 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

1

Conceitos e Estrutura do SO

Prof. Alexandre Monteiro

Recife

Page 2: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

Contatos

Prof. Guilherme Alexandre Monteiro Reinaldo

Apelido: Alexandre Cordel

E-mail/gtalk: [email protected]

[email protected]

Site: http://www.alexandrecordel.com.br/fbv

Celular: (81) 9801-1878

Page 3: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

3

Agenda

•Revisão sobre hardware de computadores

•Conceitos sobre Sistemas Operacionais

•Chamadas ao sistema

•Estrutura de Sistemas Operacionais

Page 4: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

4

Revisão sobre hardware de computadores (1)

Componentes de um computador pessoal simples

Page 5: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

Processador

É o cérebro do computador – CPU.

Ciclo Básico do Processador

1. Busca a 1ª instrução da memória;

2. Decodifica para determinar seus operandos e qual operação executar;

3. Executa as operações subsequentes. O ciclo é repetido até que o programa pare.

Cada CPU tem um conjunto específico de instruções.

MMU (memory management unit): unidade de gerenciamento de memória.

Page 6: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

Processador Clock (ciclo de instrução) Um computador é algo que possui funções, tarefas e

coisas a fazer, ele precisa de um sinal de relógio para sincronizar as suas operações, assim como nós mesmos precisamos sincronizar as nossas.

Esse relógio é chamado de CLOCK, e ele é gerado por um oscilador eletrônico que fornece uma sequência ininterrupta de pulsos com períodos constantes.

A isso chamamos, de frequência. Portanto, quando falamos que um computador possui tanto de Hertz(Hz), estamos falando da velocidade que ele processa ou sincroniza algo.

Page 7: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

Processador Clock (ciclo de instrução) A cada intervalo de tempo T, que corresponde a um

período do sinal de clock, dá-se o nome de estado.

O estado é a unidade básica de tempo do microprocessador.

Cada instrução demora um número inteiro de estado para a sua completa execução.

Algumas instruções podem ter 4 estados, isto é, demoram 4 períodos do sinal de clock, outras podem chegar a ter 18 estados.

Por exemplo: O tempo gasto para processar uma instrução de 7 estados no microprocessador 8085 com um cristal que fornece um sinal externo do oscilador de 6,144 MHz é de , 2,28 microsegundos, pois a frequência do sinal de clock é de 3,072 MHz e o período, que corresponde ao estado, é de 325,52 ns(nano segundos).

Page 8: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

8

Revisão sobre hardware de computadores (2)

(a) Um pipeline de três estágios

(b) Uma CPU superescalar

Page 9: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

9

Revisão sobre hardware de computadores (3)

Típica hierarquia de memória• números mostrados são apenas aproximações

Page 10: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

Registradores

Registradores de propósito geral: armazena variáveis importantes e resultados temporários

Contador de Programas: contém o endereço de memória da próxima instrução a ser buscada. Depois que busca é atualizado para apontar a próxima instrução.

Ponteiro de Pilha: aponta para o topo da pilha atual na memória. A pilha contém uma instrução

PSW (program status word – palavra de estado do programa): contém os bits de códigos de condições de instruções de comparação, pelo nível de prioridade da CPU.

Page 11: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

Registrador Ponteiro de Pilha

Page 12: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

Cache (L1, L2), RAM e ROM

Cache: Memória extremamente rápida e cara.

• Cache hit vs. Cache Miss Cache L1 (16KB): dentro da CPU, decodifica instruções;

Cache L2 (4MB): armazena memória recente, mais lenta.

Memória RAM (4GB): volátil.

Memória CMOS: data/hora, disco de boot.

Memória ROM: boot, placas.

Memória Flash (portáteis): intermediária entre a RAM e a de disco

Page 13: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

13

Cache

(a) Chip quad-core com cache L2 compartilhada.

(b) Chip quad-core com cache L2 separada.

Page 14: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

14

Revisão sobre hardware de computadores(4)

Estrutura de uma unidade de disco (1 TB)

Setores de 512 bytes / 5400, 7200 e 10800 rpm /

braço setor – 1ms / braço disco – 5 a 10 ms

Page 15: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

15

Revisão sobre hardware de computadores (6)

(a) Passos para iniciar um dispositivo de E/S e obter uma interrupção

(b) Como a CPU é interrompida

Page 16: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

16

Revisão sobre hardware de computadores(7)

Barramentos (8): Estrutura de um sistema Pentium grande

BUS – Barramento Serial Universal

Page 17: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

17

Uma árvore de processos

• A criou dois processos filhos: B e C• B criou três processos filhos: D, E, e F

Conceitos sobre Sistemas Operacionais (1)

Page 18: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

18

(a) Um deadlock potencial. (b) um deadlock real.

Conceitos sobre Sistemas Operacionais (2)

Page 19: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

19

Conceitos sobre Sistemas Operacionais (3)

Sistema de arquivos de um departamento universitário

Page 20: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

20

Conceitos sobre Sistemas Operacionais (4)

Antes da montagem, • os arquivos do disco flexível são inacessíveis

Depois da montagem do disco flexível em b,• os arquivos do disco fazem parte da hierarquia de arquivos

Page 21: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

21

Conceitos sobre Sistemas Operacionais (5)

Dois processos conectados por um pipe

Page 22: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

22

Interfaces de um Sistema Operacional

Usuário – SO:

• Shell ou Interpretador de comandos

• GUI

Programas – SO:

• Chamadas ao Sistema

Page 23: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

23

Conceitos BásicosChamadas ao Sistema (System Call) Modos de Acesso:

• Modo usuário;• Modo kernel ou Supervisor ou Núcleo;• São determinados por um conjunto de bits localizados

no registrador de status do processador: PSW (program status word);

- Por meio desse registrador, o hardware verifica se a instrução pode ou não ser executada pela aplicação;

• Protege o próprio kernel do Sistema Operacional na RAM contra acessos indevidos;

Page 24: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

24

Conceitos Básicos Chamadas ao Sistema (System Call) Modo usuário:

• Aplicações não têm acesso direto aos recursos da máquina, ou seja, ao hardware;

• Quando o processador trabalha no modo usuário, a aplicação só pode executar instruções sem privilégios, com um acesso reduzido de instruções;

• Por que? Para garantir a segurança e a integridade do sistema;

Page 25: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

25

Conceitos Básicos Chamadas ao Sistema (System Call) Modo Kernel:

• Aplicações têm acesso direto aos recursos da máquina, ou seja, ao hardware;

• Operações com privilégios;• Quando o processador trabalha no modo kernel, a aplicação tem acesso ao conjunto total de instruções;

• Apenas o SO tem acesso às instruções privilegiadas;

Page 26: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

26

Conceitos Básicos Chamadas de Sistema (System Call) Se uma aplicação precisa realizar alguma instrução

privilegiada, ela realiza uma chamada ao sistema (system call), que altera do modo usuário para o modo kernel;

Chamadas de sistemas são a porta de entrada para o modo Kernel;

• São a interface entre os programas do usuário no modo usuário e o Sistema Operacional no modo kernel;

• As chamadas diferem de SO para SO, no entanto, os conceitos relacionados às chamadas são similares independentemente do SO;

Page 27: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

27

Conceitos Básicos Chamadas de Sistema TRAP: instrução que permite o acesso ao modo

kernel;

Exemplo:

• Instrução do UNIX: count = read(fd,buffer,nbytes);

Arquivo a ser lido

Ponteiro para o Buffer

Bytes a serem lidos

O programa sempre deve checar o retorno da chamada de sistema para saber se algum erro ocorreu!!!

Page 28: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

28

Chamadas ao Sistema

Endereço 0

Retorno

Colocar o código para read no registrador

TRAP

Empilha nbytes

Incrementa SPComando read

Empilha fdEmpilha &buffer

Manipulador de Chamadas

Dispatch

Endereço0xFFFFFFFFF

Biblioteca do ProcedimentoREAD

Chamada ao ProcedimentoREAD

Kernel SO

Espaço do

Usuário

1

32

4

5

6

7 8

9

10

Tabela de ponteiros para Chamadas

11

Page 29: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

29

11 Passos de uma Chamada ao Sistema read (fd, buffer, nbytes)

Page 30: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

30

Algumas Chamadas ao Sistema para Gerenciamento de Processos

Page 31: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

31

Algumas Chamadas ao Sistema para Gerenciamento de Arquivos

Page 32: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

32

Algumas Chamadas ao Sistemapara Gerenciamento de Diretório

Page 33: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

33

Algumas Chamadas ao Sistemapara Tarefas Diversas

Page 34: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

34

Conceitos Básicos Chamadas ao Sistema

Chamadas da interface. Unix x Windows:• Unix

- Chamadas da interface muito semelhantes às chamadas ao sistema

- ~100 chamadas a procedimentos

Retorno

Colocar o código para read no registrador

TRAP

Empilha nbytes

Incrementa SPComando read

Empilha fdEmpilha &buffer

Manipulador de Chamadas

Dispatch

Windows Chamadas da interface

totalmente diferente das chamadas ao sistema

APIWin32 (Application Program Interface)

Padrão de acesso ao sistema operacional

Facilita a compatibilidade Possui milhares de procedimentos

Page 35: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

35

Chamadas ao Sistema (1)

O interior de um shell:

Page 36: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

36

Chamadas ao Sistema (2)

Os processos têm três segmentos:

texto, dados e pilha

Page 37: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

37

Chamadas ao Sistema (3)

(a) Dois diretórios antes da ligação de /usr/jim/memo ao diretório /usr/ast/note

link(“/usr/jim/memo”, “/usr/ast/note”)

(b) Os mesmos diretórios depois dessa ligação

Page 38: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

38

Chamadas ao Sistema (4)

(a) Sistema de arquivos antes da montagem

(b) Sistema de arquivos depois da montagem

Page 39: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

39

Chamadas ao Sistema (5)

Algumas chamadas da interface API Win32

Page 40: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

40

Estrutura dos Sistemas Operacionais – Baseados em Kernel (núcleo) Kernel é o núcleo do Sistema Operacional

Provê um conjunto de funcionalidades e serviços que suportam várias outras funcionalidades do SO

O restante do SO é organizado em um conjunto de rotinas não-kernel

Kernel

Hardware

Rotinas não kernel

Interface com usuário

Page 41: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

41

Estrutura dos Sistemas Operacionais

Principais tipos de estruturas:

• Monolíticos;• Em camadas;• Máquinas Virtuais;• Arquitetura Micro-kernel;• Cliente-Servidor;

Page 42: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

42

Estrutura dos Sistemas Operacionais - Monolítico Os serviços (chamadas) requisitados ao sistema são

realizados por meio da colocação de parâmetros em registradores ou pilhas de serviços seguida da execução de uma instrução chamada TRAP;

Page 43: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

43

Estrutura dos Sistemas Operacionais - Monolítico Todos os módulos do sistema são compilados

individualmente e depois ligados uns aos outros em um único arquivo-objeto;

O Sistema Operacional é um conjunto de processos que podem interagir entre si a qualquer momento sempre que necessário;

Cada processo possui uma interface bem definida com relação aos parâmetros e resultados para facilitar a comunicação com os outros processos;

Simples; Primeiros sistemas UNIX e MS-DOS;

Page 44: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

44

Estrutura de Sistemas Operacionais (1)

Modelo simples de estruturação

de um sistema monolítico

Page 45: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

45

Estrutura dos Sistemas Operacionais - Monolítico

M odo kernel

ap lica ção ap lica ção

M odo u suá rio

System ca ll

H a rdw are

Page 46: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

46

Estrutura dos Sistemas Operacionais - Monolítico

Programas de usuáriorodam em modo usuário

Rotinas do SO rodam em modo kernelProcedimentos de

Serviço

Programa de usuário 2

Programa de usuário 1 Chamada ao sistema (kernel)

Mem

ória

Pri

nci

pal

1

2

TRAP 3

Tabela de Escalonamento

4

Procedimentos de Serviços

Implementação de uma Chamada de Sistema

chaveamento da máquina do modo usuário para o modo kernel e transferência do controle para o Sistema

Operacional

Sistema Operacional examina os parâmetros da chamada para determinar qual procedimento

deve ser executado

SO indexa em uma tabela um ponteiro para o processo responsável

pela execução

a chamada é concluída e o controle volta ao programa

do usuário

Page 47: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

47

Estrutura dos Sistemas Operacionais – Em camadas Possui uma hierarquia de níveis;

Primeiro sistema em camadas: THE (idealizado por E.W. Dijkstra);

• Possuía 6 camadas, cada qual com uma função diferente;

• Sistema em batch simples;

Vantagem: isolar as funções do sistema operacional, facilitando manutenção e depuração

Desvantagem: cada nova camada implica uma mudança no modo de acesso

Atualmente: modelo de 2 camadas

Page 48: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

48

Estrutura dos Sistemas Operacionais – Em camadas

Fornecimento de Serviços

Camadas definidas no THE

Page 49: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

49

Estrutura dos Sistemas Operacionais – Máquina Virtual Idéia em 1960 com a IBM VM/370;

Modelo de máquina virtual cria um nível intermediário entre o SO e o Hardware;

Esse nível cria diversas máquinas virtuais independentes e isoladas, onde cada máquina oferece um cópia virtual do hardware, incluindo modos de acesso, interrupções, dispositivos de E/S, etc.;

Cada máquina virtual pode ter seu próprio SO;

Page 50: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

50

Estrutura dos Sistemas Operacionais – Máquina Virtual Principais conceitos:

• Monitor da Máquina Virtual (VMM): roda sobre o hardware e implementa multiprogramação fornecendo várias máquinas virtuais é o coração do sistema;

• CMS (Conversational Monitor System):- TimeSharing;- Executa chamadas ao Sistema Operacional;

• Máquinas virtuais são cópias do hardware, incluindo os modos kernel e usuário;

• Cada máquina pode rodar um Sistema Operacional diferente;

Page 51: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

51

Estrutura dos Sistemas Operacionais – Máquina Virtual

Instruções de E/S

Hardware (VMM)

VM/370

CMS CMSCMS

Cópias virtuais do 370s

TRAP

Chamadas ao sistema

TRAP

Monitor da Máquina Virtualroda sobre o hardware e

implementa multiprogramação

TimeSharing; Chamadas ao Sistema

Cada máquina pode rodar um Sistema

Operacional diferente

Page 52: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

52

Estrutura dos Sistemas Operacionais – Máquina Virtual

A idéia de máquina virtual foi posteriormente utilizada em contextos diferentes:

• Programas MS-DOS: rodam em computadores 32bits;

- As chamadas feitas pelo MS-DOS ao Sistema Operacional eram realizadas e monitoradas pelo monitor da máquina virtual (VMM);

Page 53: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

53

Estrutura dos Sistemas Operacionais – Máquina Virtual

A idéia de máquina virtual foi posteriormente utilizada em contextos diferentes:

• Programas JAVA (Máquina Virtual Java-JVM): o compilador Java produz código para a JVM (bytecode). Esse código é executado pelo interpretador Java:

- Programas Java rodam em qualquer plataforma, independentemente do Sistema Operacional;

Page 54: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

54

Estrutura dos Sistemas Operacionais – Máquina Virtual

A idéia de máquina virtual foi posteriormente utilizada em contextos diferentes:

• Computação em nuvem- Virtualização dos servidores simula diferentes ambientes em

servidores físicos

Page 55: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

55

Estrutura dos Sistemas Operacionais – Máquina Virtual Vantagens

• Flexibilidade; Desvantagem:

• Simular diversas máquinas virtuais não é uma tarefa simples sobrecarga;

Page 56: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

56

Estrutura dos Sistemas Operacionais – Micro-Kernel

M odo kernel

M odo u suá rio

M icrokernel

H a rdw are

Page 57: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

57

Estrutura dos Sistemas Operacionais – Cliente/Servidor Reduzir o Sistema Operacional a um nível mais

simples:

• Kernel: implementa a comunicação entre processos clientes e processos servidores Núcleo mínimo;

• Maior parte do Sistema Operacional está implementado como processos de usuários (nível mais alto de abstração);

• Sistemas Operacionais Modernos;

Page 58: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

58

Estrutura dos Sistemas Operacionais – Cliente/Servidor

Cada processo servidor trata de uma tarefa

• Os processos servidores não têm acesso direto ao hardware. Assim, se algum problema ocorrer com algum desses servidores, o hardware não é afetado;

• O mesmo não se aplica aos serviços que controlam os dispositivos de E/S, pois essa é uma tarefa difícil de ser realizada no modo usuário devido à limitação de endereçamento. Sendo assim, essa tarefa ainda é feita no kernel.

Page 59: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

59

Estrutura dos Sistemas Operacionais – Cliente/Servidor Adaptável para Sistemas Distribuídos;

Page 60: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

60

Estrutura dos Sistemas Operacionais – Cliente/Servidor Linux

• Monolítico +Módulos

Windows• Microkernel + Camadas + Módulos

Page 61: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

61

Tarefa para casa.....

Ler capítulo 1 do Tanenbaum

Page 62: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

62

Unidades Métricas

Os prefixos métricos

Page 63: 1 Conceitos e Estrutura do SO Prof. Alexandre Monteiro Recife

Referências

Sistemas Operacionais Modernos – 3ª Edição. A. Tanenbaum, 2008.

Modern Operating Systems 3 e. Prentice-Hall, 2008.