Mostrar mensagens com a etiqueta Windows. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta Windows. Mostrar todas as mensagens

quinta-feira, 23 de dezembro de 2010

Comando Start? Nos vários Windows…

Com o surgimento dos múltiplos processadores no Windows começamos a ter alguns problemas por vezes com aquelas aplicações que não sabem bem como lidar com a fartura e que se tornam gananciosas roubando todos os ciclos de processamento possíveis em todos os processadores.
Por incrível que pareça esta situação pode ser facilmente controlada reservando os recursos necessários ao nosso sistema.
Imaginemos que queremos correr um notepad apenas a ocupar recursos de um processador em vez de todos...
Para isto apenas necessitamos de abrir uma janela cmd e escrever o seguinte comando:
start /affinity 1 notepad.exe
Este comando dá indicações para inicializar o processo notepad a ocupar o CPU com o ID 0.
Se testares e depois abrirem o taskmanager e observarem qual a afinidade de processadores verificarão que apenas a CPU 0 está a processar o processo.
Sabendo isto podemos usar esta vantagem das mais diversas formas, como por exemplo criar um atalho que arranca a aplicação com estes parâmetros, um ficheiro batch etc. A imaginação é o nosso céu :)
Aqui fica um conjunto de possibilidades do comando start que passa à maioria despercebido mas que é muito importante.

START

Starts a separate window to run a specified program or command.

START ["title"] [/D path] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
      [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
      [/AFFINITY <hex affinity>] [/WAIT] [/B] [command/program]
      [parameters]

    "title"     Titulo a colocar na barra de Windows.
    path       Directoria de inicio.
    B Iniciar a aplicação sem criar uma nova janela
    I O novo ambiente será o ambiente original passado para o cmd.exe e não o ambiente que está a correr no momento.
    MIN Iniciar a janela minimizado.
    MAX Iniciar a janela maximizado.
    SEPARATE Iniciar o programa de 16-bit numa zona de memória separada.
    SHARED Iniciar um programa de 16-bit numa zona de moeria comum.
    LOW Iniciar a aplicação numa forma de "IDLE priority class".
    NORMAL Iniciar a aplicação com prioridade normal.
    HIGH Iniciar a aplicação com prioridade Alta.
    REALTIME Iniciar a aplicação com prioridade em tempo real.
    ABOVENORMAL Iniciar a aplicação com prioridade acima do normal.
    BELOWNORMAL Iniciar a aplicação com prioridade a baixo normal.
    AFFINITY A nova aplicação terá a afinidade para o processador especificado deve ser expressa como um numero decimal.
    WAIT Iniciar uma aplicação e esperar que ela termine.

segunda-feira, 8 de março de 2010

Regestry + ControlSet's

ControlSet... uma das sub chaves que devemos conhecer do nosso sistema Operativo.

Esta é uma chave do Windows que existe no registry.
Os conjuntos de chaves começadas por ControlSet são extremamente importantes.
É aqui que temos guardadas todas as configurações do nosso Windows.

Aqui podemos encontrar os serviços, drivers e outro tipo de informação.
Estas chaves estão dentro da chave de registo HKEY_LOCAL_MACHINE\SYSTEM.
Podem existir várias entradas deste tipo dependendo do número de alterações que fizemos no nosso sistema.
Uma instalação normal do Windows tem 4 control Set.

\ControlSet002
\ControlSet
\ControlSet001
\clone

O ControlSet001 são as definições da última vez em que fizemos logon.
O ControlSet002 é conhecido como o ultimo controlSet conhecido em boas condições ou mesmo o ultimo controlset que foi usado para arranque no Windows com sucesso.

O ControlSet é apenas um apontador para um dos 2 anteriores.
O Clone é um "clone" do CurrentControlSet e é criado cada vez que o nosso computador arranca na fase de inicialização do Kernel.

Existe outra chave relacionada com estas. É a chave Select, também está localizado dentro da chave System e contem os seguintes valores:
Current
Default
Failed
LastKnownGood

Cada um destes valores contem uma REG_DWORD que aponta para um dos Controlset.
Por exemplo, se o valor está definido 0x1, então o CurrentControlSet está a apontar para ControlSet001. Á semelhança do LastKnownGood se estiver configurado para 0x2, então o last known good control set é o ControlSet002.
O valor por defeito normalmente é o corrente e o Failed é um apontador para um ControlSet que não conseguiu arrancar com sucesso.
O mais fiável é o CurrentControlSet.
Se necessitarmos de ver ou alterar definições esta é a chave que devemos procurar. Se por algum motivo as nossas alterações não funcionarem sempre podemos arrancar com a lastknown good configuration, mas para isso é importante não fazermos logon logo, visto ser nesse momento em que o Windows substitui os controlSet existentes. Devemos esperar sempre um pouco pelo menos até já não existir tanta actividade nos discos. Caso contrário podemos ter problemas em recuperar o Windows caso um dos seus serviços / drivers provoque um erro que nos impeça de fazer logon. Pois podemos perder a Last Known Good Configuration.

terça-feira, 14 de julho de 2009

IIS 32bits Mode

Com o surgimento das máquinas a 64bits é cada vez maior o número de instalações a 64bits.
Isto, porem, acarreta alguns problemas, o cada vez maior número de sistemas operativos a ser implementados não é acompanhado de igual forma pelas aplicações a 32bits. Isto tem uma maior visibilidade nas aplicações WEB.
Por vezes não é possível colocar essas aplicações a funcionar com o que temos a 64bits por falta de drivers ou por impossibilidade de recompilação. Aqui a única forma de as por a funcionar é regredir um pouco e colocar o IIS a funcionar a 32bits.

Para isso temos de executar os seguintes paços:

  1. Activar a .Net Framework a 32bits. Não conseguimos originalmente activar esta Framework num sistema operativo a 64bits, obtemos um erro de não ser possível a instalação da Framework 32bits num sistema a 64bits.Para podermos proceder a esta instalação temos de fazer os seguintes paços:
  • Executar o seguinte script " cscript.exe adsutil.vbs set W3SVC/AppPools/Enable32BitAppOnWin64 true "Isto vai permitir activar o iis em modo 32bits. Se mais tarde quisermos recuperar o iis em modo 64bits então basta-nos repetir o script com o false.
  • Depois temos de alterar a Framework. Para isso temos de ir á seguinte directoria c:\Windows\Microsoft.Net\Framework\v2.0.50727 e correr o seguinte comando:aspnet_regiis.exe -i este comando permite registar a Framework asp.net a 32bits.Depois de correr este script no iis admin dentro da pasta Web service extensions vai aparecer uma nova extensão asp.net v2.0.xxxx (32 bits).
  • Apenas temos de activar o novo menu escolhendo a opção alow.
  • Depois na no website que queremos que funcione a 32bits temos de fazer propriedades e escolher a tab asp.net e depois escolher na combo box asp.net version a versão 2.0.xxxx
--- Atenção --- Depois de fazermos estas alterações, "aleijam" o vosso servidor e o nosso iis pois deixaremos de conseguir correr aplicações compiladas a 64bits. Ambos não são possíveis ter em funcionamento na mesma máquina, por isso contem com esta solução apenas para preparar uma migração ou para permitir que (até à actualização da aplicação) esta funcione sem problemas numa máquina a 64bits.