Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Estruturas Sistemas Operacionais Grupo 4 Acácio Rodrigues Neto Aparecido Adriano Freidemberg Gilson Barbosa Renan Gabriel de Oliveira 4.1 KERNEL O kernel é o núcleo do sistema operacional, ele é o intermediário entre o sistema operacional e o hardware e também é responsável de controlar todo o hardware, interpretadores de comandos, etc.. MAQUINAS DE NIVEIS COM O KERNEL Aplicações, utilitários, núcleo do sistema operacional e hardware. No sistema Linux, já sabe que otimizar e recompilar o kernel é uma tarefa usual nesse mundo do código fonte aberto. Os maiores problemas dos sistemas operacionais proprietários, de código fonte fechado, são que o kernel desses sistemas tem suporte a diversos periféricos e dispositivos de hardware que, provavelmente, você jamais irá vê-las ou ainda nem saberá que existem ou existiram tais dispositivos. As principais funções do kernel são: - tratamento de interrupções e exceções; - criação e eliminação de processos; - sincronização e comunicação entre processos; - escalonamento e controle de processos; - gerencia de memória; - gerencia de sistema de arquivos; - gerencia de dispositivos de E/S. 4.2 MODOS DE ACESSOS O kernel é a parte mais importante do sistema operacional, por isso tem que estar sempre bem protegido, para que nem usuários e nem aplicativo possam acessa-lo. As instruções do kernel só pode ser acessada pelo sistema operacional e não diretamente pelos aplicativos, essas informações são chamadas de privilegiada pois podem comprometer o sistema operacional se forem utilizadas incorretamente. Os modos de acessos são implementados pelo processador são divididos em 2 modos: User mode ou modo usuário: executa apenas instruções não privilegiadas. Modo kernel ou root mode: podem executar qualquer tipo de instrução. O modo de acesso de uma aplicação é determinado por um conjunto de bits, que fica no registrador de status, sendo sempre verificada, esse registrador ao executar uma aplicação, logo após de ser executada ela retorna para o modo de usuário. 4.3 CHAMADA DE SISTEMA São solicitações de recursos de hardware realizadas por utilitário e aplicativos ao Sistema Operacional. Cada módulo oferece um conjunto de funções que pode ser usado por outros módulos Afim de compartilhar os recursos de forma organizada e protegida, como proteger a memória utilizada por um programa, o sistema operacional deve impedir que os programas de usuário acessem diretamente os recursos de hardware As chamadas de sistemas podem ser agrupadas segundo suas funções: 1 gerência de processos 2 gerencia de memoria 3 gerencia do sistema de arquivos 4 gerencia de dispositivos 4.4 ARQUITETURA MONOLITICA A arquitetura monolítica é a arquitetura de sistema operacional mais comum e antiga, no qual cada componente do S.O. está contido no núcleo do sistema. Ela é uma aplicação formada por vários módulos que são compilados separadamente e depois linkados, formando assim um grande sistema onde os módulos podem interagir Camada 0 – multiprogramação básica da CPU. Camada 1 – faz o gerenciamento da memória. aloca espaço para os processos da memória principal. Camada 2 – faz a comunicação entre o console do operador e cada processo. Camada 3 – gerenciava dispositivos de entrada e saída. Camada 4 – localizavam-se os programas de usuários. não se preocupava com o gerenciamento de processo, memoria, console ou E/S. Camada 5 – usuário. 4.6 – MAQUINA VIRTUAL A maquina virtual e um intermediário entre o sistema operacional e o hardware. São cópias exatas do hardware, inclusive com modos núcleo/usuário, E/S, interrupções e tudo o que uma máquina real tem. Cada Maquina Virtual pode executar qualquer SO capaz de ser executado diretamente sobre o hardware. Diferentes Maquina Virtuais podem executar diferentes Sistemas Operacionais. Um exemplo de maquina virtual e o java que pode ser executado em qual sistema operacional 4.7 VITUALIZAÇÃO É a simulacao de um sistema operacional baseado numa maquina real com recursos qua o hospedeiro pode oferecer, como memoria hd placa de rede, pode-se usar varias maquinas virtuais com sistemas operacionais distintos desde que o opehardware do hospedeiro seja compativel e que tenha em sua plataforma suporte a virtualização. Software como virtualbox, vmware workstation, microsoft virtual pc podem simular sistemas racionais em um descktop, nos servidores usam VMWare ESX, o Microsoft Hyper-V e o Citrix Xen Server que são os mais comuns hypervisor e a camada de software que cuida da copia do harqware Host ou hospedeiro a maquina onde se instala o software de virtualizaçao Guest ou convidadas sao as maquinas virtuais O uso de maquinas virtuais é mais comuns em servidores, onde varias maquinas fisicas com seus hardwares e sistemas operacionais distintos são consolidados e então convertidos em computadores virtuais, reduzindo o número de computadores físicos gerando economia de energia elétrica, espaço físico elicenças de softwares (quando for o caso). 4.8 MICROKERNEL kernel nucleo do sistema (coração), faz o gerenciamento da maquina. kernel monolitico faz carregamento de todos os drives e modulos do sistema. micro kernel é um conjunto de aquivos que se tornam processos e têm de comunicar entre si através do núcleo, exemplo do microkernel ele faz o caregamento somente dos drivers que estao necessarios para o funcionando 4.9 PROJETO DO SISTEMA OPERACIONAL. Um sistema operacional tem que constituir de confiabilidade, portabilidade, manutenção, flexibilidade e desempenho, além de ser flexível em questão da arquitetura de hardware para que possamos utiliza-lo em vários tipos de hardware. Os primeiros sistemas operacionais foram desenvolvidos inteiramente em assembly e o código possuía cerca de um milhão de instruções. Com a evolução dos sistemas, as linhas de código chegaram perto dos 20 milhões. Nos sistemas operacionais atuais, o número de linhas de código pode chegar a cerca de 40 milhões, como no caso do Microsoft Windows 2000, sendo grande parte do código escrito em linguagens de alto nível, no caso C/C++. A vantagem de se desenvolver sistemas operacionais em linguagens de alto nível é a portabilidade, ou seja, o sistema pode ser facilmente modificado para poder ser executado em outra arquitetura de hardware. Uma desvantagem dessa implementação é a perca de desempenho, visto que, o assembly por ser uma linguagem de máquina é muito mais rápido e leve Obrigado !!!
Compartilhar