História do Computador

Propaganda
Escola Técnica Estadual República
Curso Técnico de Informática
ORGANIZAÇÃO DE
S I S T E M AS
OPERACIONAIS
Matrícula: _________________
Turma: _____________
Nome: ______________________________________________
E-mail: ______________________________________________
Equipe de OSO
______________________________________________________Organização de Sistemas
Operacionais
Março de 10SUMÁRIO
Página 2 de 58
______________________________________________________Organização de Sistemas
Operacionais
INTRODUÇÃO
1.1- CONCEITUAÇÃO
1.1.1- Processamento de Dados
Um computador é uma máquina (conjunto de partes eletrônicas e eletromecânicas) capaz de
sistematicamente coletar, manipular e fornecer os resultados da manipulação de informações para um ou
mais objetivos.
Processamento de Dados consiste, então, em uma série de atividades ordenadamente
realizadas, com o objetivo de produzir um arranjo determinado de informações a partir de outras obtidas
inicialmente.
A manipulação das informações coletadas no início da atividade chama-se processamento, as
informações iniciais são usualmente denominadas dados.
Os termos dados e informações podem ser tratados como sinônimos ou como termos distintos;
dado pode ser definido como matéria-prima originalmente obtida de uma ou mais fontes (etapa de coleta), e
informação como o resultado do processamento, isto é, o dado processado ou “acabado”.
Informação são os dados organizados (segundo uma orientação específica) para o atendimento
ou emprego de uma pessoa ou grupo que os recebe.
Como o conhecimento é a tomada de decisão são importantes em várias áreas e em diferentes
níveis hierárquicos de uma organização, a informação para uma determinada pessoa ou grupo pode ser
considerada um dados para outra.
1.1.2- Sistemas
Um sistema pode ser dividido de diferentes maneiras. Um sistema pode ser compreendido, por
exemplo, como um conjunto de partes que cooperam para atingir-se um objetivo comum. Porém, a que
parece mais apropriada para nossas conceituações é a seguinte, ligeiramente diferente da anterior:
“Conjunto de partes coordenadas que concorrem para a realização de um determinado objetivo.”
Atualmente, o enfoque sistêmico se faz presente em quase todas as áreas do desenvolvimento
comercial, científico, industrial e social.
O processamento eletrônico de dados, devido a sua própria natureza – a de ser um conjunto de
componentes separados que se integram segundo procedimentos e regras previamente estabelecidos -, vem
se desenvolvendo de acordo com os conceitos da Teoria dos Sistemas e, por essa razão, é chamado de
sistemas de computação.
É sistema porque é um conjunto de partes que se coordenam (o teclado, a memória, o
processador, os dispositivos periféricos) para a realização de um objetivo: computar.
Computar significa calcular, realizar cálculos matemáticos. Os computadores são máquinas de
computar, de calcular, de realizar operações matemáticas. Mesmo quando um processador está sendo
usado para processar texto, ele o faz por meio de cálculos matemáticos; como também acontece quando ele
realiza processamento gráfico e outros mais. Na realidade, um computador realiza contínuas e constantes
manipulações de dados. Chama-se a isso de processamento de dados. A manipulação dos dados, realizada
segundo instruções de um programa eletrônico, dos dados necessários ao funcionamento de um outro
sistema maior: o sistema de informações.
Página 3 de 58
______________________________________________________Organização de Sistemas
Operacionais
O sistema de informações de uma empresa pode ser conceituado como o conjunto de métodos,
processos e equipamentos necessários para se obter, processar e utilizar informações dentro de uma
empresa. Dessa forma, ele compreende não só o Sistema de Processamento de Dados (SPD), como
também todos os procedimentos manuais necessários a promover informações para um determinado nível de
decisão de uma organização.
Em geral, um sistema de processamento de dados compreende duas partes: o sistema de
computação (o computador e os programas básicos) e os sistemas de aplicação. O primeiro,normalmente
fornecido completo pelo fabricante ou fornecedores específicos, e os últimos, desenvolvidos pelo usuário ou
por terceiros, especificamente dedicados a uma aplicação de interesse do usuário.
1.1.3- Sistemas de Computação
Qualquer processamento de dados requer a execução de suma série de etapas, as quais podem
ser realizadas de forma manual ou automática por um computador. Tais etapas, elaboradas e executadas
passo a passo, constituem o que se chama de programa. Cada um dos passos mencionados é uma diferente
instrução, ou ordem de comando, dada ao hardware, objetivando a realização de uma determinada ação
(uma operação aritmética, uma transferência de informação etc.). O programa é um conjunto de instruções.
Consideremos que se deseja, por exemplo, somar 100 números e imprimir o resultado. Se o
processo é manual, precisa-se de uma máquina de somar e outra de escrever, bem como de uma pessoa que
executará todas as etapas. Estas poderão estar relacionadas em um papel, de modo que o operador não
cometa erros nem se esqueça de alguma etapa, devendo ser executadas sistematicamente, uma após outra,
conforme mostrado no exemplo a seguir:
1.
2.
3.
4.
5.
6.
7.
Escrever e guardar N=0 e SOMA=0
Ler número da entrada
Somar o valor do número ao de SOMA e guardar resultado como SOMA
Somar 1 ao valor de N e guardar resultado como novo N
Se valor de N for menor que 100, então passar par item 2
Senão: imprimir valor de SOMA
Parar
O grupo de passos de passos relacionados acima constitui um algoritmo: conjunto de etapas
finitas, ordenadamente definidas, com o propósito de obter solução para um determinado problema.
As etapas de um algoritmo são as instruções que deverão ser executadas por uma máquina
(quando falamos de computadores). O conjunto de instruções constitui o que chamamos de programa. Um
programa de computador é a formalização de um algoritmo em linguagem inteligível pelo computador.
Assim como o operador deve ter entendido os sete passos do programa apresentado, um
computador precisa entender cada instrução, de modo a executar corretamente a operação que se pretende.
O operador entendia português, sua linguagem de comunicação com outras pessoas; os computadores têm
uma linguagem própria – a linguagem binária. Todo dado coletado pelos computadores, as instruções por
eles executadas, bem como os resultados de um processamento, são sempre constituídos de conjuntos
ordenados de zeros e uns.
No entanto, essa linguagem, chamada de linguagem de máquina, é para os seres humanos,
tediosa de manipular, difícil de compreender e fácil de acarretar erros. Por essa razão, foram desenvolvidas
outras liguagens, mais próximas do entendimento dos operadores, genericamente chamadas de liguagens de
programação. Atualmente, há dezenas dessas linguagens, tais como: Cobol, Pascal, Fortran, Visual Basic,
Lisp, Assembly, C, C++, Delphi, Java etc.
Cada uma dessas linguagens possui regras fixas e rígidas de sintaxe, semelhantes às das
liguagens de comunicação humana, tais como português, inglês etc (embora estas não possuam sintaxe tão
rígida). O programador escreve por intermédio da descrição de instrução por instrução.
Página 4 de 58
______________________________________________________Organização de Sistemas
Operacionais
Tal programa não é, entretanto, possível ser diretamente executado pela máquina, uma vez que
as linguagens de programação são apenas um modo de o operador comunicar-se com o computador. A
máquina somente entende e executa instruções mais simples, chamadas instruções de máquina.
Todo computador é construído com circuitos eletrônicos capazes de reconhecer e executar
diretamente apenas um conjunto limitado e simples de instruções de máquina, nas quais todo programa
(escrito em Pascal, Delphi, Java etc) deve ser convertido antes de ser executado.
Em resumo, o computador, sendo uma máquina, precisa de “ordens” específicas (suas
instruções) para executar as atividades para as quais foi construído.
Esta formalização em instruções de máquina constitui a “linguagem” de comunicação dos
humanos com a máquina e desta internamente entre seus componentes.
Uma vantagem dessas linguagens reside no fato de que, em face de suas semelhanças com as
linguagens dos humanos, elas podem ser definidas para atender a requisitos e intenções específicas de
emprego.
Ainda há outras vantagens do uso de linguagem de alto nível sobre a linguagem de máquina,
entre as quais:


A concisão das linguagens de alto nível se comparadas com programas binários. Neste último caso, os
programas são mais longos e de difícil entendimento em face de as instruções serem mais simples e,
portanto, cada item operacional precisar de muitas.
As linguagens de alto nível possuem uma estrutura de comandos que são identificados por palavras da
nossa linguagem, o que facilita o entendimento do programador.
Para efeitos de entendimento, desenvolvimento, fabricação e funcionamento, pode-se separar
um computador em duas grandes e distintas partes: hardware e software.
O conjunto formado pelos circuitos eletrônicos e partes eletromecânicas de um computador é
conhecido como hardware. É a parte física, visível do computador.
Software consiste nos programas, de qualquer tipo e em qualquer linguagem, que são
introduzidos na máquina para fazê-la trabalhar, passo a passo, e produzir algum resultado – o conjunto de
instruções, já mencionadas anteriormente. O hardware sozinho não funciona sem as instruções (software)
sobre o quê e quando fazer.
O software dá vida ao computador, fazendo com que suas partes elétricas, eletrônicas e
mecânicas possam funcionar.
Há uma classe de programas, geralmente escritos pelo fabricante do computador ou por firmas
especializadas, chamada genericamente software básico (é o caso dos sistemas operacionais, como o
Windows, o Unix, o Linux, como também dos compiladores e interpretadores) e que, em conjunto com o
hardware, constitui o que chamamos de sistema de computação.
A outra classe de programas, definida e implementada para atender aos problemas de cada um,
é genericamente conhecida como programas de aplicação ou sistemas de aplicação, pois aplicam-se a um
determinado problema de uma empresa ou mesmo de uma pessoa física.
Página 5 de 58
______________________________________________________Organização de Sistemas
Operacionais
COMPONENTES DE UM SISTEMA DE COMPUTAÇÃO
Um sistema de computação é um conjunto de componentes integrados para funcionar como se
fossem um único elemento e que têm por objetivo realizar manipulações com dados, isto é, realizar algum tipo
de operações com os dados de modo a obter uma informação útil. Vamos agora apresentar cada um dos
componentes deste sistema.
A Unidade Central de Processamento é o componente vital do sistema, porque além de
efetivamente realizar as ações finais (as operações matemáticas com os dados), interpreta o tipo e o modo de
execução de uma instrução, bem como controla quando e o que ser realizado pelos demais componentes,
emitindo para isso sinais apropriados de controle.
Os programas e dados são armazenados na Memória para execução imediata (memória
principal e memória cachê) ou para execução ou uso posterior (memória secundária).
Os dispositivos de Entrada e Saída servem basicamente para permitir que o sistema de
computação se comunique com o mundo exterior, realizando ainda, além da interligação, a conversão das
linguagens do sistema para a linguagem do meio exterior (caracteres de nossas linguagens) e vice-versa. Os
seres humanos entendem símbolos como A, b, ?, + etc e o computador entende sinais elétricos que podem
assumir um valor de tensão para representar o valor 1 ou um outro valor para representar o valor 0. o
teclado (dispositivo de ENTRADA) interliga o usuário (mudo exterior) e o computador, permitindo a
comunicação entre ambos através do uso das suas teclas. Ao ser pressionada a tecla correspondente ao
caractere A, por exemplo, os circuitos eletrônicos existentes no teclado “convertem” a pressão mecânica em
um grupo de sinais elétricos, alguns com voltagem alta (bit 1) e outros com voltagem baixa (bit 0), que
corresponde, para o computador, ao caractere A.
Os dispositivos de saída operam de modo semelhante, porém em sentido inverso, isto é, do
computador para o exterior, convertendo os sinais elétricos internos (e que, em grupos, podem representar
um caractere inteligível pelo ser humano) em símbolos conhecidos pelos humanos, como os caracteres C, e,
h, *, >, + etc.
Em resumo, os sistemas atuais, embora mais potentes, possuem os mesmos componentes
básicos e realizam suas funções essenciais orientadas pelos mesmos conceitos fundamentais expostos no
relatório apresentado por John Von Neumann, relativo à arquitetura do seu sistema EDVAC e do IAS, quais
sejam:



Dados e instruções são armazenados em uma memória do tipo que escreve e recupera (leitura);
O conteúdo da memória é endereçado conforme a sua posição, independentemente do tipo da
informação nele contido;
A execução das instruções ocorre de forma seqüencial (a não ser que a instrução específica mude
momentaneamente a seqüência), uma em seguida à outra.
2.1- REPRESENTAÇÃO DAS INFORMAÇÕES
2.1.1-O Bit, o Caractere, O Byte e a Palavra
Toda a informação introduzida em um computador (sejam dados que serão processados ou
instruções de um programa) precisa ser entendida pela máquina, para que possa corretamente interpreta-la e
processá-la.
O computador, sendo um equipamento eletrônico, armazena e movimenta as informações
internamente sob forma eletrônica; esta pode ser um valor de voltagem ou de corrente (sabemos também que
na memória secundária as informações são armazenadas sob a forma magnética ou ótica).
Página 6 de 58
______________________________________________________Organização de Sistemas
Operacionais
Para que esta máquina pudesse representar eletricamente todos os símbolos utilizados na
linguagem humana, seriam necessários mais de 100 diferentes valores (ou de corrente). Tal máquina
certamente seria difícil de ser construída para fins comerciais e, possivelmente, teria confiabilidade muito
baixa.
Depois do ENIAC, as próximas máquinas (computadores) construídas foram máquinas binárias.
Devido ao fato que seria muito mais simples e confiável um circuito capaz de gerar e manipular o menor
número possível de valores distintos, isto é, capaz de entender apenas dois valores diferentes: 0 e 1.
Além disso, com uma máquina binária, torna-se mais simples o emprego da lógica booleana (do
SIM/NÃO, ABERTO/FECHADO, ACIMA/ABAIXO, LIGADO/DESLIGADO etc.).
Dessa forma, os computadores digitais (que trabalham com valores discretos) são totalmente
binários. Toda a informação introduzida em um computador é convertida para a forma binária, através do
emprego de um código qualquer de armazenamento.
As linguagens utilizadas pelos humanos possuem uma estrutura de informação criada para
permitir a construção dos elementos necessários à comunicação entre pessoas, seja no formato falado seja
no escrito. Assim é que nos comunicamos uns com os outros através de trechos do conjunto de elementos
disponíveis na nossa linguagem, como os caracteres e as palavras, unindo-os de acordo com as regras de
construção estabelecidas (léxica e sintaxe).
O menor elemento disponível de uma linguagem humana é o caractere.
A menor unidade de informação armazenável em um computador é o algarismo binário ou dígito
binário, conhecido como bit (contração das palavras inglesas binary digit). O bit pode ter, então, somente
dois valores: 0 e 1.
No entanto, um caractere isoladamente posto praticamente nada significa para nosso sentido de
comunicação, razão por que criaram-se as palavras que são conjuntos de caracteres formando um sentido de
informação útil.
Da mesma forma que na nossa linguagem a menor unidade de informação (o caractere) pouco
ou nada significa como informação útil, em computação, com possibilidades tão limitadas, o bit pouco pode
representar isoladamente; por essa razão, as informações manipuladas por um computador são codificadas
em grupos ordenados de bits, de modo a terem um significado útil.
O menor grupo ordenado de bits que pode representar uma informação em computadores é o
caractere da linguagem dos humanos, justamente a menor unidade de informação das nossas linguagens
(como se pode verificar, em computação há um nível ainda mais baixo de representação de informação que é
o bit).
Qualquer caractere a ser armazenado em um sistema de computação é convertido em um
conjunto de bits previamente definido para o referido sistema (chama-se de código de representação de
caracteres).
A primeira definição formal atribuída a um grupo ordenado de bits, para efeito de manipulação
interna mais eficiente, foi instituída pela IBM e é, atualmente, utilizada por praticamente todos os fabricantes
de computadores. Trata-se do byte, definido como um grupo ordenado de oito bits, tratados de forma
individual, como unidade de armazenamento e transferência.
O byte foi definido para servir de elemento de referência para a construção e funcionamento dos
dispositivos de armazenamento e também como referência para os processos de transferência de dados para
os periféricos e CPU/MP.
Como os principais códigos de representação de caracteres utilizam grupos de oito bits por
caractere, os conceitos de byte e caractere tornam-se semelhantes, e as palavras, quase sinônimas. O termo
caractere é mais empregado para fins comerciais, enquanto o termo byte é empregado mais na linguagem
técnica dos profissionais da área.
Como os computadores são máquinas binárias, todas as indicações numéricas referem-se a
potência de 2 e não a potência de 10 como, por exemplo, no sistema métrico, e por essa razão, o Kb
Página 7 de 58
______________________________________________________Organização de Sistemas
Operacionais
(kilobyte) representa 1024 unidades, o Mb (megabyte) representa 1.048.576 unidades e o Gb (gigabyte)
indica um valor igual a 1024 Mb ou 1.048.576 Kb ou 1.073.741.824 unidades (byte).
Com o progressivo aumento da capacidade dos dispositivos de armazenamento dos
computadores, estão sendo utilizados mais dois novos elementos para abreviar valores mais elevados: tratase do termo tera (Tb), para representar um valor igual a 1024 Gb, e do peta (Pb) para representar 1024 Tb.
Certamente, em um futuro próximo, estaremos utilizando outras abreviaturas mais poderosas.
Dessa forma, os valores utilizados em computação para indicar capacidade de memória são
normalmente compostos de um número (sempre entre 0 e 999) e uma das abreviaturas citadas, como mostra
a tabela abaixo:
1 Kb = 1024 bytes
1 Mb = 1024 Kb = 1024 x 1024 = 1.048.576 bytes
1 Gb = 1024 Mb = 1.048.576 Kb = 1.048.576 x 1024 = 1.073.741.824 bytes
256 Kb = 256 x 1024 = 262.124 bytes
64 Mb = 64 = 1024 = 65.536 Kb = 65.536 x 1024 = 67.108.864 bytes
16 Gb = 16 x 1024 Mb = 16.384 x 1024 = 16.777.216 Kb = 16.777.216 x 1024 = 17.179.869.184 bytes
A estrutura das linguagens dos humanos inicia pelo caractere e segue organizando grupos de
caracteres para formar uma unidade útil de informação, as palavras.
Também em computação criou-se o conceito de palavra, embora nesse caso ele tenha pequenas
diferenças em relação às palavras das nossas linguagens. Assim, além do bit e do byte, temos o conceito
relacionado com o armazenamento e a transferência de informações entre MP e CPU, porém mais
especialmente relacionado ao processamento de dados pela CPU, denominado palavra.
Inicialmente, podemos definir a palavra como um conjunto de bits que representa uma
informação útil para os computadores. Desse modo, uma palavra estaria associada ao tipo de interação entre
MP e CPU, que é individual, informação por informação. Ou seja, a CPU processa instrução por instrução
(cada uma estaria associada a uma palavra), armazena ou recupera número a número (cada um estaria
associado a uma palavra), e assim por diante.
A palavra nos computadores é um valor fixo e constante para um dado processador,
diferentemente das linguagens dos humanos onde a palavra têm quantidades variáveis de caracteres.
O conceito de palavra não é rigorosamente igual para todos os fabricantes. Alguns estabelecem
o tamanho dos registradores internos da CPU igual ao da palavra, enquanto outros usam este conceito de
palavra de modo mais abrangente.
De modo geral, usam-se dois valores diferentes: um relacionado à unidade de armazenamento –
o byte e outro para indicar a unidade de transferência e processamento – a palavra. Em geral, a CPU
processa valores representados por uma quantidade de bits igual à da palavra, indicando assim a capacidade
de processamento do sistema.
2.1.2- Conceito de Arquivos e Registros.
Todo processamento em um computador consiste na manipulação de dados segundo um
conjunto de instruções que, globalmente, chamamos de programa.
Para que seja possível individualizar grupos diferentes de informações (o conjunto de dados de
um programa constitui um grupo diferente do conjunto de dados de outro programa, por exemplo), os
sistemas operacionais (programas que controlam o armazenamento e recuperação dessas informações para
entrada, saída ou guarda em memória secundária) estruturam esses grupos de dados sob uma forma
denominada arquivo.
Um arquivo de informações (ou dados) é um conjunto formado por dados (ou informações) de
um mesmo tipo ou para uma mesma aplicação.
Página 8 de 58
______________________________________________________Organização de Sistemas
Operacionais
Cada arquivo é constituído por itens individuais de informação chamados registros.
Um programa é também um arquivo (embora constituído de um único registro, visto que as
instruções não são consideradas como registros individuais).
A estrutura de armazenamento e recuperação de informações na memória secundária de um
sistema de computação é concebida segundo o conceito de arquivos e registros. Isso porque, na memória
secundária, o sistema operacional pode guardar informações em grupos para obter maior eficiência na
transferência com a memória principal.
O processo é diferente da estrutura da memória principal, onde a preocupação é com itens
individuais de informação.
2.2- CLASSIFICAÇÃO DE SISTEMAS DE COMPUTAÇÃO
Inicialmente, os computadores eram agrupados em dois tipos:


Pessoal: caracterizavam-se pela limitação de recursos de periféricos, pela não conexão com outros
equipamentos e pela baixa velocidade de transmissão de dados.
Profissional: permitiam a expansão de periféricos à sua configuração básica, maior velocidade de
transmissão e a conexão a outros equipamentos.
Eram classificados, quanto às características de utilização:
 Científicos: que possuem uma pequena entrada de dados; um processamento complexo, com grandes

rotinas de cálculos e uma pequena saída de resultados.
Comerciais: que possuem uma grande entrada de dados; um processamento relativamente simples e
uma grande saída de resultados.
Quanto às características de operação:
 Analógicos: computadores que executam trabalhos usando elementos representados por grandezas

físicas, como por exemplo, a intensidade de uma corrente elétrica ou o ângulo de giro de uma
engrenagem. São computadores criados para uma finalidade específica, isto é, só se aplicam a um
determinado trabalho. Os resultados obtidos com o uso de computadores analógicos são aproximados e
servem ao próprio sistema onde é utilizado, como por exemplo: controle de temperatura de uma caldeira
utilizando sensores, medidor de água ou de energia elétrica.
Digitais: computadores que realizam suas operações utilizando elementos representados por grandezas
matemáticas (números), ou seja, operam dígito a dígito. São computadores destinados a aplicações
múltiplas, podendo ser utilizados em diversas tarefas. Por utilizar valores numéricos, os resultados obtidos
com esse tipo de computador são exatos, como por exemplo: os cálculos de engenharia.
(O computador analógico "mede" e o computador digital "conta")
Quanto às categorias:
 Microcomputadores ou Computadores Pessoais (PC): São computadores de dimensões relativamente
pequenas, de modo que é possível a uma carregá-lo. Podemos classificar os microcomputadores em
palmtop, laptop ou desktop.
Página 9 de 58
______________________________________________________Organização de Sistemas
Operacionais

Computador Palmtop: é um computador pessoal do tamanho de uma agenda ou de calculadora,
pesando mais ou menos 600 gramas. É alimentando por pilhas ou por energia convencional,
não possui drive interno e tem um sistema operacional residente.

Computador Laptop: é um computador pessoal, do tamanho de uma pasta de executivo ou de
um livro grosso. Pode ser alimentado por baterias ou energia convencional, utiliza qualquer
software ou periférico de um micro de mesa.

Computador Desktop: pode ter uso pessoal ou empresarial, pode ser mono ou multiusuário, tem
o tamanho aproximado de três caixas de sapato, pesa cerca de 5 kg, mas para ser utilizado
exige o acoplamento de um monitor de vídeo e de um teclado. É alimentado via tomada.
 Estação de Trabalho ou Workstation: é essencialmente um microcomputador projetado para realizar
tarefas pesadas, em geral na área cinetífica ou industrial, como complexas computações matemáticas,
projetos com auxílio de computação (CAD), fabricação com auxílio de computação (CAM) e a
composição, manipulação e apresentação de gráficos e imagens de altíssima resolução. Essas tarefas
requerem mais velocidade de processamento, mais capacidade de memória e dispositivo de vídeo de
mais alta qualidade do que as características usuais de um microcomputador.
 Minicomputador: São equipamentos empresariais multiusuários de alta performance, equipados com
discos de alta velocidade, geralmente dotados de processadores RISC de alto desempenho.
 Grande Porte ou Mainframe: São equipamentos empresariais, multiusuários, destinados a instalações
que precisam processar grandes quantidades simultâneas de dados e controlar grande quantidade de
terminais.
 Supercomputadores: é projetado primariamente para atender a um único propósito – realizar grandes
quantidades de cálculos matemáticos o mais rapidamente possível. Podem realizar aplicações que
demandam mais o processador que os demais componentes, tasi como: previsão do tempo, simulação,
modelagem tridimensional etc.
2.3- MEDIDAS DE DESEMPENHO DE SISTEMAS DE
COMPUTAÇÃO
Na busca do aumento de desempenho de sistemas de computação, verifica-se que a medida geral
desde desempenho depende fundamentalmente da capacidade e da velocidade de seu diferentes
Página 10 de 58
______________________________________________________Organização de Sistemas
Operacionais
componentes, da velocidade com que estes componentes se comunicam entre si e do grau de
compatibilidade que possa existir entre eles.
Para aumentar o desempenho desses sistemas é necessário que todos os seus componentes tenham
qualidade adequada para que um deles não comprometa o esforço dos demais.
O desempenho dos processadores, em geral, é medido em termos da sua velocidade de trabalho.
Como o seu trabalho é executar instruções, criou-se a unidade chamada MIPS (milhões de instruções por
segundo) e também a unidade MFLOPS (milhões de operações de ponto flutuante por segundo), que é uma
medida típica de estações de trabalho e de supercomputadores, pois estes costumam trabalhar mais cálculos
matemáticos.
Para tentar equalizar e padronizar as medidas de desempenho de processadores de diferentes
fabricantes e com características diferentes, foram desenvolvidos programas de teste e medida denominados
SPEC (System Performance Evaluation Coorperative). O conjunto compreende 16 programas de teste e
medida, sendo 8 para cálculos com inteiros e 10 para ponto flutuante.
Quando se trata de recuperação ou escrita de informações na memória, o tempo de acesso é uma
unidade de medida mais apropriada, estando relacionada à velocidade de cada componente e à do canal de
interligação entre os dois.
Tempo de resposta é uma medida ligada ao desempenho mais global do sistema e não de um ou outro
componente. Trata-se do período de tempo gasto entre o instante em que o usuário iniciou uma solicitação
ou interrogação e o instante em que o sistema apresentou ao usuário a sua resposta ou atendeu à sua
solicitação.
Uma outra unidade de medida de desempenho é a vazão (throughput), que define a quantidade de
ações ou transações que pode ser realizada por um sistema na unidade de tempo.
Quando estamos nos referindo à velocidade com que um determinado dispositivo de entrada ou de
saída transfere ou recebe dados da UCP, utilizamos uma unidade que mede a taxa de transferência que o
canal de ligação pode suportar, isto é, a quantidade de bits por segundo que pode trafegar pelo referido canal.
Página 11 de 58
______________________________________________________Organização de Sistemas
Operacionais
CONVERSÃO DE BASE
É através de impulsos elétricos, pela polaridade magnética ou pela luz refletida, que a conversão
de dados em informações é feita na CPU (Unidade Central de Processamento).
Para um computador todos os dados, sejam letras, números ou caracteres especiais, são
números. Isto é, a cada letra do alfabeto corresponde um número. Assim, a letra F é representada pelo
número 70.
Por outro lado, o sistema numérico utilizado pelo computador para processar os dados não é o
mesmo utilizado comumente, isto é, o sistema decimal. Na verdade, o computador utiliza principalmente o
sistema binário ou de base 2, 0 e 1, para processar os números, assim, o número 70 no sistema decimal
que representa a letra F e no sistema binário é 01000110. Outro sistema utilizado é o hexadecimal ou de
base 16.
Os diferentes sistemas numéricos utilizam um método diferente de representar quantidades,
assim, um sistema numérico de base x, utiliza x símbolos naquele sistema. Desta forma:
 O sistema de base 10 (sistema decimal) utiliza 10 símbolos (de 0 a 9);
 O sistema de base 16 (sistema hexadecimal) utiliza 16 símbolos;
 O sistema de base 2 (sistema binário) utiliza 2 símbolos, (0 ,1) e outras bases...
3.1- O SISTEMA NUMÉRICO
Surgiu como uma forma de solucionar o problema de armazenamento dos dados. No início do
desenvolvimento dos computadores, a tecnologia mecânica disponível permitia construir um dispositivo capaz
de armazenar dados reduzindo estes ao seu estado fundamental, onde existem apenas duas condições
distintas, ligado ou desligado. Essas duas condições também podem ser descritas como, verdadeiro ou
falso, sim ou não, aberto ou fechado, etc.
Um dispositivo mecânico disponível na época, o relé, era formado por um interruptor que podia
ser ativado quando uma voltagem era aplicada a ele, e desativado quando a voltagem era removida. Se uma
lâmpada pudesse ser conectada a um relé, os dois estados possíveis da lâmpada seriam: aceso (1) ou
apagado (0). Utilizando uma lâmpada podemos representar somente 2 números, utilizando lâmpadas
adicionais podemos representar números cada vez maiores.
Quantas combinações serão possíveis utilizando duas lâmpadas?
Sabendo que temos dois estados para cada lâmpada: 2x2 = 22 = 4
Com três lâmpadas: 2x2x2 = 23 = 8
Com oito lâmpadas: 2x2x2x2x2x2x2x2 = 28 = 256
Assim se substituirmos cada lâmpada apagada por zero e cada lâmpada acesa por um, será
possível começar a contar usando números binários.
Na Tabela 1 apresenta-se uma comparação de números em base decimal e binário utilizando
três lâmpadas.
Página 12 de 58
______________________________________________________Organização de Sistemas
Operacionais
DECIMAL
(base 10)
0
BINÁRIO
(base 2)
0
1
1
2
10
3
11
4
100
5
101
6
110
7
111
Tabela 1
Como transformar números em base 10 para a base 2?
Os números decimais podem ser decompostos em relação às potências do número 2.
NÙMERO
DECIMAL
0
1
2
3
4
5
6
7
8
9
10
8
23
1
1
1
NÚMERO BINÁRIO
4
2
22
21
1
1
1
1
0
0
0
Tabela 2
1
1
0
0
1
1
0
0
1
1
20
0
1
0
1
0
1
0
1
0
1
0
Para se fazer a transformação dos números do sistema decimal para o sistema binário devese dividir o número da base 10 por 2, escreve-se o quociente e o resíduo. Se o quociente é maior do que um,
divide-se o quociente entre dois. Mais uma vez escreve-se o quociente e o resíduo. Este processo é repetido
até que o quociente seja zero. Quando o quociente é zero, escreve-se o quociente e o resíduo. Para se obter
o número binário, escreve cada um dos resíduos começando do último até o primeiro de esquerda à direita,
isto é, o primeiro resíduo escreve-se à esquerda, o segundo resíduo escreve-se à direita do primeiro, assim
por diante.
Exemplo 1: Como transformar o número 10 do sistema decimal ao sistema binário?
Divisão
Quociente
Página 13 de 58
Resíduo
______________________________________________________Organização de Sistemas
Operacionais
10 / 2
5/2
2/2
1/2
=
=
=
=
5
2
1
0
0
1
0
1
O resultado é: 1010 = 10102
Onde:
(Começando de baixo para cima)
1 é o da divisão 1 / 2,
0 é o resíduo da divisão de 2 / 2,
1 é o resíduo da divisão de 5 / 2,
0 é o resíduo da divisão de 10 / 2.
Exemplo 2: Como transformar o número 23 do sistema decimal ao sistema binário?
Divisão
23 / 2
11 / 2
5/2
2/2
1/2
Quociente
11
5
2
1
0
=
=
=
=
=
Resíduo
1
1
1
0
1
O resultado é: 2310 = 101112
Onde:
1 é o resíduo da divisão de 1/ 2 ,
0 é o resíduo da divisão de 2 / 2,
1 é o resíduo da divisão de 5 / 2,
1 é o resíduo da divisão de 11 / 2,
1 é o resíduo da divisão de 23 / 2,
Como transformar números em base 2 para a base 10?
Para transformar um número binário a número decimal MULTIPLICA-SE cada dígito binário pela
potência e se somam todos os valores. Para se obter o valor da potência, utiliza-se 2n onde 2 é a base e n é
o expoente. Como se está transformando um número binário em um decimal, utilizamos a base 2. O
expoente indica a posição do dígito.
Algumas potências do sistema binário são:
28
256
27
128
26
64
25
32
24
16
23
8
22
4
21
2
Exemplo 1: Como transformar o número binário 11012 ao sistema decimal?
11012
= 1 x 23 + 1 x 22 + 0 x 21 + 1 x 20
= 1 x 8 + 1 x 4 + 0 x 2 + 1 x 1
Página 14 de 58
20
1
______________________________________________________Organização de Sistemas
Operacionais
=
=
8 + 4 + 0 + 1
13
Resultado: 11012 = 1310
Exemplo 2: Como transformar o número binário 111112 ao sistema decimal?
111112
= 1 x 24 + 1 x 23 + 1 x 22 + 1 x 21 + 1 x 20
= 1 x 16 + 1 x 8 + 1 x 4 + 1 x 2 + 1 x 1
= 16 + 8 + 4 + 2 + 1
= 31
Resultado: 111112 = 3110
Exemplo 3: Como transformar o número binário 1010102 ao sistema decimal?
1010102
= 1 x 25 + 0 x 24 + 1 x 23 + 0 x 22 + 1 x 21 + 0 x 20
= 1 x 32 + 0 x 16 + 1 x 8 + 0 x 4 + 1 x 2 + 0 x 1
= 32 + 0 + 8 + 0 + 2 + 0 = 42
Resultado: 1010102 = 4210
Como transformar números em base 10 para a base 16?
Outro sistema, muito utilizado, em computação é o Sistema Hexadecimal (BASE 16), isto é,
fazendo agrupamento de 4 em 4.
O conjunto de símbolos é {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}
10, 11, 12, 13, 14, 15
Exemplo 1: Como transformar o número 231 do sistema decimal ao Hexadecimal?
Divisão
Quociente
Resíduo
231 /16
=
14
7
14 /16
=
0
14  E
O resultado é: 23110 = E716
Como transformar números em base 16 para a base 10?
Exemplo 1: Como transformar o número hexadecimal 12E ao sistema decimal?
12E16
= 1 x 162 + 2 x 161 + E x 160
= 1 x 256 + 2 x 16 + 14 x 1
=
256
+
32
+ 14
= 302
Resultado: 12E16 = 30210
Como transformar números em base 16 para a base 2?
Exemplo 1: Como transformar o número 1F de Hexadecimal ao Sistema Binário?
Lembrando que F na base hexadecimal é igual a 15.
Divisão
Quociente
Resíduo
1/2
=
0
1
Página 15 de 58
______________________________________________________Organização de Sistemas
Operacionais
15/2
7/2
3/2
1/2
=
=
=
=
7
3
1
0
O resultado é: 1F16 = 1 1 1 1 12
1
1
1
1
Como transformar números em base 2 para a base 16?
Lembre: 16 = 24 (agrupamento de 4 em 4)
Exemplo 1: Como transformar o número 1 1100 de binário ao sistema hexadecimal?
1
11002
= 1 x 20
=1x1
= 1
= 1 x 23 + 1 x 22 + 0 x 21 + 0 x 20
= 1 x 8 + 1 x 4 + 0 x 2 + 0 x 1
=
8
+
4
+
0 + 0
= 12
= C
Resultado: 111002 = 1C16
3.2- A REPRESENTAÇÃO DE DADOS
A simplicidade do armazenamento de duas condições diferentes faz com que os equipamentos
ainda armazenem dados nesses dois estados fundamentais. A CPU do computador é composta de
pequenos interruptores chamados de transistores, algo parecidos aos relés, mas muito mais
sofisticados.
Os transistores são tão pequenos que uma CPU têm mais de um milhão deles. Cada um dos
dados (0 ou 1) é chamado de bit (binary digit).
Os bits estão agrupados em unidades maiores para poder representar número e outros
símbolos, como os caracteres (incluindo maiúsculas e minúsculas) e os sinais de pontuação que usamos nas
linguagens escritas. Por outro lado, procedimentos especiais tais como:


a tecla RETURN ou
a tecla TAB também devem ser registrados pelo processador.
Para se ter o efeito desejado essas teclas especiais têm de produzir caracteres especiais e
invisíveis. Esses caracteres são chamados caracteres de controle ou códigos de controle.
Os caracteres ou símbolos que queremos ser capazes de representar são:
Caracteres alfabéticos maiúsculos
Caracteres alfabéticos minúsculos
Algarismos
Sinais de pontuação e outros símbolos
Caracteres de controle
Total
26
26
10
32
24
118
Se considerarmos 7 bits, poderíamos representar 27 = 128 caracteres, então sobrariam 10
apenas para gastar com caracteres tais como setas e trevos ou linhas e molduras. Assim, 7 bits não são
necessários. Logo, 8 é o número de bits mais lógico para representar uma unidade, isto é um byte. Então, 1
byte = 8 bits.
Existem dois sistemas importantes desenvolvidos para representar símbolos com números
binários ou bits, EBCDIC e ASCII e um novo padrão, Unicode (Unicódigo).
Página 16 de 58
______________________________________________________Organização de Sistemas
Operacionais
EBCDIC - Foi um dos primeiros sistemas completos para representar símbolos com bits. A
IBM definiu o BCD (Binary Coded Decimal – Decimal Codificado em Binário) para um dos seus primeiros
computadores, que consistiam em palavras de 6 bits que permitiam um máximo de 64 símbolos possíveis,
assim, só podiam trabalhar com letras maiúsculas outros poucos símbolos.
Como outras necessidades foram surgindo, a IBM desenvolveu o sistema EBCDIC (Extended
Binary Coded Decimal Interchange Code – Código Ampliado de Caracteres Decimais Codificados em Binário
para o Intercâmbio de Dados). Este é um código de 8 bits que define 256 símbolos que é utilizado nos
mainframes IBM e em sistemas de médio porte.
O código ASCII (American Standard Code for Information Interchange – Código Padrão
Americano para o Intercâmbio de Informações) - Era um código de 8 bits, mas o oitavo bit servia a um
finalidade especial e era chamado bit de paridade, o qual mais tarde perdeu a sua importância. A IBM
encarregou-se de desenvolver uma versão aprimorada do conjunto ASCII que fizesse uso do oitavo bit,
permitindo a descrição de 256 símbolos.
Na Tabela 3 é mostrada a tabela ASCII nos sistemas: decimal, hexadecimal, octogonal, html
e o caractere que representa. Para se obter o caractere desejado basta pressionar a tecla ALT e o número
em base de decimal. Assim, # é ALT + 35.e444.
Tabela 3 - O código ASCII
A seguir apresentam-se, na Tabela 4, os caracteres adicionais do código ASCII, esta tabela muda
dependendo do teclado utilizado.
Página 17 de 58
______________________________________________________Organização de Sistemas
Operacionais
Tabela 4, Código ASCII estendido mais comum (padrão inglês).
O Unicódigo ou Unicode é um novo padrão para representação de dados que oferecerá dois
bytes para a representação de símbolos.
Com dois bytes poderão ser representados mais de 65 mil símbolos ou caracteres diferentes, o
que é suficiente para todos os caracteres e símbolos do mundo, incluindo os extensos conjuntos de
caracteres e símbolos do chinês, japonês e coreano.
Se houvesse um único conjunto disponível para cobrir todos os idiomas do mundo, os programas
de computador e os dados seriam intercambiáveis.
EXECUÇÃO DE PROGRAMAS
Página 18 de 58
______________________________________________________Organização de Sistemas
Operacionais
O computador realiza tarefas de acordo com instruções que lhe são fornecidas por um
programa.
6.1- PROGRAMA
É a seqüência lógica que determina ao computador o que ele deve fazer. Não devemos
confundir programa com dados: enquanto o programa define o modo de trabalho do computador, os dados
são os elementos que serão manipulados.
Para que o computador possa executar um programa, é necessário que consiga entendê-lo, isto
só ocorrerá quando as instruções deste programa seguirem uma série de normas e estruturas bem definidas.
A escrita de acordo com um conjunto de normas e estruturas preestabelecidas é chamada de linguagem
6.2- LINGUAGEM
É uma maneira de comunicação que segue uma forma e uma estrutura com significado
interpretável. Portanto, linguagem de programação é um conjunto finito de palavras, comandos e instruções,
escrito com o objetivo de orientar a realização de uma tarefa pelo computador.
Logicamente, a linguagem que nós utilizamos em nosso dia-a-dia é diferente da linguagem
utilizada pela máquina. A máquina trabalha somente com códigos numéricos (linguagem de máquina),
baseados nos números O e 1, que representam impulsos elétricos, ausente e presente. Isto é chamado de
sistema binário
Assim, qualquer linguagem de programação deve estar situada entre dois extremos:
 o da linguagem natural do homem (muito clara, porém lenta) e
 o da linguagem de máquina (muito rápida, porém muito complexa).
Este é o conceito de nível de linguagem:
 alto nível para as mais próximas da linguagem do homem;
 baixo nível para as mais semelhantes à linguagem de máquina.
Independentemente do nível da linguagem utilizada, nosso computador continua ”falando” em
linguagem de máquina.
Por isso, toma-se necessário um meio de tradução entre a linguagem utilizada no programa e a
linguagem de máquina. Este meio pode ser dos seguintes tipos:
 Compilador e Interpretador - para linguagem de alto nível;
 Assembler (montador) - para linguagem de baixo nível.
6.2.1- Linguagem de Alto Nível
É uma linguagem próxima ao homem, com apenas uma instrução o computador produz várias
instruções em linguagem de máquina; possui uma linguagem universal para a maioria dos computadores.
As principais características de uma linguagem de alto nível são:
Página 19 de 58
______________________________________________________Organização de Sistemas
Operacionais
 A linguagem é mais orientada para o problema, de modo que o programador deve dar pouca ou nenhuma
atenção às características do computador que irá executar o programa;
 Pode ser aproveitado para outro modelo de computador;
 O número de sentenças a escrever, é multo menor do que o número de instruções que terá o
programador em linguagem de máquina. Isto acontece porque o compilador tem a capacidade de
“compilar”, isto é, encaixar no programa sub-rotinas já existentes numa biblioteca de rotinas.
6.2.2- Linguagem de Baixo Nível
Mais conhecida como “ASSEMBLER”, trabalhando com referências simbólicas que transforma
em linguagem de máquina e designa um endereço de memória correspondente. Monta instrução por
instrução do programa fonte para o programa objeto.
As principais características de uma linguagem de baixo nível são:
 A linguagem é inteiramente orientada para a máquina. Portanto, o programador que vai escrever um
programa numa linguagem de baixo nível deve saber para que modelo de máquina está programando e
conhecer o repertório de instruções e as características desse modelo de máquina;
 Em geral um programa escrito numa linguagem de baixo nível para dados modelo de computador, não
pode ser utilizado por outro modelo, a não ser que os dois modelos de máquina sejam compatíveis em
programação;
 O número de sentenças a escrever, numa linguagem simbólica de baixo nível, é aproximadamente igual
ao número de instruções que o programa conversor produzirá em linguagem de máquina.
6.2.3- Compilador
É um programa interno do computador que traduz nosso programa escrito em linguagem de alto
nível (chamado de programa-fonte, pois é a origem do processo) para um programa equivalente escrito em
linguagem de máquina (programa-objeto). O esquema de compilação:
Programa
objeto
Programa
fonte
Linguagem
de alto nível
Compilador
Linguagem
de baixo
nível
Resultado
O compilador faz a tradução do programa inteiro para posteriormente ser executado. Ao fazer
isto, ele emite o relatório de erros de SINTAXE.
Obviamente, um compilador trabalha somente com uma linguagem, já que é um tradutor
especifico. Para cada linguagem que você for utilizar em seu computador, deve ter um compilador próprio
para traduzi-la.
6.2.4- Interpretador
É um programa residente de alguns computadores (neste caso já vem gravado de fábrica),
também encontrado em disco. Transforma cada comando de um programa escrito em linguagem de alto nível
para o computador executar em linguagem de máquina.
A diferença entre o compilador e o interpretador está na maneira de traduzir.
 Compilador: traduz o programa todo para depois executar apenas o traduzido, então torna a execução
mais rápida.
Página 20 de 58
______________________________________________________Organização de Sistemas
Operacionais
 Interpretador: traduz e envia para execução, instrução por instrução e o programa permanece na forma
fonte.
Vejamos o esquema de interpretador:
Programa
fonte
Linguagem
de alto nível
Interpretador
Resultado
Podemos concluir que o interpretador, a partir do programa-fonte, obtém o resultado, e seu
trabalho é duplo (por isso, lento), ou seja, interpreta e envia simultaneamente, para execução imediata, as
instruções do programa.
6.2.5- Montador
Como vimos, a linguagem de baixo nível é muito semelhante à linguagem de máquina, logo não
deve ser traduzida, e sim, montada.
Quem faz isso é o programa MONTADOR. Seu principio de funcionamento é o mesmo do
compilador o programa-fonte escuto em linguagem de baixo nível é montado pelo montador para obtermos
um programa em linguagem de máquina e, então, enviar para execução.
Esquema do funcionamento do montador:
Programa
fonte
Linguagem
de baixo
nível
Programa
objeto
Montador
Linguagem
de máquina
Página 21 de 58
Resultado
______________________________________________________Organização de Sistemas
Operacionais
SOFTWARE
Para seu computador funcionar de fato, ou seja, servir à você, precisará “rodar” programas que
sejam de seu interesse. Quando dizemos “rodar” estamos utilizando um termo da informática que significa
executar, fazer funcionar um programa ou software.
Temos dois grandes grupos de software: o livre e o proprietário.
O software proprietário é desenvolvido e distribuído para venda por uma empresa (por exemplo,
a Microsoft). Quando “compramos” um software deste tipo, apenas compramos a licença de uso dele.
O software livre “é uma questão de liberdade, não de preço”. Refere-se à liberdade dos usuários
com relação ao software, mais precisamente:
 A liberdade de executar o programa para qualquer propósito;
 A liberdade de estudar como o programa funciona e adaptá-lo para as suas necessidades. Acesso ao
código-fonte é um pré-requisito para essa liberdade;
 A liberdade de redistribuir cópias de modo que você possa ajudar o seu próximo;
 A liberdade de aperfeiçoar o programa e liberar os seus aperfeiçoamento, de modo que toda a
comunidade se beneficie.
São incontáveis a quantidade de softwares existente atualmente. São programas com as mais
diversas funções.
Basicamente, entretanto, existem três tipos de grupos de softwares: Sistemas
Operacionais, Aplicativos e Desenvolvedores.
7.1- SISTEMAS OPERCAIONAIS
Um Sistema Operacional é o chefe dos softwares.
Sem ele nenhum software pode ser
executado.
Ele é uma espécie de “gerente” do computador, responsável por controlar a máquina para os
outros programas rodarem. Ele gerencia seus discos e arquivos, controla como o monitor exibe a imagem,
define as prioridades de impressão de uma impressora, reserva um espaço da memória para cada programa,
enfim, organiza tudo para nós rodarmos nossos programas.
Existem alguns tipos de Sistemas Operacionais: MS-DOS (Microsoft Disc Operation System),
Windows (95, 98, Millenium, 2000, 2003, NT, XP - todos da Microsoft), OS2-Warp (da IBM), Unix, Mac OS
(da Apple, para computadores Machitosh), dentre outros.
Cada Sistema Operacional tem uma finalidade e é produzido para um determinado tipo de
computador. O Windows XP, por exemplo, é o principal Sistema Operacional para PCs, e o mais vendido
hoje em dia.
7.2- SOFTWARES APLICATIVOS
São programas que cumprem finalidades específicas para determinados grupos de pessoas ou
interesses individuais
Alguns aplicativos complementam o sistema operacional, mas a maior parte deles apenas
utilizam o sistema operacional para desenvolver suas funções. Na maioria têm funções específicas muito
importantes.
Página 22 de 58
______________________________________________________Organização de Sistemas
Operacionais
SOFTWARE
FUNÇÃO
APLICATIVO
Editores de Texto
Planilhas Eletrônicas
Gerenciadores de
Banco de Dados
Softwares de
Apresentação
Editores Gráficos e
Editoração
Eletrônica
Produzem documentos, cartas, malas-diretas, jornais, livros, etc. Ajudaram a acabar com a
máquina-de-escrever, pois permitem corrigir um erro automaticamente, e melhorar o texto
quando bem desejar, aumentando o tamanho da letra, alterando a cor, dividindo em colunas,
inserindo um desenho ou foto, etc. Os principais editores de texto são Word (Microsoft),
WordPró (Lotus) e Word Perfect (Corel).
São editores especiais, capazes de construir planilhas de cálculos, envolvendo fórmulas que
você cria ou muitas outras científicas, financeiras, etc. As planilhas eletrônicas criam ainda
gráficos com variados recursos em 3D, dentre muitas outras aplicações.
Com as planilhas você pode construir apresentações utilizando programação, sofisticando um
relatório financeiro com resultados de cálculos, botões que realizam movimentações e ações,
tudo em um único documento, ou pasta, como é chamada. As principais planilhas eletrônicas
são o Excel (Microsoft), Lotus 1-2-3 (Lotus), QuattroPro (Corel), dentre outras.
São programas de uso específico para o controle e gerenciamento de dados.
Servem, por exemplo, para uma empresa que deseja controlar seus clientes, endereço, dados,
e atrelá-los à diversos tipos de consulta e exibição, desde relatórios até o envio de cobrança.
Como exemplos temos o Access (Microsoft), Dbase, Approach e o Fox Pró.
Os softwares gráficos para apresentações são ferramentas de trabalho extraordinárias à
disposição do usuário de microcomputadores. Trata-se de softwares que permitem a criação
de apresentações, essenciais quando se deseja transmitir uma idéia, apresentar um novo
projeto, ministrar treinamentos e palestras ou simplesmente criar um folheto.
Esses softwares permitem a criação de apresentações eficientes com facilidade. Entre os
softwares que se enquadram nessa categoria, merecem destaque produtos como o
PowerPoint (Microsoft) e Freelance (Lótus).
São programas específicos, com a capacidade de trabalhar com alta resolução gráfica e
produzir criações profissionais, como jornais, panfletos publicitários, etc., utilizando fotos,
imagens e layout próprio. Destacam-se nos editores gráficos o Corel, Photo Style, MS
Imager, Imager Composer, etc. Entre os programas de editoração eletrônica o Page Maker,
Publisher, dentre outros.
8.3- SOFTWARES DESENVOLVEDORES
São programas com a finalidade especial de criar programas. Muitos de nossos programas
foram criados por eles, e utilizam diferentes linguagens de programação, dependendo da finalidade desse
programa.
Quando queremos criar algum programa, utilizamos estes desenvolvedores, e digitamos ou
usamos seus recursos de criação. Ao criarmos o programa, o desenvolvedor compila-o, ou seja, transforma o
editado em um arquivo de execução do programa.
Dependendo do uso e como foi criado, os desenvolvedores podem ser usados para distintas
situações. Como exemplo, temos o Visual Basic (da Microsoft), o C++ Builder, Active X, J++ Builder e
Delphi.
8.4- VÍRUS E ANTIVÍRUS
Um vírus de computador nada mais é que um programa ou instrução de máquina que visa prejudicar
o próprio usuário ou a terceiros.
Em informática, um vírus de computador é um programa malicioso desenvolvido por programadores
que, tal como um vírus biológico, infecta o sistema, faz cópias de si mesmo e tenta se espalhar para outros
computadores, utilizando-se de diversos meios. Em 2007, foram detectados cerca de 150.000 vírus
conhecidos.
A maioria das contaminações ocorrem do usuário executando o arquivo infectado recebido como um
anexo de um e-mail. A segunda causa de contaminação é por Sistema Operacional desatualizado, sem a
aplicação de corretivos, que poderiam corrigir vulnerabilidades conhecidas dos sistemas operacionais ou
aplicativos, que poderiam causar o recebimento e execução do vírus inadivertidamente.
Página 23 de 58
______________________________________________________Organização de Sistemas
Operacionais
Ainda existem alguns tipos de vírus que permanecem ocultos em determinadas horas, entrando em
execução em horas especificas.
8.4.1- Possíveis Danos
 Perda de desempenho do computador;
 Exclusão de arquivos;
 Alteração de dados;
 Acesso a informações confidenciais por pessoas não autorizadas;
 Perda de desempenho da rede (local e Internet);
 Monitoramento de utilização (espiões);
 Desconfiguração do Sistema Operacional;
 Inutilização de determinados programas.
8.4.2-
Nomenclatura dos Vírus
Ainda não existe uma padronização na escolha do nome de um vírus. Um mesmo vírus recebe
diferentes nomes das várias firmas de antivírus.
A Symantec apresenta um pequeno glossário no seu site onde ela se baseia para dar nome a um
determinado vírus. Ela mantém o objetivo de ao denominar os vírus, indicar já no seu nome certas
características, a fim de melhor classificar a ação do mesmo e garantido a melhor confiabilidade. A U. S.
Computer Emergency Readiness Team (US-CERT), equipe de segurança digital do governo norte-americano,
está propondo uma unificação dos nomes. Apresentou um sistema único de nomenclatura, chamado de
“Denominação Comum para Códigos Maliciosos” (CME, na sigla em inglês), visando o fim das diferenças de
nomenclatura.
8.4.3-
Assinaturas dos Vírus
As assinaturas dos vírus são uma seqüência de caracteres que o representa. É através desta
seqüência que os antivírus identificam os arquivos contaminados, pois na maioria dos casos os vírus passam
uma parte de seu código para os arquivos ao contamina-los. As assinaturas são definidas pelas empresas
desenvolvedoras de antivírus com o objetivo de:
 Evitar os falso-positivos (quando um arquivo sadio é apontado como infectado);
 Reconhecer o maior número de variantes do vírus;
 Identificar o código mal intencionado na maior quantidade de arquivos possível.
