SlideShare une entreprise Scribd logo
1  sur  129
Estudo de caso:
Windows NT
Jerônimo Medina Madruga
Leonardo Lobo da Luz
Mauro Sérgio Cardoso Kade
Histórico
Sumário
MS-DOS
Windows
Windows NT
Windows NT X Windows
Windows 2000
MS-DOS
Em 1981 a IBM lançava o IBM PC com
um sistema operacional de 16 bits
chamado MS-DOS 1.0.
Sistema basicamente monousuário e
orientado a linha de comando durante
toda seu desenvolvimento.
Windows
Windows 1.0 lançado em 1985, sendo
uma interface gráfica para o MS-DOS.
Windows 3.0 foi o primeiro a obter
sucesso, mas ainda não era um sistema
operacional completo.
Defeitos inerentes do DOS eram
herdados
Windows
Com a chegada do Windows 95, MS-
DOS começa a não gerenciar todo o
sistema operacional.
Ainda existe grande parte de código de
16 bits no sistema operacional.
Windows
Windows 98 contém a ultima versão do
MS-DOS, mas já tem um novo sistema
de arquivos.
Problemas crônicos:
 Kernel não-reentrante
 Endereçamento virtual parcialmente
compartilhado
Windows NT
Em 1988 a Microsoft decidiu fazer um
sistema operacional estável, robusto e
inovador.
Dave Cuttler, um dos desenvolvedores
do sistema operacional VMS foi
contratado para gerenciar esse projeto.
Windows NT
A primeira versão, Windows NT 3.1, era
tecnicamente superior ao Windows
baseado no MS-DOS.
Mas a falta de softwares 32 bits e
lentidão do sistema fizeram com que ele
não se tornasse muito popular.
Windows NT
Windows NT 4.0, lançado em 1996,
tinha a mesma interface do Windows
95.
Extremamente portável e quase
totalmente escrito em C.
Windows NT X Windows
Windows 2000
O Windows NT 5.0 foi chamado de
Windows 2000.
Misturava a interface do Windows 98
com a confiabilidade da tecnologia NT.
Extensibilidade, portabilidade,
escalabilidade, compatibilidade,
robustez e integração foram seus
principios de desenvolvimento.
Windows 2000
Princípios de
desenvolvimento
Extensibilidade
Portabilidade
Escalabilidade
Robustez
Compatibilidade
Segurança
Performance
Versões do Windows 2000
Tamanho do Windows
Gerência de ES
Sumário
Objetivos e funcionalidades de sistema um E/S
Componentes do Sistema de E/S
Gerenciador de E/S
Drivers de Dispositivo
Estrutura de dados do sistema E/S
Tipos de E/S
Processamento de E/S
Estruturas de Dados de E/S
Recuperação de falha de energia
Suporte a RAID
Objetivos e Funcionalidades de
um Sistema de E/S
Oferecer uma estrutura para lidar de modo eficiente com uma
grande variedade de dispositivos de E/S;
Parte do código de um SO que trata de requisições de E/S de
diferentes processos e as transmite aos dispositivos;
Funções:
 Emitir comandos;
 Capturar interrupções;
 Manipular erros.
Exigências de Projeto de um
Sistema de E/S
Proporcionar 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 sistema
de 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.
Componentes do Sistema de
E/S
O sistema de E/S é guiado por pacotes, onde toda
requisição de E/S é representada por um pacote de
solicitação de E/S que trafega de um componente
do sistema de E/S para outro;
Possui vários componentes, como o gerenciador de
E/S, o gerenciador de cache, o gerenciador de
energia, drivers de dispositivo, que atuam em
conjunto, recebendo e enviando solicitações de E/S;
Embora não seja um componente direto, a camada
de abstração de hardware (HAL) interage com os
componentes do sistema de E/S, servindo para
mascarar as diferenças entre os drivers diferentes
acoplados ao sistema.
Componentes – Gerenciador de
E/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 em
conjunto com o gerenciador de Máquina Virtual (VM – Virtual
Machine) para prover um sistema de E/S mapeado em
memória;
Controla o gerenciador de cache e suporta operações síncronas
e assíncronas, além de possuir mecanismos para um driver
chamar outro driver.
Define uma estrutura ordenada, onde as solicitações de E/S são
transmitidas ao sistema de arquivos e aos drivers de
dispositivo;
Fornece um código comum a drivers diferentes que estes
chamam para executar seu processamento de E/S;
Oferece facilidades de E/S que permitem aos subsistemas de
ambiente Win32 e POSIX implementar suas respectivas APIs.
Componentes – Pacote de
Requisição de E/S (IRP)
O pacote de requisição de E/S (IRP – I/O Request
Packet) é onde o sistema de E/S armazena
informações necessárias para processar uma
solicitação de E/S;
IRP é uma estrutura de dados que controla o modo
como a operação de E/S é processada em cada
estágio ao longo do caminho do sistema de E/S;
Um driver recebe um IRP, efetua a operação por ele
especificada e devolve ao gerenciador de E/S para
conclusão da operação ou envia para um outro
driver para processamento adicional;
Enquanto ativo, cada IRP é armazenado em uma
fila IRP associada à thread que solicitou a
operação de E/S, permitindo ao sistema de E/S
Componentes – Pacote de
Requisição de E/S (IRP)
Um driver recebe um IRP, efetua a operação por ele
especificada e devolve ao gerenciador de E/S para
conclusão da operação ou envia para um outro
driver para processamento adicional;
Enquanto ativo, cada IRP é armazenado em uma
fila IRP associada à thread que solicitou a
operação de E/S, permitindo ao sistema de E/S
encontrar e eliminar qualquer E/S pendente se uma
thread terminar ou se for terminada com
solicitações pendentes.
Componentes – Pacote de
Requisição de E/S (IRP)
Um IRP consiste em duas partes:
 Cabeçalho fixo: contém informações acerca do
tipo e tamanho da solicitação, se a mesma é
síncrona ou assíncrona, um ponteiro para um
buffer e informações a respeito do estado de
operação da requisição;
 Localização de pilha: contém um código de
função, parâmetros específicos da função e um
ponteiro para o objeto de arquivo do chamador.
Componentes – Driver de
Dispositivo
Oferece uma interface de E/S para um tipo de
dispositivo em particular;
Funciona como a ponte necessária entre o
gerenciador de E/S e os componentes do sistema
de E/S;
Recebem comandos roteados para eles através do
gerenciador de E/S, sendo enviados para os
dispositivos que eles gerenciam, informando ao
gerenciador de E/S quando esses comandos
terminarem.
Componentes – Driver de
Dispositivo
Alguns dos tipos de drivers de dispositivo:
 Drivers de sistema de arquivo: aceitam
requisições para arquivos.
 Drivers do Windows NT: atuam em conjunto com
os gerenciadores de energia e PnP do Windows
NT, quando requisitados.
 Drivers de dispositivo virtuais: utilizados para
emular aplicações de 16 bits do MS-DOS.
Componentes – Driver de
Dispositivo
Os drivers de dispositivo consistem em uma série de rotinas que são
chamadas para processar os vários estágios de uma requisição de
E/S:
 Rotina de inicialização: executada pelo gerenciador de E/S para inicializar
um driver quando este é carregado para o SO e que é denominada
DriverEntry;
 Rotina de adição de dispositivo: implementado por um driver que suporta
PnP, permite que seja alocado um objeto de dispositivo para representar
um dispositivo;
 Rotina de início de E/S: permite que um driver inicie uma transferência de
dados para um dispositivo, e é definida somente em drivers que contam
com o gerenciador de E/S para uma serialização IRP;
 Rotina de serviço de interrupção: é chamada quando ocorre uma
interrupção;
 Rotina de identificação de erros: são chamadas quando acontecem erros
inesperados, anotando a ocorrência de erros e notificando o gerenciador
de E/S, que grava as informações em um arquivo de identificação de
erros.
Componentes – Gerenciador de
Plug-and-Play
Atua em conjunto com o gerenciador de E/S e com
um driver de dispositivo chamado driver de
barramento para conduzir a alocação dos recursos do
hardware de forma segura;
O gerenciador de PnP e os drivers de barramento são
responsáveis por carregar um driver de dispositivo
quando um determinado componente é detectado;
O suporte a Plug-and-Play requer uma cooperação
entre o hardware, os drivers de dispositivo e os
diferentes níveis do sistema operacional.
Componentes – Gerenciador de
Plug-and-Play
Algumas capacidades do suporte a PnP são:
 O gerenciador de PnP reconhece automaticamente
dispositivos instalados, um processo que inclui enumerar
dispositivos acoplados ao sistema durante uma operação
de boot e detectar a adição ou remoção de dispositivos
enquanto o sistema encontra-se em execução;
 O gerenciador de PnP utiliza o processo de arbitragem de
recursos na alocação de recursos de hardware junto com
as exigências dos mesmos recursos dos dispositivos
conectados ao sistema;
 O gerenciador de PnP implementa aplicações e
mecanismos no driver para detecção das mudanças nas
configurações de hardware.
Componentes – Gerenciador de
Energia
Atua em conjunto com o gerenciador de
E/S para conduzir a evolução do
sistema, assim como os drivers de
dispositivo, através de transições de
estados de energia.
Componentes – O Registro
Serve como uma espécie de base de
dados que armazena uma descrição
básica dos dispositivos de hardware
presentes no sistema, assim como
inicialização e configuração de um
driver.
Componentes – Arquivos INF
Designados pela extensão .inf;
São arquivos de instalação de drivers;
Esses arquivos são a ligação entre um
dispositivo de hardware particular e o
driver que assume o controle do
dispositivo.
Componentes – Camada de
Abstração de Hardware
A camada de abstração de hardware
(HAL – Hardware Abstraction Layer)
oferece API’s que escondem as
diferenças entre as plataformas dos
drivers;
Na prática, o HAL é um driver de
barramento para todos os dispositivos
da placa-mãe do computador que não
são controlados por outros dispositivos.
Estruturas de Dados do Sistema
de E/S – Objetos de Arquivo
São construções em modo kernel para lidar com arquivos ou
dispositivos;
Todas as origens e destinos de E/S são representados por
objetos de arquivo;
Os objetos de arquivo são protegidos por um descritor de
segurança que contém uma lista de controle de acesso (ACL);
Quando uma thread abre um arquivo, o gerenciador de E/S
consulta o subsistema de segurança para determinar se a ACL
daquele arquivo permite que o processo acesse o arquivo da
maneira como a thread está solicitando;
Os objetos de arquivo também são usados para sincronização.
Estruturas de Dados do Sistema
de E/S – Objetos de Arquivo
Alguns atributos dos objetos de arquivo:
 Nome de arquivo: identifica o arquivo físico ao qual o
objeto do arquivo se refere;
 Byte offset corrente: identifica a localização atual no
arquivo;
 Modos de compartilhamento: indica onde outros
chamadores podem abrir os arquivos para ler, escrever
ou deletar operações enquanto o chamador atual está em
funcionamento;
 Ponteiro para objeto de dispositivo: indica o tipo de
dispositivo onde o arquivo se encontra;
 Ponteiro para o bloco de parâmetro de volume: indica o
