(Parte 4 de 4)

Assim como todos os outros componentes do Windows NT, o gerenciador VM é totalmente paralelo. Ele roda simultaneamente em todos os processadores de um computador multiprocessado e tem de compartilhar suas estruturas de dados com as linhas que estão sendo executadas em processadores diferentes.

Memória compartilhada pode ser definida como a memória que é visível apartir de mais de um processo ou que está presente em mais de um espaço de endereçamento virtual. A abordagem do windows NT ao compartilhamento de recursos é implementá-los como objetos protegidos e a memória não é nenhuma exceção. O objeto de seção representa um bloco de memória que dois ou mais processos podem compartilhar. Uma linha de um processo cria um objeto de seção e dá a ele um nome para que as linhas de outros processos possam abrir alças para ele.

Um objeto de seção do NT pode ser muito grande, ocupando dezenas ou até milhares de páginas, por isso um processo precisa mapear apenas as partes do objeto de seção que lhes são necessárias. O mapeamento de visões de uma seção permite a um processo acessar grandes blocos de memória que, caso contrário, ele poderia não ter espaço de endereçamento virtual

para mapear.

Da mesma forma que a memória privativa, o conteúdo da memória compartilhada é paginado para o disco quando a demanda de mamória esta alta. O gerenciador VM também permite que os objetos de seção sejam paginados para um arquivo mapeado. O executivo do NT usa os arquivos mapeados para carregar imagens executáveis para a memória e o gerenciador de cachê do sistema usa os arquivos mapeados para ler e gravar em páginas do cachê.

Objeto de seção

Os objetos de seções são alocados e desalocados pelo gerenciador de objetos. O gerenciador VM também implementa serviços que as linhas do modo usuário podem chamar para recuperar e alterar os atributos armazenados no corpo dos objetos de seção.

Dois processos podem mapear partes do mesmo objeto de seção em seus espaços necessário que eles sincronizem seus acessos a memória para evitar alterações de dados ao mesmo tempo.

Protegendo a memória

A proteção de memória no windows NT é oferecida em quatro formas:

1. um espaço de endereçamento separado para cada processo.

2. dois modos de operação: modo kernel e modo usuário.

3. um mecanismo de proteção baseado em páginas.

4. proteção de memória baseado em objetos.

Memória privativa do processo

Toda vez que uma linha usa um endereço, o gerenciador VM do executivo do NT, juntamente com o hardware, intervém e traduz o endereço virtual em endereço físico. O sistema de memória virtual através do controle da tradução dos endereços virtuais, consegue garantir que as linhas de um processo não acessarão

uma estrutura de página de memória que pertença a um outro processo.

O gerenciador VM oferece as proteções de página somente leitura e leitura/gravação, e suplementa estas proteções de memória em alguns mecanismos próprios:

* somente execução.

* guardar página.

* nenhum acesso.

* cópia na gravação.

Usando os serviços nativos de memória virtual, o subsistema de ambiente tem condições de controlar a proteção a nível de página virtuais. O controle da proteção a nível de páginas pode produzir programas mais confiáveis já que assegura que as linhas não gravarão em páginas designadas como somente para leitura.

Memória compartilhada

A proteção de página copiar na gravação, mencionada anteriormente, é uma otimização que o gerenciador VM usa para economizar memória. Quando dois processos querem ler e gravar o mesmo conteúdo de memória, o gerenciador VM atribui a proteção de página copiar na gravação à região de memória. Depois ele compartilha a memória física entre os processos, desde que nenhum deles efetue gravações. Se uma linha de um dos dois processos gravar em uma página, o gerenciador VM copia a estrutura da página física para um outro local de memória, atualiza o espaço de endereçamento virtual do processo para que ele aponte para a cópia e define a nova proteção para leitura/gravação. Portanto a linha pode gravar em sua cópia de página sem afetar outros processos que estejam usando a mesma.

Todos os mecanismos de proteção de memória descritos até agora são implementados no hardware ou no

software de gerenciamento de memória baixa que é invocada toda vez que uma linha usa um endereço. A arquitetura de objetos do windows NT oferece uma camada adicional de proteção para a memória compartilhada entre dois processos. O subsistema de segurança protege os objetos de seção da mesma maneira que protege os outros objetos executivos, usando as listas de controles de acessos (LCAs), que especificam que usuários podem ler, gravar, obter informações sobre ou ampliar o tamanho da seção.

