Introdução Sistemas Operacionais I

Propaganda
Sistemas Operacionais I
Prof. Fernando Freitas
Introdução
1.1 O que é um sistema operacional
1.2 História dos sistemas operacionais
1.4 O zoológico de sistemas operacionais
1.5 Conceitos sobre sistemas operacionais
1.6 Chamadas de sistema
1.7 Estrutura de sistemas operacionais
1.8 O mundo de acordo com a linguagem C
1.11 Unidades Métricas
1
Introdução
• Um sistema computacional consiste em
– hardware
– Programas do modo núcleo
– Programas do modo usuário
2
O que é um Sistema Operacional
• É uma máquina estendida
– Oculta os detalhes complicados que têm quer
ser executados
– Apresenta ao usuário uma máquina virtual,
mais fácil de usar
• É um gerenciador de recurso
– Cada programa tem um tempo com o recurso
– Cada programa tem um espaço no recurso
3
História dos Sistemas Operacionais
• Primeira geração 1945 - 1955
– Válvulas, painéis de programação
Antigo sistema em lote
–
–
–
–
traz os cartões para o 1401
lê os cartões para a fita
coloca a fita no 7094 que executa o processamento
coloca a fita no 1401 que imprime a saída
4
História dos Sistemas Operacionais
• Segunda geração 1955 - 1965
– transistores, sistemas em lote
Estrutura de um job FMS típico – 2ª geração
5
História dos Sistemas Operacionais
• Terceira geração 1965 – 1980
– CIs e multiprogramação
– SO enorme e complexo (2x ou 3x > FMS)
– Surge o spooling (simultaneous peripheral
operation online)
– CTSS – 1º SO com tempo compartilhado
• Sistema de multiprogramação
– Três jobs na memória – 3ª geração
6
História dos Sistemas Operacionais
• Quarta geração 1980 – presente
–
–
–
–
–
–
–
–
Computadores pessoais
CP/M – Kildall
MS-DOS – Bill Gates
GUI (Graphical User Interface) – Engelbart – Stanford Research
Macintosh – Steve Jobs
Microsoft Windows – Sucessor do MS-DOS
Windows 95
Windows NT (New Technology)
7
O Zoológico de Sistemas Operacionais
• Sistemas operacionais de computadores de
grande porte
–
–
–
–
Em lote
Processamento de transações
Tempo compartilhado
Ex: OS/390
• Sistemas operacionais de servidores
– Servem múltiplos usuários
– Compartilham recursos
– Ex: Solaris, FreeBSD, Linux e Windows Server
8
O Zoológico de Sistemas Operacionais
• Sistemas operacionais de multiprocessadores
– Múltiplas CPU´s em um único sistema
– Ex: Linux e Windows
• Sistemas operacionais de computadores pessoais
– Boa Interface com usuário
– Ex: Linux, FreeBSD, Windows 7, etc.
• Sistemas operacionais de computadores portáteis
– Não trabalham com discos rígidos
– Ex: Palm OS, Symbiam OS, etc
9
O Zoológico de Sistemas Operacionais
• Sistemas operacionais embarcados
– Não aceitam softwares instalados por usuários
– Ex: QNX, VxWorks
• Sistemas operacionais de nós sensores
– SO dirigido por eventos.
– Deve ser pequeno e simples
– Ex: TinyOS
10
O Zoológico de Sistemas Operacionais
• Sistemas operacionais de tempo-real
– Ações devem acontecer em determinado momento
– Crítico e não crítico
– Ex: e-Cos
• Sistemas operacionais de cartões inteligentes
– Muito primitivo
– Possuem restrições de consumo de energia e de
memória
– Geralmente são sistemas proprietários
11
Conceitos sobre Sistemas
Operacionais (1)
• Uma árvore de processos
– A criou dois processos filhos: B e C
– B criou três processos filhos: D, E, e F
– Processos filhos recebem mesmo UID do pai
12
Conceitos sobre Sistemas
Operacionais (2)
• Espaços de Endereçamento
– Nos sistemas atuais devem ser protegidos
para evitar intervenções de outros processos.
– Espaço de endereçamento do processo >
memória disponível – memória virtual
13
Conceitos sobre Sistemas
Operacionais (3)
• Arquivos
–
–
–
–
–
–
–
–
SO oculta detalhes do disco
Há chamadas de sistema
Arquivos são armazenados em diretórios
Sistema de Arquivos – Organização em Árvore
Caminhos absolutos ou relativos
Sucesso ao acessar arquivos – descritor de arquivo
Mount
Arquivo especial (bloco e caractere)
14
Conceitos sobre Sistemas
Operacionais (4)
Sistema de arquivos de um departamento universitário
15
Conceitos sobre Sistemas
Operacionais (5)
• 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
16
Conceitos sobre Sistemas
Operacionais (6)
Dois processos conectados por um pipe
17
Conceitos sobre Sistemas
Operacionais (7)
• E/S
– Gerenciar dispositivos
• Segurança
– Bits de proteção
– Outros tipos de segurança (contra usuários, por
exemplo)
• Shell
– Não faz parte do SO, assim como as GUI´s
– cat arq1 arq2 arq3 | sort > /dev/lp &
18
Conceitos sobre Sistemas
Operacionais (8)
• Ontogenia recapitula a filogenia
– Memória grande – assembly
• Comp. grande porte > Comp. comercial > microcomputadores
– Hardware de proteção
• Multi e monoprogramação
– Discos
• Tamanho físico / capacidade
– Memória virtual
19
Os Passos de uma Chamada ao
Sistema
Os 11 passos para fazer uma chamada ao
sistema read (fd, buffer, nbytes)
20
Algumas Chamadas ao Sistema
para Gerenciamento de Processos
Fork retorna um valor. Ele vale zero para o processo
filho e é igual ao PID do processo filho no processo pai.
21
Chamadas ao Sistema - Processos
• O interior de um shell:
22
Chamadas ao Sistema - Processos
Os processos têm três segmentos:
texto, dados e pilha
23
Algumas Chamadas ao Sistema
para Gerenciamento de Arquivos
24
Algumas Chamadas ao Sistema
para Gerenciamento de Diretório
25
Chamadas ao Sistema - Diretórios
I-node
(a) Dois diretórios antes da ligação de /usr/jim/memo ao
diretório ast
(b) Os mesmos diretórios depois dessa ligação
Diretórios fazem referência a pares de informações (i-node
e nome ASCII)
26
Chamadas ao Sistema - Diretórios
(a) Sistema de arquivos antes da montagem
(b) Sistema de arquivos depois da montagem
27
Algumas Chamadas ao Sistema
para Tarefas Diversas
28
Chamadas ao Sistema
Algumas chamadas da interface API Win32
29
Exercícios
1.
2.
3.
4.
5.
6.
7.
8.
O que é um Sistema Operacional? Quais suas funções
principais?
Comente sobre os SO´s da terceira geração.
Diferencie SO de grande porte e SO de servidores.
Diferencie SO de tempo real crítico e não crítico.
Quando dizemos que na computação “Ontogenia recapitula a
filogenia”, o que estamos querendo dizer?
De modo resumido, fale sobre os 11 passos para efetuar uma
chamada de Sistema read.
O que acontece quando uma chamada unlink ocorre?
Qual a função da chamada de sistema mount?
30
Estrutura de Sistemas Operacionais
Sistemas Monolíticos
• De longe o mais comum
• Coleção de rotinas ligados a um único grande
programa binário executável
• Estrutura básica
1.
2.
3.
Prog. principal invoca rotina serviço requisitado
Rotina serviço executa chamada sistema
Rotinas utilitárias auxiliam rotinas de serviço (ex: buscar
dados em programas de usuários)
31
Estrutura de Sistemas Operacionais
Sistemas Monolíticos
Modelo simples de estruturação
de um sistema monolítico
32
Estrutura de Sistemas Operacionais
Sistemas de Camadas
• Surgiu em 1968 com o sistema operacional THE –
implementado por Dijkstra e seus alunos
• Sistema em lote simples com 6 camadas
• Desenvolvido para
Electrologica X8
o
computador
holandês
• Posteriormente surgiu o MULTICS que também
utilizou o conceito de camadas – Série de anéis
concêntricos.
33
Estrutura de Sistemas Operacionais
Sistemas de Camadas
Estrutura do sistema operacional THE
34
Estrutura de Sistemas Operacionais
Micronúcleo
• Fortes argumentos p/ colocar o mínimo
possível no núcleo
1. Erros no núcleo podem derrubar o SO
2. Erros no modo usuário são menos trágicos
• Idéia Básica
1. Dividir o SO em módulos pequenos e bem
definidos
2. Criar o micronúcleo
35
Estrutura de Sistemas Operacionais
Micronúcleo
Estrutura do Sistema Minix 3
36
Estrutura de Sistemas Operacionais
O modelo cliente-servidor
• Ligeira variação da idéia de micronúcleo
• Duas classes de processos:
– Servidores – prestam algum serviço
– Clientes – usam este serviço
• Normalmente se comunicam por uma rede
37
Estrutura de Sistemas Operacionais
O modelo cliente-servidor
O modelo cliente-servidor em uma rede
38
Estrutura de Sistemas Operacionais
Máquinas Virtuais
• Monitor de máquina virtual – coração do sistema.
Atualmente conhecido como hipervisor.
– Provê n máquinas virtuais para a próxima camada.
– Cópias exatas do hardware
• Utilizada por:
– Servidores empresariais de alto desempenho (união de
servidores)
– Empresas de hospedagem web (máquinas completas para
clientes)
– Usuários finais (2 SO’s em um mesmo pc)
39
Estrutura de Sistemas Operacionais
Máquinas Virtuais
Estrutura do VM/370 com o CMS
40
Estrutura de Sistemas Operacionais
Máquinas Virtuais
41
Estrutura de Sistemas Operacionais
Exonúcleo
• Utiliza a divisão de recursos como estratégia alternativa
a clonagem existente em máquinas virtuais
• Exonúcleo
–
–
–
–
Programa na camada mais inferior executado em modo núcleo
Aloca recursos às máquinas virtuais
Assegura os recursos de cada máquina
Poupa uma camada de mapeamento
42
Exercícios
1. Diferencie Sistemas Monolíticos e Sistemas de
Micronúcleo.
2. Qual a principal característica de um Sistema de
camadas?
3. Qual a vantagem de se trabalhar com sistemas de
micronúcleo?
4. Diferencie Máquinas Virtuais e Exonúcleo.
5. Na sua opinião, qual sistema é melhor: Máquinas
Virtuais ou Exonúcleo? Por quê?
43
O mundo de acordo com a
linguagem C
• A linguagem C
– Controle sobre memória é um atrativo
– A Falta de um coletor de lixo é um defeito
• Arquivos de cabeçalho
– Permite definição de macros
– Podem conter compilações condicionais
44
O mundo de acordo com a
linguagem C
• Grandes projetos de programação
– Cada arquivo .c é compilado em um arquivo objeto .o
– Recompilação completa é inaceitável (>= 5 milhões linhas)
– Make
• Identifica arquivos requeridos,
• Verifica modificações
• Recompilações mínimas
– Linker
• Combina .o em um único arquivo binário executável
45
O mundo de acordo com a
linguagem C
O processo de compilação
C e arquivos de cabeçalho
para criar um arquivo
executável
46
O mundo de acordo com a
linguagem C
• O modelo de execução
– Pode carregar pedaços. Ex:
• Drivers
• Sistemas de arquivos
– Múltiplos segmentos
• Texto (fixo)
• Dados (crescente)
• Pilha (variável)
47
Unidades Métricas
Os prefixos métricos
OBS: Vale lembrar que quando fazemos referências a unidades métricas
para armazenamento de dados, os prefixos fazem referência a base 2 e não
base 10. Ex: 5 MB = 5 * 220 bytes e não 5 * 106 bytes
48
Download