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: 162.042 ]

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

Arduino IDE no Linux Mint

Implantando o Nagios em HTTP Seguro (HTTPS)

Rundeck - Um Poderoso Agendador de Tarefas

Servidor CVS: Instalando, configurando e gerenciando no Linux

Personalizando o vim!

  
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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts