Escolar Documentos
Profissional Documentos
Cultura Documentos
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
(2) http://pt.kioskea.net/contents/systemes/sysintro.php3
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.
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.
(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.
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
São executados algoritmos num determinado período de tempo para ver qual o
processo que é executado nesse período de tempo.
sinais;
pipes;
named pipes;
memória compartilhada;
,soquetes (sockets);
trocas de mensagens
ADMINISTRAÇÃO DE MEMÓRIA
7
Paulo Encarnação
SISTEMA DE ARQUIVOS
• de entrada ( input )
• de saída ( output )
• de entrada e saída ( input / output )
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.
9
Paulo Encarnação
(4) http://pt.wikilingue.com/es/Sistema_operativo
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.
Sistemas multitarefas
Um sistema operativo é defenido de "multi-tarefas" (em inglês multithreaded)
quando permite que diversas aplicações corram no sistema simultaneamente.
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).
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
5) http://pt.kioskea.net/contents/systemes/sysintro.php3
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.
Sistemas multitarefas
Um sistema operacional é "multi-tarefas" (em inglês multithreaded) quando
várias "tarefas" (igualmente chamadas "processos") podem ser executadas
simultaneamente.
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
(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 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.
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.
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.
(6) http://www.di.ubi.pt/~operativos/teoricos/cap1-h.pdf
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.
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
(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
Sistemas Operacionais
(3)http://www.etaj.com.br/~jmoreira/projetos/disciplinas/Sistemas
%20Operacionais%20I/so1.pdf
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