Tecnologia

Sistema Operacional Unix

Um sistema operacional é um programa que gerencia os recursos de um computador. Sistemas operacionais enviam informações aos dispositivos de comunicação, gerenciam o espaço de armazenamento em dispositivos de armazenamento de massa, carregam informações na memória e assim por diante. Em sistemas de computadores que permitem várias pessoas utilizarem o sistema simultaneamente, o sistema operacional arbitra as várias solicitações para distribuir os recursos do computador justa e eficazmente.

O sistema UNIX é um sistema operacional moderadamente complexo. É muito mais simples do que os sistemas operacionais que rodam em maxicomputadores, mas possui mais capacidade do que a maioria dos sistemas operacionais que rodam em microcomputadores. Por exemplo, o sistema UNIX permite rodar vários programas simultaneamente.

TEMPO COMPARTILHADO

Tempo compartilhado é uma das técnicas que foram desenvolvidas para compartilhar o computador entre vários usuários. O objetivo do tempo compartilhado é dar a cada usuário a ilusão do uso exclusivo da máquina. O tempo compartilhado funciona porque os computadores modernos podem processar milhões de informações por segundo. Com esta taxa, um computador é capaz de destinar milhares de operações às suas tarefas, milhares aos seus vizinhos e outros milhares à função de coordenar tudo isto – tudo num único segundo.

Em alguns sistemas de computadores, espera-se até que o computador esteja pronto para executar os programas. Entretanto, em sistemas de computadores interativos, o computador sempre está aguardando para iniciar a execução de um programa. Quando pedimos ao computador para executar um programa ele começa a rodá-lo imediatamente; o computador trabalha diligentemente nele até que esteja terminado. O computador pode, neste momento, fazer algumas outras operações simultaneamente, mas, basicamente, seu programa começa tão logo você dá o comando e o computador continua progredindo.

O tempo compartilhado funciona dividindo-se cada unidade de tempo em um número de partes. Cada programa sendo executado recebe uma parte do tempo. Quando mais programas estão sendo executados, cada programa recebe uma parte menor do que quando somente uns poucos programas estão rodando. Considerando que os computadores são dispositivos rápidos, eles podem mudar rapidamente de uma tarefa para outra, dando a impressão de que o computador está desempenhando muitas tarefas simultaneamente. Na verdade, o computador está progredindo em uma tarefa e daí passando a outra e assim por diante.

Alguns sistemas de tempo compartilhado tornam-se muito ineficazes quando são sobrecarregados. A ineficiência aparece quando a demanda é tanta que o computador gasta todo o seu tempo mudando de programas e muito pouco tempo realmente executando-os.

O NÚCLEO

Certas funções de sistemas operacionais são necessárias muitas vezes a cada segundo. Por exemplo, a parte do sistema UNIX que se envolve na mudança de um programa para outro (tempo compartilhado) é solicitada muitas vezes a cada segundo. No sistema UNIX todas as fuunções que são necessárias de imediato são mantidas constantemente na memória. A parte residente na memória de um sistema operacional é chamada de núcleo.

Muitas funções de sistemas operacionais são necessárias ocasionalmente, tal como a capacidade de transportar alguma informação de um dispositivo de armazenamento de massa para outro. Estes tipos de funções são fornecidos por utilitários, programas padrões os quais são solicitados de acordo com a demanda dos usuários. No sistema UNIX é fácil incrementar o estoque de utilitários simplesmente escrevendo um programa novo e útil.

Em muitos sistemas operacionais, o núcleo contém muitas características. O sistema UNIX tenta dotar o núcleo de características relativamente novas para que a maioria das funções dos sistemas operacionais possa ser fornecida por programas utilitários.

PROGRAMAS

Um programa é uma sequência de instruções que o computador segue para alcançar um certo resultado. Quando um programa não está sendo executado, a sequência de instruções está armazenada num dispositivo de armazenamento de massa (normalmente um disco). Para rodar o programa, uma cópia das instruções deve estar carregada na memória.

Enquanto um programa estiver sendo executado no sistema UNIX, ele é chamado de processo. Se várias pessoas estiverem rodando o mesmo programa mais ou menos ao mesmo tempo, então haverá vários processos mas somente um programa.

SHELL

O shell é um dos programas mais importantes do sistema UNIX. Ele é um programa interativo. Pode-se controlar o shell através de comandos que o shell interpreta (decodifica) e executa. Portanto, o nome técnico do shell é interpretador de comandos.

A função de um interpretador de comandos é executar os comandos que forem inseridos. Ou seja, ao ser inserido um nome de comando ou programa, o shell fará com que este seja executado pelo sistema UNIX.

Em muitos sistemas o interpretador de comandos é uma parte da estrutura interna do sistema operacional. No sistema UNIX, entretanto, o shell é somente um programa comum, semelhante a qualquer outro programa que rode no sistema UNIX. A única coisa que é especial sobre o shell é o fato de ele ser central à maioria das interações com o sistema UNIX. Se você for um usuário comum, então passará muito tempo inserindo comandos. O shell tem muitas características que podem ser usadas para aumentar sua eficácia.

O sistema UNIX é, na realidade, uma ferramenta para o gerenciamento de informações. O poder do sistema UNIX provém de sua capacidade de permitir que programas rodem juntos para produzirem a informação desejada. Na maioria dos computadores cada programa é considerado um mundo dentro dele mesmo. No sistema UNIX quase todos os programas são ferramentas simples que podem ser combinadas com outros programas para produzirem ferramentas mais poderosas.

Além de ser um interpretador de comandos, o shell também é uma linguagem de programação. Amaioria dos usuárioss ignora as características de linguagem de programação do shell, simplesmente porque não são programadores de computadores.