A segurança também entra em ação quando uma linha cria uma seção que irá conter um arquivo mapeado. Para tanto, a linha tem de ter acesso ao objeto de arquivo subjacente. Uma vez carregado um arquivo para uma seção, a linha pode alterar a LCA do objeto de seção, mas somente dentro dos limites definidos pela LCA do arquivo que foi mapeado [01].

Espaço de Endereçamento

Cada processo nativo do NT tem um grande espaço de endereçamento virtual de 4 GB, sendo que 2 GB são reservados para uso do sistema. A metade inferior do espaço de endereçamento virtual é acessível às linhas do modo usuário e do modo kernel e é exclusiva de cada processo. A metade superior do espaço de endereçamento virtual é acessível apenas às linhas do modo kernel e é a mesma para todo o processo.

O código e os dados do kernel residem na parte inferior de memória do sistema e nunca são paginados fora da memória. A porção superior de memória do sistema é controlada pelo gerenciador VM e é usada para armazenar outros códigos e dados do sistema. Uma parte desta área

é reservada para códigos e dados que podem ser paginados para o disco em uma outra parte é reservada para código do sistema que nunca pode ser paginado fora da memória.

Gerência do Processador

Bloco Descritor do processo

Como visto na multiprogramação, processos são interrompidos

depois continuados. Existem várias informações que o Sistema Operacional deve manter a respeito dos processos. No “programa” Sistema Operacional, um processo é representado por um registro. esse registro é chamado bloco descritor de processo ou simplesmente descritor de processo(DP). No DP,fica tudo que o SO precisa saber sobre o processo. Abaixo, uma lista de campos normalmente encontrados no Descritor de Processo:

· Prioridade do processo no sistema, usada para definir a ordem na

qual os processos recebem o processador.

· Localização e tamanho da memória principal ocupada pelo processo.

· Identificação dos arquivos abertos no momento.

· Informações para contabilidade, como tempo de processador gasto, espaço de memória ocupado, etc.

· Estado do processo: apto, bloqueado, executando

· Contexto de execução quando o processo perde o processador, ou seja, conteúdo dos registradores do processador quando o processo é suspenso temporariamente.

· Apontadores para encadeamento dos blocos descritores do processo.

Um processo quase sempre faz parte de alguma fila. Antes de criado, o descritor do processo faz parte de uma fila de descritores livres.

Após a criação, o seu descritor é colocado na fila de aptos. Normalmente essa fila é mantida

na ordem em que os processos deverão receber o processador. O primeiro descritor da fila corresponde ao processo em execução. Ao fazer uma chamada de sistema associada com uma operação de I/O, o descritor do processo em execução é retirado da fila de aptos e inserido na fila associada ao periférico. O contexto de execução do processo é salvo no seu próprio descritor. Após a conclusão da operação de I/O, o seu descritor volta pra fila de aptos. Quando o processo é destruído, o descritor volta para a fila de descritores livres.

Na prática, os descritores não são copiados. Todas as filas são

implementadas como listas encadeadas. A passagem do descritor de uma fila para a outra é feita através de manipulação de apontadores.

Em muitos sistemas, existe um número fixo de descritores. Ele corresponde ao número máximo de processos que podem existir no sistema. Outros sistemas utilizam alocação dinâmica de memória para criar descritores. Neste caso, não existe um limite para o número de descritores de processos. As principais características físicas do equipamento, tais como tamanho da memória principal e velocidade do processador, irão estabelecer limites quanto ao número máximo de processos. Quando alocação dinâmica de memória é utilizada na criação de blocos descritores de processos, é importante que a memória alocada fique dentro da área protegida do SO. Os descritores de processos contêm informações vitais para a operação do sistema. Em hipótese alguma eles podem ser alterados por um processo do usuário.

Abaixo está um

exemplo de descritor de processo para uma

máquina hipotética simples. Suponha que o computador sendo

multiprogramado possui os seguintes registradores:

· Apontador de instruções (PC)

· Apontador de pilha (SP)

· Acumulador (ACC)

· Registrador indexador (RX).

Chaveamento de contexto

Em um sistema multiprogramado, é necessário interromper processos para continuá-los mais tarde. Essa tarefa é chamada de chaveamento de processo ou chaveamento de contexto de execução. Para passar o processador do processo 1 para o 2, é necessário salvar seu contexto de execução do processo 1. Quando o P1 receber novamente o processador, o seu contexto de execução será restaurado. É necessário salvar tudo o que possa ser destruído pelo processo 2 enquanto ele executa.

O contexto de execução é formado basicamente pelos registradores do processador. O processo 2, ao executar, vai colocar seus próprios valores nos registradores. Entretanto, quando o processo 1 voltar a executar, ele espera encontrar nos registradores os mesmo valores que havia no momento da interrupção. O programa de usuário sequer sabe que será interrompido diversas vezes durante sua execução. Logo, não é possível deixar para o programa a tarefa de salvar os registradores. Isso deve ser feito pelo próprio SO. Os conteúdos dos registradores são salvos toda vez que um processo perde o processador. Eles são recolocados quando o processo voltar a executar. Desta forma, o processo não percebe que foi interrompido. Em geral, salvar o contexto de execução do processo em execução

é a primeira tarefa do SO, ao ser acionado. Da mesma forma, a última tarefa do SO é ao entregar o processador para um processo é repor o seu contexto de execução. Ao repor o valor usado pelo processo no apontador de instruções (program counter), o processador volta a executar instruções do programa de usuário. O módulo do SO que realiza a reposição do contexto é chamado de dispatcher.

O local usado para salvar o contexto de execução de um processo é o seu próprio bloco descritor. Uma solução alternativa é salvar todos os registradores na própria pilha do processo, colocando no bloco descritor apenas um apontador para o topo da pilha. Essa solução é, em geral, mais simples e eficiente. O próprio mecanismo de atendimento de interrupções da maioria dos processadores já salva na pilha alguns registradores.

Entretanto essa solução utiliza uma pilha cujo controle de espaço disponível não está mais a cargo do usuário. Se o salvamento do contexto ocorrer no momento que não existe espaço suficiente na pilha, informações pertencentes ao espaço de endereçamento do usuário poderão ser destruídas. Essa solução somente é viável quando é possível garantir que haverá espaço disponível na pilha do usuário. Uma solução de compromisso é fazer com que cada processo possua uma pilha adicional para uso exclusivo do SO. Nesse caso, primeiramente é feito um chaveamento de pilha. Depois o contexto é salvo na pilha do processo controlada pelo SO. Nessa pilha, é possível garantir que haverá espaço suficiente para o contexto de execução de processo.

etapa 4

O No-ip, é um sistema de DNS (Domain Name Server), que converte o seu endereço IP em um nome.

Exemplo: você está com o IP 200.200.200.200, so que é um IP aleatório, que muda de tempo em tempo, e você quer acessar sua maquina do escritório. Então você cria uma conta no no-ip e instala o DUC em sua maquina, com isso, mesmo mudando o endereço IP você vai conseguir acessar sua máquina através do nome, tipo seusuario.no-ip.com.

O que o no-ip faz, ele converte seu nome tipo seu usuario.no-ip.com no seu endereço IP que você estiver usando na conexão. Você não faz seu IP, pois o IP quem determina é seu provedor, quando você faz a conexão, seja ela discada, adsl, cabo, radio ou qualquer outro meio de conexão com a Internet.

O endereço IP é como um número de telefone, e pra você está conectado com a Internet você precisa desse número. Já o nome, que o NO-IP fornece, e só um tradução do seu endereço IP para o nome.

1º Passo: Criar uma conta

Para criar uma conta com o No-IP.com simplesmente clique no link "Create Account!" no lado superior direito da página. Preencha o formulário de nova conta completando os campos necessários. Por favor, note que as Condições de Serviço requerem informação válida relativamente ao seu contato

de forma a manter a sua conta ativa no site. Qualquer conta encontrada com informação incompleta ou fraudulenta será cancelada.

Quando tiver preenchido a informação necessária e aceite as nossas condições de serviço, clique no botão "I Accept, Create my Account".

2º Passo: Confirmar a sua conta

Quando tiver completado as informações da sua conta para o formulário do novo usuário, você irá receber um e-mail de confirmação para o endereço que forneceu.Terá que verificar essa conta e procurar o e-mail de No-IP.com. O e-mail contem um link que terá que clicar para confirmar a sua conta.

3º Passo: Aceder à sua conta

Agora que já confirmou a sua conta, você pode ir ao No-IP.com. No lado superior direito da página base do No-IP verá dois campo para inserir o seu endereço de correio electrónico e password. Insira a informação com que assinou e clique "Login."

