(Parte 3 de 4)

subsídio para verificar o comportamento dos processos. O manual deve conter:

Todos os softwares que podem executar em um computador, inclusive o SO (os mais tradicionais são assim), são organizados para serem executados num processador, como vários processos sequenciais (também chamados processos). Um processo é uma atividade (ou tarefa) de um programa, que contém o código e dados de uma atividade. Essas são: leitura de dados, escrita de dados, cálculos no processador, comunicação com o usuário, comunicação com um BD, comunicação com a rede interna ou externa, entre outras. Um processo define a unidade de processamento concorrente, que é executada num dado instante num processador, utilizando um contador de programa lógico, usando o único contador de programa físico (registro no processador), valores em registradores, variáveis do programa e uma pilha de execução. Processos são escalonados para o processador, que faz uma troca a todo o momento do processo sendo executado, através do mecanismo chamado multiprogramação.

Em SO tradicionais, cada processo tem um único fluxo de execução (o que define uma thread), a unidade de processamento concorrente destinada para ser executada sob as condições de desempenho de um processador da época. Com o surgimento de processadores de mais alto desempenho, uma nova unidade de processamento concorrente pôde ser definida dentro do próprio processo, materializando novas unidades de fluxo de execução e assim podem-se ter múltiplos fluxos de execução (múltiplas threads) num mesmo processo.

O que as threads

acrescentam ao modelo de processo é permitir que múltiplos fluxos de execução ocorram no mesmo ambiente do processo, com um grau de independência uma das outras. Assim, múltiplas threads executam concorrentemente em um processo, e é análogo a múltiplos processos executando concorrentemente em um único computador.

2.1 Política de Gerenciamento de Processador:

Essa política é um das diferenças entre os sistemas operacionais existentes no mercado, pois cada sistema operacional possui a sua política adequada a suas características. Apesar de cada sistema operacional adotar seus critérios, podemos citar alguns dos principais:

* Todos os processos são tratados igualmente, não ficando processo sem tratamento;

* Deve maximizar seu desempenho com maior numero possível de processos por unidade de tempo;

* Atender os usuários em tempos de respostas aceitáveis;

* Previsibilidade e fundamental independentemente do sistema;

* Mitigar recursos perdidos;

* Balancear o uso de recursos;

* Ocupar o máximo o processador;

* Evitar espera indefinida (starvation), e principalmente o deadlock;

* Priorizar os processos de forma a identificar os de maiores prioridades;

O objetivo de escalonamento e maximizar a utilização da CPU via multiprogramação. O escalonamento de processador ocorre quando existe uma politica do sistema para escolher quais processos executar. A politica de escalonamento deve atender algumas premissas ligadas a desempenho e maximização do numero de processos executados, reduzir o

tempo de latência (tempo de espera antes da execução), evitar antecipação indefinida de processos e aperfeiçoar o uso do(s) processador (es).

Escalonamento Preemptivo: E quando o sistema operacional atua de forma sublime, pois deve saber parar um processo em execução e ate mesmo substitui-lo por um novo processo. O mercado denomina “processadores multicore” os circuitos integrados que possuem dois ou mais núcleos de processamento completos no seu interior.

Atualmente com o surgimento desses processadores (dual core, core 2 duo, quad-core) com maior poder de processamento, consolidam nos sistemas operacionais as politicas de escalonamento do tipo Preemptivo. Um forte uso dessa técnica esta desenvolvida em aplicações de sistemas de tempo real, onde caracteriza por se preocupar com o fator tempo: de processador, de espera, de resposta, “turnaround”.

* Tempo de processador: e o tempo que um processo leva no estado de execução durante seu processamento.

* Tempo de espera: e o tempo total que um processo permanece na fila durante seu processamento, aguardando para ser executado.

* Tempo de turnaround: é o tempo que um processo leva desde a sua criação até ao seu término, inclusive o tempo para alocação de memória, espera na fila, processamento na CPU e nas operações de Entrada e Saída.

* Tempo de resposta: é o tempo decorrido entre uma requisição ao sistema ou à aplicação e o instante em que a resposta é exibida.

