Implementação: Estrutura do Sistema
Por: Vitor Ferreira • 23/6/2016 • Resenha • 1.258 Palavras (6 Páginas) • 262 Visualizações
Implementação
Estrutura do Sistema
A estrutura do sistema deve ser o primeiro ponto levado em consideração por programadores. Então vamos olhar alguns desses métodos de implementação, lembrando que um sistema monolítico não estruturado não é uma boa idéia , e por isso não iremos aborda-lo.
Sistemas de Camadas
É uma boa estratégia para se utilizar, essa estrutura é utilizada em sistemas operaionais consagrados como o UNIX e o WINDOWS. Apesar de que esse príncipio em ambos os sistemas ser mais como uma forma de descrever os sistema do que uma opção de projeto própriamente dita.
Nessa arquitetura, módulos de uma camada podem fazer referência apenas a módulos das camadas inferiores. Ou seja, cada camada comunica-se exclusivamente com as camadas imediatemente acima e abaixo dela. No entanto, as camadas de nível mais alto consomem serviços apenas da camada imediatamente inferior.SO em camadas são mais modulares do que os monolíticos. A implementação em uma camada pode mudar sem requerer mudanças nas outras camadas.
A requisição de um processo de usuário pode precisar passar por muitas camadas antes de ser atendida. Como é preciso invocar métodos adicionais para passar dados de uma camada para a seguinte, o desemprenho se degrada em comparação ao SO monolítico que pode requerer uma única chamada para atender a uma requisição similar.
Essa arquitetura fornece somente um número pequeno de serviços na tentativa de manter o núcleo pequeno e escalável. Serviços: gerenciamento de memória de baixo nível, comunicação entre processos e sincronização básica de processos para habilitar a cooperação entre eles.A ídéia é tornar o núcleo o mais simples possível movendo código para as camadas superiores.Maior parte dos componentes do SO executada fora do núcleo (gerenciamento de processo, rede, sistemas de arquivo e gerenciamento de dispositivos) com privilégio menor.
Sistemas Clientes-Servidor em micronúcleo
Essa arquitetura fornece somente um número pequeno de serviços na tentativa de manter o núcleo pequeno e escalável. Serviços: gerenciamento de memória de baixo nível, comunicação entre processos e sincronização básica de processos para habilitar a cooperação entre eles.Idéia é tornar o núcleo o mais simples possível movendo código para as camadas superiores. A maior parte dos componentes do SO executada fora do núcleo (gerenciamento de processo, rede, sistemas de arquivo e gerenciamento de dispositivos) com privilégio menor.
Em tal implementação, o SO é dividido em processos, sendo cada um responsável por oferecer um conjunto de serviços tais como: serviços de arquivo (servidor de arquivos), serviços de criação de processos (servidor de processos),serviços de memória (servidor de memória), etc...
Exokernel
Enquanto a divisao em camadas tem seus incentivadores entre os projetistas de sistemas. existe também um outro grupo com uma visão precisamente oposta , com base no argumento ponta a ponta. Esse conceito diz que: “se algo tem de ser feito pelo próprio programa do usuário, é dispendioso faze-lo também em uma camada inferior. Basicamente, quando um arquivo é transferido ele realiza uma verificação de erros no arquivo na hora em que ele é escrito e o código de checagem é armazenado com o arquivo. Se os valores do código não são correspondentes ele é enviado novamente.
Nos sistemas operacionais isso elimina a necessidade de um sistema de arquivos. o usuario pode ler e escrever no disco de maneira protegida, apesar de o usuario estar mais familiarizado com o sistema de arquivos este fica como uma rotina de biblioteca. Diferentes programas tem diferentes sistemas de arquivos e ao sistema operacional basta apenas alocar os recursos de modo seguro. ( cpu , discos, etc).
O que deve ser levado em consideração
Mecanismo x política
É um princípio que auxília a coerência arquitetural do sistema.Consiste em separar mecanismo , colocando-o no sistema operacional, e deixando as políticas para os processos do usuário, um exemplo é o da paginação: O mecanismo envolve o gerenciamento de MMU, mantendo listas de páginas ocupadas e páginas livres, e códigos pa ra transferir as páginas entre a memória e o disco. A política decide o que fazer quando ocon'e ttrna falta de página. Ela pode ser local ou global, baseada em LRU ou FIFO ou em algum outro tipo. Mas esse algoritmo pode te deve) ser completamente separado dos mecanismos de gercnciamento real das páginas.
Ortogonalidade
É a habilidade para conbinar conceitos separados independentemente. Por exemplo: no Unix a criação de processos e feita em dois passos: fork seguido de exec. A criação de um novo espaço de endereçamento e seu carregamento com uma nova imagem na memória são ações separadas, permitindo que outras ações possam ser realizadas entre elas (como a manipulação de descritores de arquivos). No Windows, esses dois passos não podem ser separados, isto é, os conceitos de criação de um novo espaço de endereçamento e o preenchimento desse espaço não são ortogonais. A sequência do Linux de clone mais exec é ainda mais ortogonal, tinta vez que existem mais blocos de construção disponíveis com maior refinamento. Como regra, um pequeno número de elementos ortogonais que possam ser combinados de várias maneiras leva a um sistema pequeno e simples.
...