4º Passo: Acrescentar um host ou domain à sua conta

Agora deverá encontrar-se na secção dos membros do No-IP.com. Aqui pode criar um hostname que irá utilizar para ligar-se ao seu servidor.

Um hostname é utilizado em vez de o seu endereço IP sempre que quiser ligar para um serviço no local onde se encontra. Hostnames tomam a forma de hostname.domain.com, são, portanto, iguais aos nomes utilizados nos URLs para surfar na net etc.

Por exemplo, se corresse um servidor de rede, e queria

ligar-se ao seu servidor utilizando um browser de rede, colocaria http://hostname.domain.com na barra de endereços. Os hostnames, contudo, podem ser utilizados para muito mais do que isso. Poderá também utilizar o mesmo hostname, sem o http://, para ligar ao seu computador utilizando software como Windows Remote Desktop. Está a correr um servidor FTP? Pode utilizar um hostname No-IP para o mesmo efeito também. Coloque o hostname directamente no seu cliente FTP ou se o seu browser o suportar, coloque ftp://hostname.domain.com na barra de endereços do browser de rede e deve conseguir fazer a ligação dessa forma também.

Para acrescentar um host à sua conta, clique no botão “Add a Host”.

Agora está pronto para preencher os detalhes do seu novo hostname.

1. Preencha o Hostname: caixa com um nome de sua escolha. Poderá ser o que quiser. Se escolher um nome que já está a ser utilizado, será gerado um erro e depois poderá tentar um hostname diferente. Visto os hostnames serem únicos por domínio, poderá tentar utilizar o mesmo hostname e apenas seleccionar um domínio diferente do menu suspenso em baixo de forma a ver se essa combinação está disponível.

2. Seleccione um domínio disponível do menu suspenso.Note que alguns domínios estão reservados exclusivamente a clients No-IP Enhanced.

3. Escolha o Host Type. A escolha por

padrão, DNS Host A, é normalmente a correta. Não escolha outros host types a não ser que esteja a tentar resolver um problema específico que uma DNS A record não acomodará.

4. No campo IP Address: Deverá já ver o seu endereço IP corrente.

5. As próximas duas opções não são utilizadas para a criação de uma conta básica, daí não nos preocuparmos com as mesmas neste artigo.

6. Quando tiver preenchido a informação para o seu novo hostname,simplesmente clique no botão "Create Host" no fundo da página para o guardar.

5º Passo: Tornar o seu host dinâmico

Agora que acrescentou um host ou domínio à sua conta, temos que tratar dos problemas com o endereço IP dinâmico (Se o seu ISP lhe conceder um endereço IP estático, pode avançar para o 6 Passo).

Se tiver um endereço IP dinâmico, terá que instalar um Dynamic Update Client (DUC) do No-IP. é um software gratuito disponível na seção de downloads.

Note: Instruções detalhadas para instalar as versões Windows and Linux do software DUC estão disponíveis na secção Guides & Tips.

Depois de instalar o DUC, tenha a certeza de o configurar com o endereço de correiro electrónico e password que utiliza para aceder a este site. Desde que o software No-IP software esteja correctamente configurado e a correr, o seu hostname irá sempre apontar para o endereço IP dinâmico na sua localidade, não importando

quando ele mudar. é esta a magia que faz o No-IP funcionar.

6º Passo: Configurar o seu router

Se utilizar um router para ligar à internet e/ou tiver uma firewall no seu computador, terá que ter a certeza de que esteja configurado para direcionar o tráfico apropriado da internet para a máquina de destino na sua rede. Isto se procede utilizando uma função do router chamado Port Forwarding. Ports commons para fazer o reencaminho são o port 80 para um servidor de rede, port 21 para o FTP, e o port 25 para o SMTP email. Apenas encaminhe os ports que terá necessariamente de utilizar.

7º Passo: Acesso ao CHURCH 10 ou CELLCHURCH9

Para acessar o Church 10 ou Cellchurch9 pela web, fora da rede local, irá unir o endereço criado no no-ip com “/church10/frmlogin/frmlogin.php” ou “/cellchurch9/fmlogin/frmlogin.php”, exemplo, supondo que o endereço criado seja “http://iead.no-ip.info”, o endereço completo do Church 10 seria:

(Parte 4 de 4)

Comentários