sexta-feira, 12 de agosto de 2011

Princípios de sistemas operacionais

Um sistema operacional é uma camada de software que atua entre o hardware e os diversos aplicativos existentes em um sistema computacional, executando diversas atividades, de modo a garantir a disponibilidade de recursos entre todos os programas em execução.

TIPOS DE SISTEMAS OPERACIONAIS

- Em relação a arquitetura do sistema operacional:
Sistema Monolítico: o kernel consiste em um único processo executando numa memória protegida (espaço do kernel). Ex: Windows, Linux, FreeBsD;
Sistema em Camadas: funções do kernel irão executar em camadas distintas de acordo com o nível de privilégio. Ex. Multics;
Modelo cliente/servidor ou microkernel: o kernel consiste apenas no essencial (comunicação e gerenciamento de processos) e funções como sistemas de arquivos e gereciamento de memória são executadas no espaço do usuário como serviço: as aplicações (programas) são os clientes. Ex: GNU Hurd, Mach;
Monitor de máquinas virtuais: fornece uma abstração do hardware para vários sistemas operacionais. Ex: VM/370, VMware, Xen.

- Quanto a capacidade de processamento, pode usar as seguintes classificações:
Monotarefa: pode-se executar apenas um processo por vez. Ex: DOS;
Multitarefa: além do próprio sistema operacional, vários processos de utilizador (tarefas) estão carregados em memória, sendo que um pode estar ocupando o processador e outros ficam enfileirados, aguardando a sua vez. O compartilhamento de tempo no processador é distribuído de modo que o usuário tenha a impressão de que vários processos estão sendo executados simultaneamente. Ex: Windows, Linux, FreeBSD.

- Multiprocessamento ou multiprogramação: o SO pode distribuir as tarefas entre vários processadores. Alguns autores utilizam o termo multiprocessamento como se fosse multitarefa.

- Sistemas operacionais para computadores de pequenos e grandes dividem-se em quatro categorias, que se diferenciam pelo tempo de resposta e pela forma de entrada de dados no sistema: em lotes (batch), interativa, em tempo real e sistemas híbridos;

- Os sistemas em lotes (batch): existem desde o tempo dos primeiros computadores, os quais trabalhavam com cartões perfurados ou fita magnética para a entrada de dados. Os sistemas em lotes de hoje não trabalham mais com cartões perfurados ou com fitas magnéticas, mas as tarefas ainda são processadas em série, sem interação com o usuário;

- Os sistemas interativos: também conhecidos como  sistemas de tempo compartilhado, produzem um tempo de resposta mais rápido do que os sistemas em lotes, mas são mais lentos do que os sistemas em tempo real. Foram criados para atender a necessidade do usuário, que necessitava de tempo de resposta mais rápido na depuração dos programas. O sistema operacional exigiu a criação de programas de tempo compartilhado, permitindo o usuário interagir diretamente com o sistema de computação;

- Os sistemas em tempo real: os mais rápidos de todos, são utilizados em ambientes onde o tempo é um fator crítico: vôos espaciais, controle de tráfego aéreo etc; 

- Os sistemas híbridos: são uma combinação entre os sistemas em lotes e os sistemas interativos. Executa os programas em lotes em segundo plano. Um sistema híbrido se beneficia do tempo livre entre demandas de processamento para executar programas que não precisam da interferência do operador.

BASE DO SISTEMA OPERACIONAL

- Base que forma o sistema operacional:
Gerenciador de memória: responsável pela alocação de memória;
Gerenciador de unidade de processamento: responsável pela alocação de recursos da CPU;
Gerenciador de dispositivos: Sua tarefa é escolher a forma mais adequada para alocação de todos os dispositivos;
Gerenciador de arquivos: monitora todos os arquivos no sistema. Faz cumprir as restrições de acesso a cada arquivo.

INFORMAÇÃO ADICIONAL

- Módulos do sistema operacional residentes em disco, que são carregados para a memória somente quando são necessários, chamam-se módulos transientes.

GERENCIADOR DE MEMÓRIA

- O gerenciador de memória trabalha com tabelas geradas para controlar os programas em execução. Existem 3 ou 4 tabelas, dependendo do tipo de gerenciamento adotado;
- A memória é dividida logicamente em tamanhos iguais (páginas de memória) ou diferentes (segmentos de memória), para acomodar os diversos programas residentes em memória.

- Esquemas de gerenciamento de memória:
Alocação de memória com paginação;
Alocação de memória com paginação sob demanda;
Alocação de memória com segmentação;
Alocação de memória com segmentação / paginação sob demanda.

ALOCAÇÃO DE MEMÓRIA COM PAGINAÇÃO

