Mostrando postagens com marcador SO em Camadas. Mostrar todas as postagens
Mostrando postagens com marcador SO em Camadas. Mostrar todas as postagens

terça-feira, 21 de setembro de 2010

Primeiro sistema operacional em camadas:


THE é um sistema operacional desenvolvido por um time liderado por Edsger Dijkstra. Dijkstra nunca nomeou o sistema; "THE" é simplesmente a abreviação de "Technische Hogeschool Eindhoven", o nome em holandês da Universidade de Tecnologia de Eindhoven. O sistema THE é basicamente um sistema batch que suporta multitarefa; não foi desenvolvido para ser multiusuário.
Ele introduziu as primeiras formas de segmentação de memória baseada em software, livrando os programadores de serem forçados a usar localizações físicas na memória. Isso foi feito através de um compilador ALGOL modificado (a única linguagem suportada no sistema operacional) para gerar automaticamente chamadas às rotinas do sistema.
A arquitetura do THE é significativa devido ao seu uso de estruturas por camadas, no qual as camadas superiores dependem somente das camadas inferiores:
  • A camada 0 é responsável pelos aspectos de multiprogramação do sistema. Ela decide qual processo é alocado na CPU, lida com interrupções e realiza a troca de contexto para a mudança de processos.
  • A camada 1 é responsável pela alocação de memória para os processos.
  • A camada 2 é responsável pela comunicação entre processos e pela comunicação entre o sistema operacional e o interpretador de comandos. O sistema usa semáforos para sincronização.
  • A camada 3 gerencia toda a Entrada/Saída entre dispositivos conectados ao computador, o que inclui armazenar temporariamente as informações sendo comunicadas.
  • A camada 4 consiste dos programas do usuário. Existem cinco processos que lidam com a compilação, execução e interação dos programas.
  • A camada 5 tinha controle geral do sistema, chamada operador de sistema.
Vários sistemas operacionais seguintes usaram o conceito de camadas de alguma forma, como o Windows NT e o Mac OS X, ainda que com menos camadas.

Sistema em camadas


O estilo camadas organiza o sistema em camadas hierárquicas. Uma camada pode ser, livremente, definida como um conjunto de sub-sistemas com o mesmo grau de generalidade. Camadas mais altas são específicas da aplicação, camadas mais baixas são de propósito geral, ou seja, utilizadas por diferentes aplicações. Elas funcionam como servidoras para as camadas mais altas e como clientes para as camadas mais baixas. Tradicionalmente, as interações ocorrem somente entre camadas adjacentes.

Os sistemas em camadas possuem várias propriedades desejáveis: eles suportam o design baseado em níveis crescentes de abstração - isto permite implementadores dividirem um problema complexo em uma seqüência de passos incrementais; eles suportam mudanças - porque cada camada interage somente com suas camadas adjacentes, então mudanças em uma camada afetam no máximo duas outras camadas; eles suportam reuso – pois, diferentes implementações de uma mesma camada podem ser usadas, desde que elas possuam as mesmas interfaces para as camadas adjacentes; e a segurança pode ser suportada por camadas específicas para este serviço.

Porém, sistemas em camadas também possuem algumas desvantagens: nem todos os sistemas são facilmente estruturados em camadas; para os sistemas que podem ser estruturados em camadas a questão de performance é delicada, pois há um certo tempo e processamento desperdiçado na comunicação entre camadas; e falhas em uma camada pode tornar o sistema indisponível