As assinaturas definidas pelas empresas não são as mesmas para todos os softwares antivírus,
portanto um antivírus de uma marca pode detectar uma variante de um vírus conhecido (pelo fato da parte do
código alterado pela variante não afetar a assinatura definida) e outro antivírus de outra marca pode não
detectá-lo.
Página 24 de 58
______________________________________________________Organização de Sistemas
Operacionais
8.4.4-
Técnicas de Esconderijo dos Vírus
Os vírus (seja de que tipo forem) escondem-se e protegem-se cada vez melhor dos antivírus e do
acesso das pessoas. Eis algumas técnicas usadas por alguns vírus:
Técnica
Modo de Agir
Encriptação
Os vírus usam a encriptação para que o código não fique visível para os antivírus
e para que não possam ser pagados da pasta original. Esta técnica é usada para
que os vírus permaneçam mais tempo no computador. Mas os antivírus da
atualidade já estão preparados contra esta técnica, apesar de ser difícil
conseguirem elimina-los.
Desativação de antivírus
Quando os vírus desativam os antivírus, eles não são identificados e
consequentemente não são removidos.
Esconder-se em pastas do sistema
As pessoas não querem estragar os seu sistema operacional removendo pastas
do sistema, portanto muitos vírus escondem-se lá para evitar que o usuário os
remova manualmente.
Cookie
Alguns cookies armazenados por sites mal intencionados, podem possuir linhas e
códigos que visam roubar informações. Outros casos são de vírus que roubam
cookies para obter logins e senhas.
8.4.5-
Crackers x Hackers
Há quem diga que cracker e hacker são a mesma coisa, mas tecnicamente há uma diferença.
Hackers são os que quebram senhas, códigos e sistemas de segurança por puro prazer em achar tais
falhas. Preocupam-se em conhecer o funcionamento mais íntimo de um sistema computacional ou seja uma
pessoa “boa”.
Já os Crackers são os criminosos virtuais, que extorquem pessoas usando seus conhecimentos,
usando as mais variadas estratégias. Há cerca de 20 anos, eram aficcionados em informática, conheciam
muitas linguagens de programação e quase sempre jovens, que criavam seus vírus, para muitas vezes, saber
o quanto eles poderiam se propagar. Hoje em dia é completamente diferente; são pessoas que atacam
outras máquinas com fins criminosos com um objetivo traçado: capturar senhas bancárias, números de
contas e informações privilegiadas que lhes despertem a atenção. Em geral, um hacker não gosta de ser
confundido com um cracker.
8.4.6-
Tipos de Vírus de Computador
Tipos
Ação
Vírus de Boot
Um dos primeiros tipos de vírus conhecido, este vírus infecta a partição de inicialização do
sistema operacional. Assim, ele é ativado quando o computador é ligado e o sistema operacional
é carregado.
Time Bomb
São programados para se ativarem em determinados momentos, definidos pelo seu criador.
Uma vez infectado um determinado sistema, o vírus somente se tornará ativo e causará algum
tipo de dano no dia ou momento previamente definido.
Minhocas, Worm ou
Vermes
Com o interesse de fazer um vírus se espalhar da forma mais abrangente possível, seus
criadores por vezes, deixaram de lado o desejo de danificar o sistema dos usuários infectados e
passaram a programar seus vírus de forma que apenas se repliquem, sem o objetivo de causar
graves danos ao sistema. Desta forma, seus autores visam tornar suas criações mais
Página 25 de 58
______________________________________________________Organização de Sistemas
Operacionais
Tipos
Ação
conhecidas na Internet. Eles estão mais aperfeiçoados, já há uma versão que ao atacar a
máquina hospedeira, são só se replica, mas também se propaga pela internet pelos e-mail que
estão registrados no cliente de e-mail, infectando as máquinas que abrirem aquele e-mail,
reiniciando o ciclo.
Trojans ou Cavalos
de Tróia
Estes vírus trazem em seu bojo um código a parte, que permite a um estranho acessar o micro
infectado ou coletar dados e envia-los pela internet para um desconhecido, sem notificar o
usuário. Inicialmente, permitiam que o micro infectado pudesse receber comandos externos, sem
o conhecimento do usuário. Desta forma o invasor poderia ler, copiar, apagar e alterar dados do
sistema. Atualmente procuram roubar dados confidenciais do usuário, como senhas bancárias.
Hijackers
São programas ou scripts que “seqüestram” navegadores de Internet, principalmente o Internet
Explorer. Quando isto ocorre, este altera a página inicial do browser e impede de muda-la, exibe
propagandas em pop-ups ou janelas novas, instala barras de ferramentas no navegador e podem
impedir acesso a determinados sites (como sites de software de antivírus, por exemplo).
Vírus de Orkut
Em 2007, houve muitas ocorrências deste tipo de vírus. Ele é capaz de enviar scraps (recados)
automaticamente para todos os contados da vítima na rede social, além de roubar senhas e
contas bancárias de um computador infectado através da captura de teclas e cliques. Apesar de
que aqueles que receberem o recado precisam clicar em um link para se infectar, a relação de
confiança existente entre os amigos aumenta muito a possibilidade de o usuário clicar sem
desconfiar de que o link leva para um worm. Ao clicar no link, um arquivo bem pequeno é
baixado para o computador do usuário. Ele se encarrega de baixar e instalar o restante das
partes da praga, que enviará a mensagem para todos os contados do Orkut, o vírus também
rouba senhas de banco, em outras palavras, é um clássico Banker.
Keylogger
É uma das espécies de vírus existentes, é um capturador de teclas. Ao serem executados,
normalmente os keyloggers ficam escondidos no sistema operacional, sendo assim a vítima não
tem como saber que está sendo monitorada. Atualmente, os leyloggers são desenvolvidos para
meios ilícitos. São utilizados também por usuários com um pouco mais de conhecimento para
obter senhas pessoais, como e-mail, orkut, MSN, entre outros. Existem tipos que capturam a
tela da vítima, sendo assim, quem implantou-o tem controle sobre o que a pessoa está fazendo
no computador.
Estado Zumbi
Ocorre quando é infectado e está sendo controlado por terceiros. Podem usa-lo para disseminar
vírus, keyloggers e procedimentos invasivos em geral. Usualmente esta situação ocorre pelo fato
da máquina estar com o seu Firewall e/ou Sistema Operacional desatualizados.
Vírus de Macro
Vinculam suas macros a modelos de documentos gabaritos e a outros arquivos de modo que,
quando um aplicativo carrega o arquivo e executa as instruções nele contidas, as primeiras
instruções executadas serão as do vírus.
8.4.7-
Antivírus
Os antivírus são programas desenvolvidos pro firmas de segurança, com o objetivo de detectar e
eliminar vírus encontrados no computador. Os antivírus possuem uma base de dados contendo as
assinaturas dos vírus de quem podem eliminar. Desta forma, somente após a atualização de seu banco de
dados, os vírus recém-descobertos podem ser detectados.
Alguns antivírus dispõem da tecnologia heurística, que é uma forma de detectar a ação de um vírus
ainda desconhecido através de sua ação no sistema do usuário.
Hoje em dia os antivírus podem ter proteção em tempo real que detecta os códigos maliciosos desde
que você inicie o computador até que o desligue. Esta tecnologia torna mais fácil de o usuário ficar protegido.
O segredo do antivírus é mantê-lo atualizado, e essa é uma tarefa que a maioria deles já faz
automaticamente, bastando estar conectado à Internet para ser baixado do site do fabricante a atualização e
estar configurado para isso.
Página 26 de 58
______________________________________________________Organização de Sistemas
Operacionais
SISTEMA OPERACIONAL
9.1- VISÃO GERAL
Um sistema operacional, por mais complexo que possa parecer, é apenas um conjunto de rotinas
executado pelo processador, de forma semelhante aos programas dos usuários. Sua principal função é
controlar o funcionamento de um computador, gerenciando a utilização e o compartilhamento dos seus
diversos recursos, como processadores, memórias e dispositivos de entrada e saída.
Sem o sistema operacional, um usuário para interagir com o computador deveria conhecer
profundamente diversos detalhes sobre hardware do equipamento, o que tornaria seu trabalho lento e com
grandes possibilidades de erros. O sistema operacional tem como objetivo funcionar como uma interface
entre usuário e o computador, tornando sua utilização mais simples, rápida e segura.
A grande diferença entre um sistema operacional e aplicações convencionais é a maneira como suas
rotinas são executadas em função do tempo. Um sistema operacional não é executado de forma linear como
a maioria das aplicações, com início, meio e fim. Suas rotinas são executadas concorrentemente em função
de eventos assíncronos, ou seja, eventos que podem ocorrer a qualquer momento.
9.2- FUNÇÕES BÁSICAS
Um sistema operacional possui inúmeras funções, contudo é importante saber suas funções básicas.
São elas:
 Facilidade de acesso aos recursos do sistema: um computador ou sistema operacional possui diversos
dispositivos. Quando utilizamos um desses dispositivos, não nos preocupamos com a maneira como é
realizada esta comunicação e os inúmeros detalhes envolvidos nas operações de leitura e gravação. O
sistema operacional serve de interface entre os usuários e os recursos disponíveis, tornando esta
comunicação transparente, além de permitir um trabalho mais eficiente e com menores chances de erros.
Este conceito de ambiente simulado, criado pelo sistema operacional, é denominado máquina virtual e
está presente na maioria dos sistemas modernos. É comum pensar-se que compiladores, linkers,
bibliotecas, depuradores e outras ferramentas fazem parte do sistema operacional, mas, na realidade,
estes recursos são apenas utilitários, destinados a facilitar a interação do usuário com o computador.
 Compartilhamento de recursos de forma organizada e protegida: em sistemas onde diversos
usuários compartilham recursos do sistema computacional, é necessário controlar o uso concorrente
desses recursos. O compartilhamento de recursos permite, também, a diminuição de custos, na medida
em que mais de um usuário pode utilizar as mesmas facilidades concorrentemente, como discos,
impressoras, linhas de comunicação etc.
9.3- TIPOS DE SISTEMAS OPERACIONAIS
Os tipos de sistemas operacionais e a sua evolução estão relacionados diretamente com a evolução
do hardware e das aplicações por ele suportados.
A evolução dos sistemas operacionais para computadores pessoais e estações de trabalho
popularizou diversos conceitos e técnicas, antes só conhecidos em ambientes de grande porte. A
nomenclatura, no entanto, não se manteve a mesma. Surgiram novos termos para conceitos já conhecidos,
que foram apenas adaptados para urna nova realidade.
Página 27 de 58
______________________________________________________Organização de Sistemas
Operacionais
9.3.1-
Sistemas Monoprogramáveis/Monotarefa
Os primeiros sistemas operacionais eram tipicamente voltados para a execução de um único
programa. Qualquer outra aplicação, para ser executada, deveria aguardar o término do programa corrente.
Os sistemas monoprogramáveis como vieram a ser conhecidos, se caracterizam por permitir que o
processador, a memória e os periféricos permaneçam exclusivamente dedicados à execução de um único
programa.
Os sistemas monoprogramáveis estão tipicamente relacionados ao surgimento dos primeiros
computadores na década de 1960. Posteriormente, com a introdução dos computadores pessoais e das
estações de trabalho na década de 1970, este tipo de sistema voltou a ser utilizado para atender máquinas
que, na época, eram utilizadas por apenas um usuário na execução de um único programa. Os sistemas
nonotarefa, como também são chamados, se caracterizam por permitir que todos os recursos do sistema
fiquem exclusivamente dedicados a uma única tarefa.
Neste tipo de sistema, enquanto
um programa aguarda por um evento, como a
digitação de um dado, o processador permanece
ocioso, sem realizar qualquer tipo de
processamento. A memória é subutilizada caso o
programa não a preencha totalmente, e os
periféricos, como discos e impressoras, estão
dedicados a um único usuário, nem sempre
utilizados de forma integral.
Comparados a outros sistemas, os
sistemas monoprogramáveis ou monotarefa são
de simples implementação, não existindo muita
preocupação com problemas decorrentes do
compartilhamento de recursos, como memória,
processador e dispositivos de E/S.
Página 28 de 58
______________________________________________________Organização de Sistemas
Operacionais
9.3.2-
Sistemas Multiprogramáveis/Multitarefa
Os sistemas multiprogramáveis ou multitarefa são uma evolução dos sistemas
monoprogramáveis. Neste tipo de sistema, os recursos computacionais são compartilhados entre os diversos
usuários e aplicações. Enquanto em sistemas monoprogramáveis existe apenas um programa utilizando os
recursos disponíveis, nos multiprogramáveis várias aplicações compartilham esses mesmos recursos.
Neste tipo de sistema, enquanto
um programa espera por uma operação de
leitura ou gravação em disco, outros programas
podem estar sendo processados neste mesmo
intervalo de tempo. Nesse caso, podemos
observar o compartilhamento da memória e do
processador. O sistema operacional se
preocupa em gerenciar o acesso concorrente
aos seus diversos recursos, como memória,
processador e periféricos, de forma ordenada e
protegida, entre os diversos programas.
As vantagens do uso de
sistemas multiprogramáveis são a redução do
tempo de resposta das aplicações processadas
no ambiente e de custos, a partir do
compartilhamento dos diversos recursos do
sistema entre as diferentes aplicações. Os
sistemas multiprogramáveis, apesar de mais
eficientes que os monoprogramáveis, são de
implementação muito mais complexa.
A partir do número de usuários que interagem com o sistema, podemos classificar os sistemas
multiprogramáveis como monousuário ou multiusuário. Sistemas multiprogramavéis monousuário são
encontrados em computadores pessoais e estações de trabalho, onde há apenas um único usuário
interagindo com o sistema. Neste caso existe a possibilidade da execução de diversas tarefas ao mesmo
tempo como a edição de um texto, uma impressão e o acesso à Internet. Sistemas multiprogramaveis
multiusuário são ambientes interativos que possibilitam diversos usuários conectarem-se ao sistema
simultaneamente.
Os sistemas multiprogramáveis ou multitarefa podem ser classificados pela forma com que
suas aplicações são gerenciadas, podendo ser divididos em sistemas batch, de tempo compartilhado ou de
tempo real. Um sistema operacional pode suportar um ou mais desses tipos de processamento, dependendo
de sua implementação.
Página 29 de 58
______________________________________________________Organização de Sistemas
Operacionais
Sistema
Características
Batch
Foram os primeiros tipos de sistemas operacionais multiprogramáveis a serem
implementados na década de 1960.
Tem a característica de não exigir a interação do usuário com a aplicação. Todas as
entradas e saídas de dados são implementadas por algum tipo de memória
secundária, geralmente arquivos em disco.
Esses sistemas, quando bem projetados, podem ser bastante eficientes, devido à
melhor utilização do processador, entretanto podem oferecer tempos de resposta
longos.
Atualmente, os sistemas operacionais implementam ou simulam o
processamento em batch, não existindo sistemas exclusivamente dedicados a este
tipo de processamento.
De Tempo Compartilhado (ou
time-sharing)
Permitem que diversos programas sejam executados a partir da divisão do tempo do
processador em pequenos intervalos, denominados fatia de tempo (time-slice). Caso
a fatia de tempo não seja suficiente para a conclusão do programa, ele é interrompido
pelo sistema operacional e substituído por um outro, enquanto fica aguardando por
uma nova fatia de tempo. O sistema cria para cada usuário um ambiente de trabalho
próprio, dando a impressão de que todo o sistema está dedicado exclusivamente a
ele.
Estes sistemas permitem a interação dos usuários com o sistema através de terminais
que incluem vídeo, teclado e mouse. Esse sistemas possume uma linguagem de
controle que permite ao usuário comunicar-se diretamente com o sistema operacional
através de comandos. Desta forma é possível verificar arquivos armazenados em
disco ou cancelar a execução de um programa. O sistema, normalmente, responde
em poucos segundos à maioria desses comandos. Devido a esse tipo de interação,
os sistemas de tempo compartilhado também ficaram conhecidos como sistemas online.
A maioria das aplicações comerciais atualmente é processada em sistemas de tempo
compartilhado, pois elas oferecem tempos de resposta razoáveis a seus usuários e
custos mais baixos, em função da utilização compartilhada dos diversos recursos do
sistema.
De Tempo Real
São implementados de forma semelhante aos sistemas de tempo compartilhado. O
que caracteriza a diferença entre os dois tipos de sistemas é o tempo exigido no
processamento das aplicações. Enquanto em sistemas de tempo compartilhado o
tempo de processamento pode variar sem comprometer as aplicações em execução,
nos sistemas de tempo real os tempos de processamento devem estar dentro de
limites rígidos, que devem ser obedecidos, caso contrário poderão ocorrer problemas
irreparáveis.
Não existe a idéia de fatia de tempo, implementada nos sistemas de tempo
compartilhado. Um programa utiliza o processador o tempo que for necessário ou até
que apareça outro mais prioritário. A importância ou prioridade de execução de um
programa é definida pela própria aplicação e não pelo sistema operacional.
9.3.3-
Sistemas com Múltiplos Processadores
Os sistemas com múltiplos processadores caracterizam-se por possuir duas ou mais UCPs
interligadas e trabalhando em conjunto. A vantagem deste tipo de sistema é permitir que vários programas
sejam executados ao mesmo tempo ou que um mesmo programa seja subdivido em partes para serem
executadas simultaneamente em mais de um processador.
Com múltiplos processadores foi possível a criação de sistemas computacionais voltados,
principalmente, para processamento científico aplicado. A princípio qualquer aplicação que faça uso intensivo
da UCP será beneficiada pelo acréscimo de processadores ao sistema. A evolução desses sistemas
devesse, em grande parte, ao elevado custo de desenvolvimento de processadores de alto desempenho.
Os conceitos aplicados ao projeto de sistemas com múltiplos processadores incorporam os mesmos
princípios básicos e benefícios apresentados na multiprogramação, além de outras características e
vantagens específicas como escalabilidade, disponibilidade e balanceamento de carga.
Página 30 de 58
______________________________________________________Organização de Sistemas
Operacionais
 Escalabilidade: é a capacidade de ampliar o poder computacional do sistema apenas adicionando novos
processadores. Em ambientes com um único processador, caso haja problemas de desempenho, seria
necessário substituir todo o sistema por uma outra configuração com amior poder de processamento.
Com a possibilidade de múltiplos processadores, basta acrescentar novos processadores à configuração.
 Disponibilidade: é a capacidade de manter o sistema em operação mesmo em casos de falhas. Neste
caso, se um dos processadores falhar, os demais podem assumir suas funções de maneira transparente
aos usuários e suas aplicações , embora com menor capacidade de computação.
 Balanceamento de carga:
é a possibilidade de distribuir o processamento entre os diversos
processadores da configuração a partir da carga de trabalho de cada processador, melhorando assim, o
desempenho do sistema como um todo.
Um fator-chave no desenvolvimento de sistemas operacionais com múltiplos processadores é a forma
de comunicação entre as UCPs e o grau de compartilhamento da memória e dos dispositivos de entrada e
saída. Em função destes fatores, podemos classificar os sistemas com múltiplos processadores em
fortemente acoplados e fracamente acoplados.
A grande diferença entre os dois sistemas é que em sistemas fortemente acoplados existe apenas
uma memória principal sendo compartilhada por todos os processadores, enquanto nos fracamente
acoplados cada sistema tem sua própria memória individual. Além disso, a taxa de transferência entre
processadores e memória em sistemas fortemente acoplados é muito maior que nos fracamente acoplados.
Sistemas com Múltiplos Processadores
Fortemente acoplados
Características
Existem vários processadores compartilhando uma única
memória física e dispositivos de entrada/saída sendo gerenciados
por apenas um sistema operacional.
Em função destas
características, os sistemas fortemente acoplados também são
conhecidos como multiprocessadores.
Inicialmente, os sistemas com múltiplos processadores estavam
limitados aos sistemas de grande porte, restritos ao ambiente
universitário e às grandes corporações. Com a evolução dos
computadores pessoais e das estações de trabalho, os sistemas
multitarefa evoluíram para permitir a existência de vários
processadores. Atualmente, a grande maioria dos sistemas
operacionais, como o Unix e o Microsoft Windows, implementa
esta funcionalidade.
Fracamente acoplados
Caracterizam-se por possuir dois ou mais sistemas
computacionais conectados através de linhas de comunicação.
Cada sistema funciona de forma independente, possuindo seu
próprio sistema operacional e gerenciando seus próprios
recursos.
Em função destas características, os sistemas
fracamente acoplados também são conhecidos como
multicomputadores. Neste modelo, cada sistema computacional
também pode ser formado por um ou mais processadores.
Página 31 de 58
______________________________________________________Organização de Sistemas
Operacionais
(Figura 1.5)
ESTRUTURA DO SISTEMA OPERACIONAL
10.1- INTRODUÇÃO
O sistema operacional é formado por um conjunto de rotinas que oferecem serviços aos usuários,
ás suas aplicações, e também ao próprio sistema. Esse conjunto de rotinas é denominado núcleo do sistema
ou kernel.
É importante não confundir o núcleo do sistema com aplicações, utilitários ou o interpretador de
comandos, que acompanham o sistema operacional (Fig.4.1). As aplicações são utilizadas pelos usuários e
escondem todos os detalhes da interação com o sistema. Os utilitários, como compiladores e editores de
texto, e interpretadores de comandos permitem aos usuários, administradores e desenvolvedores uma
interação amigável com o sistema.
Existe uma grande dificuldade em compreender a estrutura e o
funcionamento de um sistema operacional, pois ele não é executado
como uma aplicação tipicamente seqüencial, com inicio, meio e fim.
Os procedimentos do sistema são executados concorrentemente sem
uma ordem predefinida, com base em eventos dissociados do tempo
(eventos assíncronos). Muitos desses eventos estão relacionados ao
hardware e a tarefas internas do próprio sistema operacional.
As principais funções do núcleo encontradas na maioria dos
sistemas comerciais estão listadas a seguir. No decorrer do livro,
estaremos abordando estas funções em detalhes:
•
•
•
•
•
•
•
•
•
•
tratamento de interrupções e exceções;
criação e eliminação de processos e threads;
sincronização e comunicação entre processos e threads;
escalonamento e controle dos processos e threads;
gerência de memória;
gerência do sistema de arquivos;
gerência de dispositivos de E/S;
suporte a redes locais e distribuídas;
contabilização do uso do sistema;
auditoria e segurança do sistema.
A estrutura do sistema operacional, ou seja, a maneira corno o código do sistema é organizado e
o inter-relacionamento entre seus diversos componentes, pode variar conforme a concepção do projeto.
Existem diversas abordagens em relação à estrutura de sistemas operacionais que serão tratadas no decorrer
do capitulo. Inicialmente serão apresentados os conceitos de system calls e do mecanismo de modos de
acesso.
10.2- SYSTEM CALLS
Uma preocupação que surge nos projetos de sistemas operacionais e a implementação de
mecanismos de proteção ao núcleo do sistema e de acesso aos seus serviços. Caso uma aplicação que
tenha acesso ao núcleo realize uma operação que altere sua integridade, todo o sistema poderá ficar
comprometido e inoperante.
Página 32 de 58
______________________________________________________Organização de Sistemas
Operacionais
As system calls podem ser entendidas como uma porta de entrada para o acesso ao núcleo do
sistema operacional e a seus serviços. Sempre que um usuário ou aplicação desejar algum serviço do
sistema, é realizada uma chamada a uma de suas rotinas através de uma system call (chamada ao sistema).
O termo system call é tipicamente utilizado em sistemas Unix, porém em outros sistemas o mesmo conceito é
apresentado com diferentes nomes, como system services no Open VMS e Application Program Interface
(API) no Windows da Microsoft.
Para cada serviço disponível existe uma system call associada e cada sistema operacional tem
seu próprio conjunto de chamadas, com nomes. parâmetros e formas de ativação específicos (Fig. 4.2). Isto
explica por que uma aplicação desenvolvida utilizando serviços de um determinado sistema operacional não
pode ser podada diretamente para um outro sistema.
Uma tentativa de criar uma biblioteca de chamada.s padronizadas foi proposta pelos institutos
ISO e IEEE. O padrão POSIX (Portable Operating System Interface for Unix), como foi definido, permitiu que
uma aplicação desenvolvida seguindo este conjunto de chamadas pudesse ser executada em qualquer
sistema operacional que oferecesse suporte ao padrão. Inicialmente voltado para a unificação das diversas
versões do sistema Unix, o POSIX foi incorporado, posteriormente, pela maioria dos sistemas operacionais
modernos.
Através dos parâmetros fornecidos na system call, a solicitação é processada e uma resposta é
retornada á aplicação juntamente com um estado de conclusão indicando se houve algum erro. O mecanismo
de ativação e comunicação entre o programa e o sistema operacional é semelhante ao mecanismo
implementado quando um programa chama uma sub-rotina. As system calls podem ser divididas por grupos
de funcão (Tabela 4.1).
A maioria dos programadores e usuários desconhece os detalhes envolvidos, por exemplo, em
um simples comando de leitura a um arquivo utilizando uma linguagem de alto nível. De forma simplificada, o
comando da linguagem de alto nível é convertido pelo compilador para uma chamada a uma svstem call
especifica, que, quando executada, verifica a ocorrência de erros e retorna os dados ao programa de forma
transparente ao usuário.
10.3- MODOS DE ACESSO
Existem certas instruções que não podem ser colocadas diretamente á disposição das
aplicações, pois a sua utilização indevida ocasionaria sérios problemas à integridade do sistema. Suponha
que uma aplicação atualize um arquivo em disco. O programa, por si só não pode especificar diretamente as
instruções que acessam seus dados no disco. Como o disco é um recurso compartilhado, sua utilização
deverá ser gerenciada unicamente pelo sistema operacional, evitando que a aplicação possa ter acesso a
qualquer área do disco indiscriminadamente. O que poderia comprometer a segurança e integridade do
sistema de arquivos.
Página 33 de 58
______________________________________________________Organização de Sistemas
Operacionais
Funções
System calls
Criação e eliminação de processos e threads
Gerência de Processos e Threads Alteração das características de processos e threads
Sincronização e comunicação entre processos e threads
Obtenção de informações sobre processos e threads
Gerência de memória
Alocação e desalocação de memória
Criação e eliminação de arquivos e diretórios
Alteração das características de arquivos e diretórios
Gerência do sistema de arquivos Abrir e fechar arquivos
Leitura e gravação em arquivos
Obtenção de informações sobre arquivos e diretórios
Gerencia de dispositivos
Alocação e desalocação de dispositivos
Operações de entrada/saída em dispositivos
Obtenção de informações sobre dispositivos
Como visto, fica claro que existem certas instruções que só devem ser executadas pelo sistema
operacional ou sob sua supervisão, impedindo, assim a ocorrência de problemas de segurança e integridade
do sistema. As instruções que têm o poder de comprometer o sistema são conhecidas como instruções
privilegiadas, enquanto as instruções não privilegiadas são as que não oferecem risco ao sistema.
Para que uma aplicação possa executar uma instrução privilegiada, é necessário que no
processador seja implementado o mecanismo de proteção conhecido como modos de acesso. Existem.
basicamente, dois modos de acesso implementados pelos processadores: modo usuário e modo kernel.
Quando o processador trabalha no modo usuário, uma aplicação só pode executar instruções nãoprivilegiadas, tendo acesso a um número reduzido de instruções, enquanto no modo kernel ou supervisor a
aplicação pode ter acesso ao conjunto total de instruções do processador.
O modo de acesso de uma aplicação é determinado por um conjunto de bits localizado no
registrador de status do processador, ou PSW, que indica o modo de acesso corrente. Através desse
registrador, o hardware verifica se a instrução pode ou não ser executada pela aplicação.
A melhor maneira de controlar o acesso as instruções privilegiadas é permitir que apenas o
sistema operacional tenha acesso a elas. Sempre que uma aplicação necessita executar uma instrução
privilegiada, a solicitação deve ser realizada através de uma chamada a uma system call, que altera o modo
de acesso do processador do modo usuário para o modo kernel. Ao término da execução da rotina do
sistema, o modo de acesso retorna para o modo usuário. Caso uma aplicação tente executar uma instrução
privilegiada diretamente em modo usuário, o processador sinalizará um erro, uma exceção é gerada e a
execução do programa é interrompida.
Utilizando o mesmo problema do acesso ao disco apresentado, para o programa atualizar um arquivo
em disco a aplicação deve solicitar a operação de E/S ao sistema operacional por meio de uma system call,
que altera o modo de acesso do processador de usuário para kernel. Após executar a rotina de leitura, o
modo de acesso volta ao estado usuário para continuar a execução do programa.
O mecanismo de modos de acesso também é uma boa forma de proteger o próprio núcleo do sistema
residente na memória principal. Suponha que uma aplicação tenha acesso a áreas de memória onde está o
sistema operacional. Qualquer programador mal-intencionado ou um erro de programação poderia gravar
nesta área, violando o sistema. Com o mecanismo de modos de acesso, para uma aplicação escrever numa
área onde resida o sistema operacional o programa deve estar sendo executado no modo kernel.
Página 34 de 58
______________________________________________________Organização de Sistemas
Operacionais
10.4- ARQUITETURA MONOLÍTICA
A arquitetura monolítica pode ser comparada com uma aplicação formada por vários módulos que
são compilados separadamente e depois linkados, formando um grande e único programa executável, onde
os módulos podem interagir livremente. Os primeiros sistemas operacionais foram desenvolvidos com base
neste modelo, o que tornava seu desenvolvimento e, principalmente, sua manutenção bastante difíceis.
Devido a sua simplicidade e bom desempenho, a estrutura monolítica foi adotada no projeto do MS-DOS e
nos primeiros sistemas Unix.
10.5- ARQUITETURA DE CAMADAS
Com o aumento da complexidade e do tamanho do código dos sistemas operacionais, técnicas
de programação estruturada e modular foram incorporadas ao seu projeto. Na arquitetura de camadas, o
sistema é dividido em níveis sobrepostos. Cada camada oferece um conjunto de funções que podem ser
utilizadas apenas pelas camadas superiores.
O primeiro sistema com base nesta abordagem foi o sistema THE (Technische Hogeschool
Eindhoven), construído por Dijkstra, na Holanda, em 1968, e que utilizava seis camadas. Posteriormente, os
sistemas MULTICS e Open VMS também implementaram o conceito de camadas, sendo estas concêntricas.
Neste tipo de implementação, as camadas mais internas são mais privilegiadas que as mais externas.
A vantagem da estruturação em camadas é isolar as funções do sistema operacional,
facilitando sua manutenção e depuração, além de criar uma hierarquia de níveis de modos de acesso,
protegendo as camadas mais internas. Uma desvantagem para o modelo de camadas é o desempenho. Cada
nova camada implica uma mudança no modo de acesso. Por exemplo, no caso do Open VMS, para se ter
acesso aos serviços oferecidos pelo kernel é preciso passar por três camadas ou três mudanças no modo de
acesso.
Atualmente, a maioria dos sistemas comerciais utiliza o modelo de duas camadas, onde
existem os modos de acesso usuário (não-privilegiado) e kernel (privilegiado). A maioria das versões do Unix
e do Windows 2000 da Microsoft estão baseados neste modelo.
Página 35 de 58
______________________________________________________Organização de Sistemas
Operacionais
10.6- MÁQUINA VIRTUAL
Um sistema computacional é formado por níveis, onde a camada de uiveI mais baixo é o
hardware. Acima desta camada encontramos o sistema operacional, que oferece suporte para as aplicações.
O modelo de máquina virtual, ou virtual machine (VM), cria um nível intermediário entre o hardware e o
sistema operacional, denominado gerência de máquinas virtuais. Este nível cria diversas maquinas virtuais
independentes, onde cada unia oferece uma cópia virtual do hardware, incluindo os modos de acesso,
interrupções, dispositivos de E/S etc.
Como cada máquina virtual é independente tias demais, é possível que cada VM tenha seu
próprio sistema operacional e que seus usuários executem suas aplicações como se todo o computador
estivesse dedicado a cada um deles. Na década de 1960, a IBM implementou este modelo no sistema
VM/370, permitindo que aplicações batch, originadas de antigos sistemas OS/360, e aplicações de tempo
compartilhado pudessem conviver na mesma máquina de forma transparente a seus usuários e aplicações.
Além de permitir a convivência de sistemas operacionais diferentes no mesmo computador, este
modelo cria o isolamento total entre cada VM, oferecendo grande segurança para cada máquina virtual. Se,
por exemplo, uma VM executar uma aplicação que comprometa o funcionamento do seu sistema operacional,
as demais máquinas virtuais não sofrerão qualquer problema. A desvantagem desta arquitetura é a sua
grande complexidade, devido à necessidade de se compartilhar e gerenciar os recursos do hardware entre as
diversas VMs.
Outro exemplo de utilização desta arquitetura ocorre na
linguagem Java, desenvolvida pela Sun Microsystems. Para
se executar um programa um programa é necessario uma
máquina virtual Java (Java Virtual Machine - JVM). Qualquer
sistema operacional pode suportar urna aplicação Java.
desde que exista urna JVM desenvolvida para ele. Desta
forma, a aplicação não precisa ser recompilada para cada
sistema computacional. tornando-se independente do
hardware e sistema operacional utilizados. A desvantagem
deste modelo é o seu menor desempenho se comparado a
uma aplicação compilada e executada diretamente em urna
arquitetura especifica.
Página 36 de 58
______________________________________________________Organização de Sistemas
Operacionais
10.7- ARQUITETURA MICROKERNEL
Uma tendência nos sistemas operacionais modernos é tomar o núcleo do sistema operacional o
menor e mais simples possível. Para implementar esta idéia, os serviços do sistema são disponibilizados
através de processos, onde cada um é responsável por oferecer um conjunto específico de funções, como
gerência de arquivos. gerência de processos, gerência de memória e escalonamento.
Sempre que uma aplicação deseja algum serviço, é realizada urna solicitação ao processo
responsável. Neste caso, a aplicação que solicita o serviço é chamada de cliente, enquanto o processo que
responde à solicitação é chamado de servidor. Um cliente, que pode ser uma aplicação de um usuário ou um
outro componente do sistema operacional. solicita um serviço enviando urna mensagem para o servidor O
servidor responde ao cliente através de urna outra mensagem. A principal função do núcleo é realizar a
comunicação, ou sela, a troca de mensagens entre cliente e servidor .
O conceito de arquitetura microkernel surgiu no sistema
operacional Mach, na década de 1980, na Universidade CarnegieMellon. O núcleo do sistema Mach oferece basicamente quatro
serviços: gerência de processos, gerência de memória,
comunicação por troca de mensagens e operações de E/S, todos
em modo usuário.
A utilização deste modelo permite que os servidores executem em
modo usuário, ou seja, não tenham acesso direto a certos
componentes do sistema. Apenas o núcleo do sistema,
responsável pela comunicação entre clientes e servidores, executa
no modo kernel. Como conseqüência, se ocorrer um erro em um
servidor, este poderá parar, mas o sistema não ficará inteiramente
comprometido, aumentando assim a sua disponibilidade.
Fig. 4.7 máquina Virtual Java
Como os servidores se comunicam através de trocas de
mensagens, não importa se os clientes e servidores são
processados em um sistema com um único processador, com
múltiplos processadores (fortemente acoplado) ou ainda em um
ambiente de sistema distribuído (fracamente acoplado). A
implementação de sistemas microkernel em ambientes distribuídos
permite que um cliente solicite um serviço e a resposta sela
processada remotamente. Esta característica permite acrescentar
novos servidores á medida que o número de clientes aumenta,
conferindo uma grande escalabilidade ao sistema operacional.
Além disso. a arquitetura microkernel permite isolar as funções do sistema operacional por
diversos processos servidores pequenos e dedicados a serviços específicos, tomando o núcleo menor, mais
fácil de depurar e, conseqüentemente, aumentando sua confiabilidade. Na arquitetura microkernel, o sistema
operacional passa a ser de mais fácil manutenção, flexível e de maior portabilidade.
Apesar de todas as vantagens deste modelo, sua implementação, na prática, é muito difícil.
Primeiro existe o problema de desempenho, devido á necessidade de mudança de modo de acesso a cada
comunicação entre clientes e servidores. Outro problema e que cenas funções do sistema operacional exigem
acesso direto ao hardware, como operações de E/S. Na realidade, o que é implementado mais usualmente é
uma combinação do modelo de camadas com a arquitetura microkernel. O núcleo do sistema, além de ser
responsável pela comunicação entre cliente e servidor, passa a incorporar outras funções críticas do sistema,
como escalonamento, tratamento de interrupções e gerência de dispositivos.
Página 37 de 58
______________________________________________________Organização de Sistemas
Operacionais
Existem vários projetos baseados em sistemas microkernel, principalmente em instituições de
ensino e centros de pesquisa, como o Exokernel, do MIT (Massachusetts Institute of Technology); o L4, da
Universidade de Dresden; e o Amoeba, da Vrije Universiteir. A maioria das iniciativas nesta área está
relacionada ao desenvolvimento de sistemas operacionais distribuídos.
10.8- PROJETO DO SISTEMA
O projeto de um sistema operacional é bastante complexo e deve atender a diversos requisitos,
algumas vezes conflitantes, como confiabilidade, portabilidade, manutenibilidade, flexibilidade e desempenho.
O projeto do sistema ira depender muito da arqtiitetura cIo hardware a ser utilizado e do tipo de sistema que
se deseja construir: batch, tempo compartilhado, monousuário ou multiusuário, tempo real etc.
Os primeiros sistemas operacionais foram desenvolvidos integralmente em assembly e o código
possuía cerca de um milhão de instruções (IBM OS/360). Com a evolução dos sistemas e o aumento do
número de linhas de código para algo perto de 20 milhões (MULTICS), técnicas de programação modular
foram incorporadas ao projeto, além de linguagens de alto nível, como PL/I e Algol. Nos sistemas
operacionais atuais, o número de linhas de código pode chegar a mais de 40 milhões (Windows 2000), sendo
grande parte do código escrita em linguagem C/C++, utilizando em alguns casos programação orientada a
objetos.
Urna tendência no projeto de sistemas operacionais modernos é a utilização de técnicas de
orientação por objetos, o que leva para o projeto do núcleo do sistema todas as vantagens deste modelo de
desenvolvimento de software.
Existe uma série de vantagens na utilização de programação por objetos no projeto e na
implementação de sistemas operacionais. A seguir, os principais benefícios são apresentados:
•
•
•
•
melhoriaria organização das funções e recursos do sistema;
redução no tempo de desenvolvimento;
maior facilidade na manutenção e extensão do sistema;
facilidade de implementação do modelo de computação distribuída.
Além de facilitar o desenvolvimento e a manutenção do sistema, a utilização de linguagens de
alto nível permite maior portabilidade, ou seja, que o sistema operacional seja facilmente alterado em outra
arquitetura de hardware. Uma desvantagem do uso de linguagens de alto nível em relação à programação
assembly é a perda de desempenho. Por isto, as partes criticas do sistema, corno os device drivers, o
escalonador e as rotinas de tratamento de interrupções, são desenvolvidas em assembly.
Página 38 de 58
______________________________________________________Organização de Sistemas
Operacionais
Um importante princípio no projeto de sistemas operacionais é a separação no projeto do sistema
das políticas e dos mecanismos. Uma política define o que deve ser feito, enquanto um mecanismo define
como implementar uma determinada política.
PROCESSO
11.1- INTRODUÇÃO
O conceito de processo é a base para a implementação de um sistema multiprogramável. O
processador é projetado apenas para executar instruções, não sendo capaz de distinguir qual programa se
encontra em execução. A gerência de um ambiente multiprogramável é uma função exclusiva do sistema
operacional, que deve controlar a execução dos diversos programas e o uso concorrente do processador.
Para isso, para ser executado, um programa deve estar sempre associado a um processo.
O termo processo ganhou unanimidade após o surgimento dos sistemas multiprogramáveis,
tomando-se um dos conceitos mais importantes no estudo e nos projetos de sistemas operacionais. Apesar
de denominações como tarefa ou job ainda serem encontradas com o mesmo sentido, o termo processo é
atualmente utilizado por grande parte da bibliografia.
A gerência de processos é uma das principais funções de um sistema operacional. Através de
processos, um programa pode alocar recursos, compartilhar dados, trocar informações e sincronizar sua
execução. Nos sistemas multiprogramáveis, os processos são executados concorrentemente,
compartilhando, dentre outros recursos, o uso do processador, da memória principal e dos dispositivos de
E/S. Nos sistemas com múltiplos processadores, não só existe a concorrência de processos pelo uso do
processador, como também a execução simultânea de processos nos diferentes processadores.
11.2- ESTRUTURA DO PROCESSO
Um processo pode ser entendido inicialmente como um programa em execução, só que seu
conceito é mais abrangente. Esta idéia toma-se mais clara quando pensamos em como os sistemas
multiprogramáveis atendem os diversos usuários e mantêm informações a respeito dos vários programas que
estão sendo executados concorrentemente.
Em um sistema multiusuário, cada usuário é as a um processo. Ao executar um programa, o
usuário tem a impressão de possuir o processador e todos os demais recursos reservados exclusivamente
para seu uso. De fato isto não é verdade, visto que todos os recursos estão sendo compartilhados, inclusive a
UCP. Nesse caso, o processador executa o programa de um usuário durante um intervalo de tempo e, no
instante seguinte, poderá estar processando um outro programa.
Para que a troca de programas ocorra sem problemas, é necessário que todas as in formações
do programa interrompido sejam guardadas para que, quando este retornar a ser executado, não lhe falte
nenhuma informação necessária à continuação do processamento. Todas as informações importantes e
necessárias à execução de um programa fazem parte do processo.
Um processo também pode ser definido como o ambiente onde um programa é executado. Este
ambiente, além das informações sobre a execução, possui também o quanto de recursos do sistema cada
programa pode utilizar, como o espaço de endereçamento, tempo de processador e área em disco.
A execução de um mesmo programa pode variar dependendo do processo no qual ele é
executado, ou seja, em função dos recursos disponíveis. A falta de recursos pode impedir a execução com
sucesso de um programa. Caso um programa, por exemplo, necessite utilizar uma área em disco superior ao
seu limite, o sistema operacional irá interromper sua execução por falta de recursos disponíveis.
Um processo é formado por três partes, conhecidas como contexto de hardware, contexto de
software e espaço de endereçamento, que juntas mantêm todas as informações necessárias à execução de
um programa.
Página 39 de 58
______________________________________________________Organização de Sistemas
Operacionais
11.2.1- Contexto de Hardware
O contexto de hardware armazena o conteúdo dos registradores gerais da UCP, além dos
registradores de uso específico, como program counter (PC), stack pointer (SP) e registrador de status.
Quando um processo está em execução, o seu contexto de hardware está armazenado nos registradores do
processador. No momento em que o processo perde a utilização da UCP, o sistema salva as informações no
contexto de hardware do processo.
O contexto de hardware é fundamental para a implementação dos sistemas multiprogramáveis,
onde os processos se revezam na utilização da UCP, podendo ser interrompidos e, posteriormente,
restaurados. A troca de um processo por outro no processador, comandada pelo sistema operacional, é
denominada mudança de contexto. A mudança de contexto consiste em salvar o conteúdo dos registradores
do processo que está deixando a UCP e carregá-los com os valores referentes ao do novo processo que será
executado. Essa operação resume-se em substituir o contexto de hardware de um processo pelo de outro.
11.2.2- Contexto de Software
No contexto de software são especificadas características e limites dos recursos que podem ser
alocados pe processo, como o número máximo de arquivos abertos simultaneamente, prioridade de execução
e tamanho do buffer para operações de E/S. Muitas destas características são determinadas no momento da
criação do processo, enquanto outras podem ser alteradas durante sua existência.
A maior parte das informações do contexto de software do processo são provenientes de um
arquivo do sistema operacional, conhecido como arquivo de contas. Neste arquivo, gerenciado pelo
administrador de sistema, são especificados os limites dos recursos que cada processo pode alocar. Outras
informações presentes no contexto de software são geradas dinamicamente ao longo da execução do
processo.
O contexto de software é composto por três grupos de informações sobre o processo:
identificação, quotas e privilégios.
• Identificação
Cada processo criado pelo sistema recebe uma identificação única (PID — process identification)
representada por um número. Através do PID, o sistema operacional e outros processos podem fazer
referência a qualquer processo existente, consultando seu contexto ou alterando uma de suas características.
Alguns sistemas, além do PID, identificam o processo através de um nome.
O processo também possui a identificação do usuário ou processo que o criou (owner). Cada
usuário possui uma identificação única no sistema (UID — user identification), atribuída ao processo no
momento de sua criação. A UID permite implementar um modelo de segurança, onde apenas os objetos
(processos, arquivos, áreas de memória etc.) que possuem a mesma UID do usuário (processo) podem ser
acessados.
• Quotas
As quotas são os limites de cada recurso do sistema que um processo pode alocar. Caso uma
quota seja insuficiente, o processo poderá ser executado Lentamente, interrompido durante seu
processamento ou mesmo não ser executado. Alguns exemplos de quotas presentes na maioria dos sistemas
operacionais são:
• número máximo de arquivos abertos simultaneamente;
• tamanho máximo de memória principal e secundária que o processo pode alocar;
• número máximo de operações de E/S pendentes;
• tamanho máximo do buffer para operações de E/S;
• número máximo de processos, subprocessos e threads que podem ser criados.
• Privilégios
Página 40 de 58
______________________________________________________Organização de Sistemas
Operacionais
Os privilégios ou direitos definem as ações que um processo pode fazer em relação a ele mesmo,
aos demais processos e ao sistema operacional.
Privilégios que afetam o próprio processo permitem que suas características possam ser
alteradas, como prioridade de execução, limites alocados na memória principal e secundária etc. Já os
privilégios que afetam os demais processos permitem, além da alteração de suas próprias características,
alterar as de outros processos.
Privilégios que afetam o sistema são os mais amplos e poderosos, pois estão relacionados à
operação e gerência do ambiente, como a desativação do sistema, alteração de regras de segurança, criação
de outros processos privilegiados, modificação de parâmetros de configuração do sistema, entre outros. A
maioria dos sistemas operacionais possui uma conta de acesso com todos estes privilégios disponíveis, com
o propósito de o administrador gerenciar o sistema operacional. No sistema Unix existe a conta “root”, no
Windows 2000 a conta “administrator” e no OpenVMS existe a conta “system” com este perfil.
11.2.3- Espaço de Endereçamento
O espaço de endereçamento é a área de memória pertencente ao processo onde as instruções e
os dados do programa são armazenados para execução. Cada processo possui seu próprio espaço de
endereçamento, que deve ser devidamente protegido do acesso dos demais processos. Nos capítulos
“Gerência de Memória” e “Gerência de Memória Virtual” serão analisados diversos mecanismos de
implementação e administração do espaço de endereçamento.
11.2.4- Bloco de Controle do Processo
O processo é implementado pelo sistema operacional através de uma estrutura de da dos
chamada bloco de controle do processo (Process Control Block — PCB). A partir do PCB, o sistema
operacional mantém todas as informações sobre o contexto de hardware, contexto de software e espaço de
endereçamento de cada processo.
Os PCBs de todos os processos residem na memória principal em uma área exclusiva do sistema
operacional. O tamanho desta área geralmente é limitado por um parâmetro do sistema operacional que
permite especificar o número máximo de processos que podem ser suportados simultaneamente pelo
sistema.
Toda a gerência dos processos é realizada através de system cal que realizam operações como
criação, alteração de características, visualização, eliminação, sincronização, suspensão de processos,
dentre outras.
11.3- ESTADOS DO PROCESSO
Em um sistema multiprogramável, um processo não deve alocar a UCP com exclusividade, de
forma que possa existir um compartilhamento no uso do processador. Os processos passam por diferentes
estados ao longo do seu processamento, em função de eventos gerados pelo sistema operacional ou pelo
próprio processo. Um processo ativo pode encontrar-se em três diferentes estados:
• Execução (running)
Um processo é dito no estado de execução quando está sendo processado pela UCP. Em
sistemas com apenas uma UCP, somente um processo pode estar sendo executado em um dado instante.
Os processos se alternam na utilização do processador seguindo uma política estabelecida pelo sistema
operacional.
Em sistemas com múltiplos processadores, existe a possibilidade de mais de um processo estar
sendo executado ao mesmo tempo. Neste tipo de sistema, também é possível um mesmo processo ser
executado simultaneamente em mais de uma UCP (processamento paralelo).
Página 41 de 58
______________________________________________________Organização de Sistemas
Operacionais
• Prontp (ready)
Um processo está no estado de pronto quando aguarda apenas para ser executa do. O sistema
operacional é responsável por determinar a ordem e os critérios pelos quais os processos em estado de
pronto devem fazer uso do processador. Este mecanismo é conhecido como escalonamento.
Em geral existem vários processos no sistema no estado de pronto organizados em listas
encadeadas. Os processos devem estar ordenados pela sua importância, permitindo que processos mais
prioritários sejam selecionados primeiramente para execução.
• Espera (wait)
Um processo no estado de espera aguarda por algum evento externo ou por algum recurso para
prosseguir seu processamento. Como exemplo, podemos citar o tér mino de uma operação de entrada/ saída
ou a espera de uma determinada data e/ou hora para continuar sua execução. Em alguns sistemas
operacionais, o estado de espera pode ser chamado de bloqueado (blocked).
O sistema organiza os vários processos no estado de espera também em listas encadeadas. Em
geral, os processos são separados em listas de espera associadas a cada tipo de evento. Neste caso,
quando um evento acontece, todos os processos da lista associada ao evento são transferidos para o estado
de pronto.
11.4- MUDANÇAS DE ESTADO DO PROCESSO
Um processo muda de estado durante seu processamento em função de eventos originados por
ele próprio (eventos voluntários) ou pelo sistema operacional (eventos involuntários). Basicamente, existem
quatro mudanças de estado que podem ocorrer a um processo:
• Pronto — > Execução
Após a criação de um processo, o sistema o coloca em uma lista de processos no estado de
pronto, onde aguarda por uma oportunidade para ser executado. Cada sistema operacional tem seus próprios
critérios e algoritmos para a escolha da ordem em que os processos serão executados (política de
escalonamento). No capítulo “Gerência do Processador”, esses critérios e seus algoritmos serão analisados
com detalhes.
• Execução — >Espera
Um processo em execução passa para o estado de espera por eventos gerados pelo próprio
processo, como uma operação de E/S, ou por eventos externos. Um evento externo é gerado, por exemplo,
quando o sistema operacional suspende por um período de tempo a execução de um processo.
• Espera — > Pronto
Um processo no estado de espera passa para o estado de pronto quando a operação solicitada é
atendida ou o recurso esperado é concedido. Um processo no estado de espera sempre terá de passar pelo
estado de pronto antes de poder ser novamente selecionado para execução. Não existe a mudança do estado
de espera para o estado de execução diretamente.
• Execução — > Pronto
Página 42 de 58
______________________________________________________Organização de Sistemas
Operacionais
Um processo em execução passa para o estado de pronto por eventos gerados pelo sistema,
como o término da fatia de tempo que o processo possui para sua execução. Nesse caso, o processo volta
para a fila de pronto, onde aguarda por uma nova oportunidade para continuar seu processamento.
Um processo em estado de pronto ou de espera pode não se encontrar na memória principal.
Esta condição ocorre quando não existe espaço suficiente para todos os processos na memória principal e
pane do contexto do processo é levada para memória secundária. Uma técnica conhecida como swapping
retira processos da memória principal e os traz de volta seguindo critérios de cada sistema operacional. Neste
caso, os processos em estados de espera e pronto podem estar residentes ou não residentes na memória
principal.
Página 43 de 58
______________________________________________________Organização de Sistemas
Operacionais
11.5- CRIAÇÃO E ELIMINAÇÃO DE PROCESSOS
Processos são criados e eliminados por motivos diversos. A criação de um processo ocorre a
partir do momento em que o sistema operacional adiciona um novo PCB à sua estrutura e aloca um espaço
de endereçamento na memória para uso. A partir da criação do PCB, o sistema operacional já reconhece a
existência do processo, podendo gerenciá-lo e associar programas ao seu contexto para serem executados.
No caso da eliminação de um processo, todos os recursos associados ao processo são desalocados e o PCB
eliminado pelo sistema operacional.
Além dos três estados apresentados anteriormente para o processo, a maioria dos sis temas
operacionais estabelece dois estados adicionais para os momentos de criação e eliminação de um processo.
• Criação (new)
Um processo é dito no estado de criação quando o sistema operacional já criou um novo PCB,
porém ainda não pode colocá-lo na lista de processos do estado de pronto. Alguns sistemas operacionais
limitam o número de processos ativos em função dos recursos disponíveis ou de desempenho. Esta limitação
pode ocasionar que processos criados permaneçam no estado de criação até que possam passar para ativos.
A criação de processos pode ocorrer por diferentes razões, como:
• logon interativo: desta forma, um processo é criado através do estabelecimento de uma sessão interativa
por um usuário a partir de um terminal;
• criação por um outro processo: um processo já existente pode criar outros processos, sendo estes novos
processos independentes ou subprocessos;
• criação pelo sistema operacional: o sistema operacional pode criar novos processos com o intuito de
oferecer algum tipo de serviço.
• Terminado (exit)
Um processo no estado de terminado não poderá ter mais nenhum programa executado no seu
contexto, porém o sistema operacional ainda mantém suas informações de controle presentes em memória.
Um processo neste estado não é mais considerado ativo, mas como o PCB ainda existe, o sistema
operacional pode recuperar informações sobre a contabilização de uso de recursos do processo, como o
tempo total do processador. Após as informações serem extraídas, o processo pode deixar de existir.
O término de processo pode ocorrer por razões como:
• término normal de execução;
• eliminação por um outro processo;
• eliminação forçada por ausência de recursos disponíveis no sistema.
11.6-
PROCESSOS INDEPENDENTES, SUBPROCESSOS E
THREADS
Processos independentes, subprocessos e threads são maneiras diferentes de implementar a
concorrência dentro de uma aplicação. Neste caso, busca-se súbdividir o código em partes para trabalharem
de forma cooperativa. Considere um banco de dados com produtos de uma grande loja onde vendedores
Página 44 de 58
______________________________________________________Organização de Sistemas
Operacionais
fazem freqüentes consultas. Neste caso, a concorrência na aplicação proporciona um tempo de espera menor
entre as consultas melhorando o desempenho da aplicação e beneficiando os usuários.
O uso de processos independentes é a maneira mais simples de implementar a concorrência em
sistemas multiprogramáveis. Neste caso não existe vínculo do processo criado com o seu criador. A criação
de um processo independente exige a alocação de um PCB, possuindo contextos de hardware, contexto de
software e espaço de endereçamento próprios.
Subprocessos são processos criados dentro de uma estrutura hierárquica. Neste modo, o
processo criador é denominado processo pai enquanto o novo processo é chamado de subprocesso ou
processo filho. O subprocesso, por sua vez, pode criar outras estruturas de subprocessos. Uma característica
desta implementação é a de pendência existente entre o processo criador e o subprocesso. Caso um
processo pai deixe de existir, os subprocessos subordinados são automaticamente eliminados. Semelhante
aos processos independentes, subprocessos possuem seu próprio PCB.
Além da dependência hierárquica entre processos e subprocessos, uma outra característica neste
tipo de implementação é que subprocessos podem compartilhar quotas com o processo pai. Neste caso,
quando um subprocesso é criado, o processo pai cede parte de suas quotas ao processo filho.
O uso de processos independentes e subprocessos no desenvolvimento de aplicações
concorrentes demanda consumo de diversos recursos do sistema. Sempre que um novo processo é criado, o
sistema deve alocar recursos (contexto de hardware, contexto de software e espaço de endereçamento),
consumindo tempo de UCP neste trabalho. No momento do término dos processos, o sistema operacional
também dispensa tempo para deslocar recursos previamente alocados. Outro problema é a comunicação e
sincronização entre processos, considerada pouco eficiente, visto que cada processo possui seu próprio
espaço de endereçamento.
O conceito de thread foi introduzido na tentativa de reduzir o tempo gasto na criação, eliminação
e troca de contexto de processos nas aplicações concorrentes, bem como economizar recursos do sistema
como um todo. Em um ambiente multithread, um único processo pode suportar múltiplos threads, cada qual
associado a uma parte do código da aplicação. Neste caso não é necessário haver diversos processos para a
implementação da concorrência. Threads compartilham o processa dor da mesma maneira que um processo,
ou seja, enquanto um thread espera por uma operação de E/S, outro thread pode ser executado.
Cada thread possui seu próprio contexto de hardware, porém compartilha o mesmo contexto de
software e espaço de endereçamento com os demais threads do processo. O compartilhamento do espaço de
endereçamento permite que a comunicação de threads dentro de um mesmo processo seja realizada de
forma simples e rápida.
11.7- PROCESSOS FOREGROUND E BACKGROUND
Um processo possui sempre associado à sua estrutura pelo menos dois canais de comunicação
por onde são realizadas todas as entradas e saídas de dados ao longo do seu processamento. Os canais de
entrada (input) e de saída (output) de dados podem estar associados a terminais, arquivos, impressoras e até
mesmo outros processos.
Um processo foreground é aquele que permite a comunicação direta do usuário com o processo
durante o seu processamento. Neste caso, tanto o canal de entrada quanto o de saída estão associados a um
terminal com teclado, mouse e monitor, permitindo, assim, a interação com o usuário. O processamento
interativo tem como base processos foreground.
Página 45 de 58
______________________________________________________Organização de Sistemas
Operacionais
Um processo background é aquele onde não existe a comunicação com o usuário durante o seu
processamento. Neste caso, os canais de E/S não estão associados a nenhum dispositivo de E/S interativo,
mas em geral a arquivos de E/S. O processamento do tipo batch é realizado através de processos
background.
É possível associar o canal de saída de um processo ao canal de entrada de um outro processo.
Neste caso dizemos que existe um pipe ligando os dois processos. Se um processo A gera uma listagem e o
processo B tem como função ordená-la, basta associar o canal de saída do processo A ao canal de entrada
do processo B.
11.8- PROCESSOS DO SISTEMA OPERACIONAL
O conceito de processo, além de estar associado a aplicações de usuários, pode também ser
implementado na própria arquitetura do sistema operacional. Como visto no capítulo “Estrutura do Sistema”, a
arquitetura microkernel implementa o uso intensivo de processos que disponibilizam serviços para processos
das aplicações e do próprio sistema operacional.
Quando processos são utilizados para a implementação de serviços do sistema, estamos
retirando código do seu núcleo, tomando-o menor e mais estável. No caso de um ou mais serviços não serem
desejados, basta não ativar os processos responsáveis, o que permitirá liberar memória para os processos
dos usuários.
Página 46 de 58
______________________________________________________Organização de Sistemas
Operacionais
A seguir, listamos alguns serviços que o sistema operacional pode implementar através de
processos:
• auditoria e segurança;
• serviços de rede;
• contabilização do uso de recursos;
• contabilização de erros;
• gerência de impressão;
• gerência de jobs batch;
• temporização;
• comunicação de eventos;
• interface de comandos (shell).
11.9- PROCESSOS CPU-BOUND E I/O-BOUND
Os processos podem ser classificados como CPU-bound ou I/O-bound, de acordo com a
utilização do processador e dos dispositivos de E/S.
Um processo é definido como CPU-bound (ligado à UCP) quando passa a maior par te do tempo
no estado de execução, ou seja, utilizando o processador. Esse tipo de processo realiza poucas operações de
leitura e gravação e é encontrado em aplicações científicas que efetuam muitos cálculos.
Um processo é classificado como I/O-bound (ligado à E/S) quando passa a maior parte do tempo
no estado de espera, pois realiza um elevado número de operações de E/S. Esse tipo de processo é
encontrado em aplicações comerciais, que se baseiam em leitura, processamento e gravação. Os processos
interativos também são bons exemplos de processos I/O-bound, pela forma de comunicação entre o usuário e
o sistema, normalmente lenta, devido à utilização de terminais.
11.10- SINAIS
Sinais são um mecanismo que permite notificar processos de eventos gerados pelo sistema
operacional ou por outros processos. O uso de sinais é fundamental para a gerência de processos, além de
possibilitar a comunicação e sincronização entre processos.
Um exemplo de uso de sinais é quando um usuário utiliza uma seqüência de caracteres do
teclado, como [Ctrl-C], para interromper a execução de um programa. Neste caso, o sistema operacional gera
um sinal a partir da digitação desta combinação de teclas, sinalizando ao processo a ocorrência do evento.
No momento em que o pro cesso identifica a chegada do sinal, uma rotina específica de tratamento é
executada.
Sinais podem ser utilizados em conjunto com temporizadores no intuito de sinalizar ao processo
algum evento associado ao tempo. Como exemplo, podemos citar a situação em que um processo deve ser
avisado periodicamente para realizar alguma tarefa, como monitorar uma fila de pedidos. Depois de realizada
a tarefa, o processo deve voltar a esperar pelo próximo sinal de temporização.
A maior parte dos eventos associados a sinais são gerados pelo sistema operacional ou pelo
hardware, como a ocorrência de exceções, interrupções geradas por terminais, limites de quotas excedidos
durante a execução dos processos e alarmes de tempo. Em outras situações, os eventos são gerados a partir
de outros processos com o propósito de sincronizar suas execuções.
A geração de um sinal ocorre quando o sistema operacional, a partir da ocorrência de eventos
síncronos ou assíncronos, notifica o processo através de bits de sinalização localizados no seu PCB. Um
processo não responde instantaneamente a um sinal. Os sinais ficam pendentes até que o processo seja
escalonado, quando então serão tratados. Por exemplo, quando um processo é eliminado, o sistema ativa o
bit associado a este evento. O processo somente será excluído do sistema quando for se lecionado para
execução. Neste caso, é possível que o processo demore algum pe nodo de tempo até ser eliminado de fato.
Página 47 de 58
______________________________________________________Organização de Sistemas
Operacionais
O tratamento de um sinal é muito semelhante ao mecanismo de interrupções. Quando um sinal é
tratado, o contexto do processo é salvo e a execução desviada para um código de tratamento de sinal (signal
handler), geralmente no núcleo do sistema. Após a execução do tratador de sinais, o programa pode voltar a
ser processado do ponto onde foi interrompido. Em certas implementações, o próprio processo pode tratar o
sinal através de um tratador de sinais definido no código programa. É possível também que um processo
bloqueie temporariamente ou ignore por completo alguns sinais.
O mecanismo de sinais assemelha-se ao tratamento de interrupções e exceções vistos no
capitulo “Concorrência”, porém com propósitos diferentes, O sinal está para o processo assim como as
interrupções e exceções estão para o sistema operacional.
Página 48 de 58
______________________________________________________Organização de Sistemas
Operacionais
SISTEMA OPERACIONAL LINUX
12.1- ARQUITETURA
Linux é ao mesmo tempo um kernel (ou núcleo) e o sistema operacional que roda sobre ele,
dependendo do contexto em que você encontrar a referência. O kernel Linux foi criado em 1991 por Linus
Torvalds, então um estudante finlandês, e hoje é mantido por uma comunidade mundial de desenvolvedores
(que inclui programadores individuais e empresas como a IBM, a HP e a Hitachi), coordenada pelo mesmo
Linus, agora um desenvolvedor reconhecido mundialmente.
O Linux adota a GPL, uma licença livre - o que significa, entre outras coisas, que todos os
interessados podem usá-lo e redistribuí-lo. Aliado a diversos outros softwares livres, como o KDE, o GNOME,
o Apache, o Firefox, os softwares do sistema GNU e o OpenOffice.org, o Linux pode formar um ambiente
moderno, seguro e estável para desktops, servidores e sistemas embarcado.
12.2- CARACTERÍSTICAS
 É de graça e desenvolvido voluntariamente por programadores experientes, hackers, e contribuidores