volume ou a partição em que o arquivo se encontra.
Estruturas de Dados do Sistema de
E/S – Objetos de Driver e de
Dispositivo
Um objeto de driver representa um driver individual
no sistema;
Um objeto de dispositivo representa um dispositivo
lógico ou físico no sistema;
O gerenciador de E/S cria um objeto de driver
enquanto um driver é carregado no sistema, e então
chama uma rotina de inicialização do driver
denominada DriverEntry;
Após ser carregado, um driver pode criar objetos de
dispositivo para representar dispositivos, ou até
mesmo uma interface para o driver, através de uma
rotina chamada IoCreateDevice.
Operação de E/S Assíncrona
Os serviços assíncronos permitem que uma aplicação
emita uma solicitação de E/S e continue a ser executada
enquanto o dispositivo transfere os dados;
Por padrão, aproximadamente um terço dos serviços
nativos do NT que o gerenciador de E/S fornece aos
subsistemas e DLL’s são assíncronos;
Tendem a ser operações longas ou de comprimento
imprevisível, p.ex., ler ou gravar um arquivo ou enumerar
um conteúdo de um diretório de arquivo;
Uma thread que chame estes serviços precisa sincronizar
sua execução com a conclusão dos mesmos;
O trabalho assíncrono dá ao sistema de E/S o máximo de
flexibilidade para executar outras tarefas enquanto
dispositivos relativamente lentos transferem dados.
Operação de E/S Assíncrona
É muito benéfica para operações cujo tempo de
conclusão é longo ou altamente variável;
Pode ser caracterizada como uma operação que
exige um pouco mais de programação em troca de
mais controle sobre operações de E/S e um
aumento considerável em termos de eficiência;
A thread que utiliza E/S assíncrona não é retardada
durante uma transferência de dados, porém, ela
tem de sincronizar o uso que faz de qualquer dado
transferido com a conclusão da transferência por
parte do dispositivo.
E/S Mapeada em Arquivo
É uma característica importante do sistema de E/S,
produzida em conjunto pelo sistema de E/S e pelo
gerenciador de memória virtual;
Refere-se a possibilidade de visualizar um arquivo
residente em disco como parte da memória virtual
de 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 a
E/S mapeada em arquivo disponível ao modo
usuário através dos serviços nativos.
E/S Mapeada em Arquivo
O gerenciador de máquina virtual otimiza o acesso
ao disco, portanto, a E/S mapeada em arquivo
permite que as aplicações tirem proveito dessa
habilidade;
O gerenciador de cache usa a E/S mapeada em
arquivo para administrar seu cache baseado em
memória;
Os sistemas de arquivos e o servidor de rede usam
o cache para colocar na memória dados de
arquivos freqüentemente acessados, a fim de
proporcionar melhor tempo de resposta aos
programas ligados à E/S.
Processamento de E/S
As solicitações de E/S passam por vários estágios pré-definidos
de processamento;
Os estágios variam dependendo se a solicitação se destina a
um dispositivo operado por um driver de uma única camada ou
por um dispositivo alcançado através de um driver de várias
camadas;
Depois de abrir um objeto de arquivo, a aplicação chama uma
rotina de E/S, fornecida por uma biblioteca de linguagem;
O processamento varia também dependendo se o chamador
especificou E/S síncrona ou assíncrona;
Os arquivos do NT são representados como objetos e o sistema
de E/S oferece serviços de objetos para manipulá-los.
Solicitação de E/S para driver de
uma única camada
O processamento de uma solicitação
síncrona ocorre em três estágios:
 O gerenciador de E/S envia a solicitação em
forma de IRP para o driver, que dá início à
operação de E/S;
 O dispositivo completa a operação e emite uma
interrupção, que é atendida pelo driver do
dispositivo;
 O gerenciador de E/S conclui a solicitação de
E/S.
Solicitação de E/S para driver de
uma única camada
O processamento de uma solicitação
assíncrona difere do processamento de uma
solicitação síncrona basicamente em um
aspecto;
A chamada assíncrona acrescenta uma
etapa entre as etapas 1 e 2, em que o
gerenciador de E/S retorna o controle ao
chamador;
O chamador pode continuar a fazer outras
coisas, enquanto as etapas 2 e 3
prosseguem, mas tem de estar sincronizado
com a conclusão da etapa 3 para saber
Solicitações de E/S para drivers
em camadas
É muita parecida com a solicitação de E/S para
drivers de uma única camada, porém, uma ou mais
camadas adicionais de processamento são
acrescentadas ao modelo;
O gerenciador de E/S recebe solicitação e cria um
pacote de solicitação de E/S (IRP) para representá-la;
Ele entrega o pacote a um driver do sistema de
arquivos;
Dependendo do tipo de solicitação feita pelo
chamador, o sistema de arquivos pode enviar o
mesmo IRP ao driver de dispositivo, ou pode gerar
pacotes adicionais de solicitação de E/S e enviá-los
separadamente ao driver de dispositivo.
Acrescentando Drivers em
Camadas
O projeto do sistema de E/S permite que um driver
seja colocado sobre o outro, ou seja, um driver
executa uma ação com base nas informações
armazenadas 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 segundo
driver em uma segunda localização da pilha do IRP;
Como todos os drivers, tanto os de dispositivo quanto
os de sistema de arquivos, apresentam a mesma
estrutura ao SO, um outro driver pode facilmente ser
inserido na hierarquia sem alterar os drivers
existentes ou o sistema de E/S.
Recuperação de falha de
energia
Cada driver de dispositivo deve saber quando ocorreu uma
falha de energia, reajustando o dispositivo por ele operado;
Qualquer operação de E/S que tenha sido interrompida deve
ser reinicializada, porém, se isso não for possível, o gerenciador
de E/S deve ser notificado da falha em uma operação de E/S a
fim de retornar uma condição de erro;
O gerenciador de E/S, juntamente com o kernel, oferece um
recurso que permite aos drivers de dispositivo lidar de forma
tranqüila com interrupções no fornecimento de energia elétrica.
Recuperação de falha de
energia
Quando a energia acaba, ocorre uma interrupção por falha de
energia 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 registros
importantes do sistema, incluindo o contador de programa;
Se a memória do computador estiver equipada com uma bateria
reserva, estas informações são gravadas e, quando a energia
voltar, o kernel e o sistema de E/S podem utilizá-las para
reiniciar ou encerrar as operações de E/S que foram
anteriormente interrompidas.
Suporte a RAID
O suporte a RAID pode ser tanto por hardware quanto
por software;
No suporte por hardware são oferecidos drivers de
disco com capacidade de gerenciar controladoras
RAID, permitindo que diferentes discos trabalhem em
conjunto para compor um ou mais discos lógicos;
A própria controladora gerencia a criação e
manutenção da informação de redundância
necessária para recuperação dos dados.
Suporte a RAID
O suporte via software emula a partir de serviços do
S.O. o funcionamento de uma controladora com
suporte RAID;
Um driver de dispositivo denominado FTDISK é
responsável por essa tarefa.
Gerenciamento de memória
Sumá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
Memória Virtual
Implementada por Lou Perazzoli
Metas para o Gerenciador:
Portátil
Confiável e Eficiente
Proporcionar Arquivos mapeados, Copy-on-Write e suporte
para 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 um
processo cliente
Equilibrar necessidades de multiprocessamento com
velocidade de acesso a memória
Memórias
Espaç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 bits
Espaço de Endereçamento Físico
Limitado pelo hardware
Dividido em blocos chamados de estruturas de página
Memórias
Página válida
Presente na memória física
e Committed
Página inválida
Armazenadas em disco
ou Uncommitted
Estados de uma página virtual
Free
Não usada no momento
Referência a uma página free causará uma Falta
Reserved
Não disponivel para ser mapeada
Referência a uma página reserved causará uma Falta
Committed
Dados ou código mapeados para a página
Referência a uma página committed causará uma Falta, caso
a página não esteja na memória principal, ou um Sucesso,
caso contrário.
Memória Compartilhada
Conceito:
É a memória visível a partir de
mais de um processo
Está presente em mais de um
espaço de endereçamento
virtual
Section Object
É alocado e desalocado pelo
gerenciador de objetos do NT
Não oferece sincronização
Processos podem mapeiar
partes do mesmo objeto de
seção em seus espaços de
endereçamento
Section Object
Compartilhamento ocorre nos seguintes
casos:
Para mapear a visão de uma seção, o processo precisa
primeiro adquirir um handle para a seção. O processo criador
do section object sempre terá um handle
Se a seção possuir um nome, outros processos podem abrir
handles para o section object
O processo pode receber um handle para um section object
através de herança ou quando um outro processo duplica seu
handle
Proteção de Memória
Fornecida em quatro formas:
Controlada por hardware (leitura/escrita, somente leitura)
Estruturas de dados e memory pools usados pelos
componentes do modo kernel do sistema, só podem ser
acessados estando no modo kernel
Cada processo possui um espaço de endereçamento
separado e privado, protegido contra acesso por qualquer
thread que pertença a outro processo
Os acessos da memória compartilhada são limitados aos
processos com os devidos direitos ( Copy-on-write )
Copy-on-Write
É uma técnica de otimização, chamada
Avaliação Preguiçosa (lazy evaluation), e
serve para economizar memória física
Quando um processo mapeia uma visão de copy-on-write de
um section object que contém páginas de leitura/escrita, em
vez de criar um processo de cópia privada, o gerenciador de
memória adia a criação de uma cópia das páginas até que a
página seja modificada
Copy-on-Write
Antes
Depois
Implementação
 2GB usuário
 2GB sistema
 Tabela de página para
cada processo
 Opção de modificação
 64+64 KB não
mapeados
Tabelas de páginas
O kernel e o gerenciador de memória virtual
usam tabelas de páginas criadas por software
para encontrar páginas que não estão
presentes na TLB
Uma entrada na tabela de páginas contém
todas as informações necessárias para o
sistema de memória virtual localizar uma
página quando uma thread usa um endereço
Políticas de paginação
Política de Busca: Determina quando trazer a
página do disco para a memória
Paginação na demanda com clusterings: quando
ocorre uma falta, carrega na memória a página que
faltava e mais algumas em volta dela
Políticas de paginação
Política de Colocação: Determina onde
colocar a página virtual na memória física
Se a memória não está esgotada, o gerenciador
seleciona a primeira estrutura de página em uma
lista de estruturas de página livres. Se a lista está
vazia, ele cruza uma série de outras listas por ele
mantidas; a ordem dependerá do tipo de falta de
página ocorrido
Políticas de paginação
Política de Substituição: Determina que
página virtual deve ser removida da memória
para obter espaço para a nova página
FIFO local – multiprocessadores baseados na
família Intel e processadores baseados na família
Alpha
LRU (implementado através do algoritmo do
relógio) – monoprocessadores baseados na família
Intel
Memória Física
Páginas contidas na memória estão
presentes no Working Set de algum processo
Working Sets
Define o número de páginas que um processo
armazena na memória
Cada processo define um valor mínimo e máximo para
o tamanho working set
Memória Física
Listas de páginas disponíveis: páginas
recentemente removidas do working set de
algum processo, não estão mais associadas a
ele e possuem cópia no disco
Listas de páginas modificadas: páginas
recentemente removidas do working set de
algum processo, não estão mais associadas a
ele e não possuem cópia no disco
Memória Física
Listas de páginas livres: páginas não
associadas a processo
Lista de páginas zeradas: páginas não
associadas a processo e preenchidas com Zero
Lista de páginas com defeito físico: Contém as
páginas que apresentam defeito. Garante que
tais páginas não sejam mais acessadas
Tradução de Endereços
Falta de Página
Ocorrem 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
Descritor de Endereço Virtual
É armazenado numa árvore especifica do
processo para acelerar sua localização
Se uma thread tenta acessar um endereço não
alocado, esse endereço não consta no descritor
e ocorrerá uma violação de acesso
Armazena qualquer informação fornecida na
alocação da memória
Ex: Faixa de endereços, compartilhada ou
privativa, processo filho pode (ou não) herdar o conteúdo
da faixa e o tipo de proteção aplicada
Chamadas ao Sistema
Função API Win 32 Descrição
VirtualAlloc
VirtualFree
VirtualProtect
VirtualQuery Pergunta sobre o estado de uma região
VirtualLock Torna uma região residente em memória
VirtualUnlock Torna a região paginável, da maneira usual
CreateFile Mapping
MapViewOfFile
UnmapViewOfFile
OpenFileMapping
Reserva ou commit uma região
Libera ou uncommit uma região
Altera a proteção de leitura/escrita/execução
de uma região
Cria um objeto de mapeamento de arquivo e
(opcionalmente) atribui um nome a ele
Mapeia um arquivo, ou parte dele, no espaço
de endereçamento
Remove um arquivo mapeado do espaço de
endereçamento
Abre um objeto de mapeamento de arquivo
criado anteriormente
Gerência de processos
Sumário
Jobs
Processos
Threads
Fibers
Técnicas de comunicação
Técnicas de sincronização
Criação de processos e threads
Escalonamento
Jobs
Um job é uma coleção de processos.
Job são usados para gerenciar diversos
processos como uma única unidade.
Provem restrições de segurança e
compartilhamento de certos atributos
Processos
Processo é a instância de execução de um
programa.
Tem espaço de endereçamento privado com
sues códigos e dados.
Pode ter recursos alocados pelo sistema
operacional.
Cada processo tem no mínimo uma thread.
Processos são representados como objetos.
Processos
Threads
Threads são a unidade básica a ser
escalonada no Windows 2000, possuindo
estado de execução.
Um processo pode criar múltiplas Threads
para executar no seu espaço de
endereçamento.
Rodam em modo de usuário em grande parte
do tempo, mas quando realizam a uma
chamada de sistema rodam no modo kernel.
Também são representadas como objetos.
Threads
Fibers
Similares a Threads leves
São totalmente gerenciáveis pelo
usuário, o Kernel não toma
conhecimento das Fibers
Devem ser utilizadas com cuidado, pois
seu bloqueio ocasiona no bloqueio da
Thread que está gerenciando as Fibers.
Jobs, Processos, Threads e
Fibers
Técnicas de comunicação
Diversas técnicas de comunicação entre
Threads:
 Pipes
 Mailslots
 Sockets
 Chamada remota de procedimentos
 Arquivos compartilhados
