Buscar

SOII_Aula001_06112012

Prévia do material em texto

SISTEMA OPERACIONAL II – REVISÃO PARTE 1 – AULA 06/11/2012 
 
Elaborado por Raquel Barreto – 2012/2 Página 1 
 
Sistemas Operacionais II 
galucio@ime.uerj.br 
 
 
Rio, 06/11/2012 
(Aula 1) 
 
 Gerência de Memória 
 Entrada/Saída 
o Disco Magnético 
 Gerência de Arquivos 
o Conceitos 
o Chamadas ao SO 
o Organização interna 
o Desempenho do uso de arquivos 
 
Famílias de SO 
MS DOS 
- Disk Operating System / SO Textual 
- IBM PC 
 Hardware não proprietário 
 Processador Intel 
- Versionado de 1.0 a 6.0(década de 80) 
- 1 processo por vez inicialmente, depois foi permitido, mas não era a função principal dele[?] 
 
OS/2 
- Desenvolvido por Microsoft+IBM 
- Não obteve sucesso porque a maioria das maquinas não suportavam 
- Existia interface gráfica 
 
Windows 3.0 
- Microsoft – sucesso! 
- Movimento das pessoas comuns usando PC 
- Era vendido separado do PC (+ caro) 
- Lançado programas que funcionassem nele, como editores de texto, planilhas,... (Switch Desktop) 
 
Windows 95 
- Interface mais nova 
- Permitia executar processos múltiplos 
 
SISTEMA OPERACIONAL II – REVISÃO PARTE 1 – AULA 06/11/2012 
 
Elaborado por Raquel Barreto – 2012/2 Página 2 
 
Windows 98 
Windows ME 
Obs: toda essa família era executada em CPU Intel, feita em linguagem de máquina. 
 
Windows NT (New Technology) 
- Linguagem de Alto nível 
- API (Application Program Interface – Conjunto de métodos que posso chamar) - Usar para mudar o 
componente de software sem mudar quem o usa 
Exemplo: Word = API = SO 
Obs: A Microsoft conseguiu fazer a transição das famílias e garantir que os programas continuariam sendo 
executados devido a API 
 
 
Windows NT 3 
4 
2000 
XP 
Vista 
7 
8 
Obs: Família após o NT, feita em linguagem C. 
 
 
Linux (Unix) 
 BSD Unix – Paga pelo governo, versão do Unix 
*(BSD – Berkeley) 
 
- Camadas OSI, padrão que não foi seguido para comunicação entre BSD’s Unix. 
- OSI – 7 camadas; TCP/IP – 4 camadas 
- BSD implementaram TCP/IP 
- Microsoft passou a usar a partir do Widows 95 
 
 
 
MVS Z/OS 
(Mainframe IBM) 
 
- Softwares de mainframe importantes para processamento massivo de dados (Banco, serviços 
públicos). 
- “Áluguel” de mainframe. 
- Algumas empresas ainda usam por segurança e risco. 
- Por um tempo, mainframes processava m mais rápido e faziam E/S mais rápido. CPU específica E/S. 
Hoje em dia existe multi-core. 
- Primeiro a trazer benefícios p/a informática. 
SISTEMA OPERACIONAL II – REVISÃO PARTE 1 – AULA 06/11/2012 
 
Elaborado por Raquel Barreto – 2012/2 Página 3 
 
- Líder de projeto da IBM criou o CMM CMMI: Boas práticas p/ entrega de produtos. 
- Testes, versionamento, requisitos, controle de alteração de requisitos. 
- Na UFRJ surgiu o similar MPS.BR 
- Criado devido ao insucesso no projeto do MVS. 
 
Programa  Processo 
- Programa - Arquivo executável. 
- Processo – Programa carregado na memória p/ execução. 
 
Verificar consistência ( ), call 
 10500 
 
 
 
 
 
Procedure verificar consistência; 500 - 
login - 
 ı - 
¦ - 
end - 
 
 Permitir que um programa seja carregado em um endereço qualquer da memória 
1) 4) Segmentação 
2) 5) Paginação 
3) 
; 
 memória 
 
 memória 
 
 
 
 
 
 
 
 
 
 
} 
 
 
 
 1003 
Variável "j" 
 
 1002 
 
 
 
 
 19.999 
 } 
processo 2 
1001 
 19.900 
1000 
 
 
 
 
 
 
 
 
 
 
 
 
 
SISTEMA OPERACIONAL II – REVISÃO PARTE 1 – AULA 06/11/2012 
 
Elaborado por Raquel Barreto – 2012/2 Página 4 
 
 
 
 
 
10.000 
 
 
9.999 
 
 
} 
 
 
 
 
} 
 
código de rotina 
verificar consistência 
 
 
 
 
 
 
 
 
 
