Buscar

Trabalho SO 3INFO Gabriel

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Introdução 
Este presente trabalho tem por objetivo comentar sobre as principais e mais populares estruturas de arquiteturas de sistemas operacionais. Para tanto, há de se eludir, antes do assunto propriamente dito, sobre alguns conceitos básicos que circundam a disciplina em questão.
O que é um Sistema Operacional?
De forma resumida, entende-se como o conjunto de programas que gerenciam recursos, processadores, armazenamento, dispositivos de entrada e saída e dados da máquina e seus periféricos. O sistema que faz comunicação entre o hardware e os demais softwares. O Sistema Operacional cria uma plataforma comum a todos os programas utilizados. 
Kernel e componentes fundamentais
Kernel é o núcleo do sistema operacional, o qual possui também uma linguagem de comandos e diversos utilitários de apoio que são usados para complementar o sistema operacional. Os usuários e aplicações se comunicam com o núcleo do sistema operacional de maneiras distintas. Em geral, os usuários usam aplicações que invocam as rotinas do sistema operacional, por exemplo, quando gravamos um arquivo. Além disso, os usuários também usam a linguagem de comandos do sistema operacional para executar tarefas no sistema operacional e também usam programas utilitários para tarefas mais complexas como compilação, transmissão de arquivos por exemplo.  O ponto é que cada sistema operacional possui sua própria linguagem de comandos, seus próprios utilitários e demais componentes que formam sua estrutura. No geral, o sistema operacional tem os seguintes componentes:
Tipos de arquiteturas dos Sistemas Operacionais
O projeto de um sistema operacional é realizado de forma a atender determinados requisitos operacionais de desempenho, portabilidade, confiabilidade, facilidade de uso, segurança, entre outros. Isso faz jus à gama de possibilidades de arquiteturas diferentes, vide a necessidade relativa ao projeto, ou seja, dependendo dos requisitos, o sistema operacional é capaz de fazer aquilo a que fora, a priori, designado.
Monolítica
Neste sistema, todos os componentes do núcleo operam em “modo núcleo” e se inter-relacionam conforme suas necessidades, sem restrições de acesso entre si, pois o código no nível núcleo tem acesso pleno a todos os recursos e áreas de memória.
“A arquitetura monolítica foi utilizada nos primeiros sistemas operacionais tais como CP/M, MS-DOS e nas primeiras versões do Linux. Nesta arquitetura os componentes do sistema são compilados em módulos separados e depois linkados em um único programa executável.”
Vantagens
Boa definição de parâmetros entre as estruturas (Não há barreiras, isto é, qualquer componente do núcleo acessa os demais componentes)
Feitos sob medida
O que lhe confere eficiência e rapidez
Desvantagens
Difícil de compreender (Robustez exacerbada)
Manutenção e evolução do Kernel são complexas
Colapsável (Um erro pode se espalhar facilmente e gerar um crash) 
Modificações constantes no núcleo inviável 
Em Camadas
Uma forma mais elegante de estruturar um sistema operacional faz uso da noção de camadas: a camada mais baixa realiza a interface com o hardware, enquanto as camadas intermediárias provêm níveis de abstração e gerência cada vez mais sofisticados. Por fim, a camada superior define a interface do núcleo para as aplicações (as chamadas de sistema). Essa abordagem de estruturação de software fez muito sucesso no domínio das redes de computadores, através do modelo de referência OSI (Open Systems Interconnection) 
 
 Esta arquitetura em camadas surgiu devido à complexidade dos sistemas operacionais na medida em que foram evoluindo. Nesta arquitetura, o sistema operacional é formado por níveis ou camadas onde as camadas inferiores oferecem serviços às camadas superiores. As camadas inferiores são mais privilegiadas
