Você está na página 1de 6

UNIRV - UNIVERSIDADE DE RIO VERDE FACULDADE DE ENGENHARIA DE SOFTWARE

KERNEL DO LINUX

ACADMICA: MALENA ALVES RUFINO PROFESSOR: FABIAN CORREA CARDOSO

RIO VERDE -2013-

KERNEL

O Kernel uma palavra de origem inglesa que significa ncleo, a parte fundamental para todo tipo de sistema operacional e tambm a parte principal do sistema operante do computador. A funo do ncleo unir o software ao hardware. Alm de gerenciar os recursos do sistema, permitindo que outros programas faam uso deles. Veja uma amostra pratica:

Essa comunicao entre usurio e o kernel, acontece por intermdio das chamadas de rotina do sistema realizadas por aplicaes, por interao com ncleo mais amigavelmente por meio de utilitrios ou linguagem de comandos. Essa interao de um processo como o kernel acontece geralmente quando um aplicativo invoca uma chamada ao sistema e intermediada pela libc, essa chamada capturada pela funo system_call do ncleo que encaminha a solicitao para outra funo do sistema, essa funo se comunica com mdulos internos do cdigo, que por sua vez comunica com o hardware envolvido. SYSTEM_CALL: o ponto de entrada para todos as chamadas do sistema (considerada como manipulador de interrupes), ela invocada pela biblioteca C padro, que carrega os registros da CPU com os argumentos que deseja passar e em seguida deflagra a interrupo de software.

A arquitetura de um kernel pode ser monoltico, hbrido ou microncleo. Kernel Monoltico: responsvel por separar a interface do hardware, de forma que os processos utilizem recursos com segurana e organizao. Todas as funes importantes do kernel fazem parte de um nico processo em que todos os elementos partilham o mesmo espao de endereamento de memria. Ele tem as funes de gerncia dos Processos, gerncia de

alocao e liberao de memria, controle do sistema de arquivos, operaes de Entrada e Sada. Que so executadas e compiladas estaticamente ou usando mdulos transportveis. Kernel hbrido: executa operaes em modo protegido, atravs de servidores externos, para a melhoria de desempenho evitando tambm troca de contextos e melhorar o desempenho geral do sistema. Entretanto quando o kernel hbrido, ele tem a habilidade de agregar ou desagregar funcionalidades, sem perder seu desempenho ou equilbrio presentes na sua estrutura. Kernel monoltico(micro-kernel): ele executa servios como gerenciamento de memria, sistema de arquivos e manipulao de interrupes e comunicao I/O, estruturado em um nico arquivo binrio, um nico processo que executa inteiramente em modo protegido. Ele possui desempenho superior na passagem de mensagens, mas apresenta inmeras desvantagens como a dificuldade de alteraes no ncleo e o desperdcio de recursos, devido aos drivers de dispositivos que permanecem fixos na memria.

Estrutura do Kernel Diz respeito ao modo como o cdigo do sistema operacional organizado e o interrelacionamento entre seus diversos componentes, pode variar conforme a concepo do projeto.

Funes do ncleo Arquitetura complexa de sistema multiprogramveis, onde pode surgir problemas relativos a segurana no inter-relacionamento dos sistemas existentes. Exemplo: diversos usurios compartilhando os mesmos recursos isto exige que o sistema operacional garanta a confiabilidade na execuo concorrente de todos os programas e nos dados dos usurios alm da garantia da integridade do prprio sistema operacional. A multiprogramao permite que vrios programas compartilhem o processador. O sistema operacional deve ser responsvel pelo controle da utilizao da UCP, de forma a impedir que algum programa monopolize o seu uso inadequadamente. Como vrios programas ocupam a memria simultaneamente, cada usurio deve possuir uma rea reservada, onde seus dados e cdigos so armazenados. O sistema operacional implementa mecanismos de proteo, de forma a preservar estas informaes de maneira reservada. Caso um programa tente acessar uma posio de memria fora de sua rea, ocorrer um erro indicado a violao de acesso.