Escalonamento Não-Preemptivo: Foi o precursor em sistemas multiprogramável, possibilitando

ao sistema operacional atuar somente ao término do processo iniciado. Estando presente em sistemas com processamento em bacth(lote).

2.2 Gerenciamento de processos

Nos sistemas operacionais, um processo é a forma de representar um programa em execução. É o processo que utiliza os recursos da maquina, processador, memória, etc.

Por esse motivo é importante gerencia-los.

2.2.1 Criação de um processo

Com o simulador SOsim criamos um Processos.

Na janela Gerência de Processos, observe algumas informações sobre o contexto de software do processo como PID, prioridade, estado do processo e tempo de processador.

Na janela Gerência de Processador, observe o processo transacionando entre estados.

Na janela Gerência de Processador, movimente a barra de Clock de UCP e observe as variações ocorridas.

2.2.2 Tipos de processo

Criamos um processo do tipo CPU-bound e um processo do tipo I/O-bound

Na janela Gerência de Processos, observe as mudanças de estado dos dois processos.

Na janela Gerência de Processador, observe o comportamento dos processos e as mudanças de contexto em função do tipo I/O-bound e CPU-bound.

Na janela Gerência de Processos, compare a taxa de crescimento do tempo de processador dos dois processos.

2.2.3 PCB

Na janela Gerência de Processos / PCB, observe as informações sobre o contexto de software e hardware dos processos criados.

2.2.4 Estatística

Ativamos a janela de Estatísticas em Console SOsim e criamos dois novos processos.

Na janela Estatísticas, observe as informações: número de processos,

estados dos processos e os processos escalonados.

2.2.5 Log de Execução dos Processos

Ativamos a janela de Log em Console SOsim criamos dois novos processos do tipo CPU-bound.

Na janela Log, observe as informações sobre as mudanças de estado dos processos observando o tempo que cada processo permanece nos estados de Execução e Pronto.

Reinicialize o simulador parametrizado com um valor de fatia de tempo diferente observe as diferenças na janela Log.

No Sistema Operacional com fatia de tempo igual a 1s, em 20 segundos cada processo entrou em estado de execução cinco vezes totalizando 10s de UCP, no entanto houve 10 s em gastos em troca de contexto.

No Sistema Operacional com fatia de tempo igual a 4s, em 20 segundos o processo A entrou em execução três vezes totalizando 9s UCP e o B dois vezes e 6s de UCP, totalizando 15s de UCP e apenas 5s de troca de contexto.

Observamos assim que quanto menor a fatia de tempo, maiores serão os tempos gastos em trocas de contextos.

2.2.6 Suspensão e Eliminação de Processos

Suspendemos temporariamente um dos processos na janela Gerência de Processos.

Observamos os estados dos processos, a concorrência no uso do processador e comparamos percentualmente os tempos de uso do processador entre os dois processos.

Liberamos o processo do estado de espera e eliminamos um dos processos na janela Gerência de Processos.

2.3 Softwares Instalados

Vamos acompanhar a instalação do sistema operacional, nesse caso instalamos o Windows XP Professional 64 bits.

O primeiro passo

é dar o boot pelo CD ou DVD de instalação, na primeira tela receberemos uma mensagem de boas vindas e informaremos ao sistema o que ele deve fazer:

* Para instalar o Windows agora, pressione ENTER;

* Para reparar a instalação do Windows utilizando o console de Recuperação, pressione R.

* Para sair do sistema de Instalação do Windows, pressione F3.

Licença de uso do Windows pressione “F8” para aceitar, “ESC” para recusar ou “PAGE DOWN” para ir à próxima página da licença.

Vamos criar uma partição na HD para instalar o Windows. Pressione “ENTER” para selecionar a partição marcada, “C” para criar uma nova partição, “D” para excluir a partição selecionada ou “F3” para sair. Como ainda não existe uma partição criada vamos com a segunda opção “C”, para criarmos.

Depois de criada clique em “ENTER” para iniciar a instalação.

Depois de criada e selecionada a partição tem que ser formata. Temos quatro opções,

* Formatar a partição usando o sistema de arquivos NTFS (Rápida);

* Formatar a partição usando o sistema de arquivos FAT (Rápida);