espalhados ao redor do mundo que tem como objetivo a contribuição para a melhoria e crescimento deste
sistema operacional;
 Convivem sem nenhum tipo de conflito com outros sistemas operacionais (como o DOS, Windows, OS/2)
no mesmo computador;
 Suporte a nomes extensos de arquivos e diretórios (255 caracteres);
 Conectividade com outros tipos de plataformas como Apple, Sun, Macintosh, Sparc, Alpha, PowerPc,
ARM, Unix, Windows, DOS, etc.;
 Proteção entre processos executados na memória RAM;
 Suporte ha mais de 63 terminais virtuais (consoles);
 Modularização - O Linux somente carrega para a memória o que é usado durante o processamento,
liberando totalmente a memória assim que o programa/dispositivo é finalizado;
 Devido a modularização, os drivers dos periféricos e recursos do sistema podem ser carregados e
removidos completamente da memória RAM a qualquer momento. Os drivers (módulos) ocupam pouco
espaço quando carregados na memória RAM (cerca de 6Kb para a Placa de rede NE 2000, por exemplo);
 Não há a necessidade de se reiniciar o sistema após a modificar a configuração de qualquer periférico ou
parâmetros de rede. Somente é necessário reiniciar o sistema no caso de uma instalação interna de um
novo periférico, falha em algum hardware
 (queima do processador, placa mãe, etc.);
 Não precisa de um processador potente para funcionar. O sistema roda bem em computadores 386sx 25
