Logo Passei Direto
Buscar

55-4080100-sistemas_operacionais

User badge image

Enviado por Izabela Oliveira em

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

10/04/2013
1
SISTEMAS OPERACIONAIS
Prof. Dr. João Carlos de Moraes Morselli Jr.
Departamento de Ciência da Computação
B IBLIOGRAFIA
10/04/2013
2
B
IB
LIO
G
R
A
FIA
MODERN OPERATING SYSTEMS. 
Autor: TANENBAUM, ANDREW S. 
Editora: S. Prentice-Hall Inc, Englewood Clifs
2003 (traduzido)
MODERN OPERATING SYSTEMS. 
Autor: TANENBAUM, ANDREW S. 
Editora: S. Prentice-Hall Inc, Englewood Clifs
1975 (!!) 
MODERN OPERATING SYSTEMS. 
Autor: TANENBAUM, ANDREW S. 
Editora: S. Prentice-Hall Inc, Englewood Clifs
2010 (traduzido)
3 Edição
BIBLIOGRAFIA SISTEMAS OPERACIONAIS
3
B
IB
LIO
G
R
A
FIA
BIBLIOGRAFIA SISTEMAS OPERACIONAIS
SISTEMAS OPERACIONAIS: PROJETO E IMPLEMENTAÇÃO 
Autor: TANENBAUM, ANDREW S. 
Autor: WOODHULL, ALBERT S. 
Editora: BOOKMAN COMPANHIA ED
SISTEMAS OPERACIONAIS
Autor: SHAY, WILLIAM A. 
Editora: MAKRON
1996
4
10/04/2013
3
B
IB
LIO
G
R
A
FIA
BIBLIOGRAFIA SISTEMAS OPERACIONAIS
5
SISTEMAS OPERACIONAIS 
UMA VISAO SISTEMATICA 
Autor: DAVIS, WILLIAM S. 
Editora: CAMPUS
SISTEMAS OPERACIONAIS - CONCEITOS 
Autor: SILBERSCHATZ, ABRAHAM 
Autor: GALVIN, PETER BAER 
Editora: PEARSON BRASIL
B
IB
LIO
G
R
A
FIA
BIBLIOGRAFIA SISTEMAS OPERACIONAIS
6
OPERATING SYSTEM COMCEPTS, 6th Edition
Autores: Abraham Silberschatz, Peter Baer
Galvin, Greg Gagne
SISTEMAS OPERACIONAIS
Autores: Oliveira, R. S. Carissimi, A S.; Editora Sagra 
Luzzatto, Porto Alegre, 2ª Edição 
2001
SISTEMAS OPERACIONAIS (2005) 
Deitel, Harvey M. / Deitel, Paul J. / Choffnes Prentice Hall Brasil 
Informatica-sistemas Operacionais 
10/04/2013
4
A
U
LA
R
ED
E
AULA REDE : DATAS E MATERIAL DE ESTUDO
7
Acesso à 
Aula Rede
A
U
LA
R
ED
E
QUANTO ÀS AULAS
8
Favor não gravar as aulasFavor não gravar as aulas
Permitido uso do celular 
(toque baixo, atenda fora da sala)
Permitido uso do celular 
(toque baixo, atenda fora da sala)
Não rir das perguntas dos 
colegas
Não rir das perguntas dos 
colegas
10/04/2013
5
R
O
TEIR
O
ROTEIRO
9
Módulo 1
Introdução
Módulo 2
Processos e 
thread
Módulo 3
IPC
Módulo 4
Gerenciamento 
de memória
Módulo 5
Sistemas de 
arquivos
Módulo 6
Gerenciamento 
de IO
Módulo 7
Estudos de casos
MÓDULO 1: INTRODUÇÃO
10
10/04/2013
6
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
Definições
Definição Tanenbaum
“Software que controla o Hardware”
Joseph Esot Érico
“O sistema Operacional é a alma do computador”
John Bab’Aca
“O Sistema Operacional é um programa responsável por controlar o 
funcionamento do computador, como um gerente dos vários recursos 
disponíveis do sistema.” 
Tanembaum
11
Depois dos infrutíferos esforços de Babbage surgem progressos na
construção de computadores;
Surgem as primeiras máquinas de calcular (digital);
Ciclos medidos em segundos; Relés substituídos por válvulas;
Máquinas enormes; Realizavam cálculos numéricos (tabelas de senos, co-
senos, etc);
Programação feita via plugs;
Surgem os cartões;
Projeto do primeiro computador digital: Charles Babbage (1792-1871);
Entretanto ele inicia (mas não vê terminada) sua “máquina analítica”;
A máquina não possuía SO;
Babbage percebe que seria necessário um “software” para ela: contrata Ada 
Lovelace (filha do poeta inglês Lord Byron). Foi a primeira programadora do 
mundo;
PRIMEIRA GERAÇÃO (1945 -1955) : VÁLVULAS
PREFÁCIO HISTÓRICO
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
12
10/04/2013
7
Augusta Ada King, Condessa de 
Lovelace (1815 - 1852) é 
principalmente conhecida por ter 
escrito um programa que poderia 
utilizar a máquina analítica de 
Charles Babbage.
Ester Gerston
“mandando ver” no ENIAC
PRIMEIRA GERAÇÃO (1945 -1955) : REGISTROS FOTOGRÁFICOS
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
13
SEGUNDA GERAÇÃO (1955 -1965) : TRANSISTORES/ SO LOTE
Transistores tornaram as máquinas mais confiáveis (as válvulas queimavam 
muito) para que pudessem ser fabricados comercialmente;
Os jobs eram escritos em Fortran que depois eram transcritos nos cartões; 
Dos cartões os jobs eram gravados em fitas magnéticas. O compilador 
(Fortran) também deveria ser carregado (via cartões);
Essas trocas demandavam muito tempo; 
• Na época as maquinas mais utilizadas eram:
IBM 1401: Mais barata (!) utilizada como leitora de 
cartões (cartão para fita);
IBM 7094: Mais cara (U$ 2.400.000,00) utilizada 
para computação propriamente dita;
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
14
Surge o Sistema em Lote(Batch) cuja 
função era carregar os compiladores e os 
jobs automaticamente a partir das fitas
10/04/2013
8
IBM 1401
IBM 7094
REGISTROS FOTOGRÁFICOS
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
15
� Havia grande número de computadores com características incompatíveis; 
Manter várias linhas de produção demandava grande custo;
� IBM lança série System/360; Eram máquinas do porte da 1401 até
máquinas mais potentes que a 7094; Todas com softwares compatíveis;
� Eram utilizadas para computação científica e comercial;
� Usavam Circuitos Integrados; Foi um sucesso instantâneo; Outros
fabricantes imitaram(General Eletric);
� Ainda existem máquinas desta geração trabalhando até hoje em grandes
bancos;
� O sistema operacional para a série era o OS/360 (basicamente em lote);
� O OS/360 tinha que rodar em todas as máquinas da série, para isso código
e mais código foram inseridos (começou aí !!);
� SO ≈ Dinossauro (tamanho);
� Multiprogramação;
TERCEIRA GERAÇÃO (1965 -1980) : CIS E MULTIPROGRAMAÇÃO
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
16
10/04/2013
9
� Spooling (Simultaneous peripheral operation number) para os jobs;
� Timesharing: Variante da multiprogramação onde cada usuário se 
conectava por terminal e utilizava o mainframe;
� CTSS (Compatible time sharing system): primeiro SO importante com 
timesharing (1962);
� Surgem alguns “minicomputadores”: DEC PDP-1 (1961) com 4K. Preço? 
U$120.000,00, 5% do preço do 7094;
� MULTICS, sistema operacional interessante, porém que não decolou e 
serviu de inspiração para a criação do Unix;
� IEEE desenvolve o padrão POSIX (Portable Operating System – IX);
� Tanembaum desenvolve o Minix (mini Unix, educacional) e Linus Torvalds
escreve, sobre o Minix, o Linux (versão gratuita do Minix).
� Pra se ter uma idéia, o sistema de arquivos do Linux é do Minix
TERCEIRA GERAÇÃO (1965 -1980) : CIS E MULTIPROGRAMAÇÃO
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
17
� LSI (Large Scale Integration): Circuitos integrados em larga escala (chips 
com milhares de transistores em um centímetro quadrado de silício); VLSI 
(Very).
� 1974 Intel lança processador 8080. Base para o primeiro micro com disco 
flexível; Sistema Operacional CP/M (Control Program for Microcomputers);
� Surge o microprocessador Z80 rodando com CP/M (reescrito);
� Início dos anos 80 IBM lança padrão IBM PC e entra em contato com Bill 
Gates para licenciar seu interpretador Basic;
� IBM pede a Gates um sistema operacional; Gates compra da Seattle 
Computer Products o DOS (Disk Operating System) por U$ 50.000,00 SÓ!
� Gates cria a Microsoft e contrata Tim Paterson (que havia participado na
criação do DOS). DOS é reescrito: MS-DOS.
� Daí para frente parceria IBM e MS-DOS. $$$$$$$$$$$$
QUARTA GERAÇÃO (1980 - PRESENTE) : PC´S
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
18
10/04/2013
10
� PC/M e MS-DOS não tinham interface gráfica (o que é isso?);
� Doug Engelbart da Stanford Research Institute desenvolve uma GUI 
(Graphical User Interface), com janelas,
mouse, etc. 
� Steve Jobs (co-inventor do microcomputador Apple) tomou
conhecimento da GUI e partiu para a implementação de um Apple com 
GUI. Surge o Apple Macintosh.
� Gates gostou da idéia e “criou” o Windows.
� Até 1995 o Windows era apenas um ambiente gráfico do MS-DOS; Até o 
Windows 95;
� Windows 98, nada de novo.
� Windows NT (New Technology), totalmente 32 bits;
� Windows Me. 
� Windows XP/Vista/Seven ...Linux´s ... Unix´s ....
QUARTA GERAÇÃO (1980 - PRESENTE) : PC´S
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
19
HOMENAGEM
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
20
MORRE DENNIS RITCHIE, CRIADOR DA
LINGUAGEM C E DO UNIX
Dennis Ritchie , mais conhecido como o criador da linguagem 
de programação C e co-criador do sistema operacional UNIX, morreu aos 70 anos de 
idade depois de uma longa doença, não especificada. O trabalho Ritchie com Ken 
Thompson no desenvolvimento do sistema operacional UNIX, levou-os a receber o 
Prêmio Turing em 1993, o a medalha de ouro no IEEE Hamming em 1990, a 
Medalha Nacional de Tecnologia em 1999 e, mais recentemente, o Prêmio do Japão 
de Informação e Comunicações em 2011 .
O UNIX surgiu a partir de tentativas de Ritchie e de seus colaboradores para criar 
um sistema operacional mais simples, mais limpo e como uma reação à “síndrome 
do grande sistema”, que viram em sistemas operacionais contemporâneos a sua 
época. O UNIX não era apenas um código, mas uma cultura baseada em torno de 
idéias, tais como pequenos programas ligados por tubos. Foi a cultura Unix que 
inspirou Linus Torvalds a criar o Linux, o código aberto do sistema operacional UNIX-
like. 
10/2011
10/04/2013
11
�Permitir que os 
programas sejam 
executados sem a 
interferência de 
outros programas; 
�Impor um 
escalonamento entre 
programas que solicitam 
recursos;
FUNÇÕES DE UM SISTEMA OPERACIONAL
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
21
� Permitir que os 
programas armazenem e 
obtenham informação;
�Isolar os programas dos 
detalhes específicos de 
hardware;
� Controlar o fluxo de 
dados entre os 
componentes de um 
computador;
� Facilitar o 
acesso aos 
recursos do 
sistema.
� Permitir que os programas 
independentes cooperem 
periodicamente e compartilhem 
informações;
�Responder aos 
erros ou a 
solicitações dos 
usuários;
programadores
e analistas
memória
discos
CPU
Usuários
Hardware
Sistema Operacional
fitas
impressoras monitores
programas,
sistemas e
aplicativos
usuários
VIRTUAL MACHINE
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
22
10/04/2013
12
MÁQUINA DE NÍVEIS
Sistema Operacional
Ling. Orientada a problemas
Ling. de Montagem
Linguagem de Máquina
Microprogramação
Lógica Digital
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
23
ARQUITETURA BÁSICA
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
24
10/04/2013
13
O ZOOLÓGICO
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
Sistemas operacionais de computadores de grande porte.
Sistemas operacionais de servidores.
Sistemas operacionais de multiprocessadores.
Sistemas operacionais de computadores pessoais.
Sistemas operacionais de computadores portáteis.
Sistemas operacionais embarcados.
Sistemas operacionais de nós sensores (sensor node).
Sistemas operacionais de tempo real.
Segundo pesquisadores, sistemas
sérios apresentam densidade de 
erro de 1 erro por 100 linhas de 
código. Assim, um s.o. de 5 milhoes
de linhas apresenta 50 mil erros de 
kernel.
25
O Windows 
Vista possui 
70 milhões 
de linhas.
BOOT LINUX FREEBSD
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
26
10/04/2013
14
TRADUTORES
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
De acordo com a forma com que a tradução é
realizada, os tradutores podem ser definidos
como:
• Montadores (Ling Mont para Codigo Objeto)
• Compiladores ou
• Interpretadores
Tradutor
Programa
Fonte
Programa
Objeto
LINKER
27
PERGUNTINHA ...
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
� A evolução dos sistemas operacionais está, grande parte, relacionada 
ao desenvolvimento de equipamentos cada vez mais velozes, compactos 
e baratos, e à necessidade de aproveitamento e controle desses 
recursos.
� Hardware muito além do software.
28
Quem 
evoluiu 
mais ...
Software Hardware ?
10/04/2013
15
DEBBUGER E LINGUAGEM DE CONTROLE (OU DE COMANDO)
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
� O depurador (debugger) é o utilitário que permite 
ao usuário controlar toda a execução de um 
programa a fim de detectar erros na sua estrutura.
Linguagem de controle: É também denominada de
linguagem de comando. É a forma mais direta de um usuário
se comunicar com o sistema operacional. Esta linguagem é
oferecida pelo sistema operacional para que, através de
comandos simples, o usuário possa ter acesso a rotinas
específicas do sistema
29
MODO USUÁRIO E MODO KERNEL
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
30
• Thread (definir) em modo 
usuário
UsuárioUsuário
• Ganha mapa de memória 
diferente
• Acesso a todos os 
recursos da máquina
• Pilha própria
• PC próprio
KernelKernel
10/04/2013
16
KERNEL
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
Conjunto de rotinas (procedimentos) que oferecem serviços
aos usuários do sistema e suas aplicações, bem como a
outras rotinas do próprio sistema
ESTRUTURA DE UM SO
Aglomerado de rotinas que interagem
livremente; Não há nenhuma
estrutura, o SO é escrito como uma
coleção de procedimentos.
Monolítico
Pode ser comparada com uma aplicação que contém vários 
procedimentos que são compilados separadamente e depois linkados, 
formando um grande e único programa executável.
Vantagem: Grande desempenho
Desvantagem: O excesso de liberdade torna o sistema vulnerável.
31
Ex. Linux, Windows e FreeBSD.
ESTRUTURA DE UM SO
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
Em Camadas
Divide o sistema operacional em camadas sobrepostas
� cada modulo oferece um conjunto de funções que podem ser utilizadas
por outros módulos;
�módulos de uma camada podem fazer referência apenas a módulos das
camadas inferiores;
�Lembra paradigma camadas ISO/OSI
Dijkstra na Holanda em 1968
Em lote, bem simples.
Exemplo 1. Sistema THE (Technische Hogeschool Eindhoven)
32
10/04/2013
17
ESTRUTURA DE UM SO (CONTINUA EM CAMADAS)
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
Exemplo 2. Sistemas MULTICS e VMS
Camadas concêntricas (as mais internas
são mais privilegiadas que as mais
externas).
Exemplo 3. 
Exemplo 4. UNIX
33
ESTRUTURA DE UM SO
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
Cliente - Servidor
Kernel
Hardware
Cliente Servidor
Impressão
Servidor
Arquivo
Modo usuário
Modo kernel
Request()
Tendência dos sistemas operacionais modernos
• tornar o núcleo do sistema operacional o menor e o mais
simples possível;
34
10/04/2013
18
ESTRUTURA DE UM SO
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
Máquina Virtual
SO Virtual
Programa Usuário
SO Nativo
Exemplos: PVM e MPI. 
Virtualização (VM Ware, Xen, Vbox, etc)
35
ESTRUTURA DE UM SO
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
MicroKernel
ExoKernel
Exemplos: QNX, Android, Symbian e Minix 3
Código reduzido para melhorar confiabilidade. 
Núcleos com 3000 linhas, por exemplo.
Ao invés de clonar uma máquina, como é feito em 
virtualização, é dado a cada usuário um subconjunto
dos
recursos da máquina (conceito de hypervisor).
Exemplo: VM/370.
36
10/04/2013
19
ESTRUTURA DE UM SO
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
Exokernel
37
TIPO DE SISTEMAS OPERACIONAIS
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
38
Multitarefa
Multiprogramável Multiprocessado
Monotarefa
Monoprogramavel
Sistemas Operacionais
CPU
Memória
I/O
Usuário
Usuário
Usuário
10/04/2013
20
SISTEMAS FORTEMENTE ACOPLADOS
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
39
UCP UCP
Memória
Principal
Dispositivos
de E/S
Dispositivos
de E/S
SISTEMAS FRACAMENTE ACOPLADOS
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
40
UCP UCP
Dispositivos
de E/S
Dispositivos
de E/S
link de comunicação
10/04/2013
21
SISTEMAS EM LOTE (BATCH)
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
41
� Os sistemas batch (lote) caracterizam-se por terem seus programas 
armazenados em disco ou fita, onde esperam para ser executados 
seqüencialmente.
� Os jobs executados nesse sistema não exigem interação com os 
usuários, lendo e gravando dados em discos ou fitas.
� Exs: compilações, link edições, entre outros.
SISTEMAS DE TEMPO COMPARTILHADO (TIME SHARING)
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
42
� Os sistemas de tempo compartilhado (time-sharing) permitem a interação 
dos usuários com o sistema (interação on-line);
� Compartilha o processador, a memória e os periféricos;
� Cria um ambiente de trabalho dedicado a cada usuário.
SISTEMAS DE TEMPO REAL
� Os sistemas de tempo real (real-time) são bem semelhantes aos sistemas 
de tempo compartilhado. A maior diferença é o tempo de resposta regular 
exigido na execução das tarefas.
� Não existe a idéia de fatia de tempo, um programa executa o tempo que 
for necessário, ou até que apareça outro prioritário em função de sua 
importância.
10/04/2013
22
EXEMPLOS
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
43
Windows Embedded Compact
MULTIPROGRAMAÇÃO
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
44
tempo
� Um dos problemas existente nos sistemas monoprogramáveis
é a baixa utilização de recursos do sistema, como processador, 
memória e periféricos.
Processo 1
Processo 2
10/04/2013
23
INTERRUPÇÕES (SIGNALS)
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
45
� Na execução de um programa, alguns eventos podem ocorrer durante
o processamento (interrupções) , obrigando a intervenção do SO e o
desvio no fluxo de execução;
� Eventos responsáveis pelas interrupções:
� execução de um programa;
� gerado pelo SO;
� gerado por dispositivo de hardware.
Obs: Utiliza-se o barramento de controle para a emissão 
dos sinais de interrupção
INTERRUPÇÕES (SIGNALS)
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
46
Interrupções de software ou traps
gerada por um evento síncrono (o próprio processo provoca); 
Exemplo: “o processo C++ chama clrscr()” ; overflow; etc.
Interrupções de hardware ou de E/S
É gerada por eventos assíncronos (não é o próprio processo que 
gera. Pode ser o SO ou algum dispositivo de hardware); 
Exemplo: um periférico avisa à CPU que está pronto para 
transmitir algum dado.
Interrupções por erro (exceções) 
ex: erro de paridade na memória.
Interrupções de relógio
Gerada pelo relógio do processador, serve para sincronizar as 
unidades.
10/04/2013
24
INTERRUPÇÕES
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
47
.....
.....
.....
.....
.....
Instrução 1
Instrução 2
Instrução 3
Instrução 4
Instrução 5
Instrução 6
Salvar os registradores
Identifica a origem
da interrupção
Obtém o endereço da
rotina de tratamento 
(chamada de vetor de int.)
Restaura os
registradores
Rotina de
Interrupção
Interrupção
Ex.: divisão 
por zero
exemplo.c
OPERAÇÕES de I/O
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
48
� Em sistemas mais primitivos, a comunicação entre a CPU e os
periféricos era controlada por um conjunto de microinstruções
especiais, denominadas instruções de I/O, executadas pela própria
CPU.
CPU Memória Controladora Discos
Vídeo
Rede
Não existiam placas controladoras!
Controladora Controladora
10/04/2013
25
BUFFERING
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
49
CPU
Memória
Controladora
I/OBuffer
Gravação
Leitura
Gravação
Leitura
Permite que a CPU continue realizando outras 
operações enquanto operações de I/O são realizadas.
mailbox Som automotivo
SPOOLING
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
50
� O Sistema Operacional mantém os dados separadamente (cada usuário).
� Se não existisse o spooling o que aconteceria ?
Arquivos de Spool
SOPrograma
10/04/2013
26
REENTRÂNCIA
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
51
código reentrante
área de dados do usuário A
área de dados do usuário B
área de dados do usuário C
área de dados do usuário D
Capacidade de um código de programa ser compartilhado 
por diversos usuários, ou mesmo outros processos, exigindo 
apenas uma cópia do código do programa na memória.
PROTEÇÃO DO SISTEMA OPERACIONAL
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
52
� Alguns cuidados devem ser tomados pelo SO para proteger o sistema:
� um programa não deve acessar a área de memória pertencente a
outro programa;
� o compartilhamento de dispositivos de I/O deve ser controlado de
forma centralizada pelo SO;
� toda vez que o usuário desejar utilizar um recurso, ele terá que
requerer ao SO através system calls;
SYSTEM CALLS
Chamada ou invocação de uma 
rotina do kernel.
10/04/2013
27
SYS CALL´S
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
53
Para proteger o núcleo do sistema e como conseqüência os seus serviços, é
implementado um mecanismo chamado de System Calls, ou chamadas do
sistema.
Gerência de 
Memória ex.: 
msgrcv
Gerência de 
Memória ex.: 
msgrcv
Gerência de Entrada 
e Saída ex.: filecopy
Gerência de Entrada 
e Saída ex.: filecopy
Gerência de 
Processos ex.: 
Kill
Gerência de 
Processos ex.: 
Kill
As System Calls podem ser divididas em grupos:
EXEMPLO DE SYSCALL
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
54
Sintaxe: copyfile abc xyz //copia o conteúdo do arq abc em xyz, se este não existir cria.
#include ... // definições de tipos, chamadas prototipadas, etc..
void main(int argc, char *argv[]); // argc =3 (num. arg. da chamada)
// argv[0] = “copyfile”; argv[1] = “abc”; agrv[2] = “xyz”
# DEFINE Buf_size 4096 // qtde. de info. A ser tratada (4K)
#DEFINE MODE 0666 // modo arquivo (rw - rw -rw)
void main (int argc, char *argv[])
{ int src, dst, in, out; // identificadores e contadores do buffer
char buf[Buf_size]; // buffer
If (argc!=3) exit(); // num. param. Errados
src = open(argv[1], RDONLY);
If (src<0) exit(); // pau na abertura
dst = creat(argv[2], MODE);
If (dst<0) exit(); // pau na abertura ou criação
copyfile 
10/04/2013
28
EXEMPLO DE SYSCALL
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
55
// tudo certo para fazer a cópia
While (1) {
in = read(src, buf, Buf_size);
If (in == 0) Break;
out = write(dst, buf, in);
}
close(src);
close(dst);
exit();
}
Núm. de bytes 
realmente lidos
Quanto será 
escrito
MODE DE EXECUÇÃO DOS PROCESSOS - PROTEÇÃO
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
56
O mecanismo de proteção é chamado de estado de execução. É uma
característica, associada
ao programa, que determina se ele pode ou não
executar certas instruções ou rotinas. É divido em 2 estados:
♦Usuário: o programa só pode executar instruções que não afetem
diretamente outros programas (Ex.: compilar, criar diretórios, etc.)
♦Supervisor: qualquer instrução pode ser executada e consequentemente,
todas as rotinas do sistema (root).
Programa Usuário B
Programa Usuário A
Chamada de rotina do sistema
kernel
Sistema operacional executa no 
modo
servidor
Programas dos usuários 
executam
no estado usuário
Memória
10/04/2013
29
O SO é formado por um conjunto de rotinas que oferecem serviços para
os usuários do sistema e para o próprio sistema. Esse conjunto de
rotinas é chamado de núcleo ou kernel. São funções do kernel:
FUNÇÕES IMPORTANTES DO KERNEL
M
Ó
D
U
LO
1
: IN
TR
O
D
U
Ç
Ã
O
57
tratamento de interrupçõestratamento de interrupções
criação e eliminação de processoscriação e eliminação de processos
sincronização e comunicação entre processossincronização e comunicação entre processos
gerência de: Memória, do Sistema de Arquivo e de I/Ogerência de: Memória, do Sistema de Arquivo e de I/O
segurança do sistemasegurança do sistema
M
Ó
D
U
LO
1
: E
X
ER
C
ÍC
IO
S
58
1. O que é multiprogramação ?
2. Explique a técnica de spooling.
3. Explique a técnica de reentrância.
4. Explique a técnica de buffering.
5. Qual a diferença entre uma trap e uma interrupção ?
6. Descreva o processo de interrupção.
7. Para um programador, uma chamada de sistema se parece com 
qualquer chamada a uma rotina de biblioteca. É importante que um 
programador saiba quais rotinas de biblioteca resultam em chamadas 
de sistema? Sob quais circunstâncias e por que?
8. Sob quais condições a multitarefa possui melhor desempenho ?
9. Cite 3 funções importantes do SO.
Exercícios
10/04/2013
30
MÓDULO 2: PROCESSOS E THREADS
59
PROCESSO
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
60
Um processo é um programa em execução, ou melhor, um ambiente onde se 
executa um programa.
10/04/2013
31
PROCESSO
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
61
BLOCO DE CONTEXTO DO PROCESSO
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
62
O SO manipula o processo através de uma estrutura chamada
PID
Nome do Processo
Estado do Processo
Prioridade
Lista de Arq. Abertos
Limites de Memória
. . .
OBS: A execução de um mesmo programa em processo 
diferentes pode gerar resultados diferentes.
BCP (Bloco de Controle de Processo).
10/04/2013
32
TROCA DE CONTEXTO
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
63
Quando um processo é interrompido para que outro processo utilize a CPU, é 
realizada a Troca de Contexto.
Processo A
Salva BCP de PA
Salva BCP de PB
Carrega BCP de PB
Carrega BCP de PA
executando
Processo B
executando
executando
ESTADOS DE UM PROCESSO
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
64
Um processo pode se encontrar em um dos seguintes estados: 
Execução, Pronto e Espera.
Execução
ProntoEspera
B
A
C
D
10/04/2013
33
ESTADOS DE UM PROCESSO LINUX
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
65
FILAS DE BCP´S
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
66
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
prontos
BCP#5
BCP#9
BCP#1
BCP#2 BCP#4
espera
10/04/2013
34
PROCESSOS DO SITEMA OPERACIONAO (CLIENTE SERVIDOR)
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
67
Várias funções do SO são executadas na forma de processos, pois assim 
estamos diminuindo o tamanho do núcleo e economizando memória (pois 
cada processo pode ficar ativo ou não).
Alguns exemplos:
serviços de 
rede
serviços de 
rede
shellshell
comunicação 
de eventos
comunicação 
de eventos
gerência de 
impressão
gerência de 
impressão
SHELL
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
68
10/04/2013
35
TIPOS DE PROCESSOS
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
69
Os processos são classificados de acordo com o 
tipo de processamento que realizam.
I/O-bound
I/O
CPU
tempo
I/O
CPU
tempo
CPU-bound
NOMENCLATURA LINUX
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
70
Processos interativos
• são iniciados a partir de, e controlados por uma sessão terminal. Estes
processos podem rodar tanto em foreground como em background.
Processos batch
• ou em lote, são processos não associados a nenhum terminal. Ao invés
disso, são submetidos a uma fila, da qual jobs são executados
seqüencialmente. UNIX oferece um comando batch muito primitivo
Processos Daemons
• são processos servidores (processos do SO), inicialmente inicializados
durante o boot, que rodam continuamente enquanto o sistema estiver
ativo, esperando, em background, até que um processo requisite seus
serviços. Por exemplo, network daemons ficam em estado idle até que
um processo requisite serviço de rede.
10/04/2013
36
PRODUTOR E CONSUMIDOR
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
71
Na maioria dos SO’s, é comum termos processos compartilhando recursos 
(arquivos, memória, etc. ). Mas este compartilhamento gera alguns problemas. 
O exemplo mais clássico de comunicação é o Produtor X Consumidor 
(processos concorrentes).
PProdutor PConsumidor
bufferbuffer
M
Ó
D
U
LO
2
: E
X
ER
C
ÍC
IO
S
72
Exercícios
1.Considere a seguinte situação (Exclusão Mútua): Dois processos,
executando paralelamente, desejam acessar uma mesma variável. Esboce
um algoritmo que permita que os dois processos acessem essa variável sem
que haja conflito.
2.Considere outra situação
(Sincronização):Dois processos, executando paralelamente, acessam um
mesmo vetor. Um dos processos consome informação do vetor e o outro
produz informação. Supondo que o tamanho do vetor seja M, esboce um
algoritmo que permita que os dois processos acessem esse dado sem que
haja falta de dados ou excesso.
10/04/2013
37
P1
SUB-PROCESSOS
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
73
Um processo (pai) pode criar outros processos (filhos) de forma 
hierárquica e estes também podem criar outros e assim por diante 
.....
P2 P3
P4
Cada processo tem o seu contexto de 
hardware, contexto de software e espaço de 
endereçamento distintos.
Fork()Fork()
Fork()
THREADS
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
74
� Num sistema multithread, cada thread do processo possui o seu
contexto de hardware e software (pois uma thread “disputa” a CPU com as
outras threads e processos).
� A diferença com os sub processos é que todas as threads de um processo
compartilham o mesmo espaço de endereçamento (gerando concorrência
entre as threads).
Contexto
de hardware
Contexto
de hardware
Contexto
de hardware
Espaço de
endereçamento
Co
n
te
xt
o
de
so
ftw
a
re
Thread 3Thread 2Thread 1
10/04/2013
38
THREADS
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
75
Espaço de
endereçamentoProcesso
Programa Principal
Co
n
te
xt
o
de
H
a
rd
w
a
re
Co
n
te
xt
o
de
H
a
rd
w
a
re
Co
n
te
xt
o
de
H
a
rd
w
a
re
Call Sub_1
Call Sub_2
Thread_1
Thread_2
Thread_3
PC
SP
PC
SP
PC
SP
Fim
Sub_2
Variáveis
Ret
Sub_1
Ret
.
.
.
.
.
.
THREADS
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
76
10/04/2013
39
THREADS
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
77
THREADS
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
78
#include "mthread.c"
#include "mtcrtlib.c"
void proc_A(void)
{ int i;
MTputs("\n A started\n");
for(i=0; i<300; i++){
MTputchar('A');
} MTputs("\nA finished\n");
}
void proc_B(void)
{ int i;
MTputs("\n B started\n");
for(i=0; i<300; i++){
MTputchar('B');
} MTputs("\n B finished\n");
}
void proc_C(void)
{ int i;
MTputs("\n C started\n");
for(i=0; i<300; i++){
MTputchar('C');
} MTputs("\n C finished\n");
}}
void main(void)
{
MTInitialise();
MTputs("\nMicroThread demonstration");
MTAddThread(proc_A, 1);
MTAddThread(proc_B, 1);
MTAddThread(proc_C, 1);
MTputs("\nStarting multithreading...");
MTStartMultiThreading();
MTputs("\nMultithreading ended");
10/04/2013
40
TROCA DE MENSAGENS
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
79
Outro mecanismo de comunicação / sincronização de processos são as 
rotinas SEND e RECEIVE (bloqueantes e não bloqueantes). 
Send(destino, mensagem);
Receive(fonte, mensagem);
Transmissor
Receptor
Transmissor Receptor
mailbox
RPC (1984)
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
80
Objetivo: Ocultar características inerentes às primitivas de comunicação 
(send e receive, que serão vistas mais adiante)
Proposta: Permitir que programas chamem procedimentos localizados em
outras máquinas sem utilizar explicitamente as rotinas de comunicação
Processo A ();
{...
processo B();
...
}
Máquina 1
Processo B ();
{...
...
.....
}
Máquina 2
Meio de Comunicação
10/04/2013
41
RPC
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
81
Cliente
empacota
Desemp.
STUB
Servidor
empacota
desemp.
STUB
Meio 
Físico
“Esta santa ignorância do cliente faz a beleza 
de todo o esquema” Tanembaum
rotina
REGIÃO CRÍTICA
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
82
Vamos verificar como ocorre o problema de compartilhamento de 
recursos, no nosso caso um arquivo.
Num sistema bancário, vamos analisar o procedimento de 
atualização da conta corrente.
READ (Arq_Contas, Reg_Cliente);
READLN(Valor_Dep);
Reg_Cliente.saldo :=Reg_Cliente.saldo + Valor_Dep;
WRITE(Arq_Contas, Reg_Cliente);
10/04/2013
42
Para resolver o problema de compartilhamento de recursos podemos utilizar 
a idéia de exclusão mútua:
..........
Protocolo-de-entrada-da-região-crítica; 
Região Crítica;
Protocolo-de-saída-da-região-crítica;
...........
Para garantirmos a exclusão mútua é necessário que o mecanismo que a 
implemente permita o acesso aos recursos compartilhados somente de forma 
sincronizada.
REGIÃO CRÍTICA
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
83
REGIÃO CRÍTICA
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
84
10/04/2013
43
PROBLEMAS DE SINCRONIZAÇÃO
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
85
A sincronização, entre os processos que compartilham o mesmo 
recurso, enfrenta alguns problemas:
♦ Velocidade de Execução dos Processos;
♦ Starvation;
♦ Sincronização Condicional (recurso ainda não está pronto).
VELOCIDADE DE EXECUÇÃO
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
86
char Vez;
Processo_A( )
{ 
do{
while(Vez==‘B’);
Regiao_Critica( );
Vez=‘B’;
ImprimeRelatório( );
}while(1);
}
Quando temos processos com velocidade de execução muito 
distintas, teremos o problema em questão:
Processo_B( )
{ 
do{
while(Vez==‘A’);
Regiao_Critica( );
Vez=‘A’;
}while(1);
}
main( )
{
Vez=‘A’;
PARBEGIN
Processo_A( );
Processo_B( );
PAREND;
} 
Starvation é a situação na qual um processo nunca consegue executar a sua
região crítica (acessar o recurso compartilhado).
Solução: Política de alocação de recursos.
10/04/2013
44
SINCRONIZAÇÃO CONDICIONAL
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
87
#define N 100;
Main( )
{ int count=0;
PARBEGIN
Producer( );
Consumer( );
PAREND;
} void Consumer(void )
{ int item;
While (true)
{if (count==0)* sleep();
Remove_item(&item);
count--;
if (count==N-1)
wakeup(Producer);
Consume_item(item);
} 
}
void Producer(void )
{ int item; 
While(true)
{ Produce_item(&item);
if (count==N) sleep();
Enter_item(item);
count++;
if (count==1) 
wakeup(consumer)
} 
}
SOLUÇÕES DE HARDWARE
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
88
Desabilitando Interrupções
É uma solução simples e eficiente, basta desabilitar as interrupções (via
instrução) antes de entrar na região crítica e habilitá-las novamente ao sair
da região crítica. Como a troca de contexto só ocorre via interrupção, ela
passará a não ocorrer durante a execução da região crítica.
{ Desabilita interrupções}
Acessa
{Habilita Interrupções}
Qual a grande desvantagem?
10/04/2013
45
TEST AND SET
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
89
É uma solução utilizada no compartilhamento de memória. Uma instrução
test-and-set, irá ler uma variável, armazenar o seu conteúdo numa outra
variável e ter o seu valor atualizado. Todas estas atividades ocorrem de
forma indivisível.
Test-and-Set( X, Y )
{//onde: o valor lógico de Y é copiado para X e Y 
recebe o valor lógico verdadeiro(1).
X=Y ;
Y=1;
}
TEST AND SET
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
90
int Bloqueio;
main( )
{ bloqueio=0;
PARBEGIN
Processo_A( );
Processo_B( );
PAREND;
}
Processo_A( )
{ do{ int espera_A = 1; 
while(espera_A)
Test-and-Set(espera_A,bloqueio);
Regiao_Critica( );
Bloqueio=0;
}while(1);}
Processo_B( )
{do{int espera_B = 1; 
while(espera_B)
Test-and-Set(espera_B,bloqueio);
Regiao_Critica( );
Bloqueio=0;
}while(1);}
BUSY WAIT
10/04/2013
46
SEMÁFOROS
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
91
� Um semáforo é uma variável inteira, positiva, que é manipulada por
duas primitivas: DOWN(s) e UP(s). Cada recurso tem um semáforo
associado.
� Dijkstra, 1965. Holanda
Struct semaforo{
int valor;
fila fila-espera;
};
SEMÁFOROS
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
92
A primitiva DOWN é o protocolo de entrada na região crítica, sendo que
quando a variável semáforo tem o seu valor = 0 indica que o recurso já
está em uso. Caso contrário, o recurso pode ser utilizado pelo processo
(região crítica).
{ if (s>0) s=s-1; // acessa recurso
else sleep();
}
Down (s)
10/04/2013
47
SEMÁFOROS
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
93
A primitiva UP é o protocolo de saída da região crítica, sendo que quando
ela verifica se existe algum processo querendo utiliza o recurso (na fila), se
tiver retira esse processo da fila e o coloca
em execução.
{if (tem_processo_esperando)
wakeup(próximo_processo);
else
s = s +1;}
Up (s)
Processo acessa
a região crítica
SEMÁFOROS
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
94
Processo deseja entrar
na região crítica
10/04/2013
48
Processo acessa
a região crítica
SEMÁFOROS
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
95
Processo deseja entrar
na região crítica
Processo acessa
a região crítica
Fila de espera
de processos
UP (S) - processo sai
da região crítica
Libera processo
da fila de espera
SEMÁFOROS
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
96
Exemplo de semáforo implementando a exclusão mútua:
main( )
{int s=1;
PARBEGIN
Processo_A( );
Processo_B( );
PAREND;
}
Processo_A( )
{
do{ 
Down(s);
Região_Crítica( );
Up(s);
}while(1);
}
Processo_B( )
{
do{ 
Down(s);
Região_Crítica( );
Up(s);
}while(1);
}
Processo_C( )
{
do{ 
Down(s);
Região_Crítica( );
Up(s);
}while(1);
}
Processo_D( )
{
do{ 
Down(s);
Região_Crítica( );
Up(s);
}while(1);
}
10/04/2013
49
SEMÁFOROS: PRODUTOR E CONSUMIDOR
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
97
#define MAX 10;
int vazio,
cheio,mutex;
char buffer[MAX];
main( )
{ vazio=MAX;
cheio=0;
mutex=1; 
PARBEGIN
Produtor( );
Consumidor( );
PAREND; }
Produtor( )
{ char d;
do{ 
d=Produz_Dado( );
Down(vazio);
Down(mutex);
Grava_Dado(d,buffer);
Up(mutex);
Up(cheio); 
}while(1);
}
Consumidor( )
{ char d;
do{ 
Down(cheio);
Down(mutex);
d=Le_Dado(buffer);
Up(mutex);
Up(vazio); 
Consome_Dado(d );
}while(1);
}
SEMÁFORO MUTEX
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
98
10/04/2013
50
JANTAR DOS FILÓSOFOS
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
99
PROBLEMA DOS COMBOIOS
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
100
10/04/2013
51
� O semáforo é uma ótima 
solução, mas depende 
muito do programador 
gerar um código correto 
para que funcionem.
� Os monitores 
implementam de forma 
automática o acesso a 
região crítica.
MONITORES
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
101
Declaração de
variáveis globais
Procedimentos
Fila de entrada
Inicialização
de variáveis
Proc. 1
Proc. 2
Proc. n
M
o
n
ito
r
DEADLOCK
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
102
Um processo está em deadlock quando espera por um evento que nunca
ocorrerá.
Esta situação ocorre quando vários processos compartilham vários recursos
de forma exclusiva.
PB
PA
Recurso 1Recurso 2 Recurso2 
alocado por PB
Recurso1 alocado 
por PA
PA solicita Recurso2
PB solicita Recurso1
10/04/2013
52
DEADLOCK
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
103
DEADLOCK
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
104
Para ocorrer o deadlock é necessário que pelo menos 4 situações 
ocorram ao mesmo tempo:
1. Utilizar a exclusão mútua;
3. Não-preemptivo (o recurso não pode ser liberado para outro processo);
10/04/2013
53
ESCALONAMENTO DE PROCESSOS
105
O mecanismo responsável por escolher qual processo deve entrar em
execução é chamado Escalonador (scheduler) e para realizar tal operação
ele segue alguns critérios:
� Utilização da CPU (utilização máxima da CPU);� Utilização da CPU (utilização máxima da CPU);
� Throughput (processos por intervalo de tempo);� Throughput (processos por intervalo de tempo);
� Tempo de Resposta.� Tempo de Resposta.
� Turnaround (tempo entre o início e término);� Turnaround (tempo entre o início e término);
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
ESCALONAMENTO DE PROCESSOS
106
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
Objetivos dos algoritmos de escalonamento
10/04/2013
54
ESCALONAMENTO DE PROCESSOS
107
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
Alto Nível
Médio Nível
Baixo Nível
Decidir quem entra ou 
não no sistema
Quais processos podem
realmente concorrer 
pela CPU
Quais processos no estado
“pronto” devem obter o 
controle da CPU
ESCALONAMENTO DE PROCESSOS
108
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
Pode-se classificar as políticas de escalonamento de 
baixo nível em duas categorias:
P4 P3 P2 CPU
P1
P4 P3 P2 CPU
P1
P5
Causas da preempção: Venceu o quantum, prioridade, etc.
Não - Preemptivo Preemptivo
10/04/2013
55
ESCALONAMENTO DE PROCESSOS: FIFO
109
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
CPUABC
Lista dos processos Prontos
Características:
• Fácil implementação;
• Favorece os “idosos”;
• Baixo overhead;
• Começou, vai até o fim. Cuidados:
• Processos I/O bound;
• Tempo de espera pode inviabilizar;
Término 
ESCALONAMENTO DE PROCESSOS: FIFO
110
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
CPUBC
Lista dos processos Prontos
Características:
• Fácil implementação;
• Favorece os “idosos”;
• Baixo overhead;
• Começou, vai até o fim. Cuidados:
• Processos I/O bound;
• Tempo de espera pode inviabilizar;
Término 
10/04/2013
56
ESCALONAMENTO DE PROCESSOS: FIFO
111
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
CPUC
Lista dos processos Prontos
Características:
• Fácil implementação;
• Favorece os “idosos”;
• Baixo overhead;
• Começou, vai até o fim. Cuidados:
• Processos I/O bound;
• Tempo de espera pode inviabilizar;
Término 
ESCALONAMENTO DE PROCESSOS: POR REVEZAMENTO (ROUND ROBIN)
112
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
Término CPUABC
RETORNA 
Lista dos processos Prontos
Causas do retorno:
• processo terminou;
• expirou seu quantum;
• espera um evento.
Cuidados:
• � No. Processos = � espera;
• Calcular o quantum (complexo);
algumas variantes propõem um tempo fixo para todos
10/04/2013
57
ESCALONAMENTO DE PROCESSOS: POR REVEZAMENTO (ROUND ROBIN)
113
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
Término CPUBCA
RETORNA 
Lista dos processos Prontos
Causas do retorno:
• processo terminou;
• expirou seu quantum;
• espera um evento.
Cuidados:
• � No. Processos = � espera;
• Calcular o quantum (complexo);
algumas variantes propõem um tempo fixo para todos
ESCALONAMENTO DE PROCESSOS: MULTIPLAS FILAS
114
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
CPU
ABC
Lista dos processos Prontos
DEF
GHI
Término 
•cada lista com uma prioridade diferente
•o escalonador busca um processo da lista com maior prioridade
•para os processos com mesma prioridade = FIFO
•processo interrompido pode voltar com prioridade diferente
•os quanta podem variar por fila.
10/04/2013
58
ESCALONAMENTO DE PROCESSOS: MULTIPLAS FILAS
115
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
CPU
BC
Lista dos processos Prontos
DEF
GHI
Término 
•cada lista com uma prioridade diferente
•o escalonador busca um processo da lista com maior prioridade
•para os processos com mesma prioridade = FIFO
•processo interrompido pode voltar
com prioridade diferente
•os quanta podem variar por fila.
ESCALONAMENTO DE PROCESSOS: MULTIPLAS FILAS
116
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
CPU
C
Lista dos processos Prontos
DEF
GHI
Término 
•cada lista com uma prioridade diferente
•o escalonador busca um processo da lista com maior prioridade
•para os processos com mesma prioridade = FIFO
•processo interrompido pode voltar com prioridade diferente
•os quanta podem variar por fila.
10/04/2013
59
ESCALONAMENTO DE PROCESSOS: MULTIPLAS FILAS
117
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
CPU
Lista dos processos Prontos
DEF
GHI
Término 
•cada lista com uma prioridade diferente
•o escalonador busca um processo da lista com maior prioridade
•para os processos com mesma prioridade = FIFO
•processo interrompido pode voltar com prioridade diferente
•os quanta podem variar por fila.
ESCALONAMENTO DE PROCESSOS: MULTIPLAS FILAS
118
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
CPU
Lista dos processos Prontos
EF
GHI
Término 
•cada lista com uma prioridade diferente
•o escalonador busca um processo da lista com maior prioridade
•para os processos com mesma prioridade = FIFO
•processo interrompido pode voltar com prioridade diferente
•os quanta podem variar por fila.
10/04/2013
60
ESCALONAMENTO DE PROCESSOS: MULTIPLAS FILAS
119
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
CPU
Z
Lista dos processos Prontos
EF
GHI
Término 
•cada lista com uma prioridade diferente
•o escalonador busca um processo da lista com maior prioridade
•para os processos com mesma prioridade = FIFO
•processo interrompido pode voltar com prioridade diferente
•os quanta podem variar por fila.
ESCALONAMENTO DE PROCESSOS: MULTIPLAS FILAS COM REALIMENTAÇÃO
120
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
10/04/2013
61
ESCALONAMENTO DE PROCESSOS: SHORTEST JOB FIRST (SJF)
121
M
Ó
D
U
LO
2
: P
R
O
C
ESSO
S
E
T
H
R
EA
D
S
� Para escolher qual processo entrará em execução, o SO deve selecionar
o que necessita menor tempo para o seu encerramento.
� Pode ser utilizado junto às políticas vistas anteriormente.
� Possui uma variante: SRJN - Shortest Remaining Job Next, onde são
escalonados os processos com menores tempos para serem terminados.
ESCALONAMENTO DE PROCESSOS: SISTEMAS DE TEMPO REAL
� São sistemas onde o fator tempo é crítico, não existindo portanto o fator
time-slice ou quantum para o escalonamento do processo.
� Toda vez que chega um novo processo na lista dos prontos é verificado se
este é mais prioritário que o processo atualmente em execução, em caso
afirmativo, o escalonador deve interromper a execução e colocar o
processo mais prioritário em execução.
M
Ó
D
U
LO
2
: E
X
ER
C
ÍC
IO
S
122
Exercícios
1.Diferencie subprocessos e threads.
2. Descreva o mecanismo utilizado pelo shell.
3. Implemente um processo que incremente uma variável até 100 e só
depois outro processo deverá decrementar esta variável até zero.
4. Explique o código do produtor e consumidor.
5. Diferencie variáveis semáforos mutex e variáveis semáforos
multivaloradas.
6. Explique o mecanismo de troca de contexto. Ache na literatura os valores
de tempo que levam para a troca de contexto em um computador
convencional.
7. Explique deadlock, starvation , busy wait e livelock.
8. Escreva sobre as políticas de escalonamento.
10/04/2013
62
MÓDULO 3: IPC - INTER PROCESS COMMUNICATION
123
IPC
M
Ó
D
U
LO
3
: IP
C
 –
IN
TER
P
R
O
C
ESS
C
O
M
M
U
N
IC
A
TIO
N
124
PIPES
SOCKETS
PIPES
SOCKETS
10/04/2013
63
IPC
M
Ó
D
U
LO
3
: IP
C
 –
IN
TER
P
R
O
C
ESS
C
O
M
M
U
N
IC
A
TIO
N
125
PIPES
PIPES
PIPES
M
Ó
D
U
LO
3
: IP
C
 –
IN
TER
P
R
O
C
ESS
C
O
M
M
U
N
IC
A
TIO
N
126
10/04/2013
64
PIPES
M
Ó
D
U
LO
3
: IP
C
 –
IN
TER
P
R
O
C
ESS
C
O
M
M
U
N
IC
A
TIO
N
127
� Os pipes são canais de comunicação entre dois processos em uma mesma
máquina.
� Quando um processo escreve no pipe, o outro processo pode ler a partir
dele.
� Um pipe pode armazenar informação de forma que o processo escritor
possa deixar lá várias mensagens, sem que o leitor as tenha lido primeiro.
� Quando o pipe fica cheio, então sim, o processo escritor tem que
suspender a sua atividade até que o leitor leia alguma das mensagens.
PIPES
M
Ó
D
U
LO
3
: IP
C
 –
IN
TER
P
R
O
C
ESS
C
O
M
M
U
N
IC
A
TIO
N
128
Nota: Nada impede um processo de ler no mesmo pipe
que escreve. No entanto, o processo "arrisca-se" a ler o 
que escreveu!
Após ser criado pela chamada de sistema pipe( ), retorna dois 
descritores, um para escrita e outro para leitura, que são 
manipulados pelas mesmas funções read( ) e write( )
utilizadas para manipulação de arquivos. 
10/04/2013
65
PIPES
M
Ó
D
U
LO
3
: IP
C
 –
IN
TER
P
R
O
C
ESS
C
O
M
M
U
N
IC
A
TIO
N
129
Antes, vamos relembrar a syscall FORK():
P1
P1’
Execução 
da fork()
O Processo pai (P1) executa a chamada Fork(). Essa chamada 
cria um outro processo P2 (filho) com o MESMO CÓDIGO que 
P1.
Id = fork()
If (id>0) = pai
If (id=0) = filho
If (id<0) = PAU
PIPES
M
Ó
D
U
LO
3
: IP
C
 –
IN
TER
P
R
O
C
ESS
C
O
M
M
U
N
IC
A
TIO
N
130
10/04/2013
66
PIPES
M
Ó
D
U
LO
3
: IP
C
 –
IN
TER
P
R
O
C
ESS
C
O
M
M
U
N
IC
A
TIO
N
131
PIPES
M
Ó
D
U
LO
3
: IP
C
 –
IN
TER
P
R
O
C
ESS
C
O
M
M
U
N
IC
A
TIO
N
132
Declaração:
int pipe1[2], // comunicação pai -> filho
pipe2[2]; // comunicação filho -> pai
Chamada:
if (pipe(pipe1)<0 || pipe(pipe2) <0)
{ printf("Erro na chamada PIPE");
exit(0);
}
10/04/2013
67
PIPES
M
Ó
D
U
LO
3
: IP
C
 –
IN
TER
P
R
O
C
ESS
C
O
M
M
U
N
IC
A
TIO
N
133
Fork():
// Fork para criar o processo filho
if ( (descritor = fork()) <0)
{ printf("Erro na chamada FORK");
exit(0);
}
if (descritor >0) 
// PROCESSO PAI
{ } 
else
// PROCESSO FILHO
{}
if (descritor >0) 
// PROCESSO PAI
{ } 
else
// PROCESSO FILHO
{}
PIPES
M
Ó
D
U
LO
3
: IP
C
 –
IN
TER
P
R
O
C
ESS
C
O
M
M
U
N
IC
A
TIO
N
134
Pai
Pipe1[0] 
close
Pipe1[1] 
escrita Filho
Pipe1[0] 
leitura
Pipe1[1]
close
Neste pipe o pai escreve e o filho lê.
10/04/2013
68
PIPES
M
Ó
D
U
LO
3
: IP
C
 –
IN
TER
P
R
O
C
ESS
C
O
M
M
U
N
IC
A
TIO
N
135
Pai
Pipe1[0] 
close
Pipe1[1] 
escrita
Pipe2[0] 
leitura
Pipe2[1] 
close
Filho
Pipe1[0] 
leitura
Pipe1[1]
close
Pipe2[0]
close
Pipe2[1] 
escrita
PIPE1
PIPE2
PIPES
M
Ó
D
U
LO
3
: IP
C
 –
IN
TER
P
R
O
C
ESS
C
O
M
M
U
N
IC
A
TIO
N
136
10/04/2013
69
PIPES
M
Ó
D
U
LO
3
: IP
C
 –
IN
TER
P
R
O
C
ESS
C
O
M
M
U
N
IC
A
TIO
N
137
PIPES
M
Ó
D
U
LO
3
: IP
C
 –
IN
TER
P
R
O
C
ESS
C
O
M
M
U
N
IC
A
TIO
N
138
10/04/2013
70
IPC
M
Ó
D
U
LO
3
: IP
C
 –
IN
TER
P
R
O
C
ESS
C
O
M
M
U
N
IC
A
TIO
N
139
SOCKETS
SOCKETS
SOCKETS
M
Ó
D
U
LO
3
: IP
C
 –
IN
TER
P
R
O
C
ESS
C
O
M
M
U
N
IC
A
TIO
N
140
Objetivo: Comunicação entre processos em máquinas distintas.
10/04/2013
71
SOCKETS
M
Ó
D
U
LO
3
: IP
C
 –
IN
TER
P
R
O
C
ESS
C
O
M
M
U
N
IC
A
TIO
N
141
SOCKETS
M
Ó
D
U
LO
3
: IP
C
 –
IN
TER
P
R
O
C
ESS
C
O
M
M
U
N
IC
A
TIO
N
142
Ver código em 
aula rede 
(Lab de SO)
10/04/2013
72
MÓDULO 4: GERENCIAMENTO DE MEMÓRIA
143
OVERLAY
M
Ó
D
U
LO
4
 : G
ER
EN
C
IA
M
EN
TO
D
E
M
EM
Ó
R
IA
144
Memória Principal
Cadastramento
Impressão
SO2 Kb
3 Kb
4 Kb
4 Kb
2 Kb
2 Kb
1 Kb
Módulo principal
Área de 
overlay
Área livre
Área não
utilizada
10/04/2013
73
FRAGMENTAÇÃO EXTERNA
M
Ó
D
U
LO
4
 : G
ER
EN
C
IA
M
EN
TO
D
E
M
EM
Ó
R
IA
145
Memória PrincipalMemória Principal
Sistema Operacional
4 Kb
3 Kb
5 Kb
6 Kb Processo A
Processo B
C
FRAGMENTAÇÃO INTERNA
M
Ó
D
U
LO
4
 : G
ER
EN
C
IA
M
EN
TO
D
E
M
EM
Ó
R
IA
146
Memória PrincipalMemória Principal
Sistema Operacional
4 Kb
3 Kb
7 KbProcesso C
6 Kb Processo A
Processo B
C
Quando o programa não é
múltiplo do tamanho
estabelecido para os blocos
sobrará memória no último
bloco que será desperdiça.
10/04/2013
74
GERENCIAMENTO DE MEMÓRIA
M
Ó
D
U
LO
4
 : G
ER
EN
C
IA
M
EN
TO
D
E
M
EM
Ó
R
IA
147
A gerência e organização da memória são fatores importantes no projeto de
um SO, pois na maioria dos casos influenciam diretamente no seu
desempenho.
Os principais esquemas de organização e gerência da memória são:
Memória Virtual;
Alocação Contígua Simples;
Alocação Particionada;
ALOCAÇÃO CONTIGUA SIMPLES
M
Ó
D
U
LO
4
 : G
ER
EN
C
IA
M
EN
TO
D
E
M
EM
Ó
R
IA
148
Era utilizada em sistemas Monousuário / Monoprogramáveis. 
Sistema Operacional
Área para o 
programa 
do usuário
RAM
Sistema Operacional
Programa do
usuário
RAM
Área livre
Residentes
Transientes
10/04/2013
75
GERENCIAMENTO DE MEMÓRIA: PARTICIONADA
M
Ó
D
U
LO
4
 : G
ER
EN
C
IA
M
EN
TO
D
E
M
EM
Ó
R
IA
149
A Alocação Particionada surgiu com os sistemas Multiprogramáveis /
Multiusuários visando permitir o compartilhamento da memória. É dividida
em:
Alocação Particionada
Estática
Alocação Particionada
Dinâmica
PARTICIONADA ESTÁTICA
M
Ó
D
U
LO
4
 : G
ER
EN
C
IA
M
EN
TO
D
E
M
EM
Ó
R
IA
150
As partições têm o tamanho definido pelo SO na inicialização do sistema.
ABCDE
3kb 6kb 1kb 4kb 2kb
Sistema Operacional
Partição1 - 2kb
Partição2 - 5kb
Partição3 - 8kbD
AC
BE
10/04/2013
76
PARTICIONADA ESTÁTICA
M
Ó
D
U
LO
4
 : G
ER
EN
C
IA
M
EN
TO
D
E
M
EM
Ó
R
IA
151
As partições têm o tamanho definido pelo SO na inicialização do sistema.
ABCDE
3kb 6kb 1kb 4kb 2kb
Sistema Operacional
Programa A
Programa E
Programa B
DC
Área Livre
Área Livre
PARTICIONADA DINÂMICA
M
Ó
D
U
LO
4
 : G
ER
EN
C
IA
M
EN
TO
D
E
M
EM
Ó
R
IA
152
As partições têm o tamanho alterado de acordo com o
tamanho dos programa.
BCE
Sistema Operacional
11kb
Sistema Operacional
Programa B
Área Livre
Programa C
Programa A
Programa E
ABCDE
3kb 6kb 1kb 4kb 2kb
10/04/2013
77
ESTRATÉGIAS DE ALOCAÇÃO
M
Ó
D
U
LO
4
 : G
ER
EN
C
IA
M
EN
TO
D
E
M
EM
Ó
R
IA
153
Três Estratégias: Independente de qual estratégia é utilizada, SO mantém
lista com endereços livres
1. Best Fit: Escolhe a melhor partição (aquela que o processo deixa o
menor espaço sem utilização). Desvantagem: fragmentação.
2. Worst Fit: Escolhe a pior partição (aquela que o processo deixa o maior
espaço sem utilização)
3. First Fit: Escolhe a primeira partição livre de tamanho suficiente para 
carregar o programa. A lista de áreas livres fica ordenada por endereços
crescentemente. Desta forma, grandes partições
podem ser alocadas no fim. Esta é a técnica mais
rápida e mais utilizada.
MEMÓRIA VIRTUAL
M
Ó
D
U
LO
4
 : G
ER
EN
C
IA
M
EN
TO
D
E
M
EM
Ó
R
IA
154
Memória Virtual: “Técnica de gerenciamento de memória que
combina memória principal e secundária dando a ilusão que a
memória principal é muito maior”
Para que isto seja possível:
Endereço Real ou 
Físico
Endereço Virtual 
(disco)
Tabela de Conversão
10/04/2013
78
MEMÓRIA VIRTUAL
M
Ó
D
U
LO
4
 : G
ER
EN
C
IA
M
EN
TO
D
E
M
EM
Ó
R
IA
155
Memória Virtual Memória Principal
Memória Secundária
SWAPPING
M
Ó
D
U
LO
4
 : G
ER
EN
C
IA
M
EN
TO
D
E
M
EM
Ó
R
IA
156
Trashing
Falta
espaço
ou alto
índice de
page
fault
Memória Principal
Sistema
Operacional
Programa A
Programa G
Swap out
Programa E
Programa B
Memória Principal
Sistema
Operacional
Programa A
Área Livre
Swap in
Arquivo
de Swap
Programa E
Programa H
10/04/2013
79
PAGINAÇÃO E SEGMENTAÇÃO
M
Ó
D
U
LO
4
 : G
ER
EN
C
IA
M
EN
TO
D
E
M
EM
Ó
R
IA
157
� MMU (Memory Management Unit) que fica no processador;
� Para gerenciar a memória virtual (Swapping) existem duas técnicas: 
Paginação e Segmentação.
As duas técnicas podem ocorrer (e na maioria das vezes ocorrem) ao 
mesmo tempo em um SO.
O programa é dividido em páginas de
tamanho fixo (definido pelo SO);
Normalmente 4K.
Cada página pode estar ou não na memória
principal;
Paginação
Os programas são divididos logicamente
em sub rotinas e estruturas de dados
Cada segmento pode ter um tamanho
diferente um do outro
Segmentação
SEGMENTAÇÃO
M
Ó
D
U
LO
4
 : G
ER
EN
C
IA
M
EN
TO
D
E
M
EM
Ó
R
IA
158
Página 0
Página 1
Página 2
Página 3
Página 4
Inicialização
WHILE () DO
BEGIN
END;
Imprime resultados
Código muito 
conexo
10/04/2013
80
SEGMENTAÇÃO
M
Ó
D
U
LO
4
 : G
ER
EN
C
IA
M
EN
TO
D
E
M
EM
Ó
R
IA
159
Página 0
Fragmento 1
Página 2
Inicialização
WHILE () DO
BEGIN
Imprime resultados
END;
WORKING SET
M
Ó
D
U
LO
4
 : G
ER
EN
C
IA
M
EN
TO
D
E
M
EM
Ó
R
IA
160
Taxa de page fault x limite de páginas reais
� Dispositivo de hardware
� Mapear endereços virtuais em endereços físicos sem passar pela tabela de
páginas. Usualmente, ela faz parte da MMU. Constitui-se de um pequeno número
de entradas, muito rápidas, contendo as tabelas de páginas mais utilizadas.
� São rápidas pois a busca se dá pelo conteúdo e não pelo endereço.
TLBs – Translation Lookside Buffers – Memória Associativa
10/04/2013
81
ESTRATÉGIAS PARA ATUALIZAÇÃO DE PÁGINAS
M
Ó
D
U
LO
4
 : G
ER
EN
C
IA
M
EN
TO
D
E
M
EM
Ó
R
IA
161
LFU (Least Frequently Used): Privilegia as que são mais acessadas.
(Pode haver uma velhinha mas bastante acessada!)
A melhor estratégia seria aquela que escolhesse para sair do working set aquela 
página que jamais será acessada (!)
Estratégias
Aleatória: Sem critério, retira qualquer
página.
FIFO: A primeira página utilizada será a primeira a sair. Simples
LRU (Least Recently Used): Sai a que foi acessada menos recentemente
(temporal). Boa estratégia. Overhead: atualizar acessos e buscar páginas.
NRU (Not Recently Used): Sai a que NUNCA foi acessada.
M
Ó
D
U
LO
4
 : G
ER
EN
C
IA
M
EN
TO
D
E
M
EM
Ó
R
IA
162
Exercícios
1. Defina overlay e sua função.
2. O que aconteceria se um SO fosse privado da técnica de reentrância.
3. Qual a idéia de fragmentação. Diferencie os tipos.
4. Como funciona a memória virtual.
5. O que é MMU.
6. O que aconteceria se não existisse memória virtual em um computador.
7. Defina page fault e sua relação com o working set.
8. Descreva as diferenças entre paginação e segmentação.
9. Descreva as políticas de substituição de páginas.
10/04/2013
82
MÓDULO 5: SISTEMAS DE ARQUIVOS
163
SISTEMAS DE ARQUIVOS
M
Ó
D
U
LO
5
 : SISTEM
A
S
D
E
A
R
Q
U
IV
O
S
164
Definição: “O sistema de arquivos de um SO é o módulo (ou conjunto
de rotinas) do SO que associado à um protocolo de execução
organiza, manipula e protege os arquivos”Eu
A informação deve sobreviver ao
término do processo;
REQUISITOS 
BÁSICOS
10/04/2013
83
DIVERSIDADE DE SISTEMAS DE ARQUIVOS
M
Ó
D
U
LO
5
 : SISTEM
A
S
D
E
A
R
Q
U
IV
O
S
165
CONTINUA ...
M
Ó
D
U
LO
5
 : SISTEM
A
S
D
E
A
R
Q
U
IV
O
S
166
10/04/2013
84
PUTS ... AINDA CONTINUA
M
Ó
D
U
LO
5
 : SISTEM
A
S
D
E
A
R
Q
U
IV
O
S
167
A opção do sistema de arquivos 
a ser usado depende da situação
O DISCO
M
Ó
D
U
LO
5
 : SISTEM
A
S
D
E
A
R
Q
U
IV
O
S
168
Cluster = conjunto de setores
Um disco é formado por: faces, trilhas e 
setores.
Exemplo: Num disco com2 faces, 80 trilhas, 18 
setores e 512 bytes por setor
Tem-se : 512 x 18 x 80 x 2=1,44 Mb
10/04/2013
85
TEMPO DE ACESSO
M
Ó
D
U
LO
5
 : SISTEM
A
S
D
E
A
R
Q
U
IV
O
S
169
T = + +
Deve atingir 
velocidade suficiente 
e constante
t1
Busca pela trilha
t2
Espera, na mesma 
trilha, a chegada do 
setor
t3
Read/write
t4
t1 t2 t3 t4+
CD
M
Ó
D
U
LO
5
 : SISTEM
A
S
D
E
A
R
Q
U
IV
O
S
170
Compact Disk (CD ISO 9660)
� Não existem cilindros concêntricos (espiral)
� CD-ROM: Ausência de controle de blocos livres
16 blocos iniciais 
(cada bloco 2048 
bytes) são para 
informações do 
fabricante (ex. 
boot) 
Depois mais um 
bloco com 
informações 
referentes ao 
volume, 
identificador do 
SO, do editor, etc. 
10/04/2013
86
PARTIÇÕES
M
Ó
D
U
LO
5
 : SISTEM
A
S
D
E
A
R
Q
U
IV
O
S
171
São divisões existentes no disco rígido que marcam onde começa onde
termina um sistema de arquivos. Por causa destas divisões, nós podemos
usar mais de um sistema operacional no mesmo computador (como o
GNU/Linux, Windows e DOS), ou dividir o disco rígido em uma ou mais
partes para ser usado por um único sistema operacional.
Uma partição de disco não interfere em 
outras partições existentes, por este 
motivo é possível usar o Windows, 
GNU/Linux e qualquer outro sistema 
operacional no mesmo disco
ARQUIVOS
M
Ó
D
U
LO
5
 : SISTEM
A
S
D
E
A
R
Q
U
IV
O
S
Um arquivo é identificado por um nome e uma extensão. Ex: teste.txt (mera
convenção p/ usuário). As Formas de Estrutura do Arquivo:
Fornece 
flexibilidade, o 
usuário armazena 
qualquer tipo de 
dado nos arquivos. 
SO não ajuda, nem 
atrapalha
Sequência de registros de 
tamanho fixo para poder fazer 
operações de leitura e gravação 
de uma só vez;
Pré-história dos cartões: cada 
registro era constituído por 80 
caracteres. 
Último SO que utilizou essa 
forma: CP/M-86, pai do MS-
DOS, do Bill 
byte
registro
10/04/2013
87
ARQUIVOS
M
Ó
D
U
LO
5
 : SISTEM
A
S
D
E
A
R
Q
U
IV
O
S
173
Um arquivo pode ser constituído 
por uma árvore de registros
A árvore é ordenada por uma 
chave para permitir buscas 
rápidas
Objetivo não era determinar o próximo 
registro mas um entre vários.
Alguns mainframes ainda utilizam. 
Ana Cláudia Teresa
Beatriz Camila Daniele Patrícia Tina Vanessa
Isabela Maria
Registro
TIPOS DE ARQUIVOS
M
Ó
D
U
LO
5
 : SISTEM
A
S
D
E
A
R
Q
U
IV
O
S
174
TIPOS DE ACESSOS
SEQUENCIAL ALEATÓRIO
10/04/2013
88
ATRIBUTOS DE ARQUIVOS
M
Ó
D
U
LO
5
 : SISTEM
A
S
D
E
A
R
Q
U
IV
O
S
175
Além do nome e de um conjunto de informações, o arquivo também 
deve conter vários atributos que são importantes para o seu 
gerenciamento.
OPERAÇÕES SOBRE ARQUIVOS
M
Ó
D
U
LO
5
 : SISTEM
A
S
D
E
A
R
Q
U
IV
O
S
176
Create;
Delete;
Open;
Close;
Read;
Write;
Append;
Seek;
Get Attributes;
Set Attributes;
Rename;
tmpusrlibect
ect
lib
usr
tmp
edu
ze
edu ze
CAMINHOS RELATIVOS X ABSOLUTOS
10/04/2013
89
DIRETÓRIOS
M
Ó
D
U
LO
5
 : SISTEM
A
S
D
E
A
R
Q
U
IV
O
S
177
O SO utiliza um 
sistema hierárquico
para manipular os 
arquivos, 
chamado diretório. 
Um diretório contém 
um 
conjunto de 
entradas, 
uma para cada 
arquivo 
ou diretório 
filho (subdiretório). 
DIRETÓRIO UNIX LIKE
M
Ó
D
U
LO
5
 : SISTEM
A
S
D
E
A
R
Q
U
IV
O
S
178
bin
Arquivos executáveis(binários) de comandos essenciais pertencentes ao sistema e que são usados com 
freqüencia.
boot Arquivos estáticos de boot de inicialização(boot-loader)
dev Arquivos de dispositivos de entrada/saída
etc Configuração do sistema da máquina local com arquivos diversos para a administração de sistema.
home Diretórios local(home) dos usuários
lib Arquivos da biblilotecas compartilhadas usados com freqüencia
mnt Ponto de montagem de partição temporários
root Diretório local do superusuário (root)
sbin Arquivos essenciais do SO
tmp Arquivos temporários gerados por alguns utilitários
usr Todos os arquivos de usuários devem estar aqui (segunda maior hierárquia)
var Informação variável
10/04/2013
90
COMPARTILHAMENTO DE ARQUIVOS
M
Ó
D
U
LO
5
 : SISTEM
A
S
D
E
A
R
Q
U
IV
O
S
179
Alguns arquivos devem compartilhados por vários usuários como: arquivos 
de configuração, bases de dados e arquivos de projetos, entre outros.
/
A B C
A B C
B
B ?
C
C
C
Diretório
Arquivo
Dois diretórios (B e C) mantém 
entradas iguais.
IMPLEMENTAÇÃO DE SISTEMAS DE ARQUIVOS
M
Ó
D
U
LO
5
 : SISTEM
A
S
D
E
A
R
Q
U
IV
O
S
180
Um ponto importante no desempenho do SO é a maneira como é
implementado o Sistema de Arquivos, ou seja, como os arquivos são
associados aos blocos do disco. As implementações mais usuais são:
Alocação Contígua Alocação Encadeada
Alocação com Índices I - nodes
10/04/2013
91
ALOCAÇÃO CONTÍGUA
M
Ó
D
U
LO
5
 : SISTEM
A
S
D
E
A
R
Q
U
IV
O
S
181
Problema:
� É necessário sabermos o tamanho do arquivo no momento da sua
criação;
É o esquema mais simples de alocação.
Arq1 Arq2 Arq3 Bloco
12K 10K 5K 3K
ALOCAÇÃO CONTÍGUA
M
Ó
D
U
LO
5
 : SISTEM
A
S
D
E
A
R
Q
U
IV
O
S
182
É o esquema mais simples de alocação.
10/04/2013
92
ALOCAÇÃO ENCADEADA
M
Ó
D
U
LO
5
 : SISTEM
A
S
D
E
A
R
Q
U
IV
O
S
183
Bloco 0 
do 
Arq1
Bloco 1 
do 
Arq1
Bloco 2 
do 
Arq1
0
Bloco 3 
do 
Arq1
Bloco 0 
do 
Arq2
Bloco 1 
do
Arq2
0
Bloco 2 
do 
Arq2
� O acesso randômico ao disco é extremamente lento e mais difícil de
ser implementado do que o seqüencial;
� O tamanho do bloco não é totalmente utilizado para o
armazenamento dos dados (2 bytes para o ponteiro).
Consiste em manter o espaço alocado ao arquivo através de uma lista
ligada de blocos, atenuando o problema da fragmentação.
Problemas:
ALOCAÇÃO ENCADEADA
M
Ó
D
U
LO
5
 : SISTEM
A
S
D
E
A
R
Q
U
IV
O
S
184
Início
0 1 2
3 4 5
6 7 8
9 10 11
12 13 14
Arquivo Bloco
A.TXT 6
. . . . . .
. . . . . .
. . . . . .
. . . . . .
Cada bloco, em disco, deve armazenar o índice do próximo. 
A tabela só mantém o primeiro bloco do arquivo.
10/04/2013
93
LISTA DE ÍNDICE (FAT)
M
Ó
D
U
LO
5
 : SISTEM
A
S
D
E
A
R
Q
U
IV
O
S
185
Problema:
A tabela deve estar
na memória principal
durante todo o
tempo (FAT).
Este método resolve os problemas da Lista Ligada, mantendo os ponteiros 
em uma tabela.
LISTA DE ÍNDICE (FAT)
M
Ó
D
U
LO
5
 : SISTEM
A
S
D
E
A
R
Q
U
IV
O
S
186
0 1 2
3 4 5
6 7 8
9 10 11
12 13 14
Bloco de
Índices (FAT)
3
10
11
7
Vai para a 
memória RAM
A tabela mantém todos os blocos do arquivo.
10/04/2013
94
I-NODES
M
Ó
D
U
LO
5
 : SISTEM
A
S
D
E
A
R
Q
U
IV
O
S
187
I-NODES
Não existe fragmentação: 
Todo arquivo é mantido a 
partir de um “ramo” da 
árvore. Qualquer acesso ao 
arquivo ficará limitado a este 
ramo.
Na exclusão de arquivos 
desliga-se apenas os 
ponteiros para o bloco 
inicial.
A combinação dos blocos, 
originalmente composto por 
512K, pode ser alocado em 
conjunto a outros blocos 
formando espaços de 
endereçamento com diferentes 
tamanhos.
Utiliza uma estrutura
hierárquica maleável
para endereçar os
blocos do arquivo (é
utilizado pelos UNIX-
like).
I-NODES
M
Ó
D
U
LO
5
 : SISTEM
A
S
D
E
A
R
Q
U
IV
O
S
188
Atributos
Endereço bloco 0
Endereço bloco 1
Endereço bloco 2
Endereço bloco 3
Endereço bloco 4
Endereços adicionais
Endereços adicionais
Endereços adicionais
I-node
Bloco de dados
10/04/2013
95
I-NODES
M
Ó
D
U
LO
5
 : SISTEM
A
S
D
E
A
R
Q
U
IV
O
S
189
CONTROLE DE BLOCOS LIVRES
M
Ó
D
U
LO
5
 : SISTEM
A
S
D
E
A
R
Q
U
IV
O
S
190
Existem três modos para controlar os blocos
livres de um disco
Blocos 
Livres
Mapa de 
bits
Tabela de 
blocos 
livres
Lista de 
blocos
10/04/2013
96
LISTA DE BLOCOS
M
Ó
D
U
LO
5
 : SISTEM
A
S
D
E
A
R
Q
U
IV
O
S
191
Cada bloco livre aponta para outro bloco livre.
O primeiro da lista será o próximo a ser utilizado.
Início
Lista encadeada
MAPA DE BITS
M
Ó
D
U
LO
5
 : SISTEM
A
S
D
E
A
R
Q
U
IV
O
S
192
Cada bloco do disco tem um
bit correspondente, sendo
que zero indica bloco livre e
um indica bloco ocupado.
Independente da
quantidade de blocos livres
temos o mesmo espaço
ocupado pelo mapa de bits.
(Ext3, etc)
11001101
11100000
.
.
.
01110100
10000111
Mapa de bits
10/04/2013
97
TABELA DE BLOCOS LIVRES ("ANTI-FAT")
M
Ó
D
U
LO
5
 : SISTEM
A
S
D
E
A
R
Q
U
IV
O
S
193
O sistema operacional
mantém em disco uma
tabela (constantemente
atualizada) que
identifica o endereço
dos blocos livres
Bloco Endereço
4 2
10 1
25 20
13 7
50 5
Tabela de blocos livres
FAT – FILE ALOCATION TABLE
M
Ó
D
U
LO
5
 : SISTEM
A
S
D
E
A
R
Q
U
IV
O
S
194
Disco Rígido
P1 P2 P3 ...
A B C ....
A. Setor de Boot Primário: contém informação para boot 
inicial, é lida pela ROM, altamente dependente de 
máquina, contém tamanho dos setores, tamanho do 
diretório raiz,qual partição está ativa, etc.
B. C. Partições do disco: cada uma delas pode conter um 
sistema operacional diferente e independente.
10/04/2013
98
FAT – FILE ALOCATION TABLE
M
Ó
D
U
LO
5
 : SISTEM
A
S
D
E
A
R
Q
U
IV
O
S
195
FAT1 FAT2 Root
P1
DadosBS
.
Disco Rígido
P1 P2 P3 ...
A B C ....
BS. Boot Secundário: contém endereços e info. sobre o SO que será 
carregado (end. do dir. raiz) 
FAT: Duplicada, contém entradas para cada bloco de dados
Root: diretório raiz. Dados: dados do usuário
FAT – FILE ALOCATION TABLE
M
Ó
D
U
LO
5
 : SISTEM
A
S
D
E
A
R
Q
U
IV
O
S
196
X
X
eof
13
2
9
8
free
4
12
3
free
eof
eof
eof
eof
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
} Informações a respeito do tamanho do disco
Arquivo A: 6 → 8 → 4 → 2
Arquivo B: 5 → 9 → 12 
Arquivo C: 10 → 3 → 13 
A entrada de cada diretório contém 
apenas o bloco inicial para cada arquivo. A 
FAT cuida do resto! 
10/04/2013
99
NFS – NETWORK FILE SYSTEM
M
Ó
D
U
LO
5
 : SISTEM
