Baixe o app para aproveitar ainda mais
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
Compartilhar