Técnicas de comunicação
Pipes
Possuem dois modos de operação:
 Byte: Mensagem enviada byte-a-byte.
 Mensagem: Existe conservação do
tamanho da mensagem.
Existe uma variação dos pipes,
chamado pipes nomeados, que
possuem suporte a uso na rede.
Técnicas de comunicação
Mailslots
Funcionamento semelhante a pipes,
mas com diferenças:
 Comunicação unidirecional
 Envio pela rede sem confirmação de
recebimento
 Envio em broadcast
Técnicas de comunicação
Sockets
Utilizado primariamente para conexão
de máquinas remotas
Podem conectar processos na mesma
máquina
Técnicas de comunicação
Chamada de procedimentos remotos
Essa técnica se baseia em um processo
poder invocar a função de outro
processo e receber o retorno dessa
função.
Existe restrições nos tipos de valores
que podem ser retornados.
Técnicas de comunicação
Arquivos compartilhados
Consiste em uma área de memória
compartilhada entre processos.
Técnicas de sincronização
Diversas técnicas de sincronização
implementadas no sistema:
 Semáforos
 Mutex
 Regiões Criticas
 Eventos
Criação de Processos e Threads
Criação de processos envolve dez
parâmetros e cinco passos básicos:
Criação de Processos e Threads
Passos:
O executável é examinado e aberto
CreateProcess é chamado, espaço de memória
é alocado, objetos essenciais são criados e
inicializados
CreateThread é chamado, pilhas de usuário e
kernel são criadas
O subsistema Win32 recebe uma mensagem,
com informações do processo e da thread
A thread começa sua inicialização
Começa a execução do código da thread
Criação de Processos e Threads
Parâ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 na
tela.
10. Um ponteiro para a estrutura que retorna 18 valores para o
realizador da chamada.
Criação de Processos e Threads
Parâmetros para criação Threads:
1. O descritor de segurança opcional
2. O tamanho inicial da pilha
3. O endereço inicial
4. Um parâmetro definido pelo usuário
5. O estado inicial da Thread (pronta ou
bloqueada).
6. O ID da Thread
Escalonamento
No Windows 2000 não existe uma
thread central de escalonamento.
Quando uma thread acaba seu período
de execução, ela entre no modo kernel
e executa o escalonador.
Escalonamento
Situações em que uma thread deixa de ser
apto a execução:
1. A thread é bloqueada por uma ferramenta
de 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.
Escalonamento
Existem 32 níveis de prioridades no
Windows 2000:
Escalonamento
Threads de usuários não
administradores não ter sua prioridade
maior que 15.
Os outros 16 níveis são reservadas
para threads do sistema.
Quando a thread requisita E/S, controla
uma janela, ou recebe uma resposta de
um mecanismo de sincronização pode
ter sua prioridade aumentada.
Escalonamento
Threads podem perder prioridade após
executar um quantum de tempo.
Caso uma thread passe muito tempo
parada, o escalonador pode aumentar
sua prioridade.
Escalonamento
Cada thread tem um valor de prioridade associado.
O escalonador irá percorrer o vetor das prioridades
partindo do nível mais alto, procurando em cada
nível se existe uma thread pronta para ser
executada.
Caso exista, ela é executada até que quantum seja
gasto, e após sua execução ela é devolvida para o
final da final.
Caso contrário, o escalonador analisa o nível
abaixo.
Quando não houver nenhuma thread apta a
execução, a thread Idle é executada.
Escalonamento
Sistema de arquivos
Sumário
Sistemas de Arquivos
NTFS
Chamadas API
Master File Table
Compressão
Criptografia
Sistema de Arquivos
O windows NT possui suporte a vários
sistemas de arquivos, tais como:
FAT16: endereços de 16 bits, tamanho máximo de uma
partição de 2 GB
FAT32: endereços de 32 bits, tamanho máximo de uma
partição de 2 TB
NTFS: endereço de 64 bits, tamanho máximo de uma
partição de 16 EB
NTFS
Nomes dos arquivos limitados a 255 caracteres
Caminhos desde a raíz limitados a 32767
caracteres
Nomes dos arquivos em Unicode
Diferenciação entre letras minúsculas e
maiúsculas
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 nomes
de caminhos sendo relativos ou absolutos
Suporte a compressão, criptografia e tolerância a
falhas
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 um
fluxo curto, contendo o nome do arquivo mais o ID
de objeto de 64 bits e um fluxo longo sem nome
contendo os dados
A idéia de múltiplos fluxos foi trazida da Apple
Macintosh e foi incorporado ao NTFS para permitir
que servidores NTFS possam servir clientes
Macintosh
Fluxo de Bytes
Ponteiros de arquivos são usados para
acompanhar onde um processo está em cada
fluxo
Esses ponteiros têm 64 bits de largura para tratar
o tamanho máximo de um fluxo, que é cerca de
264
bytes
Chamadas API
Parâmetros do CreateFileUm ponteiro para o nome do arquivo a ser criado ou
aberto.
Flags indicando se o arquivo pode ser lido, escrito ou
ambos.
Flags indicando se multiplos processos podem abrir o
arquivo ao mesmo tempo.
Um ponteiro para o descritor de segurança dizendo
quem pode acessar o arquivo
Flags indicando o que fazer se o arquivo existir ou não
existir.
Flags lidando com atributos como: compressão,
arquivamento, etc.
A manipulação de um arquivo cujos atributos devem
ser copiados para um novo arquivo
Estrutura do Sistema de Arquivos
Cada volume é organizado como uma seqüência linear
de 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 a
partir do início do volume, usando-se números de 64 bits
A principal estrutura de dados cada volume é a MFT
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, indicadores
de tempo, etc
Usa-se mais de um registro para abrigar a lista de
endereços de disco para arquivos muito grandes
Master File Table (MFT)
Um mapa de bits faz o acompanhamento de quais
entradas da MFT estão livres
MFT é em si um arquivo, sendo assim pode ser
armazenada em qualquer setor do volume
E pode crescer o quanto for preciso, até um tamanho
máximo de 248
registros
Master File Table (MFT)
Os primeiros 16 registros são reservados para os
arquivos de metadados do NTFS
Cada um desses arquivos tem um nome que
começa com um '$' indicando que se trata de um
arquivo de metadado
Master File Table (MFT)
Master File Table (MFT)
Registro 0: descreve o próprio arquivo da
MFT
Registro 1: cópia da primeira parte do arquivo
MFT
Registro 2: arquivo de registro de eventos
Registro 3: contém informações sobre o
volume
Registro 4: contém informações sobre o
arquivo que define os atributos usados nos
registros da MFT
Registro 5: descreve o diretório raiz
Master File Table (MFT)
Registro 6: contém informações sobre os
atributos e endereços de disco do mapa de
bits que controla o espaço livre do volume
Registro 7: aponta para o arquivo de carga do
boot
Registro 8: usado para ligar todos os blocos
defeituosos e assegurar que eles nunca farão
parte de um arquivo
Registro 9: contém informações sobre a
segurança
Master File Table (MFT)
Registro 10: usado para o mapeamento de
letras maiúsculas e minúsculas
Registro 11: um diretório que contém
diversos arquivos, usados entre outras
coisas, para descrever as cotas de disco,
descrever identificadores de objetos e
descrever pontos de reanálise
Registros 12-15: Reservados para uso futuro
Master File Table (MFT)
Cada registro consiste em um cabeçalho de
registro, seguido por uma seqüência de pares
(cabeçalho do atributo, valor)
Cada atributo começa com um cabeçalho, que
indica qual é o atributo e o tamanho do valor
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 e
são ditos não residentes
Os cabeçalhos de atributos residentes têm
comprimento de 24 bytes
Já os cabeçalhos de atributos não residentes são
maiores porque contêm informação sobre onde
encontrar o atributo no disco
Master File Table (MFT)
O NTFS define 13 atributos que podem aparecer
no registro da MFT: informação-padrão, nome do
arquivo, 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 de
alocação, mapa de bits, registro de fluxo de
utilização e dados
Compressão de Arquivos
NTFS suporta a compressão transparente de
arquivos
Ou seja, ele tenta comprimir automaticamente os
blocos quando eles são escritos e descomprimi-
los automaticamente quando são lidos
Compressão de Arquivos
Quando escreve um arquivo para compressão, o
NTFS verifica os primeiros 16 blocos (lógicos) do
arquivo, então, ele executa um algoritmo de
compressão nesses blocos
Se os dados comprimidos ainda ocuparem 16
blocos, os blocos são escritos na forma
descomprimida. Depois se testa os blocos 16 a 31
da mesma maneira, e assim por diante.
Compressão de Arquivos
Ao escrever-se os blocos comprimidos na
entrada da MFT, os blocos que não foram
comprimidos são escritos com endereços de disco
0
Quando o arquivo é lido, o NTFS deve saber
quais as séries estão comprimidas e quais não
estão. Ele fica sabendo disso pelos endereços de
disco
O acesso aleatório a arquivos comprimidos é
possível, mas complicado
Criptografia de Arquivos
A perda de informações pode ocorrer de várias
maneiras;
A partir da versão 5.0 do Windows NT (Windows
2000), é possível resolver esses problemas
usando-se criptografia;
O processo de criptografar e decriptografar, em
si, não é feito pelo NTFS, mas por um driver
chamado EFS (Encrypting File System);
Criptografia de Arquivos
Quando o usuário pede para um arquivo ser
criptografado, gera-se uma chave aleatória de 128
bits;
Essa chave é usada para criptografar o arquivo,
bloco por bloco;
O algoritmo usado atualmente é uma variação do
DES (Data Encryption Standard);
A criptografia de blocos em separados é usada
para que o acesso aleatório ainda seja possível.
Criptografia de Arquivos
A chave do arquivo deve ser armazenada em
algum lugar. Caso seja no disco, ainda poderá ser
acessada;
Por isso as chaves de arquivos devem ser todas
criptografadas antes de serem armazenadas no
discos;
Para isso, usa-se criptografia por chave pública.
Criptografia de Arquivos
O local da chave pública do usuário é procurado
usando-se a informação do registro;
Para decriptar um arquivo, procura-se sua chave
aleatória de 128 bits, que é decriptada utilizando a
chave privada do usuário;
Ao criptografar um arquivo pela primeira vez,
gera-se um par (chave privada, chave pública), e
a chave privada é armazenada no disco utilizando
um algoritmo simétrico.
Criptografia de Arquivos
A chave usada pelo algoritmo simétrico é
derivada da senha do usuário ou armazenada em
um cartão inteligente;
O EFS pode decriptar a chave no momento do
acesso, e mante-la no seu espaço de
endereçamento;
Uma complicação ocorre quando várias pessoas
precisam ter acesso ao mesmo arquivo
criptografado;
Estudo de caso: Windows NT

Contenu connexe

Tendances

Io kit manual do usuário elipse
Io kit   manual do usuário elipseIo kit   manual do usuário elipse
Io kit manual do usuário elipsegustavovinhosa
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionaisvini_campos
 
Visão Geral: Estruturas do Sistema Operacional
Visão Geral: Estruturas do Sistema OperacionalVisão Geral: Estruturas do Sistema Operacional
Visão Geral: Estruturas do Sistema OperacionalAlexandre Duarte
 
Sistema operacional introdução
Sistema operacional introduçãoSistema operacional introdução
Sistema operacional introduçãoCleber Ramos
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas OperacionaisAdir Kuhn
 
A.S.O 1 Aula1 (1º Unidade)
A.S.O 1 Aula1 (1º Unidade)A.S.O 1 Aula1 (1º Unidade)
A.S.O 1 Aula1 (1º Unidade)Cleiton Cunha
 
ASO 1- Aula2 (1ª Unidade)
ASO 1- Aula2 (1ª Unidade)ASO 1- Aula2 (1ª Unidade)
ASO 1- Aula2 (1ª Unidade)Cleiton Cunha
 
Instalação, configuração e administração de um SO Cliente/Servidor
Instalação, configuração e administração de um SO Cliente/ServidorInstalação, configuração e administração de um SO Cliente/Servidor
Instalação, configuração e administração de um SO Cliente/ServidorEdgar Costa
 
Sistemas operativos de grande porte
Sistemas operativos de grande porteSistemas operativos de grande porte
Sistemas operativos de grande porteteacherpereira
 
A.S.O 1 aula3 (1º Unidade)
A.S.O 1 aula3 (1º Unidade)A.S.O 1 aula3 (1º Unidade)
A.S.O 1 aula3 (1º Unidade)Cleiton Cunha
 
2. conceito de processos
2. conceito de processos2. conceito de processos
2. conceito de processosvini_campos
 
Sistemas Operacionais parte 2
Sistemas Operacionais  parte 2Sistemas Operacionais  parte 2
Sistemas Operacionais parte 2Matheus Brito
 
Resumo sistemas operativos - joao marques
Resumo   sistemas operativos - joao marquesResumo   sistemas operativos - joao marques
Resumo sistemas operativos - joao marquesdjoaquim7
 
Aula 5a - Sistemas Operacionais
Aula 5a - Sistemas OperacionaisAula 5a - Sistemas Operacionais
Aula 5a - Sistemas OperacionaisJocelma Rios
 
Sistemas operativos módulo2 - ms dos
Sistemas operativos   módulo2 -  ms dosSistemas operativos   módulo2 -  ms dos
Sistemas operativos módulo2 - ms dosteacherpereira
 
Estruturas de Sistemas Operacionais
Estruturas de Sistemas OperacionaisEstruturas de Sistemas Operacionais
Estruturas de Sistemas OperacionaisCid de Andrade
 

Tendances (20)

Aula 01 So2009
Aula 01   So2009Aula 01   So2009
Aula 01 So2009
 
Io kit manual do usuário elipse
Io kit   manual do usuário elipseIo kit   manual do usuário elipse
Io kit manual do usuário elipse
 
S Op1
S Op1S Op1
S Op1
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Visão Geral: Estruturas do Sistema Operacional
Visão Geral: Estruturas do Sistema OperacionalVisão Geral: Estruturas do Sistema Operacional
Visão Geral: Estruturas do Sistema Operacional
 
Sistema operacional introdução
Sistema operacional introduçãoSistema operacional introdução
Sistema operacional introdução
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
A.S.O 1 Aula1 (1º Unidade)
A.S.O 1 Aula1 (1º Unidade)A.S.O 1 Aula1 (1º Unidade)
A.S.O 1 Aula1 (1º Unidade)
 
ASO 1- Aula2 (1ª Unidade)
ASO 1- Aula2 (1ª Unidade)ASO 1- Aula2 (1ª Unidade)
ASO 1- Aula2 (1ª Unidade)
 
Instalação, configuração e administração de um SO Cliente/Servidor
Instalação, configuração e administração de um SO Cliente/ServidorInstalação, configuração e administração de um SO Cliente/Servidor
Instalação, configuração e administração de um SO Cliente/Servidor
 
Sistemas operativos de grande porte
Sistemas operativos de grande porteSistemas operativos de grande porte
Sistemas operativos de grande porte
 
A.S.O 1 aula3 (1º Unidade)
A.S.O 1 aula3 (1º Unidade)A.S.O 1 aula3 (1º Unidade)
A.S.O 1 aula3 (1º Unidade)
 
2. conceito de processos
2. conceito de processos2. conceito de processos
2. conceito de processos
 
Sistemas Operacionais parte 2
Sistemas Operacionais  parte 2Sistemas Operacionais  parte 2
Sistemas Operacionais parte 2
 
Sd01 (si) sistemas de arquivos
Sd01 (si)   sistemas de arquivosSd01 (si)   sistemas de arquivos
Sd01 (si) sistemas de arquivos
 
Resumo sistemas operativos - joao marques
Resumo   sistemas operativos - joao marquesResumo   sistemas operativos - joao marques
Resumo sistemas operativos - joao marques
 
Aula 5a - Sistemas Operacionais
Aula 5a - Sistemas OperacionaisAula 5a - Sistemas Operacionais
Aula 5a - Sistemas Operacionais
 
Redes2 aula02
Redes2 aula02Redes2 aula02
Redes2 aula02
 
Sistemas operativos módulo2 - ms dos
Sistemas operativos   módulo2 -  ms dosSistemas operativos   módulo2 -  ms dos
Sistemas operativos módulo2 - ms dos
 
Estruturas de Sistemas Operacionais
Estruturas de Sistemas OperacionaisEstruturas de Sistemas Operacionais
Estruturas de Sistemas Operacionais
 

En vedette

Moodle from the trenches - Second Edition - iMoot 2016
Moodle from the trenches - Second Edition - iMoot 2016Moodle from the trenches - Second Edition - iMoot 2016
Moodle from the trenches - Second Edition - iMoot 2016Jerônimo Medina Madruga
 
Moodle from the trenches - First Edition - iMoot 2016
Moodle from the trenches - First Edition - iMoot 2016Moodle from the trenches - First Edition - iMoot 2016
Moodle from the trenches - First Edition - iMoot 2016Jerônimo Medina Madruga
 
Oficina de Python - Tchelinux Livramento 2013
Oficina de Python - Tchelinux Livramento 2013Oficina de Python - Tchelinux Livramento 2013
Oficina de Python - Tchelinux Livramento 2013Jerônimo Medina Madruga
 
Need for (web) speed: Uma introdução a otimização de velocidade de sites e We...
Need for (web) speed: Uma introdução a otimização de velocidade de sites e We...Need for (web) speed: Uma introdução a otimização de velocidade de sites e We...
Need for (web) speed: Uma introdução a otimização de velocidade de sites e We...Jerônimo Medina Madruga
 
Need for (web) speed - Tchelinux Pelotas 2014
Need for (web) speed - Tchelinux Pelotas 2014Need for (web) speed - Tchelinux Pelotas 2014
Need for (web) speed - Tchelinux Pelotas 2014Jerônimo Medina Madruga
 
Formação de Professores para o Sistema Moodle - Edição 2015
Formação de Professores para o Sistema Moodle - Edição 2015Formação de Professores para o Sistema Moodle - Edição 2015
Formação de Professores para o Sistema Moodle - Edição 2015Jerônimo Medina Madruga
 
Aprendendo a aprender software livre - Tchelinux Bagé 2016
Aprendendo a aprender software livre - Tchelinux Bagé 2016Aprendendo a aprender software livre - Tchelinux Bagé 2016
Aprendendo a aprender software livre - Tchelinux Bagé 2016Jerônimo Medina Madruga
 
Dê a Cara a Tapa: Uma Palestra Intrigante sobre Oceano Azul, Cauda Longa, Mer...
Dê a Cara a Tapa: Uma Palestra Intrigante sobre Oceano Azul, Cauda Longa, Mer...Dê a Cara a Tapa: Uma Palestra Intrigante sobre Oceano Azul, Cauda Longa, Mer...
Dê a Cara a Tapa: Uma Palestra Intrigante sobre Oceano Azul, Cauda Longa, Mer...Jerônimo Medina Madruga
 
Tudo que você queria saber sobre software livre mas não tinha coragem de perg...
Tudo que você queria saber sobre software livre mas não tinha coragem de perg...Tudo que você queria saber sobre software livre mas não tinha coragem de perg...
Tudo que você queria saber sobre software livre mas não tinha coragem de perg...Jerônimo Medina Madruga
 
Trabalho Psicopedagogia Hospitalar
Trabalho Psicopedagogia HospitalarTrabalho Psicopedagogia Hospitalar
Trabalho Psicopedagogia HospitalarQuelenP
 

En vedette (17)

Moodle from the trenches - Second Edition - iMoot 2016
Moodle from the trenches - Second Edition - iMoot 2016Moodle from the trenches - Second Edition - iMoot 2016
Moodle from the trenches - Second Edition - iMoot 2016
 
Moodle from the trenches - First Edition - iMoot 2016
Moodle from the trenches - First Edition - iMoot 2016Moodle from the trenches - First Edition - iMoot 2016
Moodle from the trenches - First Edition - iMoot 2016
 
Oficina de Python - Tchelinux Livramento 2013
Oficina de Python - Tchelinux Livramento 2013Oficina de Python - Tchelinux Livramento 2013
Oficina de Python - Tchelinux Livramento 2013
 
Need for (web) speed: Uma introdução a otimização de velocidade de sites e We...
Need for (web) speed: Uma introdução a otimização de velocidade de sites e We...Need for (web) speed: Uma introdução a otimização de velocidade de sites e We...
Need for (web) speed: Uma introdução a otimização de velocidade de sites e We...
 
Need for (web) speed - Tchelinux Pelotas 2014
Need for (web) speed - Tchelinux Pelotas 2014Need for (web) speed - Tchelinux Pelotas 2014
Need for (web) speed - Tchelinux Pelotas 2014
 
Git for dummies - Tchelinux Bagé 2012
Git for dummies - Tchelinux Bagé 2012Git for dummies - Tchelinux Bagé 2012
Git for dummies - Tchelinux Bagé 2012
 
CMS: The Good, the Bad and the Ugly
CMS: The Good, the Bad and the UglyCMS: The Good, the Bad and the Ugly
CMS: The Good, the Bad and the Ugly
 
Formação de Professores para o Sistema Moodle - Edição 2015
Formação de Professores para o Sistema Moodle - Edição 2015Formação de Professores para o Sistema Moodle - Edição 2015
Formação de Professores para o Sistema Moodle - Edição 2015
 
Licenças e comunidades - FISL 14
Licenças e comunidades - FISL 14Licenças e comunidades - FISL 14
Licenças e comunidades - FISL 14
 
Joomla! for dummies - HackThursday CW 36
Joomla! for dummies - HackThursday CW 36Joomla! for dummies - HackThursday CW 36
Joomla! for dummies - HackThursday CW 36
 
Curso de Moodle para Professores da UFPel
Curso de Moodle para Professores da UFPelCurso de Moodle para Professores da UFPel
Curso de Moodle para Professores da UFPel
 
Aprendendo a aprender software livre - Tchelinux Bagé 2016
Aprendendo a aprender software livre - Tchelinux Bagé 2016Aprendendo a aprender software livre - Tchelinux Bagé 2016
Aprendendo a aprender software livre - Tchelinux Bagé 2016
 
Dê a Cara a Tapa: Uma Palestra Intrigante sobre Oceano Azul, Cauda Longa, Mer...
Dê a Cara a Tapa: Uma Palestra Intrigante sobre Oceano Azul, Cauda Longa, Mer...Dê a Cara a Tapa: Uma Palestra Intrigante sobre Oceano Azul, Cauda Longa, Mer...
Dê a Cara a Tapa: Uma Palestra Intrigante sobre Oceano Azul, Cauda Longa, Mer...
 
Tudo que você queria saber sobre software livre mas não tinha coragem de perg...
Tudo que você queria saber sobre software livre mas não tinha coragem de perg...Tudo que você queria saber sobre software livre mas não tinha coragem de perg...
Tudo que você queria saber sobre software livre mas não tinha coragem de perg...
 
Trabalho Psicopedagogia Hospitalar
Trabalho Psicopedagogia HospitalarTrabalho Psicopedagogia Hospitalar
Trabalho Psicopedagogia Hospitalar
 
IntervencióN PsicopedagóGica
IntervencióN PsicopedagóGicaIntervencióN PsicopedagóGica
IntervencióN PsicopedagóGica
 
Psicopedagogia Empresarial
Psicopedagogia EmpresarialPsicopedagogia Empresarial
Psicopedagogia Empresarial
 

Similaire à Estudo de caso: Windows NT

Fundamentos de Sistemas Operacionais - Aula 2 - Conceitos Iniciais
Fundamentos de Sistemas Operacionais - Aula 2 - Conceitos IniciaisFundamentos de Sistemas Operacionais - Aula 2 - Conceitos Iniciais
Fundamentos de Sistemas Operacionais - Aula 2 - Conceitos IniciaisHelder Lopes
 
Dispositivos [Entrada E SaíDa]
Dispositivos [Entrada E SaíDa]Dispositivos [Entrada E SaíDa]
Dispositivos [Entrada E SaíDa]SergioSouza
 
SO05 - Sistemas-Operacionais - Gerencia de Dispositivos.pdf
SO05 - Sistemas-Operacionais - Gerencia de Dispositivos.pdfSO05 - Sistemas-Operacionais - Gerencia de Dispositivos.pdf
SO05 - Sistemas-Operacionais - Gerencia de Dispositivos.pdfSilvano Oliveira
 
Avaliação das distribuições Linux
Avaliação das distribuições LinuxAvaliação das distribuições Linux
Avaliação das distribuições LinuxMauro Tapajós
 
Aspectos do kernel Linux e Instalação
Aspectos do kernel Linux e InstalaçãoAspectos do kernel Linux e Instalação
Aspectos do kernel Linux e InstalaçãoMauro Tapajós
 
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionaisSuperTec1
 
Execução de programas
Execução de programasExecução de programas
Execução de programasMattheusAnd07
 
M1_Sistemas Operativos.pptx
M1_Sistemas Operativos.pptxM1_Sistemas Operativos.pptx
M1_Sistemas Operativos.pptxDoraestevao
 
Sistemas Operacionais.pptx
Sistemas Operacionais.pptxSistemas Operacionais.pptx
Sistemas Operacionais.pptxstenio medeiros
 
Questões de Sistemas Operacionais
Questões de Sistemas Operacionais Questões de Sistemas Operacionais
Questões de Sistemas Operacionais Joicy Souza
 
Máquinas Multiníveis - Nível da Microarquitetura
Máquinas Multiníveis - Nível da MicroarquiteturaMáquinas Multiníveis - Nível da Microarquitetura
Máquinas Multiníveis - Nível da MicroarquiteturaLincoln Lamas
 

Similaire à Estudo de caso: Windows NT (20)

Fundamentos de Sistemas Operacionais - Aula 2 - Conceitos Iniciais
Fundamentos de Sistemas Operacionais - Aula 2 - Conceitos IniciaisFundamentos de Sistemas Operacionais - Aula 2 - Conceitos Iniciais
Fundamentos de Sistemas Operacionais - Aula 2 - Conceitos Iniciais
 
Dispositivos [Entrada E SaíDa]
Dispositivos [Entrada E SaíDa]Dispositivos [Entrada E SaíDa]
Dispositivos [Entrada E SaíDa]
 
SO2 - Windows 7
SO2 - Windows 7SO2 - Windows 7
SO2 - Windows 7
 
Redes 6
Redes 6Redes 6
Redes 6
 
SO05 - Sistemas-Operacionais - Gerencia de Dispositivos.pdf
SO05 - Sistemas-Operacionais - Gerencia de Dispositivos.pdfSO05 - Sistemas-Operacionais - Gerencia de Dispositivos.pdf
SO05 - Sistemas-Operacionais - Gerencia de Dispositivos.pdf
 
Entrada Saida
Entrada SaidaEntrada Saida
Entrada Saida
 
Roteadores
RoteadoresRoteadores
Roteadores
 
S.o aula 1234
S.o aula 1234S.o aula 1234
S.o aula 1234
 
io
ioio
io
 
SO - Aula 02 - Conceitos
SO - Aula 02 - ConceitosSO - Aula 02 - Conceitos
SO - Aula 02 - Conceitos
 
Avaliação das distribuições Linux
Avaliação das distribuições LinuxAvaliação das distribuições Linux
Avaliação das distribuições Linux
 
Aspectos do kernel Linux e Instalação
Aspectos do kernel Linux e InstalaçãoAspectos do kernel Linux e Instalação
Aspectos do kernel Linux e Instalação
 
Componentes basicos do pc
Componentes basicos do pcComponentes basicos do pc
Componentes basicos do pc
 
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
 
Execução de programas
Execução de programasExecução de programas
Execução de programas
 
M1_Sistemas Operativos.pptx
M1_Sistemas Operativos.pptxM1_Sistemas Operativos.pptx
M1_Sistemas Operativos.pptx
 
Hardware e sistemas operacionais
Hardware e sistemas operacionaisHardware e sistemas operacionais
Hardware e sistemas operacionais
 
Sistemas Operacionais.pptx
Sistemas Operacionais.pptxSistemas Operacionais.pptx
Sistemas Operacionais.pptx
 
Questões de Sistemas Operacionais
Questões de Sistemas Operacionais Questões de Sistemas Operacionais
Questões de Sistemas Operacionais
 
Máquinas Multiníveis - Nível da Microarquitetura
Máquinas Multiníveis - Nível da MicroarquiteturaMáquinas Multiníveis - Nível da Microarquitetura
Máquinas Multiníveis - Nível da Microarquitetura
 

Plus de Jerônimo Medina Madruga

PyGame Over: Insert coins to learn with Python - Tchelinux Porto Alegre 2019
PyGame Over: Insert coins to learn with Python - Tchelinux Porto Alegre 2019PyGame Over: Insert coins to learn with Python - Tchelinux Porto Alegre 2019
PyGame Over: Insert coins to learn with Python - Tchelinux Porto Alegre 2019Jerônimo Medina Madruga
 
Rock & Code - Como criar música programando - Tchelinux pelotas 2019
Rock & Code - Como criar música programando - Tchelinux pelotas 2019Rock & Code - Como criar música programando - Tchelinux pelotas 2019
Rock & Code - Como criar música programando - Tchelinux pelotas 2019Jerônimo Medina Madruga
 
Rock 'n' Code - Como criar música programando - Tchelinux Camaquã 2019
Rock 'n' Code - Como criar música programando - Tchelinux Camaquã 2019Rock 'n' Code - Como criar música programando - Tchelinux Camaquã 2019
Rock 'n' Code - Como criar música programando - Tchelinux Camaquã 2019Jerônimo Medina Madruga
 
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...Jerônimo Medina Madruga
 
Dê a cara a tapa como se destacar no mercado de trabalho - Tchelinux Sant'An...
Dê a cara a tapa  como se destacar no mercado de trabalho - Tchelinux Sant'An...Dê a cara a tapa  como se destacar no mercado de trabalho - Tchelinux Sant'An...
Dê a cara a tapa como se destacar no mercado de trabalho - Tchelinux Sant'An...Jerônimo Medina Madruga
 
Rock 'n' Code: Como criar música programando - I Semana Acadêmica da Licencia...
Rock 'n' Code: Como criar música programando - I Semana Acadêmica da Licencia...Rock 'n' Code: Como criar música programando - I Semana Acadêmica da Licencia...
Rock 'n' Code: Como criar música programando - I Semana Acadêmica da Licencia...Jerônimo Medina Madruga
 
Do Zero ao Python - I Semana Acadêmica da Licenciatura em Computação - IFSul ...
Do Zero ao Python - I Semana Acadêmica da Licenciatura em Computação - IFSul ...Do Zero ao Python - I Semana Acadêmica da Licenciatura em Computação - IFSul ...
Do Zero ao Python - I Semana Acadêmica da Licenciatura em Computação - IFSul ...Jerônimo Medina Madruga
 
Desmistificando a gamificação: como "jogos" podem potencializar a educação - ...
Desmistificando a gamificação: como "jogos" podem potencializar a educação - ...Desmistificando a gamificação: como "jogos" podem potencializar a educação - ...
Desmistificando a gamificação: como "jogos" podem potencializar a educação - ...Jerônimo Medina Madruga
 
Rock And Code: Como criar música programando
Rock And Code: Como criar música programandoRock And Code: Como criar música programando
Rock And Code: Como criar música programandoJerônimo Medina Madruga
 
Remember the name: Como se tornar um rockstar no mercado de trabalho
Remember the name: Como se tornar um rockstar no mercado de trabalhoRemember the name: Como se tornar um rockstar no mercado de trabalho
Remember the name: Como se tornar um rockstar no mercado de trabalhoJerônimo Medina Madruga
 
Como se tornar um programador melhor - Saci 2017 IFSul Bagé
Como se tornar um programador melhor - Saci 2017 IFSul BagéComo se tornar um programador melhor - Saci 2017 IFSul Bagé
Como se tornar um programador melhor - Saci 2017 IFSul BagéJerônimo Medina Madruga
 
Dê a cara a tapa 5 estratégias para se sobressair no mercado e ser um profis...
Dê a cara a tapa  5 estratégias para se sobressair no mercado e ser um profis...Dê a cara a tapa  5 estratégias para se sobressair no mercado e ser um profis...
Dê a cara a tapa 5 estratégias para se sobressair no mercado e ser um profis...Jerônimo Medina Madruga
 
Aprendendo a aprender software livre - Tchelinux Bagé 2017
Aprendendo a aprender software livre - Tchelinux Bagé 2017Aprendendo a aprender software livre - Tchelinux Bagé 2017
Aprendendo a aprender software livre - Tchelinux Bagé 2017Jerônimo Medina Madruga
 
Moodle direto das trincheiras - Tchelinux UCPel 2017
Moodle direto das trincheiras - Tchelinux UCPel 2017Moodle direto das trincheiras - Tchelinux UCPel 2017
Moodle direto das trincheiras - Tchelinux UCPel 2017Jerônimo Medina Madruga
 
Aprendendo Software Livre como Neo Aprendeu Kung Fu - Tchelinux UCPel 2017
Aprendendo Software Livre como Neo Aprendeu Kung Fu - Tchelinux UCPel 2017Aprendendo Software Livre como Neo Aprendeu Kung Fu - Tchelinux UCPel 2017
Aprendendo Software Livre como Neo Aprendeu Kung Fu - Tchelinux UCPel 2017Jerônimo Medina Madruga
 
Ti verde sem mimimi, vamos é economizar dinheiro - TcheLinux POA 2012
Ti verde sem mimimi, vamos é economizar dinheiro - TcheLinux POA 2012Ti verde sem mimimi, vamos é economizar dinheiro - TcheLinux POA 2012
Ti verde sem mimimi, vamos é economizar dinheiro - TcheLinux POA 2012Jerônimo Medina Madruga
 

Plus de Jerônimo Medina Madruga (18)

PyGame Over: Insert coins to learn with Python - Tchelinux Porto Alegre 2019
PyGame Over: Insert coins to learn with Python - Tchelinux Porto Alegre 2019PyGame Over: Insert coins to learn with Python - Tchelinux Porto Alegre 2019
PyGame Over: Insert coins to learn with Python - Tchelinux Porto Alegre 2019
 
Rock & Code - Como criar música programando - Tchelinux pelotas 2019
Rock & Code - Como criar música programando - Tchelinux pelotas 2019Rock & Code - Como criar música programando - Tchelinux pelotas 2019
Rock & Code - Como criar música programando - Tchelinux pelotas 2019
 
Rock 'n' Code - Como criar música programando - Tchelinux Camaquã 2019
Rock 'n' Code - Como criar música programando - Tchelinux Camaquã 2019Rock 'n' Code - Como criar música programando - Tchelinux Camaquã 2019
Rock 'n' Code - Como criar música programando - Tchelinux Camaquã 2019
 
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
 
Dê a cara a tapa como se destacar no mercado de trabalho - Tchelinux Sant'An...
Dê a cara a tapa  como se destacar no mercado de trabalho - Tchelinux Sant'An...Dê a cara a tapa  como se destacar no mercado de trabalho - Tchelinux Sant'An...
Dê a cara a tapa como se destacar no mercado de trabalho - Tchelinux Sant'An...
 
Rock 'n' Code: Como criar música programando - I Semana Acadêmica da Licencia...
Rock 'n' Code: Como criar música programando - I Semana Acadêmica da Licencia...Rock 'n' Code: Como criar música programando - I Semana Acadêmica da Licencia...
Rock 'n' Code: Como criar música programando - I Semana Acadêmica da Licencia...
 
Do Zero ao Python - I Semana Acadêmica da Licenciatura em Computação - IFSul ...
Do Zero ao Python - I Semana Acadêmica da Licenciatura em Computação - IFSul ...Do Zero ao Python - I Semana Acadêmica da Licenciatura em Computação - IFSul ...
Do Zero ao Python - I Semana Acadêmica da Licenciatura em Computação - IFSul ...
 
Desmistificando a gamificação: como "jogos" podem potencializar a educação - ...
Desmistificando a gamificação: como "jogos" podem potencializar a educação - ...Desmistificando a gamificação: como "jogos" podem potencializar a educação - ...
Desmistificando a gamificação: como "jogos" podem potencializar a educação - ...
 
Rock And Code: Como criar música programando
Rock And Code: Como criar música programandoRock And Code: Como criar música programando
Rock And Code: Como criar música programando
 
Do zero ao python em 40 minutos!
Do zero ao python em 40 minutos!Do zero ao python em 40 minutos!
Do zero ao python em 40 minutos!
 