500 
 
 
 
 
processo 1 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4 
 
 
3 
 
 
2 
 
 
1 
 
0 
 0 
 
 
 
 
 
 
 
1) Correção de endereços em tempo de carga. 
 
. Tabela adicional gerada pelo compilador, que diz qual(is) endereço(s) sofreu(ram) correção. 
. Altera o valor na instrução. Soma a cada instrução, vezes únicas, feita pelo SO. 
Ex.: Programa .exe do MSDOS. 
 
 
 
2) Administrador de base 
 
 memória 
 
 
 
 
 
 
 
 
. SO coloca o valor no reg. De 
base. HW faz o resto (somas) 
 
 
 
 
 
 
 
MOV EAX [1000] 
 
 
 
 .Soma mais vezes . 
 
 
 
 
 
ADD EAX, 10 19.900 
 
processo 
2 
 . Soma feita pelo HW (mais 
rápido) 
 
 
MOV [1000], 
EAX 
 
 
 
 .Perde desempenho 
SISTEMA OPERACIONAL II – REVISÃO PARTE 1 – AULA 06/11/2012 
 
Elaborado por Raquel Barreto – 2012/2 Página 5 
 
 
10.000 
} 
imperceptívelmente) 
Reg. de base 9.999 
 
[1000] 
 
 
} processo 1 
Ex. MSDOS, programas .com 
(por limitações de HW) 
 
 
 
 
 
 
 
 
 
0 
 
 
 
 
3) Uso de endereços relativos à instrução atual (instrução em execução) 
 salto condicional 
Ij j = 0 then login 
 
cmp / eax, 0 
 ı 
 
UNZ 160 ( + 30) 
 ı 
 
 - 
} I - código do then end 
 
 - (+55) 
 else login 
 
UMP 200 salto obrigatório 
 I 
 
 - 
} 
 
 I 
 
 
 
 - 
código do 
else 
 end 
 
 - 
 
 
 - 
} - código após o ij 
 
 - 
 Rio, 13/11/2012 
(Aula 2) 
 
 
SO II 
 
 
 
Revisão 
 
 
 
Com conseguir executar um processo em um endereço qualquer da memória? 
 
 
1) Correção de endereços em tempo de carga 
 
SISTEMA OPERACIONAL II – REVISÃO PARTE 1 – AULA 06/11/2012 
 
Elaborado por Raquel Barreto – 2012/2 Página 6 
 
 
2) Regisrador de base. 
 
 
3) Uso de endereçamento relativo à instrução atual 
 
 
4)Segmentção 
 
 
5) Paginação 
 
 
 
Áreas de memória de m processo 
 
 
 
Código executável 
 
 
variáveis globais 
 
 
 locais 
 
 
 dinâmicas 
 
 
 
Procedure P 1 
 
 function fat ( n: Integar) ; function fat ( n: entegar); 
 
var i ; Integar ; var a, i : Integar ; 
 
 begin 
 
 
login 
 
 begin 
 
 if n > 1 
 
 
for i = 1 to 10 do a: =1; 
 
 then 
 
 
begin 
 
 for i:=1 to n do 
 
 return fat (n - 1 ) * n; 
 
. . . 
 
 
a: = a * i 
; 
 
 else 
 
 
end; 
 
 end 
 
 return 1; 
 
 
end. 
 
 fat: = a : // return a 
 
 end 
 
 
 end 
 
 
 
 
 
n 3 
 
fat (3) = fat ( 3 ) * 3 = 6 
 
 
n 2 
 
fat (2) = fat ( 1 ) * 2 = 2 
 
 
 → n * 20 
 
fat (1) = 1 
 
 
 
 
 
 
. O último "n" será sempre o ativo, marcado por um indicador. Qualquer nova atribuição do valor será feito na última. 
 variáveis 
{ 
 
} 
 
Instruções p/ uso de pilha; 
 criadas área 
da 
pilha 
 → 
{ 
 
 topo 
 
PUSH EAX; empilha o valor 
 
SISTEMA OPERACIONAL II – REVISÃO PARTE 1 – AULA 06/11/2012 
 
Elaborado por Raquel Barreto – 2012/2 Página 7 
 
livre 
 
 
do registrador 
EAX 
decrementando 
o topo da pilha 
 
 
 V 1 = 
FAT(3); 
MOV 
EAX, 3 
 
POP EBX; 
pega o valor do 
topo da pilha, 
coloca no 
registrador EBX 
e incrementa o 
topo da pilha 
(Intel definiu 
assim. Existem 
outras formas) 
 
 
PUSH EAX 
 
end da variável "x" 
 
 
CALL 500 
 
 
 
MOV EAX, [1000] 
endereço da função "fat" 
 
 
PUSH EAX 
 
 
CALL 
 
500 
 
 
type 
 
mem
ória 
 emp = recormatricula, integir 
 
 
 
 
nome: storing; 
 
 
 
 
processo 
 
 
prox: 
^emp; 
 
topo → p 2000 
} 
área 
da 
pilha 
 
 
emp 
 
 
 
 
 
 
 variável do 
