Elementos do grupo: - Marcio Neves nº 20610 - Marco Leonor nº 17331 - Bernardo Marques nº 16460 - Valter Rocha nº 16022 O que é um Kernel ? • Numa análise bastante simplificada, um kernel é um processo que disponibiliza determinados serviços que permitem uma utilização eficiente de um sistema computacional ou embedded. • Actua como um mediador entre os programas e o hardware oferecendo uma camada de abstracção relativamente ao hardware. • Um kernel gere então as funcionalidades basicas e disponibiliza certas ferramentas com a finalidade de facilitar a utilização dos recursos de hardware do sistema em causa para o qual o kernel foi desenhado. 2 Seviços disponibilizados por um Kernel: • Gestão de processos • Comunicação entre processos • Gestão de memória • Gestão de mensagens • Temporização • Gestão de I/O • Gestão de Erros 3 Processos e comunicação entre processos: • Criar ambiente multi-tasking • Prioridades • Preempção 4 Gestão de memória: • Semáforos • Alocação de memória a processos 5 Gestão de mensagens: •Não usa o barramento global para transmissão das mensagens. •Evita que a mensagem seja lida antes que o processo que envia termine. •Comunicação entre processos mais robusta 6 Temporizações: • Os processos podem ser executados em tempos pré-determinados. • Um processo que não termina em tempo util pode ser terminado e o erro de timeout é assinalado. 7 Gestão de I/O: •É criado um nivel de abstracção em que o programador não tem de se preocupar com especificidades do hardware. 8 Porque não fazer um kernel em casa? • Fazer um kernel sai mais caro do que comprar. • Um kernel caseiro nunca está acabado. • Um kernel caseiro não fica bem documentado • A inevitavel mudança de equipa. 9 Porquê comprar um kernel comercial? • Facil de usar e aprender. • Bem documentada. • Muitos dos bugs já foram encontrados e corrigidos. • Technical Support. 10