Remember the name: Como se tornar um rockstar no mercado de trabalho
Remember the name: Como se tornar um rockstar no mercado de trabalhoRemember the name: Como se tornar um rockstar no mercado de trabalho
Remember the name: Como se tornar um rockstar no mercado de trabalho
 
Como se tornar um programador melhor - Saci 2017 IFSul Bagé
Como se tornar um programador melhor - Saci 2017 IFSul BagéComo se tornar um programador melhor - Saci 2017 IFSul Bagé
Como se tornar um programador melhor - Saci 2017 IFSul Bagé
 
Dê a cara a tapa 5 estratégias para se sobressair no mercado e ser um profis...
Dê a cara a tapa  5 estratégias para se sobressair no mercado e ser um profis...Dê a cara a tapa  5 estratégias para se sobressair no mercado e ser um profis...
Dê a cara a tapa 5 estratégias para se sobressair no mercado e ser um profis...
 
Aprendendo a aprender software livre - Tchelinux Bagé 2017
Aprendendo a aprender software livre - Tchelinux Bagé 2017Aprendendo a aprender software livre - Tchelinux Bagé 2017
Aprendendo a aprender software livre - Tchelinux Bagé 2017
 
Moodle direto das trincheiras - Tchelinux UCPel 2017
Moodle direto das trincheiras - Tchelinux UCPel 2017Moodle direto das trincheiras - Tchelinux UCPel 2017
Moodle direto das trincheiras - Tchelinux UCPel 2017
 
Aprendendo Software Livre como Neo Aprendeu Kung Fu - Tchelinux UCPel 2017
Aprendendo Software Livre como Neo Aprendeu Kung Fu - Tchelinux UCPel 2017Aprendendo Software Livre como Neo Aprendeu Kung Fu - Tchelinux UCPel 2017
Aprendendo Software Livre como Neo Aprendeu Kung Fu - Tchelinux UCPel 2017
 
Estudo de caso: Windows NT
Estudo de caso: Windows NTEstudo de caso: Windows NT
Estudo de caso: Windows NT
 
Ti verde sem mimimi, vamos é economizar dinheiro - TcheLinux POA 2012
Ti verde sem mimimi, vamos é economizar dinheiro - TcheLinux POA 2012Ti verde sem mimimi, vamos é economizar dinheiro - TcheLinux POA 2012
Ti verde sem mimimi, vamos é economizar dinheiro - TcheLinux POA 2012
 

Dernier

Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfSamaraLunas
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx2m Assessoria
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuisKitota
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 

Dernier (9)

Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 