* Formatar a partição usando o sistema de arquivos NTFS;

* Formatar a partição usando o sistema de arquivos FAT;

A última opção verifica se já existe outro sistema operacional e o mantem intacto, continuando a instalação sem formatar a partição.

Confirme a formatação com “F” ou “ESC” para voltar ao menu anterior e escolher uma partição diferente para instalação.

Inicio da formatação da partição selecionada.

Depois de formatar a partição, automaticamente

inicia a cópia dos arquivos de instalação para mesma.

Concluído a cópia o sistema avisa que vai reiniciar em 20 segundos ou pressionado “ENTER” o sistema adianta a reinicialização.

Agora com os arquivos na partição selecionada o sistema inicia sua instalação, mostrando no quadro a direita alguma informações sobre sua arquitetura e funcionalidades.

Durante a instalação o sistema solicitará algumas informações como região e língua.

Opções para personalizar sua instalação, informe o nome e sua organização caso faça parte de uma.

Informe a chave do produto.

Informe o nome do computador e a senha do usuário padrão “Administrator”.

Configure data e hora e informe qual a zona de tempo pertence. Marque se o sistema deve atualizar o horário automaticamente ou não. Por exemplo, quando é escolhido GMT – 3 Brazil, o sistema altera a ora conforme o horários de Verão.

Escolha a opção de configuração da rede. Escolhemos as configurações típicas.

Finalizado a instalação o Sistema vai aplicar suas configurações e iniciar.

Primeiro fizemos download do aplicativo, Avast Free, e iniciamos a instalação. Informe à língua que preferi, lembrando que existe a opção português do Brasil.

O Avast está em parceria com a Google, por esse motivo a instalação vai oferecer uma atalho para instalação do Chrome, porém fica a escolha de quem estiver instalando.

Concluindo a instalação o aplicativo informará clique em “terminar” e pronto.

Agora vamos instalar o WINRAR 3.93, um software de compactação, como

Winzip, porém ele abrange vários tipos de arquivo, como o próprio Winzip, ICO, EXE, etc. Ele já informa uma pasta de instalação padrão, porém é possível alterar clicando no botão “Procurar”.

Escolha os tipos de arquivos que o WinRar será associado.

Aqui temos opções de saber mais sobre o WinRar, clicando nos botões. No botão “Concluído” o sistema de instalação fecha e solicita reinicialização do Sistema Operacional.

Por ultimo vamos instalar o Microsoft Office Professional 2003. De cara ele já solicita a chave do produto.

Como na instalação do Windows ele solicita o nome do usuário e a organização, porém se já tiver informado na instalação do Windows ele vai assumir o que já foi cadastrado.

É obrigado aceitar o contrato da licença ou não instalar.

Tem quatro tipo de instalação:

* Instalação Típica: Instalam os programas mais utilizados, Word, Excel, Power Point, Outlook, Publisher, Access, InfoPath;

* Instalação Completa: Instala todos os produtos do Officer 2003;

* Instalação Mínima: Instala apenas o Word, Excel e Power Point;

* Instalação Personalizada: Instala apenas o que você selecionar.

No nosso caso utilizamos a instalação típica.

Confira os produtos que serão instalados.

Acompanhe o processo de instalação.

Mensagem de instalação concluída.

2.4 Sistemas de Gerenciamento de Processos

Clicando com o botão direito do mouse a barra de tarefa, selecione a opção Iniciar Gerenciamento de Tarefas do Windows 7 Profissional. Versão 6.1.

Relação das tarefas que estão

sendo executadas.

Na guia de processo podemos identificar os processos que estão ativos, o nome do usuário que iniciou o mesmo, a coluna CPU mostra o consumo do processador referente a cada processo.

Na coluna Memória visualizamos o consumo da memória e na coluna Descrição temos um resumo do aplicativo.

Na parte inferior temos a opção de “Mostrar processos de todos os usuários” ou apenas o usuário logado, caso seja desmarcado. Podemos “Finalizar o Processo” que está selecionado.

Na guia serviços podemos analisar o status dos serviços e PID de cada um. Temos também a opção do botão “Serviços...” que abre o gerenciado de serviços do Windows.

