Pesquisar este blog

quinta-feira, 14 de junho de 2012

Gerenciamento de Processos: Windows Vs Linux

Neste post, mostraremos as diferenças entre o Windows e o Linux quanto ao gerenciamento de processos e suas maneiras diferente de acessá-lo.

O que é um processo?
Processo é uma instância de um programa em execução, não é um processo quando um programa está apenas localizado em um disco ou na memória, como um dado. Se dois usuários estiverem executando o mesmo programa simultaneamente, existirão dois processos separados.

Windows
O gerenciamento de processos no Windows é executado através da ferramenta gráfica "Gerenciador de Tarefas". Para acessá-lo há maneiras bem simples: Clicando com o botão direito do mouse na barra iniciar e selecionar a opção "Iniciar Gerenciador de Tarefas", ou pressionar as teclas Ctrl + Alt + Delete, ou pelo Iniciar -> Executar -> Digitar "taskmgr" e pressionar Enter.
Na aba "Aplicativos" podemos visualizar os aplicativos em execução de forma mais simples, ou seja, de forma mais prática para o usuário comum.

Na aba "Processos" podemos visualizar os processos propriamente ditos, com a diferença de não exibir apenas os aplicativos que estão instanciados pelo usuário como antes, e sim, todos os processos (contando com o sistema operacional). Ao clicar em um processo com o botão direito, podemos finalizar o processo, finalizar árvore de processos (finaliza tudo relacionado ao processo desejado) e definir a prioridade de execução do processo.

Na aba "Desempenho", podemos visualizar de forma detalhada a utilização da CPU, da memória RAM, o histórico do uso da CPU, da memória física, número de threads, processos utilizados no momento dentre outras opções, útil para identificar o motivo da máquina estar lenta.


Linux

No Linux há duas maneiras de realizar o gerenciamento de processos: Através de uma janela de terminal ou por forma gráfica.

Através da janela de terminal
Executar a seguinte sequência (distribuição Ubuntu): Ctrl + Alt + F5
Será exibida a seguinte tela:

Digite o comando "top", será exibida a seguinte tela:

O principal papel do comando top é exibir os processos que estejam sendo executados em um sistema Linux. A primeira linha traz o nome do programa, hora do sistema, tempo decorrido desde a inicialização do sistema, quantidade de usuários e carga do sistema. O Linux possui uma infinidade de processos sendo gerenciados, e para facilitar a sua classificação e gerenciamento possui algumas características. Uma delas é o PID (Process Identifier), assim que uma tarefa é criada, ela recebe um número de identificação único.
Para matar um processo, digite o comando "k" e você receberá um prompt para indicar o PID de algum processo. Você deve informar ou o número do PID ou o nome do processo.

Através da forma gráfica
Executar a seguinte sequência (distribuição Ubuntu): Iniciar -> Digite em "Pesquisar" Monitor do Sistema e clique-o, conforme a tela abaixo:

Será exibida a seguinte tela:
Em "Sistema" será exibido as informações da distribuição que usa, tais como versão do sistema operacional, do kernel, e informações de hardware como memória RAM e processador, além do espaço disponível em disco.

Na aba "Processos", além dos processos propriamente ditos, é exibido o usuário que está utilizando-os, o percentual de uso da CPU, o ID do processo, a quantia de memória alocada para o processo, e sua prioridade, podendo alterá-la. Ao clicar com o botão direito do mouse em um processo, é exibido as opções abaixo:


Na aba "Recursos" que é similar a aba "Desempenho" do Windows, mostra o histórico do CPU, da memória RAM e swap, além do histórico da rede, mostrando a taxa de download e upload que está sendo utilizada no sistema.

Na aba "Sistemas de arquivos" mostra os dispositivos de armazenamento que estão no sistema, seu tipo de partição (no caso a EXT4, explicações sobre a mesma no post anterior à este), o tamanho total do dispositivo, o espaço livre no mesmo, e o quanto está sendo usado.



Após essa demonstração sobre o gerenciamento de processos no Linux, vemos que o Linux, ainda mais uma distribuição tão intuitiva como o Ubuntu, pode ser de fácil manuseio/adaptação, para simples usuários casuais/domésticos, até aos profissionais que necessitam dele.

Diferenças entre sistemas de arquivos NTFS e EXT

Neste post, tentaremos explicar de forma simples e resumida, os sistemas de arquivos NTFS e o EXT3 e EXT4.
O que é um sistema de arquivos?
Não é possível gravar dados em um HD ou Pendrive sem um sistema de arquivos, que é, basicamente, uma estrutura que indica como os arquivos devem ser gravados e guardados em mídias. Através do sistema de arquivos, é que se determina o espaço utilizado no disco, além de ser o método que permite gerenciar como partes de um arquivo podem ficar "espalhadas" no dispositivo de armazenamento. Um outro detalhe importante: É o sistema de arquivos que determina como arquivos podem ser gravados, copiados, alterados, nomeados e até apagados. Ou seja, resumindo, toda e qualquer manipulação de dados numa mídia necessita de um sistema de arquivos para que essas ações sejam possíveis. Se não houver estrutura de armazenamento e manipulação, é impossível gravar dados.

NTFS
É o sistema de arquivos usado por padrão a partir do Windows XP. Ele oferece muitas melhorias sobre o antigo FAT32, e suporta o uso de partições maiores. Até recentemente, não existia suporte de escrita em partições NTFS no Linux, o que dificultava a vida de quem usava os dois sistemas em dual-boot, mas isso foi solucionado com o NTFS-3G, que é usado por padrão na maioria das distribuições atuais.

EXT3
Com o release estável em 2001, sucessor do EXT2, o EXT3 suporta o uso de journaling, que permite que o sistema de arquivos mantenha um relatório de todas as operações e possa ser recuperado muito rapidamente em caso de pane, ou quando o PC é desligado à força. Ele também é um dos sistemas de arquivos mais rápidos e oferece uma boa segurança contra perda de dados.

EXT4
Teve seu release estável em 2008, atualmente é o sistema de arquivos usado por padrão em praticamente todas as distribuições Linux atuais. Sucessor do EXT3, ele incorpora diversas melhorias, incluindo um novo sistema de alocação de espaço, que reduz a fragmentação dos arquivos, melhorias no desempenho e suporte a arquivos de até 16TB (contra o máximo de 2TB do EXT3). Sua velocidade de transferência é muito boa, mas isso não depende apenas do sistema de arquivos, mas também das especificações de hardware, sistema operacional, kernel e outras dependências.

Segue abaixo uma tabela com uma comparação básica entre estes três sistemas de arquivos:

Fontes de Consulta:


quarta-feira, 13 de junho de 2012

Gerenciamento de Memória: Windows Vs Linux

Linux Vs Windows
Microsoft Windows

Vocês sabem como o Windows utiliza a memória do computador?
A memória RAM é indispensável em qualquer computador, quanto mais memória instalada na máquina, melhor será seu desempenho. Porém não basta ter muita RAM disponível em seu computador. O que torna a RAM realmente útil é a capacidade de uso que o Sistema Operacional faz dela. Isso significa que o Windows deve ser capaz de prever quais dados devem ser priorizados ou esquecidos de acordo com o contexto de uso da máquina.

Memória Física Vs Memória Virtual
Resumidamente, o Windows trabalha com dois tipos de memória. O primeiro deles é a memória principal, também chamada de física. Ela é a quantidade de RAM instalada em sua máquina, os pentes de memória em si, ou seja, o hardwares propriamente dito. Já a memória conhecida como virtual é uma espécie de memória auxiliar, usada pelo computador em alguns casos especiais. Essa memória é nada mais do que um arquivo hospedado no disco rígido da máquina, e o Windows usa esse arquivo como se ele fosse uma extensão da memória principal.

