OpenSolaris - Sistema Operacional Open Source

Este artigo aborda os princípios do sistema operacional OpenSolaris e tem como objetivo proporcionar uma compreensão dos conceitos básicos e das principais questões relativas a estrutura, forma de armazenamento, compartilhamento e gerenciamento do sistema operacional open source baseado no sistema Solaris da Sun MicroSystems.

[ Hits: 165.539 ]

Por: Vítor Hugo Straube em 26/01/2007


Acesso ao Kernel e processos



Acesso ao Kernel

O kernel do OpenSolaris permite dois modos de execução no processador. O modo não-privilegiado, no qual são executados os processos de usuário, e o modo privilegiado, no qual somente os processos do kernel são executados.

No modo não-privilegiado o processo tem acesso somente a sua parcela de memória de sistema, enquanto que no modo privilegiado o processo têm-se acesso à todas as estruturas de dados do kernel, assim como a todo o hardware do sistema.

Existem três formas de entrar em modo privilegiado:
  • Através de uma system call;
  • Através de uma interrupção;
  • Através de traps.

Processos

A principal tarefa do kernel de um sistema operacional (SO) é permitir a execução de aplicações e dar suporte a elas através de camadas de abstração sobre o hardware. Para executar uma aplicação, o kernel precisa carregar na memória o arquivo que contém o código executável da aplicação (e eventualmente inicializar o seu próprio espaço de endereçamento), inicializar a pilha de execução do programa e assim iniciar a sua execução.

Um kernel multitarefa é preparado para dar ao usuário a ilusão que o número de processos em execução simultânea no computador é maior que o número máximo de processos que o computador é capaz de executar simultaneamente. Tipicamente, o número de processos que um sistema pode executar simultaneamente é igual ao número de CPUs instaladas.

Em um sistema multitarefa, o kernel dá a cada programa uma fatia do tempo e alterna de processo para processo tão rapidamente que o usuário pensa que estes processos são executados simultaneamente. O kernel utiliza algoritmos de agendamento para determinar qual processo será executado na seqüência e quanto tempo ele terá, ele também considera que um processo pode ter uma prioridade maior em relação aos outros.

Os sistemas operacionais modernos devem suportar multi-processamento. Neste caso, programas diferentes e threads de programas podem ser executados em diferentes processadores. Para que um kernel suporte este tipo de sistema, ele deve ser amplamente modificado para ser "re-entrante" e "interruptível", o que significa que ele pode ser interrompido no meio da execução de uma tarefa. Se esta funcionalidade estiver presente, os programas executados ao mesmo tempo em processadores diferentes podem chamar o kernel de maneira segura. O kernel também deve disponibilizar um modo de sincronizar o acesso à memória em processadores diferentes, fazendo com que o gerenciamento de memória e de processos sejam tópicos altamente relacionados.

Inicialmente, quando se dá a ativação do sistema, é criado o processo 0, que por sua vez cria o processo 1, conhecido como init. Este é o ancestral de todos os outros processos.

Os processos são criados pela primitiva de sistema fork. Essa função, ao ser chamada por um processo em execução (processo-pai), cria uma cópia igual desse processo (processo-filho) - um processo-pai pode ter vários processos-filhos e estes também podem ter seus processos-filhos. A partir daí, tanto o processo-pai quanto o processo-filho têm seu próprio espaço de endereçamento. Dessa forma, as variáveis de um não são visíveis ao outro e vice-versa.

Os processos são identificados mediante um código de identificação, pid , que é fornecido pelo processo-pai ao processo-filho.

Os processos no OpenSolaris possuem duas estruturas-chave: a tabela de processos, que contém informações como número do processo, modo e prioridade. E a estrutura de usuário, contendo informações que não são necessárias quando o processo não estiver fisicamente na memória principal.

2. Pid: do Inglês, process identification ou identificador de processo.

Página anterior     Próxima página

Páginas do artigo
   1. O OpenSolaris
   2. Acesso ao Kernel e processos
   3. Interrupções
   4. Traps e interface de system call
   5. Comunicação entre processos e memória compartilhada
   6. Semáforos e mensagens
   7. Solaris Doors
   8. Memória do Kernel e gerenciamento de memória
   9. Sistema de Arquivos - ZFS
   10. Segurança
   11. Por que usar o Solaris e não o Linux?
   12. Conclusões
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

SuSE Linux Enterprise Desktop 10 - O novo desktop Linux da Novell

Instalando o CMS Drupal 4.7

Instalar programas no Linux é mais fácil?

Kingfisher Quota Manager - Instalação e configuração

Um tour pelos players de áudio para Linux

  
Comentários
[1] Comentário enviado por thelinux em 26/01/2007 - 22:21h

Excelente artigo.

[2] Comentário enviado por thelinux em 26/01/2007 - 22:22h

No site da SUN é possível solicitar o CD/DVD totalmente de graça.

[3] Comentário enviado por unixgeek em 27/01/2007 - 02:05h

Parabéns pelo artigo.

Algum tempo atrás dei uma olhada em um livecd do opensolaris, o schillix, http://schillix.berlios.de/ via vmplayer.

Enfim, parabéns.

[4] Comentário enviado por timm em 28/01/2007 - 00:27h

Sou usuário Solaris e gosto muito do sistema, pena que é pesado pra caramba em x86.

[5] Comentário enviado por removido em 28/01/2007 - 12:06h

Excelente artigo!
Cobre extensa parte do funcionamento interno do sistema!

Parabéns Vitor! ;)

[6] Comentário enviado por ashmsx em 24/07/2009 - 18:55h

Esse é realmente um artigo de qualidade, está de parabéns. Já li artigo de sites muito mais famosos que o autor só escreveu "o gnome está muito bonito" e compara porcamente com o linux "não funciona o lspci, então é ruim". enfim, parabéns novamente

[7] Comentário enviado por Marcos Santos em 16/11/2009 - 19:53h

Oi, baixei o Opensolaris esta semana e estarei usando suas instruções para começar a entender o sistema, é tudo muito novo pra min, sou usuário Linux e gostaria de conhecer o Solaris e se você puder me indicar algo pra iniciantes eu agradeceria.
Grato,
Marcos João
Botucatu - SP
visite: www.watchtower.org

[8] Comentário enviado por andrezc em 28/08/2010 - 18:07h

Caramba! Seu artigo está demais. Realmente muito completo, digno de um profissional.

Parabéns, já está em meus favoritos.


Contribuir com comentário