domingo, 5 de dezembro de 2010

Gerenciador de Memória: Swapping

A função do gerenciador de memória envolve controlar quais partes da memória estão em uso e quais não estão; alocar memória a processos; liberar a memória dos processos; e, tratar o problema de swapping.

Onde este tipo de memória é alocado?
Em Linux é possível alocar tanto em partição quanto em arquivo, em Windows somente em arquivo.

Particionamento com partição Swap

sábado, 4 de dezembro de 2010

Swapping x Paginação x Segmentação x Memória Virtual

Swapping
Existem situações onde não é possível manter todos os processos na memória.
Ex: um processo já alocado na memória faz uma chamada de sistema pedindo mais memória e não existe memória livre contígua a área onde o mesmo está alocado um usuário dispara um programa, não existe memória disponível mas é política dos sistema disparar imediatamente todos os programas solicitados de terminal.

Usando o swapping o sistema escolhe um programa residente que é levado da memória para o disco (swap-out ) retornando posteriormente para a memória (swap-in).

Paginação
A paginação permite que o programa possa ser espalhado por áreas não contíguas de memória. Características:
  • o espaço de endereçamento lógico de um processo é dividido em páginas lógicas de tamanho fixo
  • a memória física é dividida em páginas com tamanho fixo, com tamanho igual ao da página lógica
  • o programa é carregado página a página, cada página lógica ocupa uma página física
  • as páginas físicas não são necessariamente contíguas
  • o endereço lógico é inicialmente dividido em duas partes : um número de página lógica e um deslocamento dentro da página
  • o número da página lógica é usado como índice no acesso a tabela de páginas, de forma a obter o número da página física correspondente
  • não existe fragmentação externa
  • existe fragmentação interna (Ex: um programa que ocupe 201kb, o tamanho de página é de 4 kb, serão alocadas 51 páginas resultando uma fragmentação interna de 3kb)
  • além da localização a tabela de páginas armazena também o bit de validade, (1) se a página está na memória (0) se a página não está na memória
  • a transferência das páginas de processo podem ser transferidas para a memória por demanda, levando apenas o que é necessário para a execução do programa ou por paginação antecipada, onde o sistema tenta prever as páginas que serão necessárias à execução do programa.
Paginas constantemente referenciadas em um processo devem permanecer na memória:


Segmentação

  • Técnica de gerência de memória onde programas são divididos em segmentos de tamanhos variados cada um com seu próprio espaço de endereçamento.
  • A principal diferença entre a paginação e a segmentação é a alocação da memória de maneira não fixa, a alocação depende da lógica do programa.
  • O mapeamento é feito através das tabelas de mapeamento de segmentos.
  • Os endereços são compostos pelo número do segmento e um deslocamento dentro do segmento.
  • Cada entrada na tabela mantém o endereço físico do segmento, o tamanho do segmento, se ele está ou não na memória e sua proteção.
  • O sistema operacional mantém uma tabela com as áreas livres e ocupadas da memória.
  • Somente segmentos referenciados são transferidos para a memória principal.
  • Ocorre fragmentação externa.
  • Sistemas que implementam a segmentação com paginação. Cada segmento é dividido fisicamente em páginas.
  • O endereço é formado pelo número do segmento, número da página dentro desse segmento e o deslocamento dentro dessa página.

Memória Virtual

  • Técnica de gerenciamento que combina a memória principal e a secundária dando ao usuário a idéia de existir uma memória maior que a memória principal.
  • Desvincula o endereçamento feito pelo programa dos endereços físicos da memória principal.
  • Um programa no ambiente de memória virtual não faz referência a endereços físicos mas endereços virtuais.
  • O endereço virtual é traduzido para o endereço físico através do mapeamento.
  • Os programas podem ser muito maiores do que sua memória física, apenas parte deles está residente na memória em um determinado instante.
  • O restante do programa fica na memória secundária até ser referenciado.



sexta-feira, 3 de dezembro de 2010

Instalação de Dispositivos no Linux e Windows

O sistema operacional tanto no windows quanto no linux, instala o driver assim que o dispositivo é reconhecido.
Nas proximas vezes se o driver ainda estiver instalado, ja é executado diretamente.