tipo emp { 2000 
 } heap 
 
 
 
 
 
 
 procedure x: 
 
 
 
 
 var 
 
p^. Matrícula = 123; 
 
New (P2); 
 
 
 p:^emp; p^. Nome="João da Silva"; 
 
p2^. Matrícula:=367 
 
 
 begin 
 
dispose (P) // destruindo a var 
dinâmica apontada por p. 
 
 
new (p); // cria a variável dinâmica do tipo emp e a 
variável p passa a apontar p/ esta variável dinâmica, 
 
 
 
 
 
Type 
 c. imp = class 
 
 
public 
 
 
matricula; 
integer; 
 
 
prox; c. emp 
 
 
end 
 
 procedure x; 
 Var 
 
SISTEMA OPERACIONAL II – REVISÃO PARTE 1 – AULA 06/11/2012 
 
Elaborado por Raquel Barreto – 2012/2 Página 8 
 
e: c. 
emp; 
 e2: 
c.emp; 
 begin 
 e: = new c emp; 
 e.matricula=123; 
 e2:=e; 
 e2. 
matricula;=567; 
 
 
 
 
 
 
memória 
 
 
Unix: 
 
 
área livre externa aos processos 
 
área de dados = globais + heap 
 
 
 
área da pilha 
{ 
 
 
 
> procsso 2 
 
 
 
 
 
 
 
 
{ 
 
} área de dados heap 
 
 
 
 
 } globais 
 
 
código 
{ 
 
 
 
 
 
 
 
 
 } Processo 1 
 
 
 
 
 
 
 
 
. Desvantagem em colocar de forma contínua: a dificuldade em obter espaço para novos 
processos. Mais fácil área separada. 
 
 
 
memória 
 
SISTEMA OPERACIONAL II – REVISÃO PARTE 1 – AULA 06/11/2012 
 
Elaborado por Raquel Barreto – 2012/2 Página 9 
 
 
 
 
Algoritmo de Alocação 
 
 
 
 
Executa mais rápido 
 
 
pilha processo 
1 
 
"melhor opção": 
First 
Fit 
 
Fragmentação / Next Fit (a partir da última alocação) 
 
 
 
 
Best 
Fit -- 
Também gera Fragmentação 
 
 
código 
processo 2 
 
Work 
Fit 
 
Não gera Fragmentação 
 
 
dados 
processo 1 
 
 Impede alocar processos novos maiores. 
 
 
 
 
 
 
 
. SO aloca processos, mas não interfere na alocação 
da heap. Cabe à linguagem do programa. 
 
 
 
dados 
processo 2 
{ 
 
} heap 
. Área de heap é vantagem usar algoritmos mais 
sofisticados e rápidos. 
 
 
 
 
 
código 
processo 1 
 
 
pilha processo 
2 
 
 
 
 
 
 
memória - First Fit 
 
memória - Best Fit 
 
memória - Worst Fit 
 200KB 
{ 
 
 
 
 200KB 
{ 
 
} 140KB 
 
 
 
 
 
 
 
100KB { processo 4 
 
processo 4 
 
processo 5 } 
 
60KB 
 
80KB { 
 
 80KB { 
 } 20KB 
 
Processo 4 
 
 
Processo 5 } 60KB 
 
 
 
200KB { 
processo 2 
 
processo 2 
 
processo 2 
 
 
 
 
 
 
 
 
 
 
 
 
100KB { 
 } 20KB 
 
 
 
 
 
processo 5 } 80KB 
 
 
 
 
 
 
 
SISTEMA OPERACIONAL II – REVISÃO PARTE 1 – AULA 06/11/2012 
 
Elaborado por Raquel Barreto – 2012/2 Página 10 
 
100KB { 
70KB { proc 7 
 
 
 
 } 20KB 
 
70KB { proc 7 100KB { proc 14 
 
100KB { proc 14 
 } 15KB 
 
 
70KB { proc 12 
 
 
70KB { proc 12 
 } 20KB 
 
 
80KB { proc 9 
 
80KB { proc 9 
 } 15KB 
 
 
100KB { proc 11 
100KB { proc 11 
 
 
 
 } 10KB 
 
80KB { proc 8 
 
<== 
 
80KB { proc 8 
 
 
 
compactação } 20KB 
 
1000KB { proc 1 1000KB { proc 1 Total de espaço livre = 100KB 
 
 
 
fragmentação 
 
 
. Reg. Base faz compactação funcionar 
 
MOV EAX, [30.000] 
 
 
Reg. Base 
 
 
550K

Continue navegando