A
S
D
E
A
R
Q
U
IV
O
S
197
Primeiro passo para se ter um sistema distribuído.
Filosofia que engloba os sistemas de arquivos para SO´s
Unix-like, i. e., não representa um sistema de arquivos propriamente dito.
NFS
Arquitetura
ProtocolosImplementação
NFS
M
Ó
D
U
LO
5
 : SISTEM
A
S
D
E
A
R
Q
U
IV
O
S
198
Arquitetura
� Idéia básica: compartilhar os arquivos
comuns
� Cada servidor exporta (automaticamente, no
Boot) seus arquivos que estão no diretório
/etc/exports
� Muitas estações SUN são diskless, neste
caso cada cliente monta (mount) seu próprio
diretório no servidor
10/04/2013
100
Protocolos
NFS
M
Ó
D
U
LO
5
 : SISTEM
A
S
D
E
A
R
Q
U
IV
O
S
199
� É a “conversa” que existe entre servidor e clientes para
negociar o compartilhamento e acesso aos arquivos (tamanho
dos nomes, atributos de segurança, propriedade, etc.)
� Cada requisição pode exigir uma resposta
� Não é necessário que o servidor conheça algo sobre seus
clientes (idem ao contrário)
NFS
M
Ó
D
U
LO
5
 : SISTEM