Instalando Impressora HP C4480 no Ubuntu:

Instalando Impressora HP no Windows XP:


Formatação - Instalação SO - Gerenciamento de Dispositivos

A formatação de uma máquina, a instalação de um sistema operacional tem relação direta com o Gerenciamento de Dispositivos, porque cada sistema operacional trata diferentemente os dispositivos. Quando formatamos o PC, ele identifica e instala cada dispositivo encontrado. Alguns destes devem ser baixados do site do fabricante e instalados.

Codecs: Conceito e Problemas

Os codecs são dispositivos capazes de codificar e/ou decodificar dados e sinais digitais. A sigla nada mais é do que a junção das palavras em inglês coder e decoder (codificador e decodificador). Estes dispositivos são usados em programas que gravam e reproduzem vídeos, sons e imagens.
Imagine uma carta escrita em português. Para alguém entender esta carta em qualquer outro lugar do mundo, é necessário que a pessoa entenda português. Quem não sabe ler neste idioma, precisará encontrar uma pessoa que traduza o que está escrito. É assim que os codecs funcionam, eles são os responsáveis pela tradução do conteúdo.

A codificação é necessária porque permite diminuir o tamanho de um arquivo. Conseqüentemente isso facilita a transmissão pela internet e diminui o espaço de armazenamento no disco rígido.

Softwares de Gerenciamento de Dispositivos

Windows:
  1. DevManView
  2. Device Remover
  3. DriverView
Linux:
  1. DeviceWall
  2. Devfs
  3. UDEV
  4. Gnome-Device-Manager

USB: Como funciona?

Universal Serial Bus (USB) ou em português, Barramento Serial Universal é um tipo de dispositivo de conexão que foi projetado para preencher algumas lacunas deixadas pelos outros barramentos seriais. Foi desenvolvido por companhias do ramo de telecomunicações e de computadores pessoais. Estas companhias são: Compaq, Hewlett-Packard, Intel, Lucent, Microsoft, NEC, Philips. O USB , basicamente, tem como objetivo conectar periféricos externos ao computador sem que se tenha a necessidade de abrir o gabinete para instalar placas em slots e ainda permite alternar entre periféricos sem ter que desligar o PC. O USB traz ao usuário diversas vantagens como a versatilidade, a facilidade no uso e a alta velocidade.

Abaixo, podemos ver como interagem as camadas de software e hardware que constituem o funcionamento da conexão do USB com um computador:
O acesso à periféricos comuns funciona da mesma forma que o acesso à um periférico USB. Ambos chamam funções da API.

O próximo passo será a comunicação da API com o driver do periférico conectado na porta USB. Esse driver, ao receber as informações da API, as traduz para USB. Tal driver, fica armazenado no próprio sistema operacional ou vem juntamente com o CD de instalação do dispositivo USB.

Depois disso, temos a camada do Driver USB, que torna o sistema operacional compatível com o USB.

O quarto passo, inclui a camada de software chamada Driver do Controlador Host. Este driver, funciona à nível de Kernel do sistema operacional e é ele que realiza os acessos de I/O mediante à recepção das chamadas vindas do Driver USB. Essas chamadas são organizadas por este driver, para serem acessadas pelo Controlador Host.

Na primeira camada da parte de hardware, temos o Controlador Host. Este controlador, é um circuito eletrônico que interpreta as rotinas enviadas pelo Driver do Controlador Host e ao mesmo tempo conecta todos os periféricos USB.

A última camada da figura, é constituída pelos dispositivos USB propriamente ditos.
Uma das grandes vantagens já citadas do USB, é o fato de podermos conectar um periférico ao computador mesmo estando ele ligado. Isso ocorre em uma seqüência de eventos que serão mostrados na figura abaixo. Essa seqüência ocorre no sentido oposto ao descrito nos parágrafos acima. Quando conecta-se um periférico na porta USB, o Controlador Host detecta esta conexão e avisa ao Driver do Controlador Host que por sua vez avisa ao Driver USB. O Driver USB faz com que o Driver Cliente seja iniciado tornando possível a utilização do periférico recém-conectado.


Fonte: http://www.gta.ufrj.br/grad/04_2/usb
Related Posts Plugin for WordPress, Blogger...