Na guia Desempenho temos o gráfico do consumo de cada núcleo do processador e do consumo da memória.

Na parte inferior podemos identificar um breve resumo referente à Memória Física, Memória Usada pelo Kernel (MB) e o Sistema.

Note que o consumo de memória está alto e voltando a guia processo identificamos que existe dois processo chamados chrome.exe *32 que estão consumindo uma boa parte do total.

Na guia Rede temos o gráfico de cada conexão ativa e seu respectivo consumo.

Na guia Usuário temo o status dos usuário conectados e logo a baixo podemos desconectar ou efetuar o logoff do mesmo selecionado.

Notamos que em todas as guias temo esse roda pé informando a quantidade de processos ativos, consumo da CPU em % e o consumo da Memória Física em %.

Todas essas funções têm a finalidade de gerenciar os processos e consumos do sistema operacional e seus aplicativos.

Gerenciamento de memória

Devido aos Sistemas Operacionais apresentarem características variadas, determinados procedimentos tornam-se por vezes semelhantes ou próprios de cada Sistema. O gerenciamento de memória é um procedimento fundamental na objetividade de todos os Sistemas Operacionais.

É responsabilidade do Sistema Operacional executar inúmeras inúmeras tarefas, independente da quantidade de tarefas assim como o tamanho das mesmas.

Neste contexto parece complicado para o Sistema Operacional gerenciar tarefas que exigem uma quantidade de memória superior ao que é disponibilizado pela máquina. Cada Sistema possui suas características próprias para complementar estas tarefas e principalmente gerenciar a memória disponível para estas execuções. No entanto, é necessário garantir para elas além da possibilidade de execução um alto grau de segurança.

Recursos do modo usuário

O gerenciador do memória virtual (VM) permite aos subsistemas do modo usuário compartilhar memória eficientemente usando objetos que são protegidos, denominados e manipulados como qualquer objeto do executivo. Os subsistemas podem definir proteção a nível de página na memória privativa, bloquear páginas selecionadas na memória, tirar proveito dos arquivos mapeados e gerenciar os espaços de endereçamento virtual de outros processos

Gerenciando a memória

O gerenciador VM fornece um conjunto de serviços nativos que um processo pode usar para gerenciar diretamente sua memória virtual. Estes serviços permitem que um processo faça o seguinte:

*

alocar memória em um processo de dois estágios.

* ler e gravar na memória virtual.

* bloquear páginas virtuais na memória física.

* obter informações sobre páginas virtuais.

* descarregar páginas virtuais para o disco.

O gerenciador VM estabelece uma abordagem de duas fases para alocar memória, reservá-la e depois comprometê-la. A memória reservada é um conjunto de endereços virtuais que o gerenciador VM reservou para ser usado futuramente por um processo. A reserva de memória é uma operação rápida e barata no windows NT. A memória comprometida é memória para qual o gerenciador VM separou espaço no seu arquivo de paginação.

Outro serviço do gerenciador VM do windows NT possibilitam ao chamador fornecer uma alça de processos para indicar um processo cuja memória virtual será manipulada. O chamador pode manipular sua própria memória virtual ou aquela de um outro processo. Esta facilidade é poderosa porque permite que um processo do modo usuário gerencie o espaço de endereçamento de um outro processo

Compartilhando a memória

Uma tarefa importante de qualquer subsistema de gerenciamento de memória é permitir que os processos compartilhem memória quando solicitarem ou quando isto tornar o sistema operacional mais eficiente. A memória virtual oferece um mecanismo conveniente para o compartilhamento de memória. Como cada processo tem um espaço de endereçamento virtual separado, o sistema operacional pode carregar o compilador para a memória uma vez e quando outro processo invocar o compilador, o gerenciador

VM pode simplesmente mapear os endereços virtuais do segundo processo para as estruturas de páginas físicas já ocupadas pelo compilador.

O gerenciador VM não permite que nenhum processo modifique as páginas ocupadas pelo compilador. As páginas virtuais em ambos os processos são designadas como sendo somente para leitura

Seções, visões e arquivos mapeados

(Parte 3 de 4)

Comentários