A
S
D
E
A
R
Q
U
IV
O
S
200
Cliente
Chamada de sistema
SO Local
i-node MSG para 
servidor
Servidor
Sistema de arquivos 
virtual
SO LocalServidor 
NFS
i-nodeMSG do 
cliente
Implementação
Read, close, etc
Sistema de arquivos 
virtual
Identifica se o 
arquivo é local
Cliente NFS
Contém R-node
10/04/2013
101
JOURNALING
M
Ó
D
U
LO
5
 : SISTEM
A
S
D
E
A
R
Q
U
IV
O
S
201
Ext3 (Third Extended File System)
Ext3 = Ext2 + Journaling
Journaling: baseado em transações de SGBD. É uma área reservada 
no disco onde funciona um sistema de log circular.Todas as 
operações solicitadas ao sistemas de arquivos são realizadas 
primeiramente no journal, somente após o fim das operações no 
journal é que as alterações são efetivadas no disco. 
SISTEMAS DE ARQUIVOS
M
Ó
D
U
LO
5
 : SISTEM
A
S
D
E
A
R
Q
U
IV
O
S
202
10/04/2013
102
203
Exercícios
1. Defina arquivo.
2. Descreva os principais atributos de um arquivo e alguns métodos.
3. Como pode ser realizada a implementação de um sistema de arquivo.]
4. Descreva os métodos vistos em aula sobre
controle de blocos livres.
5. Porque não existe fragmentação em i-nodes.
6. Como funciona o protocolo NFS.
7. O que é uma “anti-fat”.
8. Descreva as formas de alocação de arquivos estudadas.
9. Descreva a relação SO virtual x sistemas de arquivos.
M
Ó
D
U
LO
5
 : SISTEM
