segunda-feira, 30 de novembro de 2009

Sistemas Operacionais


O Avanço da Informática tem trazido um importante e avançado progresso no aperfeiçoamento de máquinas cada vez mais modernos. Com esse avanço também vem surgindo um tipo de informática moderna e cada vez mais acessivel.
Atualmente é possível encontrar no mercado desde computadores pequenos e
baratos até grandes e poderosos. Independente de seu tamanho,custo e capacidade, todos os computadores possuem várias características em comum, sendo a principal delas a necessidade de um bom sistema operacional para seu correto funcionamento. Mas
então, o que é um sistema operacional (SO)?
Os Sistemas Operacionais são a parte lógica e tem duas funções principais, a primeira delas é gerenciar todo o funcionamento do hardware do computador e a segunda é fornecer os recursos lógicos para que os aplicativos possam funcionar corretamente.
Desta forma podemos definir um sistema operacional como:
o software responsável por gerenciar todos os recursos de hardware e por fornecer a base lógica sobre a qual diversos programas e aplicativos são executados.

quarta-feira, 4 de novembro de 2009

DEFININDO SISTEMAS OPERACIONAIS

O sistema operacional é uma coleção de programas que:

•inicializa o hardware do computador
•fornece rotinas básicas para controle de dispositivos
•fornece gerência, escalonamento e interação de tarefas
•mantém a integridade de sistema

Há muitos tipos de Sistemas Operacionais, cuja complexidade varia e depende de que tipo de funções é provido, e para que computador esteja sendo usado. Alguns sistemas são responsáveis pela gerência de muitos usuários, outros controlam dispositivos de hardware como bombas de petróleo.

Um Sistema Operacional muito simples para um sistema de controle de segurança poderia ser armazenado numa memória ROM (Só de Leitura - um chip que mantém instruções para um computador), e assumir o controle ao ser ligado o computador. Sua primeira tarefa seria reajustar (e provavelmente testar) os sensores de hardware e alarmes, e então ativar uma rotina monitorando ininterruptamente todos os sensores introduzidos. Se o estado de qualquer sensor de entrada for mudado, é ativada uma rotina de geração de alarme.

Em um grande computador multiusuário, com muitos terminais, o Sistema Operacional é muito mais complexo. Tem que administrar e executar todos os pedidos de usuários e assegurar que eles não interferiram entre si. Tem que compartilhar todos os dispositivos que são seriais por natureza (dispositivos que só podem ser usados por um usuário de cada vez, como impressoras e discos) entre todos os usuários que pedem esse tipo de serviço. O SO poderia ser armazenado em disco, e partes dele serem carregadas na memória do computador (RAM) quando necessário. Utilitários são fornecidos para:

•Administração de Arquivos e Documentos criados por usuários
•Desenvolvimento de Programas
•Comunicação entre usuários e com outros computadores
•Gerenciamento de pedidos de usuários para programas, espaço de armazenamento e prioridade

Adicionalmente, o SO precisaria apresentar a cada usuário uma interface que aceita, interpreta, e então executa comandos ou programas do usuário. Essa interface é comumente chamada de SHELL (=cápsula, manteremos o nome original em inglês) ou interpretador de linha de comando (CLI). Em alguns sistemas ela poderia ser uma simples linha de texto que usam palavras chaves (como MSDOS ou UNIX); em outros sistemas poderiam ser gráficas, usando janelas e um dispositivo apontador como um mouse (como Windows95 ou X - Windows).


As Várias Partes de um Sistema Operacional
Um sistema operacional de um computador que é usado por muitas pessoas ao mesmo tempo, é um sistema complexo. Contém milhões de linhas de instruções escritas por programadores. Para tornar os sistemas operacionais mais fáceis de serem escritos, eles são construídos como uma série de módulos, cada módulo sendo responsável por uma função. Os módulos típicos em um grande SO multiusuário geralmente são:

•Núcleo (Kernel em inglês - também conhecido como " executivo")
•Gerenciador de processo
•Escalonador (Scheduler, em inglês)
•Gerenciador de arquivo


O Núcleo - Um Executivo em Tempo-Real
O núcleo de um sistema operacional é algumas vezes chamado de EXECUTIVO em tempo real. Algumas das funções executadas por ele são:

•chaveamento entre programas
•controle e programação de dispositivo de hardware
•gerenciamento de memória
•gerenciamento de processos
•escalonamento de tarefas
•comunicação entre processos
•processamento de exceções e de interrupção

Nosso sistema simples de monitoração de segurança não teria todas as funções acima, já que provavelmente seria um sistema mono-tarefa, executando apenas um programa. Como tal, não precisaria processar permutas entre mais de um programa ou permitir comunicação entre programas (comunicação entre processos). A gerência da memória seria desnecessária, já que o programa residiria permanentemente em ROM ou em EPROM (uma forma programável especial de ROM).

Um sistema operacional projetado para manusear um grande número de usuários precisaria de um núcleo para executar todas as funções acima. Programas de usuários geralmente são armazenados em disco, assim precisa ser carregado em memória antes de ser executado. Isso apresenta a necessidade de gerência da memória, já que a memória do computador precisaria ser pesquisada para localizar uma área livre para carregar um programa de usuário na mesma. Quando o usuário tivesse encerrada a execução do programa, a memória consumida por ele precisaria ser liberada e se tornaria disponível para outro usuário quando solicitado.

Gerenciamento e Escalonamento (Scheduling) de processos também são necessários, de forma que todos os programas possam ser executados razoavelmente. Não há como um programa de um usuário específico ser executado numa área de extensão, negando o funcionamento de qualquer outro programa, e fazendo todos os outros usuários esperarem. Adicionalmente, alguns programas poderiam precisar ser executados mais freqüentemente que outros, por exemplo, checando comunicações de rede ou imprimindo. Alguns programas podem precisar ser suspensos temporariamente, e serem reiniciados depois, assim introduzindo a necessidade da comunicação inter-programas.