SóProvas


ID
158020
Banca
FCC
Órgão
METRÔ-SP
Ano
2008
Provas
Disciplina
Sistemas Operacionais
Assuntos

A responsabilidade do kernel consiste, tradicionalmente, em abstrair a interface do hardware, permitindo que processos utilizem este recurso concorrentemente, de forma segura e padronizada. Assim, um kernel ou núcleo pode ser considerado o próprio sistema operacional, quando este é definido como um gerenciador de recursos de hardware, que é o caso do sistema operacional aberto Linux. O Linux é um

Alternativas
Comentários
  • O Linux possui um kernel monolítico. Os drivers de dispositivos e as extensões de kernel rodam na área de kernel (anel 0, encontradas e muitas arquiteturas de CPU), com acesso total ao hardware, embora, algumas exceções rodarem na área do usuário. Muitos usuários não rodam o seu sistema gráfico no kernel, em contraste com o Windows.

    http://en.wikipedia.org/wiki/Linux_kernel#Architecture
  • Há duas vertentes de desenvolvedores de sistemas operacionais, àqueles que  são a favor do desenvolvimento de Kernels modulares e os que defendem  o desenvolvimento de Kernels monolíticos. Os modulares são, teoricamente,  kernels mais simples, onde ao invés de se ter um kernel  gigantesco  com milhões de linhas,  se  tem um constituído de vários  componentes menores. A simplicidade desse tipo de kernel  ocorre também  pelo fato dele ter como função básica coodernar a troca de mensagens e dados entre os diferentes componetes do sistema. 
    Para o Linux foi adotado o kernel monolítico.  Isso, porque  Linux Torvalds defendia  a idéia de que apesar do   kernel modular   ser mais fácil de desenvolver, por modular-se em vários componentes,  a dificuldade em coordernar a troca de informações entre as partes de uma forma confiável tornava-o tão complicado que logo   este ganho inicial era superado.Portanto, fica o registro de que o Linux é um kernel monolitico ( uma unidade, não divisível  ).
    A questão também cita o termo híbrido. O linux passou a ser um kernel monólitico híbrido com o passar do  tempo, pois os desenvolvedores inseriram, nele, algumas características de  um  kernel modular.    
  • Na verdade tanto o linux como o windows usam a arquitetura hibrida e monoloitica. Sendo que, o linux usa uma arquitetura monolitica e também modular e portanto hibrida. O windows usa arquitetura Microkernel monolitico e então hibrida.
    Daria para matar a questão pelo fato da letra B já definir como microkernel monolitico ( windows). Sobra então a letra "a".
  • Windows microkernel? Acho que não hein! Os Windows NT são um blocão de código com tudo (praticamente) rodando no kernel. Temos no kernel o NTOS kernel: escalonador e dispatcher; o NTOS executive: LPC, memória virtual, gerenciador de I/O, de objetos, etc, etc...; o HAL (Hardware Abstraction Layer); drivers e etc. Como a maior parte dos serviços rodam em kernel, não acredito que possa ser caracterizado como microkernel. No lado do usuário, só a biblioteca de usuário, ntdll.dll
    O NTOS kernel e executive, sozinhos, não tem as estruturas suficientes para fazer um microkernel. Não vejo um híbrido monolítico-microkernel
  • funcao do kernel abstrair a interface do hardware, permitindo que processos utilizem este recurso concorrentemente, de forma segura e padronizada, por meio de chamadas de sistemas. Os núcleos dos sistemas operacionais podem ser implementados de duas formas básicas: Kernel monolítico e o microkernel.

    Micro-kernel possui apenas um núcleo que provê recursos mínimos necessários ao ambiente, como gerenciamento do espaço de memória, gerência de threads e comunicação entre os processos. Serviços como rede, vídeo, são considerados não essenciais, e residem no user-space. Ex: Minix.

    Kernel Monolítico é oposto. Permite que funções como rede, vídeo e acesso a outros periféricos sejam possíveis através do kernel-space. O que significa que um módulo, apesar de não estar no mesmo código do kernel, é executado no seu espaço de memória. Ex: Linux e alguns windows.


  • Questão passível de anulação...ou é monolítico ou é hibrido...hibrido é o mono + micro.

    tipos de kernel no Linux : Monolítico, Micro, Hibrido, Exo e Nano.
    Como essa questão é de 2008 talvez esteja desatualizada.
  • Finalidade do núcleo:

    O principal propósito do núcleo é gerenciar os recursos do computador e permitir que outros programas rodem e usem destes recursos.

    Arquitetura Monolítica-> Pode ser comparada com uma aplicação formada por vários módulos que são compilados separadamente e depois linkados, formando um grande e único programa executável. Todos processos em um só núcleo.

    Arquitetura de Camadas-> Devido ao Aumento da complexidade e do tamanho do código dos sistemas foi necessário criar técnicas de modulação então o sistema passou a ser dividido em camadas sobrepostas. Cada camada oferece um conjunto de funções que podem ser utilizadas apenas pelas camadas superiores(lembra um pouco REDES modelo OSI).

    Vantagem: Isolar as funções do sistema operacional, facilitando a manutenção e depuração, além de criar hierarquia de níveis

    Desvantagem: Queda no Desempenho.

    Arquitetura Máquina Virtual -> Serve para criar um nível intermediário entre o hardware e o sistema operacional, denominado gerência de máquinas virtuais possibilitando a criação de diversas máquinas virtuais independentes onde cada uma oferece cópia virtual do hardware.

    Vantagem: Portabilidade do código / consolidação de servidores/ aumento da disponibilidade / facilidade de escalabilidade e balanceamento de carga / facilidade no desenvolvimento de software.

    Arquitetura MicroKernel-> Tendência nos sistemas operacionais modernos visando tornar o núcleo do SO o menor e mais simples possível.

    Um dos benefícios da abordagem de microkernel é que ela facilita a extensão do sistema operacional. Todos os serviços novos são adicionados ao espaço do usuário e, consequentemente, não requerem a modificação do kernel.

    O microkernel também fornece mais segurança e confiabilidade, já que a maioria dos serviços é executada como processos de usuário — e não do kernel. Se um serviço falha, o resto do sistema operacional permanece intocado.

    Sistemas Híbridos -> Na prática, muito poucos sistemas operacionais adotam uma estrutura única rigidamente definida. Em vez disso, eles combinam diferentes estruturas, resultando em sistemas híbridos que resolvem problemas de

    desempenho, segurança e usabilidade.

    Por exemplo, tanto o Linux quanto o Solaris são monolíticos porque o desempenho é muito mais eficiente quando o sistema operacional ocupa um único espaço de endereçamento. No entanto, eles também são modulares para que novas funcionalidades possam ser adicionadas ao kernel dinamicamente.

    Exonúcleos -> Um exonúcleo é um tipo de núcleo que não abstrai hardware in modelos teóricos. Ao invés disso ele aloca recursos físicos de hardware, como o tempo de um processador, páginas de memória, e blocos de disco, para diferentes programas.

    Fonte:

    Arquitetura de SO - Machado 5 ed /Fundamentos de SO - Silberschatz 9ed