Para que diferentes programas tenham o direito de compartilhar uma mesma rea de memria, o sistema operacional deve oferecer mecanismos para que a comunicao seja feita de forma sincronizada e controlada, evitando desta forma problemas, de inconsistncia. Um disco pode armazenar arquivos de diferentes usurios. Mais uma vez o sistema operacional deve garantir a integridade e a confidencialidade dos dados, permitindo ainda que dois oi mais usurios possam ter acesso simultneo ao mesmo arquivo.

Idiomas do cdigo apresentado dois idiomas, que pode ser conceituado como de aquisio e recursos e o outro de idioma de varivel de erro. Embora sejam existentes no so os idiomas propriamente ditos, eles so consistentemente aplicados. Esses idiomas representam apenas a forma como o kernel executado. No idioma de aquisio e recursos uma funo deve recolher uma diversos recursos como memoria, bloqueios, e assim por diante. A funo prossegue para o prximo recurso quando anterior obtido com sucesso. No final do processo a funo libera os recursos adquiridos, exceto os que possuem falhas. No idioma de varivel de erro quando a funo utiliza uma varivel para gravar o valor do retorno desejado, utilizada a varivel com erro para acompanhar o controle de fluxo que tenha sido complicado pela velocidade. Geralmente essa varivel corresponde pelo valor 0 ou um valor negativo. Usando zero indicado para mostrar que houve sucesso e se usar um valor negativo indicado que h uma erro. Veja o cdigo utilizado para varivel de erro: Int f(void){ Int err; Resource*r1,*r2; Err = -ERR1; R1 = acquire_resource( );

If (!r1) Goto out; /* recurso r1 obtido; tentar obter r2. Err = -ERR2; R2 = acquire_resource2( ); If (!r2)

//no obtido //retorna ERR1

//assume falha

//nao obtido

Goto out 1; /* obtidos tanto r1 como r2. */

//retorna ERR2

Err=0; /* ..........Usar r1 e r2....... */ Out2; Release resource (r2); Out 1; Release resource (r1); Out; Return err; }

//sem erros

Filas de espera Os processos do sistema podem ser colocados espera. A tcnica de kernel para isto associar uma fila de espera a cada evento. Um processo que precisa esperar pelo evento colocado em espera e posicionada na fila. Quando o evento ocorrer, o kernel percorrer a fila, reativando as tarefas que estiverem a espera ao longo do caminho. Cada tarefa responsvel por sua prpria remoo da fila. Essas filas so largamente utilizadas ao logo do kernel, por esse motivo necessrio diversos cdigos. Processos Agendamento e intervalo de tempo Respeitam as prioridades definidas pelo usurio criam a iluso aceitvel que todos esto sendo executados simultaneamente. Esse modo de agendamento pode deixar o sistema operacional lento e equivocado. Processos em tempo real O tempo real significa que existem garantias em relao ao desempenho do sistema operacional, com promessas a respeito de latncia de interrupes, que os algoritmos de agendamento em tempo real do Linux no tencionam proporcionar. Os algoritmos fornecem a CPU para um processo em tempo real, caso algum processo requeira e, caso contrrio, deixam o tempo da CPU ser pouco a pouco disponibilizado para processos que no operam em tempo real.

Prioridades Os processos que no so operados em tempo real possui dois tipos de prioridade, a prioridade esttica e a prioridade dinmica. J os processos em tempo real possui um terceiro tipo, a prioridade de tempo real. As prioridades so valores do tipo inteiro que divulgam os valores a serem encarregados para um processo quando ele for automatizado a dispor de algum tempo na CPU. Prioridade esttica: no alterada com o passar do tempo, somente quando explicitamente modificada pelo usurio. Ela indica o intervalo de tempo que determinado processo pode ocupar antes de ser obrigado a permitir que outros processos concorram pela CPU. Prioridade dinmica: ao passar o tempo diminui, enquanto o processo tiver a CPU. Ela determina quantidade de tempo restante durante o intervalo de tempo que o processo marcado para reagendamento. Prioridade em tempo real: indica quais sero os processos que tero seus acessos CPU separando seus valores, j que o processo em tempo real em certos casos vale 0.

Você também pode gostar