Vantagens
Isolamento das camadas	 
Segurança e proteção às camadas mais inferiores
Facilita a manutenção e depuração
Cria uma hierarquia de níveis de modos de acesso
Desvantagens
Desempenho (A cada nova camada implica em uma mudança no modo de acesso, ou seja, cada pedido de uma aplicação demora mais tempo para chegar até o dispositivo periférico ou recurso a ser acessado, prejudicando o desempenho do sistema como um todo)
Nível de abstração (Não é óbvio como dividir as funcionalidades de um núcleo de sistema operacional em camadas horizontais de abstração crescente, pois essas funcionalidades são interdependentes, embora tratem muitas vezes de recursos distintos)
Máquina Virtual
Um sistema operacional é formado por níveis, onde a camada de nível mais baixo é o hardware. Acima dessa camada temos o sistema operacional que oferece serviços para os aplicativos do usuário. Na arquitetura de máquina virtual existe uma camada intermediária entre o hardware e o sistema operacional chamada gerencia de máquinas virtuais. Esta camada cria diversas máquinas virtuais independentes, onde cada uma oferece uma cópia virtual do hardware, incluindo os modos de acesso, interrupções, memória, dispositivos de entrada e saída, etc. Como cada máquina virtual é independente das outras, é possível que cada VM (Virtual Machine) tenha seu próprio sistema operacional e que seus usuários executem suas aplicações como se o computador estivesse dedicado a cada um deles. 
APL -> Aplicação
SO -> Sistema Operacional
HV -> Hipervisor
Tipos de Hipervisor
O Hipervisor do tipo 1 (a) é executado diretamente no hardware 
Exemplo: Eucalyptus
O Hipervisor do tipo 2 (b) é executado tal qual um aplicativo comum na camada superior do SO
Exemplo: Oracle VirtualBox
Vantagens
Independência de cada máquina virtual
Múltiplas máquinas virtuais 
Coexistência independente com outros sistemas operacionais
Desvantagens
Alta complexidade (Devido à necessidade de se compartilhar e gerenciar recursos do hardware entre as diversas máquinas virtuais)
MicroKernel
Também chamada de Micronúcleo, a arquitetura MicroKernel busca tornar o núcleo do sistema, o kernel, o menor e mais simples possível. Nesta arquitetura os serviços do sistema operacional são disponibilizados como serviços. Cada serviço oferece um conjunto de funções como gerência de arquivos, gerência de processos, gerência de memória e etc. Nesta arquitetura, os processos executam suas funções em modo usuário, ou seja, não tem acesso a instruções privilegiadas, não tem acesso aos componentes do sistema. Apenas o núcleo executa em modo kernel. Isto garante que caso haja um erro em um processo o sistema não ficará completamente comprometido. Isso aumenta a disponibilidade do sistema. Essa arquitetura é mais comum em aplicações de tempo real, industriais, aviônica e militares, que são cruciais e têm requisitos de confiabilidade muito altos.Representação de uma estrutura micronúcleo
Representação da estrutura do sistema operacional MINIX3
Cliente-Servidor
Uma variação da abstração do micronúcleo é distinguir entre duas classes de processo: os servidores, que prestam serviço, e os clientes, que usam serviços.
Vantagens
Disponibilidade (Servidores podem executar em modo usuário. Apenas o núcleo do sistema, responsável pela comunicação entre clientes e servidores, executa no modo kernel. Ou seja, se acontecer algum erro em um servidor, este poderá parar, mas o sistema não ficará completamente comprometido, aumentando, portanto, sua disponibilidade) 
Clientes e servidores podem ser processados em qualquer ambiente (Uma vez que os servidores se comunicam através de troca de mensagens, não importa se o processamento é feito em sistemas com um único processador, com múltiplos ou, ainda, em sistemas distribuídos)
Escalabilidade (Possibilidade de processamento remoto, o que permite acrescentar novos servidores à medida que o número de clientes aumenta)
Núcleo menor
Permite individualização e independência de processamento
Mais fácil de depurar
Maior confiabilidade
Fácil manutenção
Maior flexibilidade
Desvantagens
Custo (Pelo fato dos servidores se comunicarem por tipos de mensagens,
associa-se a isso um custo relativamente maior que na demais arquiteturas. Isso prejudica a aceitação dessa abordagem para determinados projetos)
Referências bibliográficas
MACHADO, Francis Berenger; MAIA, Luiz Paulo. Arquitetura de Sistemas Operacionais. 4.ed. Rio de Janeiro: LTC, 2007
LEITE, Andreza. Aula de Sistemas Operacionais. Disponível em: <http://www.univasf.edu.br/~andreza.leite/aulas/SO/Aula03.pdf>. Acesso em: 28 de março de 2019
ANDRADE, Gil Eduardo. Aula de Sistemas Operacionais. Disponível em: <http://www.gileduardo.com.br/ifpr/so/downloads/so_aula03.pdf>. Acesso em: 28 de março de 2019
TEIXEIRA, Márcio Andrey. Estrutura de sistemas operacionais Disponível em: <http://ctd.ifsp.edu.br/~marcio.andrey/images/estrutura_so-ifsp-catanduva.pdf>. Acesso em: 28 de março de 2019

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando