Você está na página 1de 21

UNIVERSIDADE DO ALGARVE

ESGHT

INFORMÁTICA

SISTEMAS OPERATIVOS

GESTÃO
1º ANO
2010

Docente
Raul Guerreiro

Discente
Paulo A. Ramires da Encarnação
Nº 7595
INTRODUÇÂO
Um computador sem software adequado não funciona e é apenas um conjunto
de metal sem qualquer funcionalidade, todavia quando é adicionado á maquina
um software que gere todo o sistema a informação pode ser processada
alterada ou criada, essa informação pode se traduzir em texto, imagem,
cálculos, dados ou som. O Software de um computador pode ser classificado
em duas categorias, os programas de sistemas que gerem as operações e as
comunicações entre as diversas partes do computador e os programas de
aplicação que estão ao serviço do utilizador para a resolução de problemas. Os
programas mais importantes são os programas de sistema ou seja os sistemas
operativos que controlam todos os recursos do computador e permitem que os
programas de aplicação corram no computador. Um sistema moderno de
computador é constituído por um ou mais processadores, por memória RAM,
por um disco rígido, por uma placa gráfica, uma placa mãe, terminais, interfaces
de rede e um conjunto de dispositivos de entrada e saída. Fazer programas que
coordenem todos estes componentes que forma um computador é muito
complicado. É provável que se um programador se tivesse de se preocupar
com os vários componentes de um computador muitos dos programas que hoje
conhecemos não teriam sido escritos. Desde cedo se chegou á conclusão que
o utilizador deveria ser afastado de toda a problemática que é a gestão dos
vários componentes de um sistema informático. A solução encontrada desde
cedo e que evoluiu gradualmente foi colocar um sistema operacional a correr
sobre o hardware para gerir todos os componentes do sistema informático,
ficando o utilizador com um ambiente mais agradável e simples para programar.
Tal ambiente é conhecido como máquina virtual. A camada de software é
constituída sobre a base do hardware é chamada de sistema operativo. O
hardware é composto por duas ou mais camadas em que a mais baixa delas
contem os dispositivos físicos constituídos por chips de circuitos integrados,
fios, fontes de alimentação e assim por diante. De seguida vem uma camada
constituída por um software muito primitivo que controla os diapositivos
anteriormente referidos proporcionando a criação de uma interface simples para
a camada seguinte. Este software é designado de microcódigo, constituído a
partir de microprogramas, normalmente gravado numa memória do tipo de
read-only. Este microcódico trata-se de facto de um interpretador, que procura
as instruções de máquina na memória principal (add, move, jump, etc.) fazendo
com que o conjunto de sinais de controlo necessários à execução das ditas
instruções pelo hardware. O conjunto de instruções que o microcódigo
interpreta é designado de linguagem de máquina do processador. A linguagem
de máquina é constituída por um conjunto de 50 a 300 instruções, a maioria
delas move dados dentro da própria máquina, faz operações aritméticas e
compara valores. Nesta camada, os dispositivos de entrada/saída são
controlados pela carga de valores em registradores especiais, designados de
registradores de dispositivos. A questão da temporização das operações de
entrada/saída é igualmente muito importante na programação de tais
dispositivos. A principal função do sistema operativo é a de esconder toda esta
complexidade, proporcionando ao programador um conjunto de instruções mais
convenientes para o desenvolvimento de seu trabalho. No topo do sistema
operativo, estão os restantes softwares do sistema, normalmente conhecidos
2
Paulo Encarnação
como interpretadores de comando (shell), compiladores, editores, etc. É de
igual forma importante notar que tais programas não fazem parte do sistema
operativo não obstante serem oferecidos pelo fabricante do computador. O
sistema operativo é a parte do software que corre no modo kernel ou modo
supervisor, com o fim de proteger o hardware da acção do utilizador final da
máquina, acção esta que pode vir a ser problemática. O resto dos componentes
do software do sistema, assim como os compiladores e editores correm no
modo utilizador. Se um determinado utilizador não estiver de acordo com um
compilador, ele pode sempre escrever o seu próprio programa, todavia ele pode
escrever o programa de tratamento de interrupções de disco que é incluído no
sistema operativo, normalmente protegido contra tentativas da parte de o
utilizador de altera-lo. Assim no topo dos programas de sistema pode-se
encontrar os programas de aplicação. Estes programas são escritos pelos
utilizadores para solucionarem problemas específicos, que implicam o
processamento de informação. (1)

3
Paulo Encarnação
O SISTEMA OPERATIVO

SISTEMA OPERATIVO

DESCRIÇÃO DO SISTEMA OPERATIVO


Um computador só pode fazer funcionar um programa informático (chamado às
vezes aplicação ou software) através de um sistema operativo. O sistema deve
estar preparado para efectuar várias operações preparatórias de forma a
permitir a ligação entre o processador, a memória, e os recursos físicos
(periféricos).

O sistema operativo (OS abreviatura do termo inglês Operating System), tem a


função de possibilitar a conexão entre os recursos materiais, o utilizador e as
aplicações (tratamento de texto, jogos de vídeo, etc.). Desta forma quando um
programa pretender aceder a um recurso material não é necessário mandar
informações específicas ao periférico, prontamente envia as informações ao
sistema operativo que se incumbe de envia-las ao periférico identificado através
do seu piloto. Quando não existe pilotos, cada programa terá de reconhecer e
assegurar a comunicação com cada um dos periféricos. O sistema operativo
possibilita desta forma "dissociar" os programas e o material, facilitando a
gestão dos recursos e oferecendo ao utilizador uma interface homem-máquina
(notado “IHM”) simplificada para lhe permitir sair-se da complexidade da
máquina física. (2)

(2) http://pt.kioskea.net/contents/systemes/sysintro.php3

CONSTITUIÇÃO DO SISTEMA OPERATIVO


Um sistema operativo é constituído por um conjunto de programas e rotinas
computacionais que têm como objectivo criar uma camada da abstracção entre
o utilizador e o hardware propriamente dito. Considere-se o utilizador todo
aquele elemento que necessite de aceder aos recursos de um computador
(seja ele um utilizador real ou aplicativo). Os sistemas operativos podem ser
analisados de três maneiras: pelo tipo do núcleo de sistema (ou kernel, como é
conhecido na gíria técnica), pelo método adoptado ao administrador os
programas em execução, ou pelo número de utilizadores que podem operá-lo
simultaneamente.

Na actualidade são utilizados basicamente dois tipos de implementações do


núcleo de sistema: monolíticos e estrutura de microkernel.

Núcleos monolíticos ➔ têm como principal característica o facto de integrarem


todas as funcionalidades possíveis do sistema num grande "bloco" de software.
A adição de novas funcionalidades implica na recompilação de todo o núcleo.
Trata-se de uma abordagem um tanto antiquada, mas que foi adoptada, por
exemplo, por Linus Torvalds quando este resolveu desenvolver o kernel do
Linux.

4
Paulo Encarnação
Microkernel ➔ Trata-se de um termo designado para caracterizar um núcleo
de sistema na qual as funcionalidades não-essenciais ao seu funcionamento
são transferidas para servidores, que se comunicam com o núcleo mínimo
através do modo de acesso do núcleo (local onde o programa tem acesso a
todas as instruções da CPU e a todas as interrupções de hardware), deixando o
máximo de recursos correndo no modo de acesso do utilizador. Quando o
processador trabalha no modo utilizador, uma aplicação só pode executar
instruções não privilegiadas, tendo acesso a um número mínimo de instruções.

Os vários tipos de sistemas operativos que existem têm diferentes maneiras de


gerir os programas em execução pelo utilizador. Há de facto três tipos de
gestão de tarefas (ou processos):

Sistemas monotarefa ➔ Possibilitam a execução unicamente de uma tarefa ou


processo de cada vez. Um dos mais importantes sistemas operativos
monotarefa é o MS-DOS (Microsoft Disk Operating System), lançado em 1981 e
desenvolvido para correr no então processador 8086 da Intel.

Nos dias de hoje a grande maioria dos sistemas operativos são do género
multitarefa. É referido de multitarefa a característica dos sistemas operativos
modernos que possibilitam dividir a utilização do processador entre várias
tarefas simultaneamente.

A multitarefa cooperativa ➔ funciona precisamente como referido


anteriormente: o tempo de processamento é dividido entre as várias tarefas,
dando a sensação de o utilizador que elas estão sendo executadas
simultaneamente. A sua principal característica (ou deficiência) está no fato de
que não existe controle sobre o tempo de CPU que cada processo despende. O
sistema cede o controlo da CPU ao processo, e este só o devolve quando tiver
finalizado a sua tarefa.

A multitarefa preemptiva ➔ faz a gestão do tempo de utilização da CPU de


maneira inteligente, reservando e protegendo o espaço de memória dos
aplicativos e impedindo que programas com erros possam invadir as áreas
demarcadas pelo sistema operativo. Os núcleos destes sistemas mantêm em
memória um registo de todos os processos em execução através de uma
árvore de processos. Entre outros atributos acerca de cada processo, a árvore
de processos insere as informações de prioridade, com a qual o núcleo calcula
o tempo de CPU que deve dar a cada processo; quando esse tempo finda, o
núcleo tira do processo o controle da CPU e o passa ao processo que vem a
seguir na fila. Quando a fila acaba, o núcleo volta a dar o controle da CPU ao
primeiro processo, fechando assim o ciclo. (3)

(3)http://www.etaj.com.br/~jmoreira/projetos/disciplinas/Sistemas
%20Operacionais%20I/so1.pdf

5
Paulo Encarnação
VISÃO GERAL
Um sistema operativo pode ser visto como um programa de enorme
complexidade que é responsável por todo o funcionamento de uma máquina
desde o software a todo hardware instalado na máquina. Todos os processos
de um computador estão na base de uma programação complexa que comanda
todas a funções que um utilizador exige à máquina. Existem vários sistemas
operativos; os mais populares actualmente são geralmente utilizados em
computadores domésticos e que são o Windows, Linux e Mac OS X.

Um computador com o sistema operativo instalado pode não permitir o acesso


a todo o seu conteúdo dependendo do utilizador. Com um sistema operativo,
podemos criar autorizações a vários utilizadores que trabalham com este.
Existem duas espécies de contas que podem ser criadas num sistema
operativo, as contas de Administrador e as contas limitadas. A conta
Administrador é uma conta que permite todo o acesso à máquina desde a
gestão de pastas, ficheiros e software de trabalho ou entretenimento ao
controlo de todo o seu Hardware instalado. A conta Limitada é uma conta em
que não há autorização para o utilizador dessa conta instalar software na raiz
do sistema ou aceder a algumas partes do sistema operativo ou ainda que
tenha ligação com algum Hardware que modifique o seu funcionamento normal
ou personalizado pelo Administrador. Neste tipo de contas o administrador do
sistema poderá definir as zonas do sistema operativo a que os titulares desta
contas podem aceder permitindo ou recusando o acesso a alguns ficheiros do
sistema.

O sistema operativo funciona fazendo correr processos nos quais aquele


necessita para trabalhar correctamente. Estes processos podem ser ficheiros
que são muitas vezes actualizados ou ficheiros que processam dados úteis
para o necessário funcionamento do sistema. Podemos ver os vários processos
correndo no sistema operativo desde o seu arranque até á fase actual através
do gestor de tarefas. Pode-se igualmente visualizar a utilização da memória por
cada processo, no caso do sistema operativo começar a dar erros ou falhas no
acesso a programas a correrem no disco poderá se observar no gestor de
tarefa quais dos processos que se encontram bloqueados e consequentemente
a afectar a memória do computador.

FUNCIONAMENTO
Um sistema operativo possui as seguintes funções:

❑ Administrador de processos;
❑ Administrador de memória;
❑ Sistema de arquivos;
❑ Entrada e saída de dados

6
Paulo Encarnação
ADMINISTRADOR DE PROCESSOS

O sistema operativo multitarefa é preparado para dar a ideia ao utilizador de


que o número de processos a correr em simultâneo no sistema é superior aos
processos instalados. Cada processo é executado numa fatia de tempo rápida
e em separado o que dá a ilusão de o processamento ser executado
simultaneamente.

São executados algoritmos num determinado período de tempo para ver qual o
processo que é executado nesse período de tempo.

Os processos podem comunicar-se através de IPC (Inter-Process


Communication). Os mecanismos que são utilizados são:

 sinais;
 pipes;
 named pipes;
 memória compartilhada;
,soquetes (sockets);
 trocas de mensagens

O sistema operativo deve possibilitar o multiprocessamento (SMP ou NUMA).


Deste modo os diferentes processos e threads podem ser executados em
diferentes processadores. Numa determinada tarefa, esta pode ser reentrante e
interrompível, o que implica a sua interrupção poder ser feita no meio da
execução de uma tarefa.

ADMINISTRAÇÃO DE MEMÓRIA

O sistema operativo tem de ter acesso seguro á memória do computador o que


implica que os processos executados pelo utilizador tenham acesso quando
forem requisitados.

Geralmente os sistemas operativos usam memória virtual, que possui 3 funções


básicas:

1. Assegurar que cada processo tenha seu próprio espaço de


endereçamento, começando em zero, para evitar ou resolver o problema
de relocação (Tanenbaum, 1999);

2. Providenciar protecção de memória de modo a que um determinado


processo não aceda a um endereço de memória que não lhe pertença.

3. Fazer com que um determinada aplicação utilize mais memória do que a


existente fisicamente

7
Paulo Encarnação
SISTEMA DE ARQUIVOS

A memória principal do computador é instável e o seu tamanho é reduzido pelo


preço do hardware. Desta forma os utilizadores precisam de um método de
guardar e recuperar dados no sistema.

Um arquivo pode-se traduzir por um conjunto de bytes geralmente


armazenados num dispositivo periférico não instável como é o caso do disco
rígido e que pode ser lido e escrito por um ou mais processos.

ENTRADA E SAÍDA DE DADOS

Dispositivos de entrada e saída de dados.

São aqueles dispositivos ou periféricos que permitem a comunicação entre o


computador e o exterior.

Existem três tipos de dispositivos:

• de entrada ( input )
• de saída ( output )
• de entrada e saída ( input / output )

Dispositivos de entrada ( input ) São os dispositivos que permitem que o


utilizador envie informação para o computador. Exemplos:

Joystick, Teclado, Rato, Scanner.

Dispositivos de saída ( output ) São os dispositivos que permitem ao


computador enviar informação para o exterior. Exemplos:

Impressora, Monitor, Data show, Plotter

Dispositivos de entrada e saída ( input / output ) São os dispositivos que


permitem tanto enviar informação para o exterior como receber informação do
exterior de modo simultâneo. Exemplos:

Disquete. CDs e DVDs regraváveis, Stick USB, Modem externo,


Placa de rede, Modem interno, Disco rígido, Placa de som, etc.

FUNÇÔES BÀSICAS
Os sistemas operativos, contendo softwares vão simplificar o desempenho do
computador, desempenhando várias funções fundamentais e importantes para
a administração do sistema informático. As que se destacam mais podem ser
encontradas nas que são exercidas por um componente interno (módulo em
núcleo monolítico/núcleos monolíticos e servidor em micro núcleos), podemos
descrever as seguintes:

8
Paulo Encarnação
❑ Possibilitar mais conforto ao utilizador de um computador.

❑ Administrar de forma eficiente os recursos da equipa, executando serviços


para os processos (programas).

❑ Proporcionar uma interface ao utente, executando instruções (comandos).

❑ Permitir que as alterações devidas ao desenvolvimento do próprio sistema


operativo se possam efectuar sem interferir com os serviços que já se
prestavam.

Num sistema operativo existem cinco funções fundamentais na operação de um


sistema informático: fornecimento de interface ao utente, administração de
recursos, administração de arquivos, administração de tarefas e serviço de
suporte e utilidades.

Interfaces do utente ➔ É a capacidade que o sistema operativo tem para se


comunicar com o utente de modo a possibilitar carregar programas aceder
arquivos e realizar outro tipo de tarefas. Podem existir três tipos básicos de
interfaces: as que se baseiam em comandos, as que utilizam menus e as
interfaces gráficas de utente.

Administração de recursos ➔ Consistem na administração de recursos de


hardware e de redes de um sistema informático, como a memória, CPU,
dispositivos de armazenamento e periféricos de saída.

Administração de arquivos ➔ Trata-se de um sistema de informação


contendo programas de administração de arquivos que são responsáveis pela
criação, eliminação e acesso de arquivos de dados e de programas. A
administração de arquivos é também responsável por manter o registo da
localização física dos arquivos nos discos magnéticos e em outros dispositivos
de armazenamento secundários.

Administração de tarefas ➔ São os programas de um sistema operativo que


administram as tarefas informáticas dos utilizadores finais. Os programas
controlam a parte do sistema que tem acesso ao CPU e por quanto tempo. As
funções de administração de tarefas controlam o tempo do CPU para aceder a
uma determinada tarefa, e podem interromper uma tarefa a correr no CPU para
a substituir por outra mais importante.

Serviços de suporte ➔ Os serviços de suporte do sistema operativo


dependem daquele com que estejamos a trabalhar. Por exemplo dos mais
conhecidos destacam-se as implementações de Unix, os sistemas operativos
de Apple Inc., como Mac VOS X para os computadores de Apple Inc., os
sistemas operativos de Microsoft, e as implementações de software livre, como
GNU/Linux ou BSD produzidas por empresas, universidades, administrações
públicas, organizações sem fins lucrativos e/ou comunidades de
desenvolvimento. (4)

9
Paulo Encarnação
(4) http://pt.wikilingue.com/es/Sistema_operativo

Papéis do sistema operacional


Os papéis do sistema operacional são vários:

Gestão do processador ➔ O sistema operativo encarrega-se de administrar o


subsídio do processador entre os diferentes programas, em concordância a um
algoritmo de emissão.

Gestão da memória viva ➔ O sistema operativo administra o espaço da


memória atribuído a cada aplicação e possivelmente a cada utilizador. No caso
de falta de memória física o sistema operativo cria no disco rígido a chamada
memória virtual. A memória virtual permite que aplicações que necessitam de
mais memória que a memória física corram no sistema. No entanto esta
memória é muito mais lenta.

Gestão das entradas/saídas ➔ O sistema operativo unifica e controla o


acesso dos programas ás partes de hardware ligadas ao sistema através dos
pilotos (chamados igualmente administrativos de periféricos ou gestores de
entrada/saída).

Gestão da execução das aplicações ➔ É o sistema operativo que administra


a execução das aplicações permitindo o funcionamento dos recursos
necessários. Pode entretanto interromper ou encerrar uma aplicação que já não
esteja a responder corretamente.

Gestão dos direitos ➔ O sistema operativo é responsável pela segurança da


execução dos programas fazendo com que os recursos sejam utilizados pelos
programas e utilizadores que possuam os respectivos direitos.

Gestão dos arquivos ➔ O sistema operativo é responsável pela leitura e


escrita no sistema de arquivos e pelos direitos de acesso aos arquivos pelos
utilizadores e aplicações.

Gestão das informações ➔ O sistema operativo gere todo o sistema de


arquivos e ficheiros de modo a que permitam o bom funcionamento do sistema
informático.

Componentes do sistema operacional


O sistema operativo é composto por uma variedade de software que permite o
intercambio com os elementos físicos do computador ou hardware. Neste
conjunto de software podemos destacar normalmente os seguintes elementos:

• O núcleo (em inglês kernel) ➔ Integra as funções fundamentais do


sistema operativo como a administração da memória, do processador,
dos arquivos, das entradas/saídas principais, e das funcionalidades de
comunicação.

10
Paulo Encarnação
• O intérprete de comandos (em inglês shell, ou "casca", por oposição
ao núcleo) ➔ Permite a comunicação com o sistema operativo através
de uma linguagem de comandos que permite ao utilizador o controlo das
partes do computador sem ter necessidade de conhecer as suas
características.

• O sistema de arquivos (em inglês "file system", notado FS) ➔ Permite


registar os arquivos num sistema de árvore.

Sistemas multitarefas
Um sistema operativo é defenido de "multi-tarefas" (em inglês multithreaded)
quando permite que diversas aplicações corram no sistema simultaneamente.

As aplicações são compostas em sequência de instruções que se chamam


"processos ligeiros" (em inglês "threads"). Estes threads são executados e
activados alternando em espera, suspensos ou destruídos de acordo com a
prioridade que lhe é dada ou executados sequencialmente. Um sistema é
préemptivo quando tem um planificador que divide o tempo da maquina pelos
diferentes processos que fazem pedidos de acordo com critérios de prioridade.
O sistema é de tempo partilhado quando existe um determinado tempo
atribuído a cada processo pelo comando. É geralmente o caso dos sistemas
multiutilizadores que possibilitam o funcionamento de vários utilizadores utilizar
aplicações diferentes ou similares numa mesma máquina: o sistema é então
chamado de transaccional, e é atribuído a cada utilizador uma porção de tempo

Sistemas multiprocessadores
O multiprocessing é a técnica de se utilizar vários processadores em pararelo
para se conseguir uma potencia de calculo superior do que a obtida com um
processador topo de gama ou com o objectivo de se aumentar a performance
do sistema (em caso de avaria de um processador).

O SMP (Symmetric Multiprocessing ou Symmetric Multiprocessor) é um


processo em que os vários processadores têm acesso à memória partilhada do
computador. Um sistema multiprocessador deve poder administrar a partilha de
memória pelos vários processadores do computador mas também de distribuir
as várias tarefas.

Sistemas embarcados
Os sistema embarcados são sistema operativo destinados a funcionar em
máquinas de pequena dimensão, tais como PDA ((personal digital assistants ou
em português, assistentes numéricos pessoais) ou aparelhos electrónicos
autónomos (sondas espaciais, robots, computador de bordo de veículo, etc.),
possuindo uma autonomia reduzida. Uma das características típicas dos
sistemas embarcados é a capacidade que têm para administrar recursos
limitados tais como a energia.
11
Paulo Encarnação
Os mais populares sistemas embarcados para o grande público são:

• PalmOS
• Windows CE/Windows Mobile/Window Smartphone

Sistemas tempo real


Os sistemas tempo real (real time systems), são aqueles que são
particularmente utilizados na indústria e têm como objectivo funcionar num
ambiente temporariamente forçado. Um sistema tempo real deve funcionar de
maneira segura em concordância com restrições temporais específicas ou seja
funcionar de de maneira a fornecer um tratamento correcto das informações
recebidas em intervalos de tempo bem definidos (regulares ou não). (5)

5) http://pt.kioskea.net/contents/systemes/sysintro.php3

Papéis do sistema operacional


Os papéis do sistema operacional são diversos
• Gestão do processador: o sistema operacional está encarregue de
gerenciar o subsídio do processador entre os diferentes programas,
graças a um algoritmo de emissão. O tipo de ordenador é totalmente
dependente do sistema operacional, em função do objectivo visado.
• Gestão da memória viva: o sistema operacional está encarregue de
gerenciar o espaço da memória atribuída a cada aplicação e, se for caso
disso, a cada utlizador. No caso de insuficiência de memória física, o
sistema operacional pode criar uma zona memória no disco rígido,
chamada "memória virtual". A memória virtual permite fazer funcionar
aplicações que necessitam de mais memória do que a memória viva tem
disponível no sistema. Por outro lado, esta memória é muito mais lenta.
• Gestão das entradas/saídas: o sistema operacional permite unificar e
controlar o acesso dos programas aos recursos materiais através dos
pilotos (chamados igualmente administrativos de periféricos ou gestores
de entrada/saída).
• Gestão da execução das aplicações: o sistema operacional é
responsável pela boa execução das aplicações, afectando-lhes os
recursos necessários ao seu bom funcionamento. Permite a esse
respeito "matar" uma aplicação que já não responde correctamente.
• Gestão dos direitos: o sistema operacional é responsável pela
segurança ligada à execução dos programas, garantindo que os

12
Paulo Encarnação
recursos são utilizados apenas pelos programas e utilizadores que
possuem os direitos adequados.
• Gestão dos arquivos: o sistema operacional gerencia a leitura e a
redacção no sistema de arquivos e os direitos de acesso aos arquivos
pelos utilizadores e pelas aplicações.
• Gestão das informações: o sistema operacional fornece diversos
indicadores que permitem diagnosticar o bom funcionamento da
máquina.

Componentes do sistema operacional


O sistema operacional é composto por um conjunto de softwares que permitem
gerir as interacções com o material. Neste conjunto de softwares distinguem-se
geralmente os seguintes elementos:
• O núcleo (em inglês kernel) que representa as funções fundamentais do
sistema operacional como a gestão da memória, dos processos, dos
arquivos , das entradas/saídas principais, e das funcionalidades de
comunicação.
• O intérprete de comandos (em inglês shell, ou "casca", por oposição
ao núcleo) que permite a comunicação com o sistema operacional
através de uma linguagem de comandos, para permitir ao utilizador
pilotar os periféricos ignorando muitas das características do material
que utiliza, da gestão dos endereços físicos, etc.
• O sistema de arquivos (em inglês "file system", notado FS), permitindo
registar os arquivos numa arborescência.

Sistemas multitarefas
Um sistema operacional é "multi-tarefas" (em inglês multithreaded) quando
várias "tarefas" (igualmente chamadas "processos") podem ser executadas
simultaneamente.

As aplicações são compostas em sequência de instruções que se chamam


"processos ligeiros" (em inglês "threads"). Estes threads serão
alternadamente activos, em espera, suspensos ou destruídos, de acordo com a
prioridade que lhes é associada, ou executados sequencialmente.
Um sistema é préemptivo quando possui um planificador, que reparte, de
acordo com critérios de prioridade, o tempo da máquina pelos diferentes
processos que fazem pedidos.
O sistema é de tempo partilhado quando uma quota de tempo é atribuída a
cada processo pelo comando. É nomeadamente o caso dos sistemas multi-
utilizadores, que permitem a vários utilizadores utilizar simultaneamente numa
mesma máquina aplicações diferentes ou similares: o sistema então é
"transacional". Com efeito, o sistema atribui a cada utilizador uma fracção de
tempo.

13
Paulo Encarnação
Sistemas multiprocessadores
O multiprocessing é uma técnica que consiste em fazer funcionar vários
processadores em paralelo para obter uma potência de cálculo maior do que a
obtida com um processador topo de gama ou a fim de aumentar a
disponibilidade do sistema (em caso de avaria de um processador).
Chama-se SMP (Symmetric Multiprocessing ou Symmetric Multiprocessor) a
uma arquitetura na qual todos os processadores têm acesso a um espaço de
memória partilhada.
Um sistema multiprocessador deve por conseguinte ser capaz de administrar a
partilha da memória por vários processadores, mas igualmente de distribuir a
carga de trabalho.

Sistemas embarcados
Os sistemas embarcados são sistemas operacionais previstos para funcionar
em máquinas pequenas, como PDA ((personal digital assistants ou em
português, assistentes numéricos pessoais) ou aparelhos electrónicos
autónomos (sondas espaciais, robots, computador de bordo de veículo, etc.),
possuindo uma autonomia reduzida. Assim, uma característica essencial dos
sistemas embarcados é a sua gestão avançada da energia e a sua capacidade
para funcionar com recursos limitados.
Os principais sistemas embarcados para o "grande público" para assistentes
numéricos pessoais é :
• PalmOS
• Windows CE/Windows Mobile/Window Smartphone

Sistemas tempo real


Os sistemas tempo real (real time systems), essencialmente utilizados na
indústria, são sistemas cujo objectivo é funcionar num ambiente
temporariamente forçado. Um sistema tempo real deve assim funcionar de
maneira fiável de acordo com restrições temporais específicas, ou seja, deve
ser capaz de fornecer um tratamento correcto das informações recebidas em
intervalos de tempo bem definidos (regulares ou não).

(5) http://pt.kioskea.net/contents/systemes/sysintro.php3

14
Paulo Encarnação
Principais Tarefas dum Sistema Operativo
Execução de Programas: É necessário realizar um conjunto de tarefas para a execução de
um programa. Instruções e dados têm de ser carregados em memória, dispositivos de
I/O(Entrada/Saída) e ficheiros têm de ser inicializados. Mecanismos de partilha prontos.

Acesso a dispositivos de Entrada/Saída: Cada dispositivo de I/O tem o seu conjunto de


instruções, sinais de controlo e operação. O SO torna transparentes as particularidades dos
vários periféricos.

Acesso controlado a ficheiros: No caso dos ficheiros, para além da natureza do dispositivo
de I/O, o SO deve permitir ler ficheiros em vários formatos e protege-los de acordo com o
tipo de acesso permitido aos vários utilizadores.

Criação de Programas: O SO disponibiliza facilidades e serviços, como editores e


debuggers, que se encontram na forma de utilitários que não fazem verdadeiramente parte
do SO.

Acesso ao sistema: No caso de um sistema partilhado, deve ser controlado o acesso ao


sistema como um todo e especificamente a cada recurso.

Detecção de erros e resposta: O sistema deve dar resposta a uma grande variedade de erros
que podem acontecer tanto no hardware como no software.

Registo de parâmetros: Um bom SO permite registar estatísticas relativas a vários recursos


e monitorizar parâmetros de desempenho. Esta informação permite o ajuste do sistema
aumentando o seu desempenho.

Componentes dum Sistema Operativo


Gestão de Processos: Sendo um processo um programa em execução, devem ser
disponibilizadas sobre eles as seguintes funções básicas: criação, eliminação, suspensão,
activação, sincronização e comunicação. Adicionalmente o SO deve garantir uma partilha
correcta do tempo de CPU entre os vários processos.

Gestão de Memória: Sendo a memória o dispositivo onde são carregados os processos em


execução e o próprio SO, este deve permitir a reserva, libertação e monitorização do espaço
em memória. Se o SO dispuser de um mecanismo de memória virtual então o espaço
disponível para os processos poderá exceder a memória física (RAM) disponível no sistema.

Gestão de I/O(Entrada/Saída): Um sistema computacional dispõe de vários periféricos


sobre os quais são possíveis operações de leitura (entrada) e/ou de escrita (saída). Então para
cada dispositivo (ou grupos de dispositivos) o SO dispõe de módulos que lidam
especificamente com cada tipo de dispositivos (device drivers).

Gestão de Ficheiros: Sendo um ficheiro uma colecção de informação relacionada, devem


ser disponibilizadas sobre eles as seguintes funções básicas: criação, eliminação e
manipulação. Adicionalmente deve existir a possibilidade de organizar os ficheiros (em
directorias) e de realizar cópias de segurança (backups).

15
Paulo Encarnação
Protecção: O SO poderá disponibilizar mecanismos de protecção para controlar os acessos
dos processos aos recursos e dos utilizadores ao sistema.

Interpretador de comandos: Muitos dos comandos passados ao SO são instruções de


controlo que lidam com os mecanismos de gestão do SO. O programa que lê e interpreta
essas instruções de controlo é o interpretador de comandos.

Chamadas de sistema: A comunicação entre os processos e o SO é realizada através de


chamadas de sistema (system calls). Estas são funções disponibilizadas através de
bibliotecas (APIs-Application Programming Interfaces) pelo SO e podem ser utilizadas em
qualquer programa. A chamadas do sistema criam, apagam e utilizam vários objectos de
software e estruturas de dados geridos pelo S.O. Os mais importantes destes objectos são os
processos e os arquivos.

(6) http://www.di.ubi.pt/~operativos/teoricos/cap1-h.pdf

HISTÓRICO DOS SISTEMAS OPERACIONAIS

A Primeira Geração (1945-1955)

Válvulas e Painéis Após infrutíferos esforços desenvolvidos por Babbage, quase não
houve progresso nessa área até o início da Segunda Guerra Mundial. Em torno de 1940,
Howard Aiken em Harvard, John Von Neumann no Instituto de Estudos Avançados de
Princeton, J. Presper Eckert e William Mauchley na Universidade da Pennsylvania e
Konrad Zuse na Alemanha, tiveram sucesso na construção de computadores primitivos,
baseados em válvulas. Tais máquinas eram enormes, ocupavam salas imensas e
empregavam dezenas de milhares de válvulas em sua construção. Nesta época, um único
grupo de pessoas era responsável pelo projeto, construção, programação, operação e
manutenção de cada máquina. Toda a programação era feita em código absoluto, muitas
vezes através da fiação de painéis para controlar as funções básicas da máquina. O
conceito de linguagem de programação ainda não existia e os sistemas operacionais
também não. O acesso ao computador por parte do usuário era feito através da reserva
antecipada de tempo de máquina. Ao chegar sua vez de usar o computador, o usuário
fazia sua própria programação nos painéis da máquina e passava a torcer para que
nenhuma das 20.000 válvulas do computador viesse a queimar enquanto ele estivesse
trabalhando. Nessa época, os programas processados pelos computadores eram
constituídos essencialmente por cálculos numéricos repetitivos. No início dos anos 50,
houve uma sensível melhora no uso de tais máquinas com o advento do cartão perfurado
que tornou possível a codificação de programas em cartões e sua leitura pela máquina,
dispensando a programação através de painéis. Os demais procedimentos não tiveram
qualquer modificação.

A Segunda Geração (1955-1965)

Transistores e Sistemas Batch O desenvolvimento do transistor em meados de 1950 veio


a alterar substancialmente o quadro acima. Com o emprego desta nova tecnologia, os
computadores tornaram-se confiáveis a ponto de serem comercializados. Nesta época,
passou a haver uma distinção entre as pessoas envolvidas no projeto, na construção, na
16
Paulo Encarnação
operação e na manutenção dos computadores. Eles eram instalados em salas isoladas e
operados por pessoal especializado. Somente as grandes empresas e órgãos
governamentais ou universidades podiam pagar os muitos milhões de dólares
necessários à aquisição destas máquinas. Para executar um job, o programador primeiro
escrevia seu programa em uma folha de papel (em FORTRAN ou em linguagem de
montagem), para depois perfurá-los em cartão. Depois disso, ele entregava a massa de
cartões a um dos operadores da máquina para que a mesma fosse processada. Ao final
do processamento do programa corrente, um dos operadores ia até a impressora e
retirava o relatório emitido. Então o operador escolhia uma outra massa de cartões e
providenciava os recursos necessários ao processamento do novo job. Grande parte do
tempo da máquina era gasto pelos operadores providenciando recursos necessários ao
processamento de determinada tarefa. Em vista do alto custo de tais equipamentos,
encontrou-se uma solução para reduzir o tempo de máquina desperdiçado. A solução
encontrada, denominada de sistema batch (lote), consistia em coletar um conjunto de
jobs e fazer a leitura dos mesmos para uma fita magnética empregando um computador
pequeno e relativamente barato, tal como o IBM 1401, que era muito bom na leitura de
cartões, na cópia destes cartões em fita e na impressão de resultados. Outras máquinas
mais sofisticadas e mais caras, tal como o IBM 7094, eram empregadas no
processamento. Após cerca de uma hora de coleta de jobs, a fita gravada era rebobinada
e levada a sala do computador, onde era montada em sua unidade de fita. O operador
então carregava um programa especial que lia e processava o primeiro job da fita. A
saída era gravada numa segunda fita, em vez de ser diretamente impressa. Após o
término de cada um dos jobs, o sistema operacional lia e processava automaticamente o
próximo. Quando todo o lote tivesse sido processado, o operador removia as fitas de
entrada e de saída, levando a fita de saída para ser impressa off line, com auxílio do
1401. Os computadores da segunda geração eram utilizados na realização de cálculos
científicos e de engenharia. Eles eram normalmente programados em linguagem
FORTRAN. Os sistemas operacionais típicos da época eram o FMS (Fortran Monitor
System) e o IBSYS, ambos desenvolvidos pela IBM para rodar no 7094.

A Terceira Geração (1965-1980) CIs e Multiprogramação

No início dos anos 60, a maioria dos fabricantes de computador tinha duas linhas de
produtos distintas e totalmente incompatíveis. De um lado estavam as imensas e
poderosas máquinas orientadas a palavra, adequadas ao processamento científico
pesado, como o IBM 7094. Do outro lado, estavam as máquinas comerciais, orientadas a
caractere, como o IBM 1401, utilizado pelos bancos e companhias seguradoras para
pesquisar arquivos em fita e para impressão de extensos relatórios. O desenvolvimento e
a manutenção de duas linhas de produtos completamente independentes representava
uma carga bastante pesada para os fabricantes. Além do mais, muitos de seus clientes
precisavam inicialmente de uma máquina pequena, mas com o passar do tempo vinham
a necessitar de uma máquina maior, capaz de armazenar uma quantidade maior de
informações e de processar com mais rapidez. A IBM conseguiu solucionar ambos os
problemas com a introdução do Sistema 360. Tal sistema era composto de uma série de
máquinas, todas elas compatíveis em nível de software, abrangendo a faixa que
começava no 1401 e chegava até a do 7094. Estes computadores só diferiam no preço e
na performance. Uma vez que todas estas máquinas tinham a mesma arquitetura e o
mesmo conjunto de instruções básicas, os programas escritos para qualquer uma delas
rodavam em qualquer outra. Além do mais, a série 360 foi projetada com características
para suportar tanto o processamento científico quanto o comercial. A série 360 foi a

17
Paulo Encarnação
primeira família de máquinas a usar circuitos integrados em sua fabricação, conseguindo
uma relação preço/performance muito melhor do que as máquinas da segunda geração.
A idéia de família de máquinas compatíveis foi logo adotada por outros fabricantes. Esta
idéia criou um sério problema. A intenção era de que qualquer software, incluindo o
sistema operacional, rodasse em todos os membros da família. Ele deveria ser adequado
tanto para sistemas com poucos periféricos quanto para sistemas com um grande número
de periféricos. Deveria funcionar tanto em ambientes para processamento comercial
quanto para processamento científico. Além disso, o sistema operacional deveria ser
eficiente em todas as aplicações onde fosse utilizado. O resultado da tentativa foi um
sistema operacional enorme e extremamente complexo, duas a três vezes maior que o
FMS. Este sistema era composto de milhões de linhas de código em linguagem de
montagem, programado por milhares de pessoas e continha um sem-número de bugs que
originaram uma série incontável de novos releases na tentativa de corrigi-los. Este
sistema operacional foi chamado de OS360. Apesar do seu tamanho e dos problemas
que surgiram em seu desenvolvimento, o OS360 e os sistemas operacionais similares de
terceira geração produzidos por outros fabricantes atenderam relativamente bem à
grande maioria de seus usuários. Tais sistemas vieram a popularizar várias técnicas,
dentre elas a multiprogramação. Nas operações comerciais, o tempo de espera por
entrada/saída pode chegar a 80 ou 90 por cento do tempo total de processamento, de
maneira que algo precisava ser feito para evitar desperdício do tempo do processador. A
solução inicial foi dividir a memória em diversas partes, com um job alocado a cada
uma delas. Enquanto um job esperava a conclusão de sua operação de entrada/saída, um
outro job poderia estar utilizando o processador. O fato de se manter na memória vários
jobs ao mesmo tempo tornou necessária a utilização de um hardware especial para
proteger cada job contra acessos indevidos. O 360 e os demais sistemas de terceira
geração estavam equipados com este hardware. Com o passar dos anos, a IBM
desenvolve sua arquitetura 360 passando para a série 370 e para a 390. Outra
característica importante dos sistemas operacionais de terceira geração era sua
capacidade de ler jobs de cartão direto para o disco. Desta forma, assim que um job
ativo terminasse, o sistema operacional carregava um novo job na partição livre da
memória, proveniente do disco. Esta técnica foi denominada de SPOOL (Simultaneous
Peripheral Operation On Line) e era também empregada para as operações de saída.
Com o SPOOL, o 1401 deixou de ser necessário. Apesar dos sistemas operacionais de
terceira geração serem adequados para processamento científico e comercial, eles ainda
eram sistemas batch. Com estes sistemas, o tempo entre a submissão do job e a
disponibilização de sua saída passou a ser medido em horas, de maneira que o simples
esquecimento de uma vírgula poderia fazer com que o programador viesse a perder a
metade do dia. A necessidade de obter bons tempos de resposta levou ao
desenvolvimento dos sistemas com compartilhamento de tempo (timesharing), uma
variação dos sistemas multiprogramados, onde cada usuário tinha um terminal on-line à
sua disposição. Em tais sistemas, se existissem 20 usuários ativos, com 17 deles parados,
o processador seria alocado ciclicamente a cada um dos três jobs que lhe estão
requisitando serviço. O primeiro sistema de compartilhamento de tempo, o CTSS
(Compatible Time-Sharing System), foi desenvolvido no MIT para um 7094
especialmente modificado. Após o desenvolvimento do CTSS, o MIT, o Bell Labs e a
GE decidiram desenvolver um projeto de um computador que suportasse centenas de
usuários simultaneamente, em regime de compartilhamento de tempo. Este projeto foi
denominado de MULTICS (Multiplexed Information and Computing Service). Devido à
rápida evolução tecnológica dos parâmetros que foram tomados como base no projeto e
com o desenvolvimento de técnicas de integração de circuitos, o projeto fracassou.

18
Paulo Encarnação
Apesar disso, o MULTICS teve uma grande influência nos sistemas operacionais
construídos depois dele. Outros sistemas operacionais de tempo compartilhado
desenvolvidos foram os TSS (Time Sharing System) e o CP/CMS (Control
Program/Conversational Monitor System), ambos da IBM. Um outro fato ocorrido
durante a terceira geração de sistemas foi o fenomenal crescimento dos
minicomputadores, iniciado com o EC PDP-1, lançado em 1961. O PDP tinha somente
4K palavras de 18 bits, mas custava 5% do valor do 7094. Para algumas aplicações não
numéricas, sua performance era muitas vezes tão boa quanto a do 7094. Um dos
cientistas da Bell Labs que trabalhou no projeto MULTICS, Ken Thompson, encontrou
um pequeno PDP-7 e escreveu para ele uma versão monousuário do MULTICS. Este
trabalho foi o início do projeto que resultou no desenvolvimento do sistema operacional
UNIX que hoje domina o mercado para minicomputadores e estações de trabalho. 3.4 A
Quarta Geração: Computadores Pessoais Com o desenvolvimento da integração de
circuitos em grande escala (LSI), apareceram chips com milhares de transistores
encapsulados em um centímetro quadrado de silício, nascendo daí a idéia de computador
pessoal. Em termos de arquitetura, os computadores pessoais não eram diferentes dos
minicomputadores. A grande diferença estava no preço. Da mesma forma que os
minicomputadores tornaram possível que um departamento de uma empresa ou de uma
universidade adquirisse seu próprio computador, o chip microprocessador tornou isto
possível para pessoas físicas. A grande disponibilidade de poder computacional levou ao
crescimento de uma indústria voltada para a produção de software para estas máquinas.
A maioria desses softwares é user-friendly, significando que eles são voltados para
pessoas que não têm nenhum conhecimento dois de computadores. operacionais Foi
vêm uma grande o mudança mercado no de desenvolvimento dos sistemas operacionais.
Atualmente sistemas dominando computadores pessoais e de estações de trabalho: o
Windows da Microsoft e o Unix. O Windows foi derivado do MS-DOS que dominou as
máquinas baseadas nos processadores da Intel, mais precisamente o 8088 e seus
sucessores, 80286, 80386 e 80486. Apesar da primeira versão do MS-DOS ter sido um
tanto primitiva, as versões que se seguiram incorporaram uma série de características
avançadas, inclusive algumas disponíveis no Unix. O Unix é o líder no mercado de
sistemas para máquinas que não foram desenvolvidas com processadores Intel,
especialmente aquelas projetadas com os poderosos processadores RISC. Tais máquinas
têm hoje o poder computacional de um minicomputador, apesar de serem máquinas
dedicadas a um único usuário, sendo lógico que elas estejam equipadas com um sistema
operacional desenvolvido inicialmente para rodar em minicomputadores. Um
desenvolvimento interessante que começou a tomar corpo em meados dos anos 80 foi o
dos sistemas operacionais para redes e dos sistemas operacionais distribuídos. Em uma
rede de computadores, os usuários estão conscientes da existência de um conjunto de
máquinas conectadas à rede, podendo, portanto ligar-se a máquinas remotas e solicitar
serviços das mesmas. Cada uma destas máquinas roda seu próprio sistema operacional e
tem seu próprio usuário. Em contraste, um sistema distribuído faz com que um conjunto
de máquinas interligadas apareça para seus usuários como se fosse uma única máquina
com um só processador. Em tais sistemas, os usuários não tomam conhecimento de onde
seus programas estão sendo processados ou mesmo onde seus arquivos estão
armazenados, pois tudo é manipulado automaticamente e eficientemente pelo sistema
operacional. Os sistemas operacionais de rede não diferem fundamentalmente daqueles
usados em máquinas monoprocessadoras. Obviamente, eles precisam de uma interface
controladora de rede e de um software específico para gerenciar tal interface, além de
programas que permitam a ligação de usuários a máquinas remotas e seu acesso a
arquivos remotos. Tais características não chegam a alterar a estrutura do sistema

19
Paulo Encarnação
operacional usado para máquinas com um único processador. Já os sistemas
operacionais distribuídos precisam de mais do que a simples adição de poucas linhas de
código a um sistema usado em máquinas monoprocessadoras, pois os sistemas
distribuídos diferem dos centralizados em pontos bastante críticos. Por exemplo, os
sistemas distribuídos permitem que programas rodem em vários processadores ao
mesmo tempo, necessitando, portanto de algoritmos de escalonamento de processador
bem mais elaborados, de forma a otimizar o grau de paralelismo disponível no sistema.
Ainda no caso dos sistemas distribuídos, os retardos de comunicação na rede podem vir
a fazer com que algoritmos do sistema operacional venham a rodar com informações
incompletas, desatualizadas ou até incorretas. Tal situação difere substancialmente dos
sistemas com um único processador nos quais o sistema operacional tem o domínio
completo e total do estado de todos os componentes do sistema.

A Década de 1990

No decorrer da década de 90, a demanda avassaladora por recursos de Internet resultou


na proliferação das configurações em rede. Hoje, acesso a web e correio eletrônico são
recursos comuns a quase todos os sistemas operacionais. A Microsoft Corporation
tornou-se dominante na década de 90. O sistema operacional Windows tornou-se
popular após o lançamento em 1993 o Windows 3.1, cujos sucessores Windows 95 e
Windows 98 praticamente dominaram o mercado de sistemas operacionais para
computadores de mesa no final da década de 90. Esses sistemas operacionais, que
tomavam emprestado muitos conceitos popularizados pelos primeiros sistemas
operacionais Macintosh, habilitavam os usuários a executar múltiplas aplicações
concorrentes com facilidade. A Microsoft também entrou no mercado de sistemas
operacionais corporativos com o lançamento do Windows NT em 1993, que
rapidamente tornou-se o sistema operacional preferido para estações de trabalho
corporativas.

(7) http://www.scribd.com/doc/5565467/01INTRODUCAO-A-S-O

BIBLIOGRAFIA
O que é um Sistema Operacional
(1) http://www.scribd.com/doc/5565467/01INTRODUCAO-A-S-O

Descrição do sistema operativo


(2) http://pt.kioskea.net/contents/systemes/sysintro.php3

Sistemas Operacionais
(3)http://www.etaj.com.br/~jmoreira/projetos/disciplinas/Sistemas
%20Operacionais%20I/so1.pdf

Funções básicas de um sistema operativo


(4) http://pt.wikilingue.com/es/Sistema_operativo

Sistema operacional
(5) http://pt.kioskea.net/contents/systemes/sysintro.php3

Sistemas Operativos
20
Paulo Encarnação
(6) http://www.di.ubi.pt/~operativos/teoricos/cap1-h.pdf

Sistemas Operacionais
(7) http://www.scribd.com/doc/5565467/01INTRODUCAO-A-S-O

21
Paulo Encarnação

Você também pode gostar