com 4MB de memória RAM (sem rodar o sistema gráfico X, que é recomendado 8MB de RAM);
 O crescimento e novas versões do sistema não provocam lentidão, pelo contrário, a cada nova versão os
desenvolvedores procuram buscar maior compatibilidade, acrescentar recursos úteis e melhor
desempenho do sistema (como o que aconteceu na passagem do kernel 2.0.x para 2.2.x);
 Não é requerida uma licença para seu uso. O Linux é licenciado de acordo com os termos da GPL;
 Acessa sem problemas discos formatados pelo DOS, Windows, Novell, OS/2, NTFS, SunOS, Amiga,
Atari, Mac, etc;
 Utiliza permissões de acesso a arquivos, diretórios e programas em execução na memória RAM;
 Rede TCP/IP mais rápida que no Windows e tem sua pilha constantemente melhorada. O Linux tem
suporte nativo a redes TCP/IP e não depende de uma camada intermediária como o Winsock. Em
acessos via modem a Internet, a velocidade de transmissão é 10% maior;
 Roda aplicações DOS através do DOSEMU. Para se ter uma idéia, é possível dar o boot em um sistema
DOS qualquer dentro dele e ao mesmo tempo usar a multitarefa deste sistema;
 Roda aplicações Windows através do WINE;
Página 49 de 58
______________________________________________________Organização de Sistemas
Operacionais















Suporte a dispositivos infravermelho;
Suporte a rede via rádio amador;
Suporte a dispositivos Plug-and-Play;
Suporte a dispositivos USB;
Vários tipos de firewalls de alta qualidade e com grande poder de segurança de graça;
Roteamento estático e dinâmico de pacotes;
Ponte entre Redes;
Proxy Tradicional e Transparente;
Possui recursos para atender a mais de um endereço IP na mesma placa de rede, sendo muito útil para
situações de manutenção em servidores de redes ou para a emulação de "mais computadores"
virtualmente. O servidor WEB e FTP podem estar localizados no mesmo computador, mas o usuário que
se conecta tem a impressão que a rede possui servidores diferentes.
O sistema de arquivos usado pelo Linux (Ext3) organiza os arquivos de forma inteligente evitando a
fragmentação e fazendo-o um poderoso sistema para aplicações multi-usuárias exigentes e gravações
intensivas;
Permite a montagem de um servidor Web, E-mail, News, etc. com um baixo custo e alta performance. O
melhor servidor Web do mercado, o Apache, é distribuído gratuitamente junto com o Linux. O mesmo
acontece com o Sendmail;
Por ser um sistema operacional de código aberto, você pode ver o que o código fonte (o que foi digitado
pelo programador) faz e adapta-lo as suas necessidades ou de sua empresa. Esta característica é uma
segurança a mais para empresas sérias e outros que não querem ter seus dados roubados (você não
sabe o que um sistema sem código fonte faz na realidade enquanto esta processando o programa);
Suporte a diversos dispositivos e periféricos disponíveis no mercado, tanto os novos como obsoletos;
Pode ser executado em 10 arquiteturas diferentes (Intel, Macintosh, Alpha, Arm, etc.);
Consultores técnicos especializados no suporte aos sistemas espalhados por todo o mundo;
12.3- FUNÇÕES
O sistema operacional Linux é composto por três partes:
 Kernel.
 Aplicações de Sistema.
 Aplicações de Usuário.
12.3.1- O Kernel
Embora o kernel seja uma parte importante do Linux, ele sozinho não constitui o sistema
GNU/Linux. O kernel é o “núcleo” do sistema e é responsável pelas funções de mais baixo nível, como o
gerenciamento de memória, gerenciamento de processos e da CPU. O kernel também é o responsável pelo
suporte aos sistemas de arquivos, dispositivos e periféricos conectados ao computador, como placas SCSI,
placas de rede, de som, portas seriais, etc. É chamado Linux o conjunto do kernel e demais programas, como
shells, compiladores, bibliotecas de funções, etc.
Alguns cuidados devem ser tomados ao se verificar que versão de Linux está sendo utilizada,
porque o kernel possui um número de versão e a sua distribuição pode possuir outro. O número que identifica
a versão da distribuição é decidido pela empresa responsável pela versão, de acordo com padrões próprios.
Já o kernel possui um número de versão composto por 3 partes: um número maior, um número menor e um
número de release, e este número é dado pelo grupo de programadores que cuidam do desenvolvimento do
kernel.
O kernel do Linux pode ser compilado para se adequar melhor ao tipo de máquina e ao tipo de
tarefa que essa máquina vai executar. Por exemplo, se o servidor precisa se comunicar com outras máquinas
usando o protocolo IPX, o administrador poderá compilar o kernel com suporte a esse protocolo, ou, se não
houver necessidade de usar um determinado tipo de placa de rede, é possível compilar o kernel sem suporte
a essa placa, resultando assim em um kernel de menor tamanho.
Página 50 de 58
______________________________________________________Organização de Sistemas
Operacionais
O kernel do Conectiva Linux foi compilado para atender os mais diversos tipos de necessidades
e de máquinas, além do mais, é possível incluir novos recursos sem a necessidade de compilar novamente o
kernel, através do uso de módulos. O processo de compilação de um kernel não é muito simples e é
recomendado apenas a administradores de sistemas mais experientes. Para saber como se compila um
kernel consulte o documento.
12.3.2- Aplicações do Sistema
O kernel faz muito pouco sozinho, uma vez que ele só provê os recursos que são necessários
para que outros programas sejam executados. Logo, é necessária a utilização de outros programas para
implementar os vários serviços necessários ao sistema operacional.
Do “ponto de vista” do kernel, as aplicações do sistema, bem como qualquer outro programa,
rodam no que é chamado “modo usuário”, logo, a diferença entre aplicações de sistema e aplicações do
usuário se dá pelo propósito de cada aplicação. Aplicações do sistema são necessárias para fazer o sistema
funcionar, enquanto as aplicações do usuário são todos programas utilizados pelo usuário para realizar uma
determinada tarefa (como um processador de texto, por exemplo). Entre as aplicações de sistema pode-se
citar o init, o getty e o syslog.
12.4- VANTAGENS
Segurança, estabilidade e robustez a baixo custo fizeram do Linux o grande rival do Windows e
por ser livremente distribuído, o Linux não possui uma política de licenças como o Windows, fato que o torna
acessível a todos. Governos de vários países, bancos e escolas estão entre os grandes usuários do Linux
que o utilizam em substituição ao Windows como maneira de diminuir seus gastos com software.
Com a explosão da internet houve também o crescimento da quantidade de vírus existentes.
Diante disto o Linux representa uma grande vantagem por ser totalmente imunes a estes vírus, gerando
tranquilidade para os usuários, e dispensando os programas anti-vírus e suas constantes atualizações. E no
que diz respeito a segurança, os sistemas Linux são inquestionáveis. No caso de bugs no Internet Explorer,
por exemplo, o usuários tem que esperar que a Microsoft, e somente ela, disponibilize a correção. Já nos
sistemas Linux, que contam com muitos programadores independentes, falhas são descobertas rapidamente
assim como suas correções.
Como podemos ver, o Linux é um sistema operacional em ascensão, e que promete ser o futuro
para as empresas que tem custos a cortar, no que diz respeito a legalização de seus softwares, assim como
para as que simplesmente procuram uma solução realmente eficiente e funcional.
12.5- DESVANTAGENS
Ao instalar o Linux e o Windows 98 na mesma máquina, pode-se observar que o o Windows 98
detecta automaticamente muito mais dispositivos.
Fazer o sistema de vídeo funcionar com X Windows continua sendo difícil demais para muitos,
embora possível para a maioria dos usuários.
Um outro problema é a escassez de drivers para placas PCMCIA. Se estiver conectando um
notebook a sua rede local, por meio de uma placa de rede PCMCIA; e à Internet, a partir da rede local;
precisará localizar os drivers com o seu fabricante (nem todos oferecem drivers para Linux), instalá-los e
configurá-los você mesmo.
O número de aplicativos disponíveis no mercado é outra desvantagem. Enquanto que para o
Windows existem hoje mais de 8 mil aplicações registradas, para o Linux existem apenas algumas centenas.
Página 51 de 58
______________________________________________________Organização de Sistemas
Operacionais
12.6- RECURSOS
O kernel faz muito pouco sozinho, uma vez que ele só provê os recursos que são necessários
para que outros programas sejam executados. Logo, é necessária a utilização de outros programas para
implementar os vários serviços necessários ao sistema operacional.
Do “ponto de vista” do kernel, as aplicações do sistema, bem como qualquer outro programa,
rodam no que é chamado “modo usuário”, logo, a diferença entre aplicações de sistema e aplicações do
usuário se dá pelo propósito de cada aplicação. Aplicações do sistema são necessárias para fazer o sistema
funcionar, enquanto as aplicações do usuário são todos programas utilizados pelo usuário para realizar uma
determinada tarefa (como um processador de texto, por exemplo). Entre as aplicações de sistema pode-se
citar o init, o getty e o syslog.
O init é o primeiro processo lançado após o carregamento do kernel na memória, e é ele o
responsável por continuar o processo de boot lançando os outros programas. É o init o responsável, também,
por garantir que o getty esteja sendo executado (para que os usuários possam entrar no sistema) e por adotar
processos órfãos (processos filhos no qual o pai morreu), pois no Linux todos os processos devem estar em
uma mesma árvore, e possuírem um pai (excluindo o processo init, que não tem pai).
O getty provê o serviço responsável pelo login dos usuários em terminais textos (virtuais ou não).
É ele que lê o nome do usuário e a senha e chama o programa login para validá-los; caso estejam corretos é
lançado um shell, caso contrário o processo todo é reiniciado.
O syslog é responsável por capturar as mensagens de erro geradas pelo kernel ou por outras
aplicações de sistema, e por mostrá-las posteriormente quando o administrador do sistema solicitá-las.
12.7- SUPORTE
O Linux é um S.O. modular. Por exemplo, o suporte a determinado sistema de arquivos ou a
certo dispositivo de hardware é fornecido através de módulos independentes.
Em geral, tais módulos podem ser implantados dinamicamente, isto é, com o S.O. rodando, sem
a necessidade de reinicialização.
Os módulos, quando implantados, tornam-se parte do núcleo do S.O. Não é possível utilizar
nenhuma biblioteca printk é implementada pelo S.O. Assemelha-se à printf, mas não oferece suporte a
números de ponto flutuante. Os indicadores <n> fornecem a prioridade da mensagem. Quanto menor o
número, maior é a prioridade.
Não funciona em consoles gráficos!
Os módulos rodam no espaço de endereçamento do núcleo do S.O. em modo supervisor. Isso
exige alguns cuidados especiais:
 Concorrência
 Segurança
 Controle de versão
 Tratamento de erros, alocação e desalocação de recursos judiciosa.
