Your SlideShare is downloading. ×
0
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Estudo de caso: Windows NT
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Estudo de caso: Windows NT

330

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
330
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Estudo de caso:Windows NTJerônimo Medina MadrugaLeonardo Lobo da LuzMauro Sérgio Cardoso Kade
  • 2. HistóricoSumárioMS-DOSWindowsWindows NTWindows NT X WindowsWindows 2000
  • 3. MS-DOSEm 1981 a IBM lançava o IBM PC comum sistema operacional de 16 bitschamado MS-DOS 1.0.Sistema basicamente monousuário eorientado a linha de comando durantetoda seu desenvolvimento.
  • 4. WindowsWindows 1.0 lançado em 1985, sendouma interface gráfica para o MS-DOS.Windows 3.0 foi o primeiro a obtersucesso, mas ainda não era um sistemaoperacional completo.Defeitos inerentes do DOS eramherdados
  • 5. WindowsCom a chegada do Windows 95, MS-DOS começa a não gerenciar todo osistema operacional.Ainda existe grande parte de código de16 bits no sistema operacional.
  • 6. WindowsWindows 98 contém a ultima versão doMS-DOS, mas já tem um novo sistemade arquivos.Problemas crônicos: Kernel não-reentrante Endereçamento virtual parcialmentecompartilhado
  • 7. Windows NTEm 1988 a Microsoft decidiu fazer umsistema operacional estável, robusto einovador.Dave Cuttler, um dos desenvolvedoresdo sistema operacional VMS foicontratado para gerenciar esse projeto.
  • 8. Windows NTA primeira versão, Windows NT 3.1, eratecnicamente superior ao Windowsbaseado no MS-DOS.Mas a falta de softwares 32 bits elentidão do sistema fizeram com que elenão se tornasse muito popular.
  • 9. Windows NTWindows NT 4.0, lançado em 1996,tinha a mesma interface do Windows95.Extremamente portável e quasetotalmente escrito em C.
  • 10. Windows NT X Windows
  • 11. Windows 2000O Windows NT 5.0 foi chamado deWindows 2000.Misturava a interface do Windows 98com a confiabilidade da tecnologia NT.Extensibilidade, portabilidade,escalabilidade, compatibilidade,robustez e integração foram seusprincipios de desenvolvimento.
  • 12. Windows 2000Princípios dedesenvolvimentoExtensibilidadePortabilidadeEscalabilidadeRobustezCompatibilidadeSegurançaPerformance
  • 13. Versões do Windows 2000
  • 14. Tamanho do Windows
  • 15. Gerência de ESSumárioObjetivos e funcionalidades de sistema um E/SComponentes do Sistema de E/SGerenciador de E/SDrivers de DispositivoEstrutura de dados do sistema E/STipos de E/SProcessamento de E/SEstruturas de Dados de E/SRecuperação de falha de energiaSuporte a RAID
  • 16. Objetivos e Funcionalidades deum Sistema de E/SOferecer uma estrutura para lidar de modo eficiente com umagrande variedade de dispositivos de E/S;Parte do código de um SO que trata de requisições de E/S dediferentes processos e as transmite aos dispositivos;Funções: Emitir comandos; Capturar interrupções; Manipular erros.
  • 17. Exigências de Projeto de umSistema de E/SProporcionar suporte a vários sistemas de arquivos instaláveis,como por exemplo FAT, UFS, CDFS e NTFS;Permitir adição e remoção de componentes físicos do sistemade uma forma dinâmica;Otimizar o processamento de E/S;Satisfazer as exigências de um Sistema Operacional quanto a: Portabilidade; Proteção a recursos compartilhados; Suporte a interfaces Win32, OS/2 e POSIX; Suporte a ambientes multiprocessados.
  • 18. Componentes do Sistema deE/SO sistema de E/S é guiado por pacotes, onde todarequisição de E/S é representada por um pacote desolicitação de E/S que trafega de um componentedo sistema de E/S para outro;Possui vários componentes, como o gerenciador deE/S, o gerenciador de cache, o gerenciador deenergia, drivers de dispositivo, que atuam emconjunto, recebendo e enviando solicitações de E/S;Embora não seja um componente direto, a camadade abstração de hardware (HAL) interage com oscomponentes do sistema de E/S, servindo paramascarar as diferenças entre os drivers diferentesacoplados ao sistema.
  • 19. Componentes – Gerenciador deE/SÉ responsável pelos acessos ao sistema de arquivos,gerenciador de cache, drivers de dispositivo e drivers de rede;Gerencia os buffers para as requisições de E/S e trabalha emconjunto com o gerenciador de Máquina Virtual (VM – VirtualMachine) para prover um sistema de E/S mapeado emmemória;Controla o gerenciador de cache e suporta operações síncronase assíncronas, além de possuir mecanismos para um driverchamar outro driver.Define uma estrutura ordenada, onde as solicitações de E/S sãotransmitidas ao sistema de arquivos e aos drivers dedispositivo;Fornece um código comum a drivers diferentes que esteschamam para executar seu processamento de E/S;Oferece facilidades de E/S que permitem aos subsistemas deambiente Win32 e POSIX implementar suas respectivas APIs.
  • 20. Componentes – Pacote deRequisição de E/S (IRP)O pacote de requisição de E/S (IRP – I/O RequestPacket) é onde o sistema de E/S armazenainformações necessárias para processar umasolicitação de E/S;IRP é uma estrutura de dados que controla o modocomo a operação de E/S é processada em cadaestágio ao longo do caminho do sistema de E/S;Um driver recebe um IRP, efetua a operação por eleespecificada e devolve ao gerenciador de E/S paraconclusão da operação ou envia para um outrodriver para processamento adicional;Enquanto ativo, cada IRP é armazenado em umafila IRP associada à thread que solicitou aoperação de E/S, permitindo ao sistema de E/S
  • 21. Componentes – Pacote deRequisição de E/S (IRP)Um driver recebe um IRP, efetua a operação por eleespecificada e devolve ao gerenciador de E/S paraconclusão da operação ou envia para um outrodriver para processamento adicional;Enquanto ativo, cada IRP é armazenado em umafila IRP associada à thread que solicitou aoperação de E/S, permitindo ao sistema de E/Sencontrar e eliminar qualquer E/S pendente se umathread terminar ou se for terminada comsolicitações pendentes.
  • 22. Componentes – Pacote deRequisição de E/S (IRP)Um IRP consiste em duas partes: Cabeçalho fixo: contém informações acerca dotipo e tamanho da solicitação, se a mesma ésíncrona ou assíncrona, um ponteiro para umbuffer e informações a respeito do estado deoperação da requisição; Localização de pilha: contém um código defunção, parâmetros específicos da função e umponteiro para o objeto de arquivo do chamador.
  • 23. Componentes – Driver deDispositivoOferece uma interface de E/S para um tipo dedispositivo em particular;Funciona como a ponte necessária entre ogerenciador de E/S e os componentes do sistemade E/S;Recebem comandos roteados para eles através dogerenciador de E/S, sendo enviados para osdispositivos que eles gerenciam, informando aogerenciador de E/S quando esses comandosterminarem.
  • 24. Componentes – Driver deDispositivoAlguns dos tipos de drivers de dispositivo: Drivers de sistema de arquivo: aceitamrequisições para arquivos. Drivers do Windows NT: atuam em conjunto comos gerenciadores de energia e PnP do WindowsNT, quando requisitados. Drivers de dispositivo virtuais: utilizados paraemular aplicações de 16 bits do MS-DOS.
  • 25. Componentes – Driver deDispositivoOs drivers de dispositivo consistem em uma série de rotinas que sãochamadas para processar os vários estágios de uma requisição deE/S: Rotina de inicialização: executada pelo gerenciador de E/S para inicializarum driver quando este é carregado para o SO e que é denominadaDriverEntry; Rotina de adição de dispositivo: implementado por um driver que suportaPnP, permite que seja alocado um objeto de dispositivo para representarum dispositivo; Rotina de início de E/S: permite que um driver inicie uma transferência dedados para um dispositivo, e é definida somente em drivers que contamcom o gerenciador de E/S para uma serialização IRP; Rotina de serviço de interrupção: é chamada quando ocorre umainterrupção; Rotina de identificação de erros: são chamadas quando acontecem errosinesperados, anotando a ocorrência de erros e notificando o gerenciadorde E/S, que grava as informações em um arquivo de identificação deerros.
  • 26. Componentes – Gerenciador dePlug-and-PlayAtua em conjunto com o gerenciador de E/S e comum driver de dispositivo chamado driver debarramento para conduzir a alocação dos recursos dohardware de forma segura;O gerenciador de PnP e os drivers de barramento sãoresponsáveis por carregar um driver de dispositivoquando um determinado componente é detectado;O suporte a Plug-and-Play requer uma cooperaçãoentre o hardware, os drivers de dispositivo e osdiferentes níveis do sistema operacional.
  • 27. Componentes – Gerenciador dePlug-and-PlayAlgumas capacidades do suporte a PnP são: O gerenciador de PnP reconhece automaticamentedispositivos instalados, um processo que inclui enumerardispositivos acoplados ao sistema durante uma operaçãode boot e detectar a adição ou remoção de dispositivosenquanto o sistema encontra-se em execução; O gerenciador de PnP utiliza o processo de arbitragem derecursos na alocação de recursos de hardware junto comas exigências dos mesmos recursos dos dispositivosconectados ao sistema; O gerenciador de PnP implementa aplicações emecanismos no driver para detecção das mudanças nasconfigurações de hardware.
  • 28. Componentes – Gerenciador deEnergiaAtua em conjunto com o gerenciador deE/S para conduzir a evolução dosistema, assim como os drivers dedispositivo, através de transições deestados de energia.
  • 29. Componentes – O RegistroServe como uma espécie de base dedados que armazena uma descriçãobásica dos dispositivos de hardwarepresentes no sistema, assim comoinicialização e configuração de umdriver.
  • 30. Componentes – Arquivos INFDesignados pela extensão .inf;São arquivos de instalação de drivers;Esses arquivos são a ligação entre umdispositivo de hardware particular e odriver que assume o controle dodispositivo.
  • 31. Componentes – Camada deAbstração de HardwareA camada de abstração de hardware(HAL – Hardware Abstraction Layer)oferece API’s que escondem asdiferenças entre as plataformas dosdrivers;Na prática, o HAL é um driver debarramento para todos os dispositivosda placa-mãe do computador que nãosão controlados por outros dispositivos.
  • 32. Estruturas de Dados do Sistemade E/S – Objetos de ArquivoSão construções em modo kernel para lidar com arquivos oudispositivos;Todas as origens e destinos de E/S são representados porobjetos de arquivo;Os objetos de arquivo são protegidos por um descritor desegurança que contém uma lista de controle de acesso (ACL);Quando uma thread abre um arquivo, o gerenciador de E/Sconsulta o subsistema de segurança para determinar se a ACLdaquele arquivo permite que o processo acesse o arquivo damaneira como a thread está solicitando;Os objetos de arquivo também são usados para sincronização.
  • 33. Estruturas de Dados do Sistemade E/S – Objetos de ArquivoAlguns atributos dos objetos de arquivo: Nome de arquivo: identifica o arquivo físico ao qual oobjeto do arquivo se refere; Byte offset corrente: identifica a localização atual noarquivo; Modos de compartilhamento: indica onde outroschamadores podem abrir os arquivos para ler, escreverou deletar operações enquanto o chamador atual está emfuncionamento; Ponteiro para objeto de dispositivo: indica o tipo dedispositivo onde o arquivo se encontra; Ponteiro para o bloco de parâmetro de volume: indica ovolume ou a partição em que o arquivo se encontra.
  • 34. Estruturas de Dados do Sistema deE/S – Objetos de Driver e deDispositivoUm objeto de driver representa um driver individualno sistema;Um objeto de dispositivo representa um dispositivológico ou físico no sistema;O gerenciador de E/S cria um objeto de driverenquanto um driver é carregado no sistema, e entãochama uma rotina de inicialização do driverdenominada DriverEntry;Após ser carregado, um driver pode criar objetos dedispositivo para representar dispositivos, ou atémesmo uma interface para o driver, através de umarotina chamada IoCreateDevice.
  • 35. Operação de E/S AssíncronaOs serviços assíncronos permitem que uma aplicaçãoemita uma solicitação de E/S e continue a ser executadaenquanto o dispositivo transfere os dados;Por padrão, aproximadamente um terço dos serviçosnativos do NT que o gerenciador de E/S fornece aossubsistemas e DLL’s são assíncronos;Tendem a ser operações longas ou de comprimentoimprevisível, p.ex., ler ou gravar um arquivo ou enumerarum conteúdo de um diretório de arquivo;Uma thread que chame estes serviços precisa sincronizarsua execução com a conclusão dos mesmos;O trabalho assíncrono dá ao sistema de E/S o máximo deflexibilidade para executar outras tarefas enquantodispositivos relativamente lentos transferem dados.
  • 36. Operação de E/S AssíncronaÉ muito benéfica para operações cujo tempo deconclusão é longo ou altamente variável;Pode ser caracterizada como uma operação queexige um pouco mais de programação em troca demais controle sobre operações de E/S e umaumento considerável em termos de eficiência;A thread que utiliza E/S assíncrona não é retardadadurante uma transferência de dados, porém, elatem de sincronizar o uso que faz de qualquer dadotransferido com a conclusão da transferência porparte do dispositivo.
  • 37. E/S Mapeada em ArquivoÉ uma característica importante do sistema de E/S,produzida em conjunto pelo sistema de E/S e pelogerenciador de memória virtual;Refere-se a possibilidade de visualizar um arquivoresidente em disco como parte da memória virtualde um processo;É utilizada dentro do SO para funções importantes,como caching de arquivos e ativação de imagens;O gerenciador de máquina virtual também torna aE/S mapeada em arquivo disponível ao modousuário através dos serviços nativos.
  • 38. E/S Mapeada em ArquivoO gerenciador de máquina virtual otimiza o acessoao disco, portanto, a E/S mapeada em arquivopermite que as aplicações tirem proveito dessahabilidade;O gerenciador de cache usa a E/S mapeada emarquivo para administrar seu cache baseado emmemória;Os sistemas de arquivos e o servidor de rede usamo cache para colocar na memória dados dearquivos freqüentemente acessados, a fim deproporcionar melhor tempo de resposta aosprogramas ligados à E/S.
  • 39. Processamento de E/SAs solicitações de E/S passam por vários estágios pré-definidosde processamento;Os estágios variam dependendo se a solicitação se destina aum dispositivo operado por um driver de uma única camada oupor um dispositivo alcançado através de um driver de váriascamadas;Depois de abrir um objeto de arquivo, a aplicação chama umarotina de E/S, fornecida por uma biblioteca de linguagem;O processamento varia também dependendo se o chamadorespecificou E/S síncrona ou assíncrona;Os arquivos do NT são representados como objetos e o sistemade E/S oferece serviços de objetos para manipulá-los.
  • 40. Solicitação de E/S para driver deuma única camadaO processamento de uma solicitaçãosíncrona ocorre em três estágios: O gerenciador de E/S envia a solicitação emforma de IRP para o driver, que dá início àoperação de E/S; O dispositivo completa a operação e emite umainterrupção, que é atendida pelo driver dodispositivo; O gerenciador de E/S conclui a solicitação deE/S.
  • 41. Solicitação de E/S para driver deuma única camadaO processamento de uma solicitaçãoassíncrona difere do processamento de umasolicitação síncrona basicamente em umaspecto;A chamada assíncrona acrescenta umaetapa entre as etapas 1 e 2, em que ogerenciador de E/S retorna o controle aochamador;O chamador pode continuar a fazer outrascoisas, enquanto as etapas 2 e 3prosseguem, mas tem de estar sincronizadocom a conclusão da etapa 3 para saber
  • 42. Solicitações de E/S para driversem camadasÉ muita parecida com a solicitação de E/S paradrivers de uma única camada, porém, uma ou maiscamadas adicionais de processamento sãoacrescentadas ao modelo;O gerenciador de E/S recebe solicitação e cria umpacote de solicitação de E/S (IRP) para representá-la;Ele entrega o pacote a um driver do sistema dearquivos;Dependendo do tipo de solicitação feita pelochamador, o sistema de arquivos pode enviar omesmo IRP ao driver de dispositivo, ou pode gerarpacotes adicionais de solicitação de E/S e enviá-losseparadamente ao driver de dispositivo.
  • 43. Acrescentando Drivers emCamadasO projeto do sistema de E/S permite que um driverseja colocado sobre o outro, ou seja, um driverexecuta uma ação com base nas informaçõesarmazenadas na primeira localização da pilha do IRP,passando após isso uma solicitação a outro driver,que armazena as informações exigidas pelo segundodriver em uma segunda localização da pilha do IRP;Como todos os drivers, tanto os de dispositivo quantoos de sistema de arquivos, apresentam a mesmaestrutura ao SO, um outro driver pode facilmente serinserido na hierarquia sem alterar os driversexistentes ou o sistema de E/S.
  • 44. Recuperação de falha deenergiaCada driver de dispositivo deve saber quando ocorreu umafalha de energia, reajustando o dispositivo por ele operado;Qualquer operação de E/S que tenha sido interrompida deveser reinicializada, porém, se isso não for possível, o gerenciadorde E/S deve ser notificado da falha em uma operação de E/S afim de retornar uma condição de erro;O gerenciador de E/S, juntamente com o kernel, oferece umrecurso que permite aos drivers de dispositivo lidar de formatranqüila com interrupções no fornecimento de energia elétrica.
  • 45. Recuperação de falha deenergiaQuando a energia acaba, ocorre uma interrupção por falha deenergia e o S.O. tem um breve período de tempo para preparar-se para o blecaute;O kernel copia rapidamente para a memória todos os registrosimportantes do sistema, incluindo o contador de programa;Se a memória do computador estiver equipada com uma bateriareserva, estas informações são gravadas e, quando a energiavoltar, o kernel e o sistema de E/S podem utilizá-las parareiniciar ou encerrar as operações de E/S que foramanteriormente interrompidas.
  • 46. Suporte a RAIDO suporte a RAID pode ser tanto por hardware quantopor software;No suporte por hardware são oferecidos drivers dedisco com capacidade de gerenciar controladorasRAID, permitindo que diferentes discos trabalhem emconjunto para compor um ou mais discos lógicos;A própria controladora gerencia a criação emanutenção da informação de redundâncianecessária para recuperação dos dados.
  • 47. Suporte a RAIDO suporte via software emula a partir de serviços doS.O. o funcionamento de uma controladora comsuporte RAID;Um driver de dispositivo denominado FTDISK éresponsável por essa tarefa.
  • 48. Gerenciamento de memóriaSumário Espaço de Endereçamento Estados de uma Página Virtual Memória Compartilhada e o Section Object Proteção de Memória Políticas de Paginação Memória Física Tradução de Endereços Falta de Páginas Descritores de Endereço Virtual Chamadas ao sistema
  • 49. Memória VirtualImplementada por Lou PerazzoliMetas para o Gerenciador:PortátilConfiável e EficienteProporcionar Arquivos mapeados, Copy-on-Write e suportepara espaços de endereçamento grandesPermitir processos alocar e gerenciar a própria memóriaPermitir mecanismos que suportam subsistemas de ambiente,como permitir um subsistema gerenciar a memória de umprocesso clienteEquilibrar necessidades de multiprocessamento comvelocidade de acesso a memória
  • 50. MemóriasEspaço de Endereçamento VirtualDisponível para uso das threads de um processoDividido em blocos de tamanho igual chamados páginasMemória virtual limitada pelo número de bitsEspaço de Endereçamento FísicoLimitado pelo hardwareDividido em blocos chamados de estruturas de página
  • 51. MemóriasPágina válidaPresente na memória físicae CommittedPágina inválidaArmazenadas em discoou Uncommitted
  • 52. Estados de uma página virtualFreeNão usada no momentoReferência a uma página free causará uma FaltaReservedNão disponivel para ser mapeadaReferência a uma página reserved causará uma FaltaCommittedDados ou código mapeados para a páginaReferência a uma página committed causará uma Falta, casoa página não esteja na memória principal, ou um Sucesso,caso contrário.
  • 53. Memória CompartilhadaConceito:É a memória visível a partir demais de um processoEstá presente em mais de umespaço de endereçamentovirtual
  • 54. Section ObjectÉ alocado e desalocado pelogerenciador de objetos do NTNão oferece sincronizaçãoProcessos podem mapeiarpartes do mesmo objeto deseção em seus espaços deendereçamento
  • 55. Section ObjectCompartilhamento ocorre nos seguintescasos:Para mapear a visão de uma seção, o processo precisaprimeiro adquirir um handle para a seção. O processo criadordo section object sempre terá um handleSe a seção possuir um nome, outros processos podem abrirhandles para o section objectO processo pode receber um handle para um section objectatravés de herança ou quando um outro processo duplica seuhandle
  • 56. Proteção de MemóriaFornecida em quatro formas:Controlada por hardware (leitura/escrita, somente leitura)Estruturas de dados e memory pools usados peloscomponentes do modo kernel do sistema, só podem seracessados estando no modo kernelCada processo possui um espaço de endereçamentoseparado e privado, protegido contra acesso por qualquerthread que pertença a outro processoOs acessos da memória compartilhada são limitados aosprocessos com os devidos direitos ( Copy-on-write )
  • 57. Copy-on-WriteÉ uma técnica de otimização, chamadaAvaliação Preguiçosa (lazy evaluation), eserve para economizar memória físicaQuando um processo mapeia uma visão de copy-on-write deum section object que contém páginas de leitura/escrita, emvez de criar um processo de cópia privada, o gerenciador dememória adia a criação de uma cópia das páginas até que apágina seja modificada
  • 58. Copy-on-WriteAntesDepois
  • 59. Implementação 2GB usuário 2GB sistema Tabela de página paracada processo Opção de modificação 64+64 KB nãomapeados
  • 60. Tabelas de páginasO kernel e o gerenciador de memória virtualusam tabelas de páginas criadas por softwarepara encontrar páginas que não estãopresentes na TLBUma entrada na tabela de páginas contémtodas as informações necessárias para osistema de memória virtual localizar umapágina quando uma thread usa um endereço
  • 61. Políticas de paginaçãoPolítica de Busca: Determina quando trazer apágina do disco para a memóriaPaginação na demanda com clusterings: quandoocorre uma falta, carrega na memória a página quefaltava e mais algumas em volta dela
  • 62. Políticas de paginaçãoPolítica de Colocação: Determina ondecolocar a página virtual na memória físicaSe a memória não está esgotada, o gerenciadorseleciona a primeira estrutura de página em umalista de estruturas de página livres. Se a lista estávazia, ele cruza uma série de outras listas por elemantidas; a ordem dependerá do tipo de falta depágina ocorrido
  • 63. Políticas de paginaçãoPolítica de Substituição: Determina quepágina virtual deve ser removida da memóriapara obter espaço para a nova páginaFIFO local – multiprocessadores baseados nafamília Intel e processadores baseados na famíliaAlphaLRU (implementado através do algoritmo dorelógio) – monoprocessadores baseados na famíliaIntel
  • 64. Memória FísicaPáginas contidas na memória estãopresentes no Working Set de algum processoWorking SetsDefine o número de páginas que um processoarmazena na memóriaCada processo define um valor mínimo e máximo parao tamanho working set
  • 65. Memória FísicaListas de páginas disponíveis: páginasrecentemente removidas do working set dealgum processo, não estão mais associadas aele e possuem cópia no discoListas de páginas modificadas: páginasrecentemente removidas do working set dealgum processo, não estão mais associadas aele e não possuem cópia no disco
  • 66. Memória FísicaListas de páginas livres: páginas nãoassociadas a processoLista de páginas zeradas: páginas nãoassociadas a processo e preenchidas com ZeroLista de páginas com defeito físico: Contém aspáginas que apresentam defeito. Garante quetais páginas não sejam mais acessadas
  • 67. Tradução de Endereços
  • 68. Falta de PáginaOcorrem quando:Página referenciada não está commitedPágina commited, mas não mapeadaPágina compartilhada foi escritaViolação de proteçãoA pilha precisa crescer
  • 69. Descritor de Endereço VirtualÉ armazenado numa árvore especifica doprocesso para acelerar sua localizaçãoSe uma thread tenta acessar um endereço nãoalocado, esse endereço não consta no descritore ocorrerá uma violação de acessoArmazena qualquer informação fornecida naalocação da memóriaEx: Faixa de endereços, compartilhada ouprivativa, processo filho pode (ou não) herdar o conteúdoda faixa e o tipo de proteção aplicada
  • 70. Chamadas ao SistemaFunção API Win 32 DescriçãoVirtualAllocVirtualFreeVirtualProtectVirtualQuery Pergunta sobre o estado de uma regiãoVirtualLock Torna uma região residente em memóriaVirtualUnlock Torna a região paginável, da maneira usualCreateFile MappingMapViewOfFileUnmapViewOfFileOpenFileMappingReserva ou commit uma regiãoLibera ou uncommit uma regiãoAltera a proteção de leitura/escrita/execuçãode uma regiãoCria um objeto de mapeamento de arquivo e(opcionalmente) atribui um nome a eleMapeia um arquivo, ou parte dele, no espaçode endereçamentoRemove um arquivo mapeado do espaço deendereçamentoAbre um objeto de mapeamento de arquivocriado anteriormente
  • 71. Gerência de processosSumárioJobsProcessosThreadsFibersTécnicas de comunicaçãoTécnicas de sincronizaçãoCriação de processos e threadsEscalonamento
  • 72. JobsUm job é uma coleção de processos.Job são usados para gerenciar diversosprocessos como uma única unidade.Provem restrições de segurança ecompartilhamento de certos atributos
  • 73. ProcessosProcesso é a instância de execução de umprograma.Tem espaço de endereçamento privado comsues códigos e dados.Pode ter recursos alocados pelo sistemaoperacional.Cada processo tem no mínimo uma thread.Processos são representados como objetos.
  • 74. Processos
  • 75. ThreadsThreads são a unidade básica a serescalonada no Windows 2000, possuindoestado de execução.Um processo pode criar múltiplas Threadspara executar no seu espaço deendereçamento.Rodam em modo de usuário em grande partedo tempo, mas quando realizam a umachamada de sistema rodam no modo kernel.Também são representadas como objetos.
  • 76. Threads
  • 77. FibersSimilares a Threads levesSão totalmente gerenciáveis pelousuário, o Kernel não tomaconhecimento das FibersDevem ser utilizadas com cuidado, poisseu bloqueio ocasiona no bloqueio daThread que está gerenciando as Fibers.
  • 78. Jobs, Processos, Threads eFibers
  • 79. Técnicas de comunicaçãoDiversas técnicas de comunicação entreThreads: Pipes Mailslots Sockets Chamada remota de procedimentos Arquivos compartilhados
  • 80. Técnicas de comunicaçãoPipesPossuem dois modos de operação: Byte: Mensagem enviada byte-a-byte. Mensagem: Existe conservação dotamanho da mensagem.Existe uma variação dos pipes,chamado pipes nomeados, quepossuem suporte a uso na rede.
  • 81. Técnicas de comunicaçãoMailslotsFuncionamento semelhante a pipes,mas com diferenças: Comunicação unidirecional Envio pela rede sem confirmação derecebimento Envio em broadcast
  • 82. Técnicas de comunicaçãoSocketsUtilizado primariamente para conexãode máquinas remotasPodem conectar processos na mesmamáquina
  • 83. Técnicas de comunicaçãoChamada de procedimentos remotosEssa técnica se baseia em um processopoder invocar a função de outroprocesso e receber o retorno dessafunção.Existe restrições nos tipos de valoresque podem ser retornados.
  • 84. Técnicas de comunicaçãoArquivos compartilhadosConsiste em uma área de memóriacompartilhada entre processos.
  • 85. Técnicas de sincronizaçãoDiversas técnicas de sincronizaçãoimplementadas no sistema: Semáforos Mutex Regiões Criticas Eventos
  • 86. Criação de Processos e ThreadsCriação de processos envolve dezparâmetros e cinco passos básicos:
  • 87. Criação de Processos e ThreadsPassos:O executável é examinado e abertoCreateProcess é chamado, espaço de memóriaé alocado, objetos essenciais são criados einicializadosCreateThread é chamado, pilhas de usuário ekernel são criadasO subsistema Win32 recebe uma mensagem,com informações do processo e da threadA thread começa sua inicializaçãoComeça a execução do código da thread
  • 88. Criação de Processos e ThreadsParâmetros:1. Um ponteiro para o nome do arquivo executável.2. A própria linha de comando.3. Um ponteiro para o descritor de segurança do processo.4. Um ponteiro para o descritor de segurança da thread inicial.5. Um bit que define se o processo herda o handle do criador.6. Diversos flags.7. Um ponteiro para strings do ambiente.8. Um ponteiro para o nome do diretório atual do novo processo.9. Um ponteiro para a estrutura que descreve a janela inicial natela.10. Um ponteiro para a estrutura que retorna 18 valores para orealizador da chamada.
  • 89. Criação de Processos e ThreadsParâmetros para criação Threads:1. O descritor de segurança opcional2. O tamanho inicial da pilha3. O endereço inicial4. Um parâmetro definido pelo usuário5. O estado inicial da Thread (pronta oubloqueada).6. O ID da Thread
  • 90. EscalonamentoNo Windows 2000 não existe umathread central de escalonamento.Quando uma thread acaba seu períodode execução, ela entre no modo kernele executa o escalonador.
  • 91. EscalonamentoSituações em que uma thread deixa de serapto a execução:1. A thread é bloqueada por uma ferramentade sincronização.2. A thread interage com outro objeto.3. O quantum da thread em questão expira.4. Quando uma operação de E/S é terminada.5. Quando um tempo de espera termina.
  • 92. EscalonamentoExistem 32 níveis de prioridades noWindows 2000:
  • 93. EscalonamentoThreads de usuários nãoadministradores não ter sua prioridademaior que 15.Os outros 16 níveis são reservadaspara threads do sistema.Quando a thread requisita E/S, controlauma janela, ou recebe uma resposta deum mecanismo de sincronização podeter sua prioridade aumentada.
  • 94. EscalonamentoThreads podem perder prioridade apósexecutar um quantum de tempo.Caso uma thread passe muito tempoparada, o escalonador pode aumentarsua prioridade.
  • 95. EscalonamentoCada thread tem um valor de prioridade associado.O escalonador irá percorrer o vetor das prioridadespartindo do nível mais alto, procurando em cadanível se existe uma thread pronta para serexecutada.Caso exista, ela é executada até que quantum sejagasto, e após sua execução ela é devolvida para ofinal da final.Caso contrário, o escalonador analisa o nívelabaixo.Quando não houver nenhuma thread apta aexecução, a thread Idle é executada.
  • 96. Escalonamento
  • 97. Sistema de arquivosSumárioSistemas de ArquivosNTFSChamadas APIMaster File TableCompressãoCriptografia
  • 98. Sistema de ArquivosO windows NT possui suporte a váriossistemas de arquivos, tais como:FAT16: endereços de 16 bits, tamanho máximo de umapartição de 2 GBFAT32: endereços de 32 bits, tamanho máximo de umapartição de 2 TBNTFS: endereço de 64 bits, tamanho máximo de umapartição de 16 EB
  • 99. NTFSNomes dos arquivos limitados a 255 caracteresCaminhos desde a raíz limitados a 32767caracteresNomes dos arquivos em UnicodeDiferenciação entre letras minúsculas emaiúsculas
  • 100. NTFSé um sistema hierárquico de arquivosSeparador entre os nomes dos componentes é ,característica herdada do MS-DOSConceito de diretório de trabalho atual e nomesde caminhos sendo relativos ou absolutosSuporte a compressão, criptografia e tolerância afalhas
  • 101. Fluxos de BytesO NTFS trata os arquivos pelos seus atributos,representados através de fluxos de bytesA maioria dos arquivos são formados por umfluxo curto, contendo o nome do arquivo mais o IDde objeto de 64 bits e um fluxo longo sem nomecontendo os dadosA idéia de múltiplos fluxos foi trazida da AppleMacintosh e foi incorporado ao NTFS para permitirque servidores NTFS possam servir clientesMacintosh
  • 102. Fluxo de BytesPonteiros de arquivos são usados paraacompanhar onde um processo está em cadafluxoEsses ponteiros têm 64 bits de largura para trataro tamanho máximo de um fluxo, que é cerca de264bytes
  • 103. Chamadas API
  • 104. Parâmetros do CreateFileUm ponteiro para o nome do arquivo a ser criado ouaberto.Flags indicando se o arquivo pode ser lido, escrito ouambos.Flags indicando se multiplos processos podem abrir oarquivo ao mesmo tempo.Um ponteiro para o descritor de segurança dizendoquem pode acessar o arquivoFlags indicando o que fazer se o arquivo existir ou nãoexistir.Flags lidando com atributos como: compressão,arquivamento, etc.A manipulação de um arquivo cujos atributos devemser copiados para um novo arquivo
  • 105. Estrutura do Sistema de ArquivosCada volume é organizado como uma seqüência linearde blocos (Clusters)O tamanho do bloco é de 512 bytes a 64 KB.Normalmente se usa 4 KB.Os blocos são referenciados por seus deslocamentos apartir do início do volume, usando-se números de 64 bitsA principal estrutura de dados cada volume é a MFT
  • 106. Master File Table (MFT)Seqüência linear de registros com tamanho de 1 KBCada registro descreve somente um diretório ou arquivoO registro contém atributos do arquivo, como seu nome,lista de endereços de disco dos seus blocos, indicadoresde tempo, etcUsa-se mais de um registro para abrigar a lista deendereços de disco para arquivos muito grandes
  • 107. Master File Table (MFT)Um mapa de bits faz o acompanhamento de quaisentradas da MFT estão livresMFT é em si um arquivo, sendo assim pode serarmazenada em qualquer setor do volumeE pode crescer o quanto for preciso, até um tamanhomáximo de 248registros
  • 108. Master File Table (MFT)Os primeiros 16 registros são reservados para osarquivos de metadados do NTFSCada um desses arquivos tem um nome quecomeça com um $ indicando que se trata de umarquivo de metadado
  • 109. Master File Table (MFT)
  • 110. Master File Table (MFT)Registro 0: descreve o próprio arquivo daMFTRegistro 1: cópia da primeira parte do arquivoMFTRegistro 2: arquivo de registro de eventosRegistro 3: contém informações sobre ovolumeRegistro 4: contém informações sobre oarquivo que define os atributos usados nosregistros da MFTRegistro 5: descreve o diretório raiz
  • 111. Master File Table (MFT)Registro 6: contém informações sobre osatributos e endereços de disco do mapa debits que controla o espaço livre do volumeRegistro 7: aponta para o arquivo de carga dobootRegistro 8: usado para ligar todos os blocosdefeituosos e assegurar que eles nunca farãoparte de um arquivoRegistro 9: contém informações sobre asegurança
  • 112. Master File Table (MFT)Registro 10: usado para o mapeamento deletras maiúsculas e minúsculasRegistro 11: um diretório que contémdiversos arquivos, usados entre outrascoisas, para descrever as cotas de disco,descrever identificadores de objetos edescrever pontos de reanáliseRegistros 12-15: Reservados para uso futuro
  • 113. Master File Table (MFT)Cada registro consiste em um cabeçalho deregistro, seguido por uma seqüência de pares(cabeçalho do atributo, valor)Cada atributo começa com um cabeçalho, queindica qual é o atributo e o tamanho do valor
  • 114. Master File Table (MFT)Alguns atributos, como por exemplos os dados,têm valores que não cabem na MFT, sendo assim,são colocados em blocos separados de disco esão ditos não residentesOs cabeçalhos de atributos residentes têmcomprimento de 24 bytesJá os cabeçalhos de atributos não residentes sãomaiores porque contêm informação sobre ondeencontrar o atributo no disco
  • 115. Master File Table (MFT)O NTFS define 13 atributos que podem aparecerno registro da MFT: informação-padrão, nome doarquivo, descritor de segurança, lista de atributos,ID do objeto, ponto de reanálise, nome do volume,informação sobre o volume, índice-raiz, índice dealocação, mapa de bits, registro de fluxo deutilização e dados
  • 116. Compressão de ArquivosNTFS suporta a compressão transparente dearquivosOu seja, ele tenta comprimir automaticamente osblocos quando eles são escritos e descomprimi-los automaticamente quando são lidos
  • 117. Compressão de ArquivosQuando escreve um arquivo para compressão, oNTFS verifica os primeiros 16 blocos (lógicos) doarquivo, então, ele executa um algoritmo decompressão nesses blocosSe os dados comprimidos ainda ocuparem 16blocos, os blocos são escritos na formadescomprimida. Depois se testa os blocos 16 a 31da mesma maneira, e assim por diante.
  • 118. Compressão de ArquivosAo escrever-se os blocos comprimidos naentrada da MFT, os blocos que não foramcomprimidos são escritos com endereços de disco0Quando o arquivo é lido, o NTFS deve saberquais as séries estão comprimidas e quais nãoestão. Ele fica sabendo disso pelos endereços dediscoO acesso aleatório a arquivos comprimidos épossível, mas complicado
  • 119. Criptografia de ArquivosA perda de informações pode ocorrer de váriasmaneiras;A partir da versão 5.0 do Windows NT (Windows2000), é possível resolver esses problemasusando-se criptografia;O processo de criptografar e decriptografar, emsi, não é feito pelo NTFS, mas por um driverchamado EFS (Encrypting File System);
  • 120. Criptografia de ArquivosQuando o usuário pede para um arquivo sercriptografado, gera-se uma chave aleatória de 128bits;Essa chave é usada para criptografar o arquivo,bloco por bloco;O algoritmo usado atualmente é uma variação doDES (Data Encryption Standard);A criptografia de blocos em separados é usadapara que o acesso aleatório ainda seja possível.
  • 121. Criptografia de ArquivosA chave do arquivo deve ser armazenada emalgum lugar. Caso seja no disco, ainda poderá seracessada;Por isso as chaves de arquivos devem ser todascriptografadas antes de serem armazenadas nodiscos;Para isso, usa-se criptografia por chave pública.
  • 122. Criptografia de ArquivosO local da chave pública do usuário é procuradousando-se a informação do registro;Para decriptar um arquivo, procura-se sua chavealeatória de 128 bits, que é decriptada utilizando achave privada do usuário;Ao criptografar um arquivo pela primeira vez,gera-se um par (chave privada, chave pública), ea chave privada é armazenada no disco utilizandoum algoritmo simétrico.
  • 123. Criptografia de ArquivosA chave usada pelo algoritmo simétrico éderivada da senha do usuário ou armazenada emum cartão inteligente;O EFS pode decriptar a chave no momento doacesso, e mante-la no seu espaço deendereçamento;Uma complicação ocorre quando várias pessoasprecisam ter acesso ao mesmo arquivocriptografado;

×