Sistemas de Informação
Faculdade Sul-Americana - FASAM
3º Período - 2019.2
Quem sou eu?
Airton Bordin Junior
● Graduação airtonbjunior@gmail.com
○ Ciência da Computação
○ Gestão Pública
github.com/airtonbjunior
● Especialização
○ Redes de Computadores
○ MBA Gerenciamento de Projetos linkedin.com/in/airtonbjunior
● Mestrado em Ciência da Computação -
Inteligência Artificial
Ementa
● Conceitos básicos de sistemas operacionais: processos,
organização de sistemas operacionais, chamadas de sistema;
● Gerência do processador: estados do processo, escalonamento;
● Entrada e saída: dispositivos controladores, softwares de E/S,
interrupções, dependência e independência;
● Gerência de Memória: partições fixas e variáveis, paginação,
segmentação, memória virtual;
● Estudos de Caso: Famílias Windows e GNU/Linux.
Airton Bordin Junior - airtonbjunior@gmail.com Sistemas Operacionais 2
Bibliografia básica
● DEITEL, Harvey M.; DEITEL, Paul J.; CHOFFNES, David R.
Sistemas operacionais. 3. ed. São Paulo: Pearson, 2005
Sistemas Operacionais
Introdução
Sistemas Operacionais
Histórico
1ª 2ª 3ª 4ª 5ª
geração geração geração geração geração
● Válvulas (Bugs);
● Cálculos matemáticos;
● Grupo restrito de usuários;
● Necessário conhecimento do funcionamento do
hardware;
● “Inexistência” de Sistemas Operacionais.
● ENIAC
○ ~17.500 válvulas;
○ 30 toneladas;
○ 180 m²;
○ 200 bits RAM.
https://tecnoblog.net/56910/eniac-primeiro-computador-do-mundo-completa-65-anos/
● Transistores;
● Computadores mais rápidos e eficientes;
● Cartões perfurados, sistemas em lote;
● Assembly.
● Circuítos integrados;
● Multiprogramação;
● Linha de produtos distintos e incompatíveis;
● IBM 360 - OS/360;
● “Popularização” das linguagens de alto nível.
● Computadores móveis;
● Blackberry OS;
● Symbian;
● Android;
● iOS.
Sistemas Operacionais
Principais conceitos
● Gerenciamento do processador;
● Gerenciamento de memória;
● Gerenciamento de dispositivos;
● Gerenciamento de arquivos;
● Gerenciamento de proteção;
● Suporte de redes;
● Outros suportes.
Máquina estendida
Sistema
Operacional
Gerenciador de
recursos
Sistemas Operacionais
Gerenciamento do Processador
Tanenbaum, Andrew S
Airton Bordin Junior - airtonbjunior@gmail.com Sistemas Operacionais 27
Gerenciamento do Processador
Tanenbaum, Andrew S
Airton Bordin Junior - airtonbjunior@gmail.com Sistemas Operacionais 27
Gerenciamento do Processador
● Em execução
○ Quando o processo está, de fato, sendo processado pela CPU.
● Pronto
○ Quando o processo possui todas as condições necessárias para sua
execução, porém, não está de posse da CPU;
○ Em geral, existem vários processos nesta fase, e o S.O. é
responsável por selecionar o próximo processo a usar a CPU.
● Bloqueado
○ Quando o processo aguarda por algum evento externo ou por algum
recurso do sistema indisponível no momento, por exemplo:
informação de algum dispositivo de I/O, etc.
● Término de processos
○ Voluntário
■ Saída normal;
■ Saída por erro.
○ Involuntário
■ Erro fatal;
■ Morto por outro processo.
● Escalonador de processos
○ Age sempre sobre os processos em estado
de PRONTO.
● -20 a +19
● Quanto menor, maior a prioridade
Sistemas Operacionais
Gerenciamento do Processador > Algoritmos escalonamento
● FIFO;
● SJF (Shortest Job First);
● Round-Robin;
● SRT (Shortest Remaining Time);
● Prioridade;
● Múltiplas filas;
● Múltiplas filas com realimentação;
● Escalonamento para vários processadores;
● Escalonamento de tempo real.
Airton Bordin Junior - airtonbjunior@gmail.com Sistemas Operacionais 45
Gerenciamento do Processador > Algoritmos escalonamento
P1
26ms
P2
14ms
P3
5ms
P4
25ms
P1
25ms 26ms
P1 P2
P1 P2 P3
P1 P2 P3 P4
P1
26ms
P2
14ms
P3
5ms
P4
5ms
P4
5ms 14ms
P4 P3
P4 P3 P1
P4 P3 P1 P2
● Round Robin
○ Um dos mais antigos algoritmos de
escalonamento;
○ Simples, justos e amplamente utilizado
■ DNS, balanceamento de carga, etc.
○ A cada processo é designado um intervalo
■ QUANTUM.
○ Preemptivo.
P1
26ms
P2
14ms
P3
5ms
P4
Quantum: 6ms
Airton Bordin Junior - airtonbjunior@gmail.com Sistemas Operacionais 55
Gerenciamento do Processador > Algoritmos escalonamento
Round Robin
??? P1: 25ms
P2: 26ms
P3: 14ms
P4: 5ms
6ms
6ms
6ms
P1
6ms
6ms 6ms
P1
P2
6ms
P1
P2
P3
6ms
P1
P2
P3
P4
6ms
P1
P2
P3
P4
6ms
P1 P1
P2
P3
P4
6ms
P1 P1
P2 P2
P3
P4
6ms
P1 P1
P2 P2
P3 P3
P4
6ms
P1 P1 P1
P2 P2
P3 P3
P4
6ms
P1 P1 P1
P2 P2 P2
P3 P3
P4
6ms
P1 P1 P1
P2 P2 P2
P3 P3 P3
P4
6ms
P1 P1 P1
P2 P2 P2
P3 P3 P3
P4
6ms
P1 P1 P1 P1
P2 P2 P2
P3 P3 P3
P4
6ms
P1 P1 P1 P1
P2 P2 P2 P2
P3 P3 P3
P4
6ms
P
P1 P1 P1 P1 1
P2 P2 P2 P2
P3 P3 P3
P4
6ms
P
P1 P1 P1 P1 1
P2 P2 P2 P2
P3 P3 P3
P4
6ms
P
P1 P1 P1 P1 1
P2 P2 P2 P2 P2
P3 P3 P3
P4
6ms
P
P1 P1 P1 P1 1
P2 P2 P2 P2 P2
P3 P3 P3
P4
● Prioridade definida:
○ Internamente ou externamente.
● Problema: Starvation – Processos de baixa
prioridade podem ficar indefinidamente em estado
de PRONTO;
● Solução: aumentar progressivamente a prioridade
dos processos em estado de PRONTO aguardando
a vez de usar a CPU.
Starvation:
Quando os responsáveis
foram desligar o IBM 7094 no
MIT em 1973, descobriram
um processo com baixa
prioridade que estava em
estado de PRONTO desde
1967 e ainda não havia sido
processado.
https://scopeweb.mit.edu
● Múltiplas filas
○ Processos divididos em grupos
■ Em função do processamento
● Sistema;
● Interativo;
● Batch.
■ Cada um com mecanismos de escalonamento
● Interativo - Round Robin;
● Batch - FIFO.
Airton Bordin Junior - airtonbjunior@gmail.com Sistemas Operacionais 63
Gerenciamento do Processador > Algoritmos escalonamento
Alta prioridade
Fila de processos
do sistema
Fila de processos
interativos
Fila de processos
Baixa prioridade
batch
Alta prioridade
Fila 1
Fila 2
Fila 3
...
Fila N
Baixa prioridade
● Abordagens do algoritmo
○ Simétrico: Cada processador faz seu próprio
escalonamento;
○ Mestre-escravo (assimétrico): Um algoritmo é
executado em um processador reservado
somente para esse fim, e escalona os outros
processos em outros processadores.
https://news.sanfordhealth.org
https://www.wired.com/story/boeing-737-max-8-ethiopia-crash-faa-software-fix-lion-air/
Sistemas Operacionais
Gerenciamento do Processador > Threads
Na prática...
● Linux
○ top -H
○ htop
○ ps -eT
● Processos x Threads
○ Processo: programa em execução que contém um único
fluxo de execução;
○ Threads: programa em execução com múltiplos fluxos de
execução.
● Benefícios:
○ Velocidade de criação das Threads;
○ Capacidade de resposta;
○ Compartilhamento de recursos;
○ Economia de recursos;
○ Desempenho.
● Principais diferenças
○ Processos são geralmente independentes, enquanto
Threads são subconjuntos de um processo;
○ Processos carregam mais informações que Threads;
○ Processos tem espaço de endereçamento separado;
○ Processos interagem somente através de mecanismos
de comunicação entre processos fornecidos pelo S.O.;
○ Troca de contexto entre Threads usa o mesmo
procedimento que nos processos, porém é tipicamente
mais rápida.
Atividade Prática
Sistemas Operacionais
Gerenciamento do Processador > Comunicação entre processos
P1 P2
P1 Canal
P2
S.O.
.
Airton Bordin Junior - airtonbjunior@gmail.com Sistemas Operacionais 85
Gerenciamento do Processador > Comunicação entre processos
● Memória compartilhada
○ Mesmo segmento de memória encontra-se no espaço
de endereçamento dos processos comunicando;
○ S.O. oferece chamadas permitindo a criação de uma
área de memória compartilhada
■ Não se envolve diretamente com a sincronização e
comunicação
○ Quando um processo realiza modificação, todos os
outros que compartilham podem ver a alteração.
● Memória compartilhada
○ Vantagens
■ É possível acessar uma parte específica de uma
estrutura de dados, e não necessariamente a
estrutura completa (Random Access);
■ Forma mais rápida para dois processos trocarem
dados.
○ Desvantagens
■ Não há mecanismo automático de sincronização.
P1 ... P1 Arquivo
P2 P2
...
Airton Bordin Junior - airtonbjunior@gmail.com Sistemas Operacionais 91
Gerenciamento do Processador > Comunicação entre processos
○ Condições de corrida;
■ Produtor mais rápido que o consumidor;
■ Consumidor mais rápido que o produtor.
○ Deadlock.
● Problema de sincronização
○ Produtor x Consumidor
8 2
1
7 6 5 4 3
Produtor Consumidor
Produtor mais veloz que
consumidor
3
2 1
Produtor Consumidor
Consumidor mais veloz
que produtor
Spool de
impressão
Próximo endereço
livre = 7
... Próximo endereço a
ser impresso = 4
P1 4 abcd
5 xyzw
6 prog.n
7
P2
...
Airton Bordin Junior - airtonbjunior@gmail.com Sistemas Operacionais 94
Gerenciamento do Processador > Comunicação entre processos
Spool de
impressão
1
Próximo endereço
livre = 7
... Próximo endereço a
ser impresso = 4
P1 4 abcd
5 xyzw
6 prog.n
7
P2
...
Airton Bordin Junior - airtonbjunior@gmail.com Sistemas Operacionais 94
Gerenciamento do Processador > Comunicação entre processos
Spool de
impressão
1
Próximo endereço
livre = 7
... Próximo endereço a
ser impresso = 4
P1 4 abcd
5 xyzw
6 prog.n
2 7 P1imprimir
p1imprimir
P2
...
Airton Bordin Junior - airtonbjunior@gmail.com Sistemas Operacionais 94
Gerenciamento do Processador > Comunicação entre processos
Spool de
impressão
1
Próximo endereço
livre = 7
... Próximo endereço a
ser impresso = 4
P1 4 abcd
5 xyzw
6 prog.n
2 7 P1imprimir
p1imprimir
P2
Spool de
impressão
Próximo endereço
livre = 7
... Próximo endereço a
ser impresso = 4
P1 4 abcd
5 xyzw
1
6 prog.n
7 P1imprimir
p1imprimir
P2
...
Airton Bordin Junior - airtonbjunior@gmail.com Sistemas Operacionais 94
Gerenciamento do Processador > Comunicação entre processos
Spool de
impressão
Próximo endereço
livre = 7
... Próximo endereço a
ser impresso = 4
P1 4 abcd
5 xyzw
1
6 prog.n
7 P1imprimir
P2
2
...
Airton Bordin Junior - airtonbjunior@gmail.com Sistemas Operacionais 94
Gerenciamento do Processador > Comunicação entre processos
Spool de
impressão
Próximo endereço
livre = 7
... Próximo endereço a
ser impresso = 4
P1 4 abcd
5 xyzw
1
6 prog.n
7 P2imprimir
P2
2
...
Airton Bordin Junior - airtonbjunior@gmail.com Sistemas Operacionais 94
Gerenciamento do Processador > Comunicação entre processos
Spool de
impressão
Próximo endereço
livre = 7
... Próximo endereço a
ser impresso = 4
P1 4 abcd
5 xyzw
1
6 prog.n
7 P2imprimir
P2
2
Impressão de P1 nunca
acontecerá!
...
Airton Bordin Junior - airtonbjunior@gmail.com Sistemas Operacionais 94
Gerenciamento do Processador > Comunicação entre processos
● Como resolver?
Sistemas Operacionais
Gerenciamento de Memória
Registradores
+veloz +caro
-espaço Cache
Nível 1
Nível 2 Armazenamento
temporário
RAM
Discos Armazenamento
permanente
Memória
Sistemas Operacionais
Gerenciamento de Memória > Alocação Fixa
Partição 4
900k
Partição 3
500k
Partição 2
200k
Partição 1
100k
S.O.
0
● Problemas:
○ Filas com grande quantidade de processos enquanto
outras filas vazias ou com poucos processos;
○ Espaço desperdiçado nas partições;
○ Exemplo: Partição 4 com 3 processos e partição 2 vazia.
● Como resolver?
● Problemas:
○ Filas com grande quantidade de processos enquanto
outras filas vazias ou com poucos processos;
○ Espaço desperdiçado nas partições;
○ Exemplo: Partição 4 com 3 processos e partição 2 vazia.
● Como resolver?
○ Implementar o método com uma fila única.
Partição 4
900k
Partição 3
● Quando determinada partição
500k está livre, o mais próximo do
Partição 2
início da fila que melhor se
ajusta à essa partição é
200k
carregado.
Partição 1
100k
S.O.
0
● Problemas
○ Grande desperdício de memória;
○ Processo pode ocupar somente um pequeno pedaço de
uma partição;
○ Restante da partição fica inutilizado.
● Como resolver?
● Problemas
○ Grande desperdício de memória;
○ Processo pode ocupar somente um pequeno pedaço de
uma partição;
○ Restante da partição fica inutilizado.
● Como resolver?
○ Alocação com partições variáveis
Sistemas Operacionais
Gerenciamento de Memória > Alocação Variável
Sistemas Operacionais
Gerenciamento de Memória > Memória Virtual
Memória Memória
Principal Swap