O Gerenciamento de Memória
Cada vez mais, os programadores necessitam de mais memória e mais programas rodando simultaneamente para poderem tratar cada vez mais informações, para atender suas necessidades. Apesar de muitas pessoas duvidarem, o Windows é bem eficiente quanto ao gerenciamento de memória. Superficialmente, podemos dizer que ele "sabe", por exemplo, o que deve ser enviado para a memória física e o que deve ser armazenado na virtual. Ao carregar na memória todos os softwares necessários para o bom funcionamento do sistema, o Windows respeita algumas regras.
A memória física recebe aquilo que o Windows considera essencial, como o próprio sistema operacional e as aplicações que o usuário estiver usando no momento. O restante, ou seja, aquilo que o Windows acredita que não será usado tão urgentemente, fica na memória virtual. Em outras palavras, a memória virtual é um recurso essencial para o armazenamento de dados que não estão em uso, mas que devem ser recuperados com velocidade quando necessário. Essa memória também é usada pelo sistema quando se esgota, por completo, o espaço disponível na memória física. Nesse caso, a memória virtual acaba sendo uma extensão da memória principal. A memória virtual fica armazenada em um arquivo no disco rígido da máquina, o processo de leitura e escrita de dados no HD do computador é muito mais lento do que o equivalente em memória RAM.
Basicamente, isso explica por que o desempenho do computador melhora quando instalamos mais memória RAM. Quanto mais memória física disponível, menos provável é o uso extensivo da memória virtual.


Linux

O gerenciamento de memória é o que torna o sistema operacional mais rápido e funcional. Assim como o Windows, o Linux possui dois sistemas de gerenciamento de memória, a memória física, que cuida da alocação e liberação de blocos de memória, e a memória virtual, que tem o papel de "enganar" os processos, informando que há memória suficiente quando não há. Esta técnica pode melhorar a performance do sistema operacional. O Linux é um sistema multiprocessos e multiusuários, então devemos ter um controle rígido sobre a memória, para que um processo não sobreponha os recursos (memória) utilizados pelo outro.

As Principais Características da Memória
O gerenciamento de memória no Linux é realizado com o auxílio de circuitos de hardware presentes nos microprocessadores. Esses circuitos permitem que o gerenciamento de memória seja mais eficiente e seguro, evitando erros causados por software no acesso à memória.
O acesso à memória física não acontece direto do software. No software especificamos o endereço lógico, que consiste do segmento e de um offset representando a distância entre o endereço que desejamos acessar e o início do segmento. O endereço lógico é compilado por uma unidade de segmentação, que o transforma em um endereço virtual. Este endereço virtual é representado por um inteiro de 32 bits, e portanto, pode endereçar até 4GB, do endereço 0x00000000 até 0xffffffff. O endereço virtual é transmitido a uma unidade de paginação, que é responsável por associar o endereço virtual ao físico, representado por inteiros não negativos de 32 ou 36 bits. O endereço resultante é utilizado para acessar um dado presente na memória dos chips.
Através deste processo de acesso à memória, podemos perceber que o Linux utiliza um modelo de segmentação com paginação. Em sistemas com multiprocessadores, a memória é compartilhada entre todas as CPUs. Assim, para evitar que diferentes CPUs acessem a memória o mesmo tempo, existe um circuito de hardware utilizado para a proteção da memória, conhecido como "Memory Arbiter", que é inserido entre o barramento e todo chip de memória, e possui a finalidade de garantir o acesso exclusivo à memória nas operações de leitura e escrita.
Além do acesso exclusivo à região de memória compartilhada, o Linux dispõe de mecanismos para prevenir a invasão de processos no espaço do kernel.

Boas Vindas


Bom dia pessoal! Como é o primeiro post, nada melhor do que nos apresentarmos à vocês.
Criamos este blog com o intuito de apresentar nosso trabalho avaliativo para o  professor Enock, da matéria de Sistemas Operacionais na Faculdade Cotemig, curso de Análise e Desenvolvimento de Sistemas (ADS), turma do 2º módulo 2012/1.

Integrantes do Grupo:

Pedro Henrique Nogueira de Resende
Eduardo Augusto Hillebrand
Adalberto Silas
Pedro Magalhães