O cuidado com ponteiros perdidos deve ser redobrado.
sistema.
Página 52 de 58
Pode-se travar completamente o
______________________________________________________Organização de Sistemas
Operacionais
SISTEMA OPERACIONAL WINDOWS XP
13.1- ARQUITETURA
O Microsoft Windows XP (oficialmente, Windows 5.1) é um sistema operacional produzido pela
Microsoft para uso em todos os tipos de computadores, incluindo computadores residenciais e de escritórios,
notebooks, midia centers e ainda Tablet PCs. As letras XP derivam da palavra eXPerience, experiência em
inglês. O seu nome de código era Whistler, o nome de um resort no Canadá, o Whistler Blackcomb, na qual
os desenvolvedores do sistema passaram um tempo. O Windows XP une a facilidade de uso do Windows ME
com a estabilidade do Windows 2000, e é o primeiro sistema operacional para consumidores construido em
uma arquitetura e kernel (Kernel de um sistema operacional é entendido como o núcleo deste ou, numa
tradução literal, cerne. Ele representa a camada de software mais próxima do hardware, sendo responsável
por gerenciar os recursos do sistema computacional como um todo) totalmente novos.
O Windows XP foi lançado em 25 de Outubro de 2001 e possui 400 milhões de cópias em uso
atualmente, de acordo com a estimativa da IDC Analyst [1]. Foi substituido pelo Windows Vista lançado para
fabricantes de computadores no dia 8 de Novembro de 2006 e vendido aos usuários no dia 30 de Janeiro de
2007. Estimativas indicam que irá demorar de 5 à 7 anos para que o Vista atinja a marca de cópias vendidas
do XP. As duas edições iniciais do Windows XP são o Windows XP Home Edition, para usuários domésticos,
e o Windows XP Professional Edition, com recursos adicionais como o Domínio de Servidor do Windows e a
utilização de 2 processadores além de ser designado a usuários experientes e empresas. No Windows XP
Media Center Edition foram incluídos recursos adicionais de multimídia, como a possibilidade de gravar e
assistir programas de televisão, ver filmes de DVD e ouvir música. O Windows XP Tablet PC Edition foi
designado para rodar nas plataformas Tablet PC. Duas versões foram lançadas separadamente para
computadores com processadores 64 bits, foram o Windows XP 64-bit Edition para processadores Itanium e o
Windows XP Professional x64 Edition para processadores x86-64, e em 2005 foi lançado, pela primeira vez,
um sistema operacional de baixo custo, o Windows XP Starter Edition que é uma versão reduzida do sistema
operacional, para tentar combater a pirataria e se tornar mais atrativo financeiramente.
O Windows XP tem melhor estabilidade e eficiência, comparado às outras versões do Windows.
Uma diferença significante foi a da interface gráfica ter mudado do padrão cinza para um azul fosco. Esta é a
primeira versão do Windows a usar um programa de validação de produto para combater a pirataria de
software na qual foram barradas muitas atualizações a Windows não-originais. O Windows XP foi muito
criticado por usuários devido a sua enorme lista de vulnerabilidades de segurança, as várias falhas do
navegador Internet Explorer e do Windows Media Player, mas também foi muito elogiado por ser um dos
sistemas mais bonitos e estaveis. O Windows XP começou a ser desenvolvido em 1999, quando a Microsoft
iniciou o projeto do Windows Neptune (Neptuno), o que viria a ser a versão Home Edition do Windows 2000.
O projeto foi cancelado e então se iniciou o projeto Whistler, do Windows XP. Muitas idéias do Neptune e do
Odyssey (outra versão do Windows também cancelada) foram usadas no Windows XP.
13.2- CARACTERÍSTICAS
 Assistente de inicialização: Um tutorial auxilia passo-a-passo no processo de inicialização do sistema
operacional, avisando quando é necessário fornecer alguma informação.
Página 53 de 58
______________________________________________________Organização de Sistemas
Operacionais
 Atualização dinâmica: Avisa o usuário sobre a necessidade de atualização de programas, de alguns
drivers e de correções para eventuais problemas de configuração ou de segurança. A operação
(download e instalação) pode ser feita automaticamente.
 Tela inicial personalizada: A tela de abertura pode ser personalizada, com a criação de uma conta para
cadausuário do PC. Assim, quem divide a máquina com a família, por exemplo, pode registrar a sua tela
de entrada e protegê-la com uma senha.
 Mudança rápida de usuário: Se um membro da família estiver jogando e você desejar dar uma rápida
olhada em seu e-mail, não será necessário fechar todas as configurações do seu irmão para a verificação
das suas mensagens.
 Menu Iniciar: A maneira mais básica de acessar arquivos, pastas e programas. No Windows XP, uma
lista de programas mais usados e o sistema de posicionamento dos arquivos mais importantes facilitam o
acesso às tarefas e aplicações mais utilizados.
 Design focado na tarefa: Permite visualizar as opções do Windows de acordo com a tarefa que você
está desempenhando. Por exemplo, quando um documento no Word está selecionado, aparece um menu
com tarefas comuns ao aplicativo, como copiar, cortar e colar.
 Barra de tarefas dividida em grupos:
Quando muitas janelas forem abertas, suas barras
correspondentes vão sendo agrupadas de acordo com o programa a que pertencem.
 Assistente de limpeza para área de trabalho: Periodicamente, o recurso examina a área de trabalho e
alerta para a existência de ícones/atalhos não utilizados.
 Internet Connection Firewal: O componente serve para proteger o PC de invasões de hackers.
 Gerenciador de arquivos: Arquivos e pastas agrupados da maneira que melhor fizer sentido para o
usuário e a utilização da visão em miniatura melhorada permitem encontrar rapidamente qualquer arquivo
que se procure (em ordem alfabética, pelo tipo de arquivo, tamanho ou data de modificação).
13.4- FUNÇÕES
 Nova Interface para o ambiente de trabalho: interface redesenhada, mais atrativa e funcional;
 Windows Media Player para Windows XP: um só utilitário para localizar, reproduzir, organizar e
armazenar arquivos multimedia digital.
 Assistente de configuração de rede: permite facilmente interligar e partilhar os computadores e os
dispositivos existentes em sua casa.
 Windows Messenger: a mais avançada ferramenta de comunicação e colaboração, com mensagens
instantâneas, conferência de voz e vídeo e compartilhamento de aplicações.
 Suporte avançado para computadores portáteis (incluindo suporte para ClearType, DualView e
otimizações na gestão de energia): para que possa trabalhar tanto quando se está em viagem como
quando está no escritório.
 Ligações sem fios: configuração automática de redes sem fios 802.1x.
 Ambiente de trabalho remoto: acesse remotamente seu PC com o Windows XP Professional, a partir de
qualquer outro computador pessoal com o Windows, para que possa trabalhar com todos os seus dados e
aplicações quando está fora do escritório.
 Internet Information Services (IIS): hospede seu próprio site (web, domínio, ftp, email) na internet ou
intranet.
 Diretório e arquivos offline: permite o acesso a diretórios e arquivos existentes num compartilhamento
de rede quando se está desligado do servidor.
Página 54 de 58
______________________________________________________Organização de Sistemas
Operacionais
 Inicialização rápida e otimização no gerencimaneto de energia: tempos de boot e reinício mais
rápidos.
 Multitarefa: permite a execução simultânea de múltiplas aplicações.
 Suporte escalável para processadores: suporta até dois processadores.
 Firewall de ligação à Internet: protege automaticamente o seu PC de acessos não autorizados quando
está na Internet.
 Suporte para privacidade no Internet Explorer 6: permite-lhe manter controle sobre as suas
informações pessoais quando visita site da Web.
 Sistema de encriptação do sistema de arquivos: protege os dados sensíveis existentes em diretórios
armazenados no disco utilizando o sistema de arquivos no padrão NTFS.
 Controle de acesso: restringe o acesso a diretórios, arquivos, aplicações e outros recursos selecionados.
 Administração centralizada: permite a junção de sistemas Windows XP Professional a um domínio do
Windows Server para tirar partido da gama completa de poderosas ferramentas de gestão e segurança.
 Políticas de grupo: simplificam a administração de grupos de usuários ou computadores.
 Instalação e manutenção de software: permite a instalação, configuração, reparação ou remoção
automática de aplicações de software.
 Perfis de usuários itinerantes: permite-lhe acessar seus documentos e definições, independentemente
do local onde iniciar a sessão.
 Serviço de instalação remota (RIS): fornece suporte para instalações remotas do sistema operacional,
permitindo a instalação de computadores através da rede.
 Código binário universal: introduza texto em qualquer idioma e execute qualquer versão localizada de
aplicações Win32 em qualquer versão localizada do Windows XP.
 Suplemento Interface do utilizador multi-idioma (MUI): permite alterar o idioma da interface do usuário
para obter caixas de diálogo, menus, arquivos de ajuda, dicionários e ferramentas de verificação
ortográfica localizadas.
13.5- VANTAGENS
Windows original para Windows XP usa a ativação e a validação do produto Windows, bem como
o Notifications, para verificar se sua cópia do Windows é original. O uso do Windows original proporciona
melhor desempenho e permite que você acesse todos os downloads no Centro de Download da Microsoft, ao
mesmo tempo em que ajuda a protegê-lo contra os riscos do software falsificado.
A ativação é uma tecnologia antipirataria projetada para assegurar que sua cópia do Windows
XP esteja devidamente licenciada. Ela funciona verificando se a chave do produto é válida e se está sendo
usada somente no número de computadores permitido pela licença de software. A ativação usa um processo
simples e rápido para proteger sua cópia e garantir que você tenha recebido aquilo por que pagou.
A validação é um processo rápido que permite descobrir se a chave de produto ativada é
falsificada ou se foi usada indevidamente. Por exemplo, você pode ter recebido, acidentalmente, uma chave
de produto que foi denunciada como perdida ou roubada pelo proprietário original. Às vezes, durante um
reparo ou uma reinstalação, uma chave de produto inválida será usada se a chave original não estiver
disponível. A Microsoft valoriza a sua privacidade e, portanto, não usa informações obtidas durante o
processo de validação para identificá-lo nem contatá-lo.
Página 55 de 58
______________________________________________________Organização de Sistemas
Operacionais
O Notifications ajuda a Microsoft a combater a pirataria de software e ajuda você a validar a
cópia do Microsoft Windows XP instalada em seu computador como original e devidamente licenciada. Ele o
lembra de que sua cópia do Windows XP não passou na validação e fornece recursos que o ajudam a corrigir
facilmente o problema online. Por meio da confirmação de que sua cópia do Windows XP é original, você
pode auferir as vantagens de todos os recursos, suporte e aprimoramentos contínuos bem como a
tranqüilidade obtidos com o uso do Windows original.
13.6- DESVANTAGENS
Limitações ao usar o sistema de arquivos FAT32 com o Windows XP:
 Os clusters não podem Ter 64 KB (kilobytes) ou mais. Se os clusters tiverem 64 KB ou mais, alguns
programas (como programas de instalação) podem fazer um cálculo errado do espaço em dísco.
 Um volume FAT32 deve conter um mínimo de 65.527 clusters. Não é possível aumentar o tamanho do
cluster em um volume que usa o sistema de arquivos FAT32 para que contenha menos de 65.527
clusters.
 O tamanho máximo do disco é de aproximadamente 8 terabytes ao levar em consideração as seguintes
variáveis: O número máximo possível de clusters em um volume FAT32 é 268.435.445 e existe um
espaço máximo de 32 KB por cluster, junto com o espaço solicitado para o FAT (file allocation table).
 Não é possível diminuir o número de clusters em um volume FAT32 para que o tamanho do FAT seja
maior que 16 megabytes (MB) menos 64 KB.
 Não é possível formatar um volume maior do que 32 gigabytes (GB) usando um sistema de arquivos
FAT32 durante o processo de instalação do Windows XP. O Windows XP pode montar e oferecer suporte
para volumes FAT32 maiores do que 32 GB (sujeito a outros limites), mas não é possível criar um volume
FAT32 maior do que 32 GB usando a ferramenta Formatação durante a instalação. Se precisar formatar
um volume maior do que 32 GB, use o sistema de arquivos NTFS para formatá-lo. Outra opção é iniciar a
partir de um disco de inicialização do Microsoft Windows 98 ou Microsoft Windows Millennium Edition (Me)
e usar a ferramenta Formatação incluída no disco.
13.7- RECURSOS
 Novo Ambiente de Trabalho: É a primeira coisa, e bem visual, que se note ao usar o Windows XP pela
primeira vez. A área de Trabalho (o Desktop) é muito mais limpo, simples e agradável de usar.
 Sistema de Múltiplos Usuários: O Windows XP não permite que usuários não autorizados operem o
sistema. O logon dos usuários se torna obrigatório, a partir do segundo usuário cadastrado no sistema.
Atalhos para os ambientes de trabalho dos usuários cadastrados no XP se encontram na tela de logon.
Ao se criar um novo usuário é possível definir o nível de segurança dele, e suas permissões. assim um
usuário não administrador poderá apenas utilizar os aplicativos instalados, e usar apenas os documentos
que estiverem em pastas compartilhadas.
 Kernel Mais Seguro e Poderoso: O kernel protegido, herdado do Windows 2000, é uma das grandes, e
importantes, novidades do Windows XP. Ele evita a imensa maioria dos travamentos, e poderá deixar seu
sistema funcional por centenas de horas seguidas de trabalho com a máquina.
Página 56 de 58
______________________________________________________Organização de Sistemas
Operacionais
 Conexão Remota: Semelhante ao serviço Terminal Service, do Windows 2000 Server, o Windows XP
possui um serviço denominado Remote Desktop Connection. Combinado com o uso do Internet
Information Services (IIS) o RDC permitirá que um usuário com direitos administrativos entre em sua
máquina, remotamente, através de um navegador e usando uma rede local, ou mesmo uma conexão
Internet.
 Suporte ao Sistema de Arquivos NTFS: O Windows XP tem suporte a sistemas de arquivos tanto
FAT32, quanto NTFS (NT File System). Este sistema NTFS, adotado no Windows NT e 2000, oferece
uma segurança a seus dados e programas nunca possíveis nas versões Windows 9X/ME. Inclui sistema
de encriptação de arquivos (EFS) que protege os dados gravados em seu disco.

Suporte Nativo a Gravador de CD-ROM: O novo sistema operacional da Microsoft traz ainda, de forma
nativa, suporte total a gravação em mídia CD-R e CD-RW. O sistema reconhece seu gravador
automaticamente, instalando os drivers necessários à essa operação. Abrindo-se o Meu Computador, ou
o Windows Explorer, o gravador de CD já aparece e permite que, usando simplesmente o botão direito do
mouse, se selecione as opções de configuração e a própria gravação nas mídias existentes.
13.8- SUPORTE
O Windows XP Embedded inclui um Input Method Manager (IMM) [Gerente de Método de
Entrada] e Input Method Editor (IME) [Editor de Método de Entrada] para dar suporte a uma ampla variedade
de mecanismos de entrada associados a diferentes idiomas.
Por exemplo, aplicativos que requerem a entrada de caracter de idioma da Ásia Oriental usam o
IME. O API para acessar a funcionalidade IMM e IME é oferecido como parte do padrão Win32 API no
Windows XP Embedded. Esses APIs são documentados na Plataforma SDK Windows XP.
O Windows XP Embedded também suporta um novo serviço de entrada de texto que suporta
tecnologias de entrada avançadas, tais como discurso e manuscrito, bem como melhorias à funcionalidade
IME tradicional.
Página 57 de 58
______________________________________________________Organização de Sistemas
Operacionais
Referências
Rever estas referências
ALMEIDA, Marcus Garcia de; Fundamentos de Informática. Software e hardware.
Brasport. 2ª edição, 2002.
MANZANO, André Luiz N G; MANZANO, Maria Izabel N G. Informática Básica –
Coleção Estudo Dirigido. Érica, 3ª edição, 2000.
MONTEIRO, Mário A; Introdução à Organização de Computadores. LTC, 4ª edição,
2001.
NORTON, Peter; Desvendado o PC. Campus. 3ª edição. 1989.
Página 58 de 58
Download