Estudo de caso: Windows NT

  • 1. Estudo de caso: Windows NT Jerônimo Medina Madruga Leonardo Lobo da Luz Mauro Sérgio Cardoso Kade
  • 2.
  • 4. MS-DOS Em 1981 a IBM lançava o IBM PC com um sistema operacional de 16 bits chamado MS-DOS 1.0. Sistema basicamente monousuário e orientado a linha de comando durante toda seu desenvolvimento.
  • 5. Windows Windows 1.0 lançado em 1985, sendo uma interface gráfica para o MS-DOS. Windows 3.0 foi o primeiro a obter sucesso, mas ainda não era um sistema operacional completo. Defeitos inerentes do DOS eram herdados
  • 6. Windows Com a chegada do Windows 95, MS- DOS começa a não gerenciar todo o sistema operacional. Ainda existe grande parte de código de 16 bits no sistema operacional.
  • 7. Windows Windows 98 contém a ultima versão do MS-DOS, mas já tem um novo sistema de arquivos. Problemas crônicos:  Kernel não-reentrante  Endereçamento virtual parcialmente compartilhado
  • 8. Windows NT Em 1988 a Microsoft decidiu fazer um sistema operacional estável, robusto e inovador. Dave Cuttler, um dos desenvolvedores do sistema operacional VMS foi contratado para gerenciar esse projeto.
  • 9. Windows NT A primeira versão, Windows NT 3.1, era tecnicamente superior ao Windows baseado no MS-DOS. Mas a falta de softwares 32 bits e lentidão do sistema fizeram com que ele não se tornasse muito popular.
  • 10. Windows NT Windows NT 4.0, lançado em 1996, tinha a mesma interface do Windows 95. Extremamente portável e quase totalmente escrito em C.
  • 11. Windows NT X Windows
  • 12. Windows 2000 O Windows NT 5.0 foi chamado de Windows 2000. Misturava a interface do Windows 98 com a confiabilidade da tecnologia NT. Extensibilidade, portabilidade, escalabilidade, compatibilidade, robustez e integração foram seus principios de desenvolvimento.
  • 16.
  • 17. Gerência de ES Sumário Objetivos e funcionalidades de sistema um E/S Componentes do Sistema de E/S Gerenciador de E/S Drivers de Dispositivo Estrutura de dados do sistema E/S Tipos de E/S Processamento de E/S Estruturas de Dados de E/S Recuperação de falha de energia Suporte a RAID
  • 18. Objetivos e Funcionalidades de um Sistema de E/S Oferecer uma estrutura para lidar de modo eficiente com uma grande variedade de dispositivos de E/S; Parte do código de um SO que trata de requisições de E/S de diferentes processos e as transmite aos dispositivos; Funções:  Emitir comandos;  Capturar interrupções;  Manipular erros.
  • 19. Exigências de Projeto de um Sistema de E/S Proporcionar 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 sistema de 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.
  • 20. Componentes do Sistema de E/S O sistema de E/S é guiado por pacotes, onde toda requisição de E/S é representada por um pacote de solicitação de E/S que trafega de um componente do sistema de E/S para outro; Possui vários componentes, como o gerenciador de E/S, o gerenciador de cache, o gerenciador de energia, drivers de dispositivo, que atuam em conjunto, recebendo e enviando solicitações de E/S; Embora não seja um componente direto, a camada de abstração de hardware (HAL) interage com os componentes do sistema de E/S, servindo para mascarar as diferenças entre os drivers diferentes acoplados ao sistema.
  • 21. Componentes – Gerenciador de E/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 em conjunto com o gerenciador de Máquina Virtual (VM – Virtual Machine) para prover um sistema de E/S mapeado em memória; Controla o gerenciador de cache e suporta operações síncronas e assíncronas, além de possuir mecanismos para um driver chamar outro driver. Define uma estrutura ordenada, onde as solicitações de E/S são transmitidas ao sistema de arquivos e aos drivers de dispositivo; Fornece um código comum a drivers diferentes que estes chamam para executar seu processamento de E/S; Oferece facilidades de E/S que permitem aos subsistemas de ambiente Win32 e POSIX implementar suas respectivas APIs.
  • 22. Componentes – Pacote de Requisição de E/S (IRP) O pacote de requisição de E/S (IRP – I/O Request Packet) é onde o sistema de E/S armazena informações necessárias para processar uma solicitação de E/S; IRP é uma estrutura de dados que controla o modo como a operação de E/S é processada em cada estágio ao longo do caminho do sistema de E/S; Um driver recebe um IRP, efetua a operação por ele especificada e devolve ao gerenciador de E/S para conclusão da operação ou envia para um outro driver para processamento adicional; Enquanto ativo, cada IRP é armazenado em uma fila IRP associada à thread que solicitou a operação de E/S, permitindo ao sistema de E/S
  • 23. Componentes – Pacote de Requisição de E/S (IRP) Um driver recebe um IRP, efetua a operação por ele especificada e devolve ao gerenciador de E/S para conclusão da operação ou envia para um outro driver para processamento adicional; Enquanto ativo, cada IRP é armazenado em uma fila IRP associada à thread que solicitou a operação de E/S, permitindo ao sistema de E/S encontrar e eliminar qualquer E/S pendente se uma thread terminar ou se for terminada com solicitações pendentes.
  • 24. Componentes – Pacote de Requisição de E/S (IRP) Um IRP consiste em duas partes:  Cabeçalho fixo: contém informações acerca do tipo e tamanho da solicitação, se a mesma é síncrona ou assíncrona, um ponteiro para um buffer e informações a respeito do estado de operação da requisição;  Localização de pilha: contém um código de função, parâmetros específicos da função e um ponteiro para o objeto de arquivo do chamador.
  • 25. Componentes – Driver de Dispositivo Oferece uma interface de E/S para um tipo de dispositivo em particular; Funciona como a ponte necessária entre o gerenciador de E/S e os componentes do sistema de E/S; Recebem comandos roteados para eles através do gerenciador de E/S, sendo enviados para os dispositivos que eles gerenciam, informando ao gerenciador de E/S quando esses comandos terminarem.
  • 26. Componentes – Driver de Dispositivo Alguns dos tipos de drivers de dispositivo:  Drivers de sistema de arquivo: aceitam requisições para arquivos.  Drivers do Windows NT: atuam em conjunto com os gerenciadores de energia e PnP do Windows NT, quando requisitados.  Drivers de dispositivo virtuais: utilizados para emular aplicações de 16 bits do MS-DOS.
  • 27. Componentes – Driver de Dispositivo Os drivers de dispositivo consistem em uma série de rotinas que são chamadas para processar os vários estágios de uma requisição de E/S:  Rotina de inicialização: executada pelo gerenciador de E/S para inicializar um driver quando este é carregado para o SO e que é denominada DriverEntry;  Rotina de adição de dispositivo: implementado por um driver que suporta PnP, permite que seja alocado um objeto de dispositivo para representar um dispositivo;  Rotina de início de E/S: permite que um driver inicie uma transferência de dados para um dispositivo, e é definida somente em drivers que contam com o gerenciador de E/S para uma serialização IRP;  Rotina de serviço de interrupção: é chamada quando ocorre uma interrupção;  Rotina de identificação de erros: são chamadas quando acontecem erros inesperados, anotando a ocorrência de erros e notificando o gerenciador de E/S, que grava as informações em um arquivo de identificação de erros.
  • 28. Componentes – Gerenciador de Plug-and-Play Atua em conjunto com o gerenciador de E/S e com um driver de dispositivo chamado driver de barramento para conduzir a alocação dos recursos do hardware de forma segura; O gerenciador de PnP e os drivers de barramento são responsáveis por carregar um driver de dispositivo quando um determinado componente é detectado; O suporte a Plug-and-Play requer uma cooperação entre o hardware, os drivers de dispositivo e os diferentes níveis do sistema operacional.
  • 29. Componentes – Gerenciador de Plug-and-Play Algumas capacidades do suporte a PnP são:  O gerenciador de PnP reconhece automaticamente dispositivos instalados, um processo que inclui enumerar dispositivos acoplados ao sistema durante uma operação de boot e detectar a adição ou remoção de dispositivos enquanto o sistema encontra-se em execução;  O gerenciador de PnP utiliza o processo de arbitragem de recursos na alocação de recursos de hardware junto com as exigências dos mesmos recursos dos dispositivos conectados ao sistema;  O gerenciador de PnP implementa aplicações e mecanismos no driver para detecção das mudanças nas configurações de hardware.
  • 30. Componentes – Gerenciador de Energia Atua em conjunto com o gerenciador de E/S para conduzir a evolução do sistema, assim como os drivers de dispositivo, através de transições de estados de energia.
  • 31. Componentes – O Registro Serve como uma espécie de base de dados que armazena uma descrição básica dos dispositivos de hardware presentes no sistema, assim como inicialização e configuração de um driver.
  • 32. Componentes – Arquivos INF Designados pela extensão .inf; São arquivos de instalação de drivers; Esses arquivos são a ligação entre um dispositivo de hardware particular e o driver que assume o controle do dispositivo.
  • 33. Componentes – Camada de Abstração de Hardware A camada de abstração de hardware (HAL – Hardware Abstraction Layer) oferece API’s que escondem as diferenças entre as plataformas dos drivers; Na prática, o HAL é um driver de barramento para todos os dispositivos da placa-mãe do computador que não são controlados por outros dispositivos.
  • 34. Estruturas de Dados do Sistema de E/S – Objetos de Arquivo São construções em modo kernel para lidar com arquivos ou dispositivos; Todas as origens e destinos de E/S são representados por objetos de arquivo; Os objetos de arquivo são protegidos por um descritor de segurança que contém uma lista de controle de acesso (ACL); Quando uma thread abre um arquivo, o gerenciador de E/S consulta o subsistema de segurança para determinar se a ACL daquele arquivo permite que o processo acesse o arquivo da maneira como a thread está solicitando; Os objetos de arquivo também são usados para sincronização.
  • 35. Estruturas de Dados do Sistema de E/S – Objetos de Arquivo Alguns atributos dos objetos de arquivo:  Nome de arquivo: identifica o arquivo físico ao qual o objeto do arquivo se refere;  Byte offset corrente: identifica a localização atual no arquivo;  Modos de compartilhamento: indica onde outros chamadores podem abrir os arquivos para ler, escrever ou deletar operações enquanto o chamador atual está em funcionamento;  Ponteiro para objeto de dispositivo: indica o tipo de dispositivo onde o arquivo se encontra;  Ponteiro para o bloco de parâmetro de volume: indica o volume ou a partição em que o arquivo se encontra.
  • 36. Estruturas de Dados do Sistema de E/S – Objetos de Driver e de Dispositivo Um objeto de driver representa um driver individual no sistema; Um objeto de dispositivo representa um dispositivo lógico ou físico no sistema; O gerenciador de E/S cria um objeto de driver enquanto um driver é carregado no sistema, e então chama uma rotina de inicialização do driver denominada DriverEntry; Após ser carregado, um driver pode criar objetos de dispositivo para representar dispositivos, ou até mesmo uma interface para o driver, através de uma rotina chamada IoCreateDevice.
  • 37. Operação de E/S Assíncrona Os serviços assíncronos permitem que uma aplicação emita uma solicitação de E/S e continue a ser executada enquanto o dispositivo transfere os dados; Por padrão, aproximadamente um terço dos serviços nativos do NT que o gerenciador de E/S fornece aos subsistemas e DLL’s são assíncronos; Tendem a ser operações longas ou de comprimento imprevisível, p.ex., ler ou gravar um arquivo ou enumerar um conteúdo de um diretório de arquivo; Uma thread que chame estes serviços precisa sincronizar sua execução com a conclusão dos mesmos; O trabalho assíncrono dá ao sistema de E/S o máximo de flexibilidade para executar outras tarefas enquanto dispositivos relativamente lentos transferem dados.
  • 38. Operação de E/S Assíncrona É muito benéfica para operações cujo tempo de conclusão é longo ou altamente variável; Pode ser caracterizada como uma operação que exige um pouco mais de programação em troca de mais controle sobre operações de E/S e um aumento considerável em termos de eficiência; A thread que utiliza E/S assíncrona não é retardada durante uma transferência de dados, porém, ela tem de sincronizar o uso que faz de qualquer dado transferido com a conclusão da transferência por parte do dispositivo.
  • 39. E/S Mapeada em Arquivo É uma característica importante do sistema de E/S, produzida em conjunto pelo sistema de E/S e pelo gerenciador de memória virtual; Refere-se a possibilidade de visualizar um arquivo residente em disco como parte da memória virtual de 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 a E/S mapeada em arquivo disponível ao modo usuário através dos serviços nativos.
  • 40. E/S Mapeada em Arquivo O gerenciador de máquina virtual otimiza o acesso ao disco, portanto, a E/S mapeada em arquivo permite que as aplicações tirem proveito dessa habilidade; O gerenciador de cache usa a E/S mapeada em arquivo para administrar seu cache baseado em memória; Os sistemas de arquivos e o servidor de rede usam o cache para colocar na memória dados de arquivos freqüentemente acessados, a fim de proporcionar melhor tempo de resposta aos programas ligados à E/S.
  • 41. Processamento de E/S As solicitações de E/S passam por vários estágios pré-definidos de processamento; Os estágios variam dependendo se a solicitação se destina a um dispositivo operado por um driver de uma única camada ou por um dispositivo alcançado através de um driver de várias camadas; Depois de abrir um objeto de arquivo, a aplicação chama uma rotina de E/S, fornecida por uma biblioteca de linguagem; O processamento varia também dependendo se o chamador especificou E/S síncrona ou assíncrona; Os arquivos do NT são representados como objetos e o sistema de E/S oferece serviços de objetos para manipulá-los.
  • 42. Solicitação de E/S para driver de uma única camada O processamento de uma solicitação síncrona ocorre em três estágios:  O gerenciador de E/S envia a solicitação em forma de IRP para o driver, que dá início à operação de E/S;  O dispositivo completa a operação e emite uma interrupção, que é atendida pelo driver do dispositivo;  O gerenciador de E/S conclui a solicitação de E/S.
  • 43. Solicitação de E/S para driver de uma única camada O processamento de uma solicitação assíncrona difere do processamento de uma solicitação síncrona basicamente em um aspecto; A chamada assíncrona acrescenta uma etapa entre as etapas 1 e 2, em que o gerenciador de E/S retorna o controle ao chamador; O chamador pode continuar a fazer outras coisas, enquanto as etapas 2 e 3 prosseguem, mas tem de estar sincronizado com a conclusão da etapa 3 para saber
  • 44. Solicitações de E/S para drivers em camadas É muita parecida com a solicitação de E/S para drivers de uma única camada, porém, uma ou mais camadas adicionais de processamento são acrescentadas ao modelo; O gerenciador de E/S recebe solicitação e cria um pacote de solicitação de E/S (IRP) para representá-la; Ele entrega o pacote a um driver do sistema de arquivos; Dependendo do tipo de solicitação feita pelo chamador, o sistema de arquivos pode enviar o mesmo IRP ao driver de dispositivo, ou pode gerar pacotes adicionais de solicitação de E/S e enviá-los separadamente ao driver de dispositivo.
  • 45. Acrescentando Drivers em Camadas O projeto do sistema de E/S permite que um driver seja colocado sobre o outro, ou seja, um driver executa uma ação com base nas informações armazenadas 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 segundo driver em uma segunda localização da pilha do IRP; Como todos os drivers, tanto os de dispositivo quanto os de sistema de arquivos, apresentam a mesma estrutura ao SO, um outro driver pode facilmente ser inserido na hierarquia sem alterar os drivers existentes ou o sistema de E/S.
  • 46. Recuperação de falha de energia Cada driver de dispositivo deve saber quando ocorreu uma falha de energia, reajustando o dispositivo por ele operado; Qualquer operação de E/S que tenha sido interrompida deve ser reinicializada, porém, se isso não for possível, o gerenciador de E/S deve ser notificado da falha em uma operação de E/S a fim de retornar uma condição de erro; O gerenciador de E/S, juntamente com o kernel, oferece um recurso que permite aos drivers de dispositivo lidar de forma tranqüila com interrupções no fornecimento de energia elétrica.
  • 47. Recuperação de falha de energia Quando a energia acaba, ocorre uma interrupção por falha de energia 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 registros importantes do sistema, incluindo o contador de programa; Se a memória do computador estiver equipada com uma bateria reserva, estas informações são gravadas e, quando a energia voltar, o kernel e o sistema de E/S podem utilizá-las para reiniciar ou encerrar as operações de E/S que foram anteriormente interrompidas.
  • 48. Suporte a RAID O suporte a RAID pode ser tanto por hardware quanto por software; No suporte por hardware são oferecidos drivers de disco com capacidade de gerenciar controladoras RAID, permitindo que diferentes discos trabalhem em conjunto para compor um ou mais discos lógicos; A própria controladora gerencia a criação e manutenção da informação de redundância necessária para recuperação dos dados.
  • 49. Suporte a RAID O suporte via software emula a partir de serviços do S.O. o funcionamento de uma controladora com suporte RAID; Um driver de dispositivo denominado FTDISK é responsável por essa tarefa.
  • 50.
  • 51. Gerenciamento de memória Sumá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
  • 52. Memória Virtual Implementada por Lou Perazzoli Metas para o Gerenciador: Portátil Confiável e Eficiente Proporcionar Arquivos mapeados, Copy-on-Write e suporte para 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 um processo cliente Equilibrar necessidades de multiprocessamento com velocidade de acesso a memória
  • 53. Memórias Espaç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 bits Espaço de Endereçamento Físico Limitado pelo hardware Dividido em blocos chamados de estruturas de página
  • 54. Memórias Página válida Presente na memória física e Committed Página inválida Armazenadas em disco ou Uncommitted
  • 55. Estados de uma página virtual Free Não usada no momento Referência a uma página free causará uma Falta Reserved Não disponivel para ser mapeada Referência a uma página reserved causará uma Falta Committed Dados ou código mapeados para a página Referência a uma página committed causará uma Falta, caso a página não esteja na memória principal, ou um Sucesso, caso contrário.
  • 56. Memória Compartilhada Conceito: É a memória visível a partir de mais de um processo Está presente em mais de um espaço de endereçamento virtual
  • 57. Section Object É alocado e desalocado pelo gerenciador de objetos do NT Não oferece sincronização Processos podem mapeiar partes do mesmo objeto de seção em seus espaços de endereçamento
  • 58. Section Object Compartilhamento ocorre nos seguintes casos: Para mapear a visão de uma seção, o processo precisa primeiro adquirir um handle para a seção. O processo criador do section object sempre terá um handle Se a seção possuir um nome, outros processos podem abrir handles para o section object O processo pode receber um handle para um section object através de herança ou quando um outro processo duplica seu handle
  • 59. Proteção de Memória Fornecida em quatro formas: Controlada por hardware (leitura/escrita, somente leitura) Estruturas de dados e memory pools usados pelos componentes do modo kernel do sistema, só podem ser acessados estando no modo kernel Cada processo possui um espaço de endereçamento separado e privado, protegido contra acesso por qualquer thread que pertença a outro processo Os acessos da memória compartilhada são limitados aos processos com os devidos direitos ( Copy-on-write )
  • 60. Copy-on-Write É uma técnica de otimização, chamada Avaliação Preguiçosa (lazy evaluation), e serve para economizar memória física Quando um processo mapeia uma visão de copy-on-write de um section object que contém páginas de leitura/escrita, em vez de criar um processo de cópia privada, o gerenciador de memória adia a criação de uma cópia das páginas até que a página seja modificada
  • 62. Implementação  2GB usuário  2GB sistema  Tabela de página para cada processo  Opção de modificação  64+64 KB não mapeados
  • 63. Tabelas de páginas O kernel e o gerenciador de memória virtual usam tabelas de páginas criadas por software para encontrar páginas que não estão presentes na TLB Uma entrada na tabela de páginas contém todas as informações necessárias para o sistema de memória virtual localizar uma página quando uma thread usa um endereço
  • 64. Políticas de paginação Política de Busca: Determina quando trazer a página do disco para a memória Paginação na demanda com clusterings: quando ocorre uma falta, carrega na memória a página que faltava e mais algumas em volta dela
  • 65. Políticas de paginação Política de Colocação: Determina onde colocar a página virtual na memória física Se a memória não está esgotada, o gerenciador seleciona a primeira estrutura de página em uma lista de estruturas de página livres. Se a lista está vazia, ele cruza uma série de outras listas por ele mantidas; a ordem dependerá do tipo de falta de página ocorrido
  • 66. Políticas de paginação Política de Substituição: Determina que página virtual deve ser removida da memória para obter espaço para a nova página FIFO local – multiprocessadores baseados na família Intel e processadores baseados na família Alpha LRU (implementado através do algoritmo do relógio) – monoprocessadores baseados na família Intel
  • 67. Memória Física Páginas contidas na memória estão presentes no Working Set de algum processo Working Sets Define o número de páginas que um processo armazena na memória Cada processo define um valor mínimo e máximo para o tamanho working set
  • 68. Memória Física Listas de páginas disponíveis: páginas recentemente removidas do working set de algum processo, não estão mais associadas a ele e possuem cópia no disco Listas de páginas modificadas: páginas recentemente removidas do working set de algum processo, não estão mais associadas a ele e não possuem cópia no disco
  • 69. Memória Física Listas de páginas livres: páginas não associadas a processo Lista de páginas zeradas: páginas não associadas a processo e preenchidas com Zero Lista de páginas com defeito físico: Contém as páginas que apresentam defeito. Garante que tais páginas não sejam mais acessadas
  • 71. Falta de Página Ocorrem 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
  • 72. Descritor de Endereço Virtual É armazenado numa árvore especifica do processo para acelerar sua localização Se uma thread tenta acessar um endereço não alocado, esse endereço não consta no descritor e ocorrerá uma violação de acesso Armazena qualquer informação fornecida na alocação da memória Ex: Faixa de endereços, compartilhada ou privativa, processo filho pode (ou não) herdar o conteúdo da faixa e o tipo de proteção aplicada
  • 73. Chamadas ao Sistema Função API Win 32 Descrição VirtualAlloc VirtualFree VirtualProtect VirtualQuery Pergunta sobre o estado de uma região VirtualLock Torna uma região residente em memória VirtualUnlock Torna a região paginável, da maneira usual CreateFile Mapping MapViewOfFile UnmapViewOfFile OpenFileMapping Reserva ou commit uma região Libera ou uncommit uma região Altera a proteção de leitura/escrita/execução de uma região Cria um objeto de mapeamento de arquivo e (opcionalmente) atribui um nome a ele Mapeia um arquivo, ou parte dele, no espaço de endereçamento Remove um arquivo mapeado do espaço de endereçamento Abre um objeto de mapeamento de arquivo criado anteriormente
  • 74.
  • 75. Gerência de processos Sumário Jobs Processos Threads Fibers Técnicas de comunicação Técnicas de sincronização Criação de processos e threads Escalonamento
  • 76. Jobs Um job é uma coleção de processos. Job são usados para gerenciar diversos processos como uma única unidade. Provem restrições de segurança e compartilhamento de certos atributos
  • 77. Processos Processo é a instância de execução de um programa. Tem espaço de endereçamento privado com sues códigos e dados. Pode ter recursos alocados pelo sistema operacional. Cada processo tem no mínimo uma thread. Processos são representados como objetos.
  • 79. Threads Threads são a unidade básica a ser escalonada no Windows 2000, possuindo estado de execução. Um processo pode criar múltiplas Threads para executar no seu espaço de endereçamento. Rodam em modo de usuário em grande parte do tempo, mas quando realizam a uma chamada de sistema rodam no modo kernel. Também são representadas como objetos.
  • 81. Fibers Similares a Threads leves São totalmente gerenciáveis pelo usuário, o Kernel não toma conhecimento das Fibers Devem ser utilizadas com cuidado, pois seu bloqueio ocasiona no bloqueio da Thread que está gerenciando as Fibers.
  • 83. Técnicas de comunicação Diversas técnicas de comunicação entre Threads:  Pipes  Mailslots  Sockets  Chamada remota de procedimentos  Arquivos compartilhados
  • 84. Técnicas de comunicação Pipes Possuem dois modos de operação:  Byte: Mensagem enviada byte-a-byte.  Mensagem: Existe conservação do tamanho da mensagem. Existe uma variação dos pipes, chamado pipes nomeados, que possuem suporte a uso na rede.
  • 85. Técnicas de comunicação Mailslots Funcionamento semelhante a pipes, mas com diferenças:  Comunicação unidirecional  Envio pela rede sem confirmação de recebimento  Envio em broadcast
  • 86. Técnicas de comunicação Sockets Utilizado primariamente para conexão de máquinas remotas Podem conectar processos na mesma máquina
  • 87. Técnicas de comunicação Chamada de procedimentos remotos Essa técnica se baseia em um processo poder invocar a função de outro processo e receber o retorno dessa função. Existe restrições nos tipos de valores que podem ser retornados.
  • 88. Técnicas de comunicação Arquivos compartilhados Consiste em uma área de memória compartilhada entre processos.
  • 89. Técnicas de sincronização Diversas técnicas de sincronização implementadas no sistema:  Semáforos  Mutex  Regiões Criticas  Eventos
  • 90. Criação de Processos e Threads Criação de processos envolve dez parâmetros e cinco passos básicos:
  • 91. Criação de Processos e Threads Passos: O executável é examinado e aberto CreateProcess é chamado, espaço de memória é alocado, objetos essenciais são criados e inicializados CreateThread é chamado, pilhas de usuário e kernel são criadas O subsistema Win32 recebe uma mensagem, com informações do processo e da thread A thread começa sua inicialização Começa a execução do código da thread
  • 92. Criação de Processos e Threads Parâ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 na tela. 10. Um ponteiro para a estrutura que retorna 18 valores para o realizador da chamada.
  • 93. Criação de Processos e Threads Parâmetros para criação Threads: 1. O descritor de segurança opcional 2. O tamanho inicial da pilha 3. O endereço inicial 4. Um parâmetro definido pelo usuário 5. O estado inicial da Thread (pronta ou bloqueada). 6. O ID da Thread
  • 94. Escalonamento No Windows 2000 não existe uma thread central de escalonamento. Quando uma thread acaba seu período de execução, ela entre no modo kernel e executa o escalonador.
  • 95. Escalonamento Situações em que uma thread deixa de ser apto a execução: 1. A thread é bloqueada por uma ferramenta de 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.
  • 96. Escalonamento Existem 32 níveis de prioridades no Windows 2000:
  • 97. Escalonamento Threads de usuários não administradores não ter sua prioridade maior que 15. Os outros 16 níveis são reservadas para threads do sistema. Quando a thread requisita E/S, controla uma janela, ou recebe uma resposta de um mecanismo de sincronização pode ter sua prioridade aumentada.
  • 98. Escalonamento Threads podem perder prioridade após executar um quantum de tempo. Caso uma thread passe muito tempo parada, o escalonador pode aumentar sua prioridade.
  • 99. Escalonamento Cada thread tem um valor de prioridade associado. O escalonador irá percorrer o vetor das prioridades partindo do nível mais alto, procurando em cada nível se existe uma thread pronta para ser executada. Caso exista, ela é executada até que quantum seja gasto, e após sua execução ela é devolvida para o final da final. Caso contrário, o escalonador analisa o nível abaixo. Quando não houver nenhuma thread apta a execução, a thread Idle é executada.
  • 101.
  • 102. Sistema de arquivos Sumário Sistemas de Arquivos NTFS Chamadas API Master File Table Compressão Criptografia
  • 103. Sistema de Arquivos O windows NT possui suporte a vários sistemas de arquivos, tais como: FAT16: endereços de 16 bits, tamanho máximo de uma partição de 2 GB FAT32: endereços de 32 bits, tamanho máximo de uma partição de 2 TB NTFS: endereço de 64 bits, tamanho máximo de uma partição de 16 EB
  • 104. NTFS Nomes dos arquivos limitados a 255 caracteres Caminhos desde a raíz limitados a 32767 caracteres Nomes dos arquivos em Unicode Diferenciação entre letras minúsculas e maiúsculas
  • 105. 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 nomes de caminhos sendo relativos ou absolutos Suporte a compressão, criptografia e tolerância a falhas
  • 106. 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 um fluxo curto, contendo o nome do arquivo mais o ID de objeto de 64 bits e um fluxo longo sem nome contendo os dados A idéia de múltiplos fluxos foi trazida da Apple Macintosh e foi incorporado ao NTFS para permitir que servidores NTFS possam servir clientes Macintosh
  • 107. Fluxo de Bytes Ponteiros de arquivos são usados para acompanhar onde um processo está em cada fluxo Esses ponteiros têm 64 bits de largura para tratar o tamanho máximo de um fluxo, que é cerca de 264 bytes
  • 109. Parâmetros do CreateFileUm ponteiro para o nome do arquivo a ser criado ou aberto. Flags indicando se o arquivo pode ser lido, escrito ou ambos. Flags indicando se multiplos processos podem abrir o arquivo ao mesmo tempo. Um ponteiro para o descritor de segurança dizendo quem pode acessar o arquivo Flags indicando o que fazer se o arquivo existir ou não existir. Flags lidando com atributos como: compressão, arquivamento, etc. A manipulação de um arquivo cujos atributos devem ser copiados para um novo arquivo
  • 110. Estrutura do Sistema de Arquivos Cada volume é organizado como uma seqüência linear de 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 a partir do início do volume, usando-se números de 64 bits A principal estrutura de dados cada volume é a MFT
  • 111. 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, indicadores de tempo, etc Usa-se mais de um registro para abrigar a lista de endereços de disco para arquivos muito grandes
  • 112. Master File Table (MFT) Um mapa de bits faz o acompanhamento de quais entradas da MFT estão livres MFT é em si um arquivo, sendo assim pode ser armazenada em qualquer setor do volume E pode crescer o quanto for preciso, até um tamanho máximo de 248 registros
  • 113. Master File Table (MFT) Os primeiros 16 registros são reservados para os arquivos de metadados do NTFS Cada um desses arquivos tem um nome que começa com um '$' indicando que se trata de um arquivo de metadado
  • 115. Master File Table (MFT) Registro 0: descreve o próprio arquivo da MFT Registro 1: cópia da primeira parte do arquivo MFT Registro 2: arquivo de registro de eventos Registro 3: contém informações sobre o volume Registro 4: contém informações sobre o arquivo que define os atributos usados nos registros da MFT Registro 5: descreve o diretório raiz
  • 116. Master File Table (MFT) Registro 6: contém informações sobre os atributos e endereços de disco do mapa de bits que controla o espaço livre do volume Registro 7: aponta para o arquivo de carga do boot Registro 8: usado para ligar todos os blocos defeituosos e assegurar que eles nunca farão parte de um arquivo Registro 9: contém informações sobre a segurança
  • 117. Master File Table (MFT) Registro 10: usado para o mapeamento de letras maiúsculas e minúsculas Registro 11: um diretório que contém diversos arquivos, usados entre outras coisas, para descrever as cotas de disco, descrever identificadores de objetos e descrever pontos de reanálise Registros 12-15: Reservados para uso futuro
  • 118. Master File Table (MFT) Cada registro consiste em um cabeçalho de registro, seguido por uma seqüência de pares (cabeçalho do atributo, valor) Cada atributo começa com um cabeçalho, que indica qual é o atributo e o tamanho do valor
  • 119. 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 e são ditos não residentes Os cabeçalhos de atributos residentes têm comprimento de 24 bytes Já os cabeçalhos de atributos não residentes são maiores porque contêm informação sobre onde encontrar o atributo no disco
  • 120. Master File Table (MFT) O NTFS define 13 atributos que podem aparecer no registro da MFT: informação-padrão, nome do arquivo, 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 de alocação, mapa de bits, registro de fluxo de utilização e dados
  • 121. Compressão de Arquivos NTFS suporta a compressão transparente de arquivos Ou seja, ele tenta comprimir automaticamente os blocos quando eles são escritos e descomprimi- los automaticamente quando são lidos
  • 122. Compressão de Arquivos Quando escreve um arquivo para compressão, o NTFS verifica os primeiros 16 blocos (lógicos) do arquivo, então, ele executa um algoritmo de compressão nesses blocos Se os dados comprimidos ainda ocuparem 16 blocos, os blocos são escritos na forma descomprimida. Depois se testa os blocos 16 a 31 da mesma maneira, e assim por diante.
  • 123. Compressão de Arquivos Ao escrever-se os blocos comprimidos na entrada da MFT, os blocos que não foram comprimidos são escritos com endereços de disco 0 Quando o arquivo é lido, o NTFS deve saber quais as séries estão comprimidas e quais não estão. Ele fica sabendo disso pelos endereços de disco O acesso aleatório a arquivos comprimidos é possível, mas complicado
  • 124. Criptografia de Arquivos A perda de informações pode ocorrer de várias maneiras; A partir da versão 5.0 do Windows NT (Windows 2000), é possível resolver esses problemas usando-se criptografia; O processo de criptografar e decriptografar, em si, não é feito pelo NTFS, mas por um driver chamado EFS (Encrypting File System);
  • 125. Criptografia de Arquivos Quando o usuário pede para um arquivo ser criptografado, gera-se uma chave aleatória de 128 bits; Essa chave é usada para criptografar o arquivo, bloco por bloco; O algoritmo usado atualmente é uma variação do DES (Data Encryption Standard); A criptografia de blocos em separados é usada para que o acesso aleatório ainda seja possível.
  • 126. Criptografia de Arquivos A chave do arquivo deve ser armazenada em algum lugar. Caso seja no disco, ainda poderá ser acessada; Por isso as chaves de arquivos devem ser todas criptografadas antes de serem armazenadas no discos; Para isso, usa-se criptografia por chave pública.
  • 127. Criptografia de Arquivos O local da chave pública do usuário é procurado usando-se a informação do registro; Para decriptar um arquivo, procura-se sua chave aleatória de 128 bits, que é decriptada utilizando a chave privada do usuário; Ao criptografar um arquivo pela primeira vez, gera-se um par (chave privada, chave pública), e a chave privada é armazenada no disco utilizando um algoritmo simétrico.
  • 128. Criptografia de Arquivos A chave usada pelo algoritmo simétrico é derivada da senha do usuário ou armazenada em um cartão inteligente; O EFS pode decriptar a chave no momento do acesso, e mante-la no seu espaço de endereçamento; Uma complicação ocorre quando várias pessoas precisam ter acesso ao mesmo arquivo criptografado;