- Divisão da memória em páginas de igual tamanho;
- A paginação funciona muito bem quando as páginas, os setores e os quadros de páginas possuem o mesmo tamanho;
- Não faz uso da memória virtual;
- Gerenciador de memória prepara o programa da seguinte forma: determina o número de páginas do programa; localiza quadro de páginas suficientes na memória principal; carrega todas as páginas do programa nesses quadros de memória;
- As páginas de um programa, quando forem carregadas para a memória, não precisam ser carregadas em blocos contíguos;
- Dois programas não podem usar a mesma página de memória ao mesmo tempo, porque causaria a fragmentação interna da memória;
- Esse método requer que o programa inteiro seja alojado na memória na hora da execução.

ALOCAÇÃO DE MEMÓRIA COM PAGINAÇÃO SOB DEMANDA

- O gerenciador de memória trabalha com tabelas para monitorar o uso dos quadros de memória. Essencialmente três tabelas executam essa função: a Tabela de Programas (TP), a Tabela de Mapa de Páginas (TMP) e a Tabela de Mapa de Memória (TMM). Todas residem na parte da memória principal;
- Cada programa possui sua própria TMP, contendo informações como número da página, endereço de memória do quadro da página correspondente etc;
- A TMM possui uma entrada para cada quadro de página, no qual está a localização e o status (livre/ocupada);
- A partir desse gerenciamento se começou a trabalhar com memória virtual;
- A memória continua sendo dividida em tamanhos iguais (páginas).

ALOCAÇÃO DE MEMÓRIA SOB DEMANDA

- Conjunto de trabalho: é o conjunto de páginas residentes em memória que podem ser acessadas diretamente sem implicar erro de página. Essa técnica é utilizada para evitar o thrashing (troca excessiva de páginas entre a memória RAM e a virtual). 

- Conceitos e critérios para substituição de páginas:
A política que rege a escolha da página que deve sair da memória, ou seja, o critério de substituição das páginas, é crucial para a eficiência do sistema;
Duas técnicas mais conhecidas são: “primeiro a entrar, primeiro a sair (FIFO, ou first-in first-out)” e “página usada menos recentemente (UMR)”;
Nas duas técnicas tem que se observar se não houve alteração dos dados antes de retirar da memória principal;
O algoritmo FIFO consulta apenas os bits de status e de página modificada antes de fazer as substituições, mas o algoritmo UMR consulta os três bits.

ALOCAÇÃO DE MEMÓRIA COM SEGMENTAÇÃO

- O conceito de segmentação baseia-se em uma prática comum entre os programadores: a estruturação dos seus programas em módulos (agrupamento lógico de códigos). Segundo esse esquema cada programa é dividido em vários segmentos de tamanhos diferentes;
- Este esquema difere fundamentalmente da paginação, onde um programa é dividido em páginas de igual tamanho que muitas vezes contém instruções de mais de um módulo de programa;
- Uma outra diferença importante é que a memória não é mais dividida em quadros de página, pois o tamanho de cada segmento varia, ou seja, a memória é alocada de maneira dinâmica;
- Esse esquema reduz a segmentação da memória (aproveita melhor a memória).

- Monitoramento da memória:
Quando um programa é compilado ou montado, os segmentos são definidos de acordo com os módulos estruturais do programa. Cada segmento é numerado e uma Tabela de Mapa de Segmentos (TMS) é gerada para cada programa;
A TMS inclui os números de segmentos, o tamanho, os direitos de acesso, o status e, quando um segmento é carregado em memória, o endereço de memória.

- O gerenciador de memória monitora os segmentos em memória através de 3 tabelas:
Tabela de Programas (TP): exibe todos os programas em processameto (uma para todo o sistema);
Tabela de Mapa de Segmentos (TMS): exibe detalhes sobre cada segmento (uma para cada programa);
Tabela de Mapa de Memória (TMM): monitora a alocação de memória principal (uma para todo o sistema).

ALOCAÇÃO DE MEMÓRIA COM SEGMENTAÇÃO / PAGINAÇÃO SOB DEMANDA

- É uma combinação entre a segmentação e a paginação sob demanda que alia os benefícios lógicos da segmentação aos benefícios físicos da paginação;
- Os segmentos são divididos em páginas de igual tamanho, menores do que a maioria dos segmentos e mais facilmente manipuladas; Assim sendo, muitos dos problemas da segmentação (compactação, fragmentação externa e necessidade de armazenagem secundária) são eliminados, pois as páginas são de tamanho fixo;
- A maior desvantagem desse esquema são a sobrecarga gerada pelas tabelas adicionais.

- Monitoramento da memória:
Tabela de Programa (TP): exibe todos os programas em processamento (uma para todo o sistema);
Tabela de Mapa de Segmentos (TMS): exibe detalhes sobre cada segmento (uma para cada programa);
Tabela de Mapa de Páginas (TMP): exibe detalhes sobre cada página (uma para cada segmento);
Tabela de Mapa de Memória (TMM): monitora a alocação de quadros de página na memória principal (uma para todo o sistema).

Ligue a vontade para qualquer celular ou fixo em todo o Brasil, EUA e Canadá, através do 99TelexFREE. Teste nosso serviço por 1 hora gratuitamente: http://www.telexfree.com/ad/marcelmesmo 

1 comentários:

Postar um comentário