A
S
D
E
A
R
Q
U
IV
O
S
MÓDULO 6: GERENCIAMENTO DE I/O
204
10/04/2013
103
205
M
Ó
D
U
LO
6
: G
ER
EN
C
IA
M
EN
TO
D
E
I/O
TÓPICOS JÁ VISTOS
spooling
Paralelismo 
interno
buffering
interrupções
206
M
Ó
D
U
LO
6
: G
ER
EN
C
IA
M
EN
TO
D
E
I/O
DISPOSITIVOS E SUAS CONTROLADORAS
� Em sistemas mais primitivos, a comunicação entre a CPU e os
periféricos era controlada por um conjunto de microinstruções
especiais, denominadas instruções de I/O, executadas pela própria
CPU.
CPU Memória Controladora Discos
Vídeo
Rede
Não existiam placas controladoras!
Controladora Controladora
10/04/2013
104
207
M
Ó
D
U
LO
6
: G
ER
EN
C
IA
M
EN
TO
D
E
I/O
DISPOSITIVOS E SUAS CONTROLADORAS
As unidades de E/S consistem em :
Componente Eletrônico
(Controlador CI)
Ex.: placa de vídeo
Componente Mecânico
Ex.: vídeo+
E/S
A interface entre estes dois componentes é feita através de 
uma interface de nível muito baixo: “Escovação de bits”. 
Define-se fluxo de bits, preâmbulo de mensagens, etc.
208
M
Ó
D
U
LO
6
: G
ER
EN
C
IA
M
EN
TO
D
E
I/O
FUNÇÕES DAS CONTROLADORAS
Tratamento de 
erros nas 
operações de 
E/S
Tratamento de 
erros nas 
operações de 
E/S
BufferizaçãoBufferização
Interface 
padronizada 
com os device
drivers
Interface 
padronizada 
com os device
drivers
Mecanismo de 
proteção de 
acesso aos 
dispositivos
Mecanismo de 
proteção de 
acesso aos 
dispositivos
10/04/2013
105
209
M
Ó
D
U
LO
6
: G
ER
EN
C
IA
M
EN
TO
D
E
I/O
TIPOS DE DISPOSITIVOS
Blocos
• HD, Floppy Disk, etc
• Armazenam 
informações em 
blocos de tamanho 
fixo (512 Kb, 1024Kb, 
etc)
• Lê-se um bloco n ou 
escreve-se um bloco n
• A troca de 
informações é em 
fluxo de bits.
Caracteres
• Impressora, Mouse, 
Interface de Redes, 
etc.
• Enviam e recebem um 
fluxo de caracteres 
sem considerar 
qualquer estrutura.
• Tamanhos variáveis.
210
M
Ó
D
U
LO
6
: G
ER
EN
C
IA
M
EN
TO
D
E
I/O
FORMAS DE REALIZAÇÃO DE I/O
• O SO “vive” de interrupções.
• CPU participa em todos os 
momentos
E/S 
Programada
• Nível de participação da CPU 
moderado
• Ela é avisada quando necessário
E/S 
Orientada à 
interrupção
• Mínima participação da CPU nas 
operações de I/O.
• DMA assume responsabilidades
E/S por DMA
10/04/2013
106
211
M
Ó
D
U
LO
6
: G
ER
EN
C
IA
M
EN
TO
D
E
I/O
DISCOS OPTICOS
CD - ROM:
� Maior densidade de gravação 
(pioneiros: Philips/Sony)
� Suposta duração: 100 anos
� Produção através de laser infra 
vermelho queimando orifícios de 0.8 
mícron de diâmetro.
� São feitas depressões (pits), em 
espiral, em uma resina de 
policarbonato em contrapartida às 
superfícies (lands)
� Luz refletida na depressão acusa 
‘bit’ 0 
212
M
Ó
D
U
LO
6
: G
ER
EN
C
IA
M
EN
TO
D
E
I/O
INTERAÇÃO
10/04/2013
107
MÓDULO 7: ESTUDOS DE CASOS
213
214
M
Ó
D
U
LO
7
: ESTU
D
O
D
E
C
A
SO
S
ESTUDOS DE CASOS
10/04/2013
108
215
M
Ó
D
U
LO
7
: ESTU
D
O
D
E
C
A
SO
ESTUDO DE CASO
216
M
Ó
D
U
LO
7
: ESTU
D
O
D
E
C
A
SO
-
SIN
G
U
LA
R
ITY
ESTUDO DE CASO: SINGULARITY
� A Microsoft não está mais focada apenas no Windows como seu
sistema operacional. Ela desenvolveu um novo SO baseado em
microkernel, com cerca de 300.000 linhas de código, que não tem raízes no
Windows.
� Singularity é um projeto de SO da Microsoft focado no conceito de
dependable systems, pense nisso como sistemas em que se pode confiar,
de verdade, sistemas seguros não só em privilégios de acesso, senha,
comunicação, vírus, invasões, etc.; mas até na forma em que os programas
são desenvolvidos, instalados e interagem.
� Cosmologia: singularidade é uma região do espaço-tempo onde as leis
da física atualmente conhecidas entram em colapso e as equações perdem
o seu significado - como o momento anterior ao BigBang.(!)
10/04/2013
109
217
M
Ó
D
U
LO
7
: ESTU
D
O
D
E
C
A
SO
-
SIN
G
U
LA
R
ITY
ESTUDO DE CASO: SINGULARITY
� Linguagem de programação que extendeu do Spec#, que por sua vez 
teve origem na C#, com a intenção de utilizá-la no desenvolvimento do 
projeto Singularity.
� Implementa o suporte a utilização de canais de comunicação
� Possibilita construções de programas em baixo nível.
Um aspecto chave no Singularity é o modelo de extensão baseado em 
Software-Isolated Processes (SIPs), que encapsula pedaços de uma 
aplicação ou sistema e fornece informações, isolamento de falhas e 
interfaces fortes. SIPs são usadas por todo o sistema operacional e 
aplicações. 
�Por exemplo, cada programa, driver ou extensão do sistema roda em
sua própria SIP. Elas não compartilham memória nem modificam seu
próprio código.
�SIPs são os processos do sistema operacional do Singularity: todo
código fora do kernel (núcleo) é executado numa SIP. A Microsoft
acredita que construir um sistema com esta abstração levará a
programas mais confiáveis.
218
M
Ó
D
U
LO
7
: ESTU
D
O
D
E
C
A
SO
-
SIN
G
U
LA
R
ITY
ESTUDO DE CASO: SINGULARITY
� Componente privilegiado do Sistema
� Possuí seu próprio coletor de lixo
� Fornece Application Binary Interface (ABI, análogas às syscalls) 
�Troca de escalonador em tempo de compilação
O kernel
�Prevenção de erros desalocando memória.
�Todo processo é passível ao coletor de lixo.
�Não existe um GC universal
�Cada SIP tem seu próprio GC
�Escalonador independente de GC. 
Garbage Collection
10/04/2013
110
219
M
Ó
D
U
LO
7
: ESTU
D
O
D
E
C
A
SO
-
SIN
G
U
LA
R
ITY
ESTUDO DE CASO: SINGULARITY
220
M
Ó
D
U
LO
7
: ESTU
D
O
D
E
C
A
SO
-
SIN
G
U
LA
R
ITY
ESTUDO DE CASO: SINGULARITY
10/04/2013
111
221
M
Ó
D
U
LO
7
: ESTU
D
O
D
E
C
A
SO
–
W
IN
D
O
W
S
V
ISTA
ESTUDO DE CASO
222
M
Ó
D
U
LO
7
: ESTU
D
O
D
E
C
A
SO
-
W
IN
D
O
W
S
V
ISTA
ESTUDO DE CASO – WINDOWS VISTA
1985 – windows 1.0
1987 – windows 2.0
Ms-dos Ms-dos based NT
2009 – windows 7
10/04/2013
112
223
M
Ó
D
U
LO
7
: ESTU
D
O
D
E
C
A
SO
-
W
IN
D
O
W
S
V
ISTA
ESTUDO DE CASO – WINDOWS VISTA
0
10000000
20000000
30000000
40000000
50000000
60000000
70000000
Linhas de Código
224
M
Ó
D
U
LO
7
: ESTU
D
O
D
E
C
A
SO
-
W
IN
D
O
W
S
V
ISTA
ESTUDO DE CASO – WINDOWS VISTA
Linhas de Código
10/04/2013
113
225
M
Ó
D
U
LO
7
: ESTU
D
O
D
E
C
A
SO
-
W
IN
D
O
W
S
V
ISTA
ESTUDO DE CASO – WINDOWS VISTA
“Mescla estranha entre um sistema de 
arquivos e uma base de dados...” 
Registros do Windows
226
M
Ó
D
U
LO
7
: ESTU
D
O
D
E
C
A
SO
-
W
IN
D
O
W
S
V
ISTA
ESTUDO DE CASO – WINDOWS VISTA
Conceitos básicos para Gerenciamento de CPU
10/04/2013
114
227
M
Ó
D
U
LO
7
: ESTU
D
O
D
E
C
A
SO
-
W
IN
D
O
W
S
V
ISTA
ESTUDO DE CASO – WINDOWS VISTA
Prioridades no Windows Vista
228
M
Ó
D
U
LO
7
: ESTU
D
O
D
E
C
A
SO
-
W
IN
D
O
W
S
V
ISTA
ESTUDO DE CASO – WINDOWS VISTA
Sistema de Arquivos - NTFS
10/04/2013
115
229
M
Ó
D
U
LO
7
: ESTU
D
O
D
E
C
A
SO
-
W
IN
D
O
W
S
V
ISTA
ESTUDO DE CASO – WINDOWS VISTA
O NTFS armazena os nomes de arquivos, diretórios e volumes 
usando Unicode. Foi usado o Unicode para tornar o sistema 
utilizável sem mudanças para qualquer tipo de idioma, tornando o 
sistema o mais universal possível. 
Unicode fornece um número único para cada 
caractere,
não importa a plataforma,
não importa o programa,
não importa a língua.
Qual o ascii desta 
letra do alfabeto 
cirílico (zé ou Je)?! 
Җ
Alfabeto cirílico é um alfabeto cujas variantes são 
utilizadas para a grafia de seis línguas nacionais 
eslavas bielorrusso, búlgaro, macedônio, russo, sérvio 
e ucraniano) , ahhhh!!!
Sistema de Arquivos - NTFS
230
M
Ó
D
U
LO
7
: ESTU
D
O
D
E
C
A
SO
-
W
IN
D
O
W
S
V
ISTA
ESTUDO DE CASO – WINDOWS VISTA
Sistema de Arquivos - NTFS
Capacidade de armazenamentoCapacidade de armazenamento
NTFS aloca clusters e 
usa 64 bits para 
endereçá-los, cada um 
com até 64Kb. Cada 
arquivo pode ter até 
1844674407370955161
6 bytes de extensão. 
(hexabytes: 
quinquilhão).
NTFS aloca clusters e 
usa 64 bits para 
endereçá-los, cada um 
com até 64Kb. Cada 
arquivo pode ter até 
1844674407370955161
6 bytes de extensão. 
(hexabytes: 
quinquilhão).
O tamanho do cluster é 
ajustável, com um 
tamanho mínimo de 
512 bytes para discos 
menores e máximo de 
64Kb para discos 
grandes
O tamanho do cluster é 
ajustável, com um 
tamanho mínimo de 
512 bytes para discos 
menores e máximo de 
64Kb para discos 
grandes
Embora o NTFS use 
64bits (8 bytes) para 
representar cada 
alocação de disco, ele 
codifica os endereços 
de modo que ocupem 
apenas de 3 a 5 bytes 
(meu Deus...) 
Embora o NTFS use 
64bits (8 bytes) para 
representar cada 
alocação de disco, ele 
codifica os endereços 
de modo que ocupem 
apenas de 3 a 5 bytes 
(meu Deus...) 
10/04/2013
116
231
M
Ó
D
U
LO
7
: ESTU
D
O
D
E
C
A
SO
-
W
IN
D
O
W
S
V
ISTA
ESTUDO DE CASO – WINDOWS VISTA
Sistema de Arquivos - NTFS
POSIX
O sistema NTFS suporta POSIX (Portable Operating System Interface)
totalmente. O padrão POSIX exige: nomes de diretórios e arquivos se
diferenciem pela caixa alta e caixa baixa, uma marca de "hora de
mudança do arquivo" e atalhos (links)
Posix define características como proteção entre processos (crash 
protection), carregamento por demanda, redes TCP/IP, 
alem de nomes de arquivos 
com até 255 caracteres, suporte a UNICODE, shared libraries, 
memória virtual, etc. 
Posix define características como proteção entre processos (crash 
protection), carregamento por demanda, redes TCP/IP, 
alem de nomes de arquivos 
com até 255 caracteres, suporte a UNICODE, shared libraries, 
memória virtual, etc. 
232
M
Ó
D
U
LO
7
: ESTU
D
O
D
E
C
A
SO
-
W
IN
D
O
W
S
V
ISTA
ESTUDO DE CASO – WINDOWS VISTA
Sistema de Arquivos - NTFS
Tabela de Arquivo Mestre (MFT – Master File Table) 
A MFT é a principal estrutura localizada no
disco. A MFT é uma matriz de registro de
arquivo de 1Kb cada, logicamente a MFT contém
uma linha para cada arquivo no volume. Além
da MFT cada volume contém uma série de
arquivo de metadados (arquivo de log, arquivo
de cluster defeituosos, além de outros usados
pelo sistema), o restante dos arquivos são
arquivos e diretórios de usuários.
Ou seja, pegaram a FAT e deram um trato nela. 
Fizeram escova, passaram um batonzinho...
10/04/2013
117
233
M
Ó
D
U
LO
7
: ESTU
D
O
D
E
C
A
SO
-
W
IN
D
O
W
S
V
ISTA
ESTUDO DE CASO – WINDOWS VISTA
Sistema de Arquivos - NTFS
Compactação de dados
O NTFS suporta a compactação dos dados do disco automaticamente,
apenas é necessário especificar quais locais do volume serão
compactados. Escolher esta opção de compactação dos dados
denigre o desempenho do sistema para escrita e leitura dos dados,
muitas vezes não sendo indicados para usuários que necessitem de
desempenho, já que hoje em dia espaço em disco não é um custo tão
alto
A compactação no NTFS pode ser realizada em arquivo, diretório ou 
volume, além disso apenas arquivos do usuário são compactados, 
não compactando os arquivos de metadados (bitmaps, bootstrap, 
MFT,etc). 
234
M
Ó
D
U
LO
7
: ESTU
D
O
D
E
C
A
SO
-
W
IN
D
O
W
S
V
ISTA
ESTUDO DE CASO – WINDOWS VISTA
Sistema de Arquivos - NTFS
Tolerância a Falhas
Conjunto de espelhos: No conjunto de espelho, o
conteúdo de uma partição em disco é duplicado em
uma partição do mesmo tamanho em outro disco.
Quando um programa grava em C:, FtDisk grava os
mesmos dados no mesmo local na partição espelho.
Além disso, o conjunto espelho pode ajudar na
atividade de I/O, em sistemas muito sobrecarregados,
equilibrando suas operações de leitura entre as duas
partições. As operações de leitura podem ser feitas
normalmente, mas quando um arquivo é modificado as
duas partições devem ser gravadas, mas as gravações
são feitas assincronamente, de modo que o
desempenho geralmente não é afetado pela
atualização extra do disco.
10/04/2013
118
235
M
Ó
D
U
LO
7
: ESTU
D
O
D
E
C
A
SO
-
LIN
U
X
ESTUDO DE CASO
236
M
Ó
D
U
LO
7
: ESTU
D
O
D
E
C
A
SO
-
LIN
U
X
ESTUDO DE CASO: LINUX - SURGIMENTO
MULTICS
UNICS (UNIX)UNICS (UNIX)
UNIX AT&TUNIX AT&T
UNIX BERKELEY
(BSD)
UNIX BERKELEY
(BSD)
MINIXMINIX
LINUX
(1991)
MIT, Bell e GEKen Thompson, 
da Bell em 
Assembly
Em C 
aprimoramento de 
“B” de BCPL por 
Dennis Ritchie e Ken 
Thompson
Embate entre as 
duas versões 
origina o POSIX
Tanembaum
11.800 linhas C e 
800 assembly
Linus Torvalds e 
Richard Stallman 
(GNU) 
10/04/2013
119
237
M
Ó
D
U
LO
7
: ESTU
D
O
D
E
C
A
SO
-
LIN
U
X
ESTUDO DE CASO: LINUX – IDENTIFICAÇÃO DO KERNEL
A.B.C.D
Revisões 
mínimas
Versão do 
núcleo
Revisões 
Importantes
Correção de 
pequenos erros
100 mais populares
238
M
Ó
D
U
LO
7
: ESTU
D
O
D
E
C
A
SO
-
LIN
U
X
ESTUDO DE CASO: LINUX – DISTRIBUIÇÕES
10/04/2013
120
239
M
Ó
D
U
LO
7
: ESTU
D
O
D
E
C
A
SO
-
LIN
U
X
EVOLUÇÃO DA POPULARIDADE DAS DISTRIBUIÇÕES
240
M
Ó
D
U
LO
7
: ESTU
D
O
D
E
C
A
SO
-
LIN
U
X
CAMADAS DO LINUX
10/04/2013
121
241
M
Ó
D
U
LO
7
: ESTU
D
O
D
E
C
A
SO
-
LIN
U
X
KERNEL DO LINUX
242
M
Ó
D
U
LO
7
: ESTU
D
O
D
E
C
A
SO
-
LIN
U
X
ESCALONAMENTO NO LINUX
FIFO Tempo Real
• Maior prioridade 
entre as 3 classes
• Não sofrem 
preempção, exceto 
por uma thread da 
mesma categoria 
mas que acabou de 
ser gerada
• Prioridades de 0 a 
99
Chaveamento 
Circular em Tempo 
Real
• Parecida com as 
FIFOS, porém, 
preemptivas e com 
quantum.
Tempo 
Compatilhado
• Convencionais
• Prioridades de 100 
a 139.
Linux distingue três classes de threads
10/04/2013
122
243
M
Ó
D
U
LO
7
: ESTU
D
O
D
E
C
A
SO
-
LIN
U
X
ESCALONAMENTO NO LINUX: FILA DE EXECUÇÃO
Threads 
expiradas
Threads Ativas
Próxima a 
executar
244
M
Ó
D
U
LO
7
: ESTU
D
O
D
E
C
A
SO
-
S
YM
B
IA
N
ESTUDO DE CASO: SYMBIAN
10/04/2013
123
245
M
Ó
D
U
LO
7
: ESTU
D
O
D
E
C
A
SO
-
SYM
B
IA
N
ESTUDO DE CASO: SYMBIAN
Motorola
EricssonNokia
Psion
Symbian
Sistema 
Operacional 
EPOC
246
M
Ó
D
U
LO
7
: ESTU
D
O
D
E
C
A
SO
-
SYM
B
IA
N
ESTUDO DE CASO: SYMBIAN
10/04/2013
124
247
M
Ó
D
U
LO
7
: ESTU
D
O
D
E
C
A
SO
-
SYM
B
IA
N
ESTUDO DE CASO: SYMBIAN
Orientado a objetos
Cliente-servidor
Foco em smartphones
Busca pelo desempenho
Microkernel
Multitarefa e multithread
Suporta FAT-16 FAT-32 e NTFS
248
M
Ó
D
U
LO
7
: ESTU
D
O
D
E
C
A
SO
-
SYM
B
IA
N
SYMBIAN
Por ser microkernel, as chamadas de sistemas são
realizadas através de troca de mensagens entre os objetos. 
Isso degrada um pouco o desempenho.
Nanonúcleo possui as funções 
mais básicas do Symbian
Aplicações modo 
usuário
Aplicações modo 
usuário
Servidores do 
núcleo: Telefone, 
tela, etc
Servidores do 
núcleo: Telefone, 
tela, etc
NúcleoNúcleo
NanonúcleoNanonúcleo
10/04/2013
125
249
M
Ó
D
U
LO
7
: ESTU
D
O
D
E
C
A
SO
-
SYM
B
IA
N
SYMBIAN

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?