Apostila de Sistemas Operacionais
Apostila de Sistemas Operacionais
Apostila de Sistemas Operacionais
br
alfamacursos.com.br 1
Alfama Cursos
Antônio Garcez
Fábio Garcez
Diretores Geral
MATERIAL DIDÁTICO
alfamacursos.com.br
Sistemas
Operacionais
alfamacursos.com.br 3
Apresentação do Curso
Vivemos rodeados de tecnologia, ela faz parte do nosso dia a dia. O mercado é competitivo
e exige do profissional formação adequada e continuada. Esta disciplina mostrará a você
caminhos para manter-se qualificado superando as expectativas no mercado de trabalho.
alfamacursos.com.br 4
Apresentação do Professor
alfamacursos.com.br 5
Componente Curricular
EMENTA
OBJETIVO
PÚBLICO-ALVO
alfamacursos.com.br 6
Índice
alfamacursos.com.br 7
Sistemas Operacionais
alfamacursos.com.br 8
Sistemas Operacionais
alfamacursos.com.br 9
Capítulo 1 - Definição
Olá pessoal, iniciaremos nosso curso sobre Sistemas Operacionais tendo em mente, para
que o usuário possa utilizar seus programas em benefício de suas atividades profissionais
(editores de texto, planilhas eletrônicas, banco de dados, etc.), e pessoais também (jogos,
etc.), é necessário à instalação do software indispensável que tem como principal função
GERENCIAR todos os recursos (hardware) disponíveis no sistema (microcomputador),
chamado Sistema Operacional.
Imagem 01
Um sistema operacional pode ser entendido como um programa que atua como
intermediário entre um ou mais usuários e o hardware de um computador. O propósito de
um sistema operacional é propiciar um ambiente no qual os usuários possam execu¬tar
alfamacursos.com.br 10
Sistemas Operacionais
programas de forma conveniente e eficiente. Compreender as razões que estão por trás do
desenvolvimento dos sistemas operacionais nos dá uma melhor compreensão das tarefas
que eles exe¬cutam e da forma como o fazem.
Um sistema operacional, em seu sentido mais amplo, deve ser capaz de garantir a operação
correta de um sistema computacional, partilhando os recursos disponíveis (memória, CPU
e dispositivos de E/S - entrada e saída) da melhor forma possível. Os serviços fornecidos, é
claro, diferem de um sistema operacional para outro, mas nosso objetivo é explorar classes
comuns à maioria dos sistemas operacionais (S.O.), não nos atendo às particularidades
deste ou daquele.
Sistemas de computadores evoluíram dos primeiros que não continham nenhum sistema
operacional como o ENIAC, por exemplo, para máquinas de multiprogramação, e dessas
para máquinas de tempo compartilhado, e depois para computadores pessoais e, por
fim, para sistemas verdadeiramente distribuídos. À medida que a demanda por novas
características e melhor eficiência cresciam e o hardware mudava, os sistemas operacionais
evoluíram para cumprir novos papéis.
Por mais complexo que possa parecer, um sistema operacional é apenas um conjunto
de rotinas sendo executadas “harmoniosamente” pela CPU (processador), da mesma
forma que qualquer outro programa. Sua principal função é gerenciar os diversos recursos
existentes no sistema computacional, i.e., memória, CPU e dispositivos de entrada e saída
(E/S).
Atualmente, o usuário pode interagir com os sistemas operacionais via comandos fornecidos
diretamente a este ou via operações do tipo “click” ou “duplo-click” (double click), onde um
dispositivo de apontamento (pointing device) é utilizado para percorrer a tela no sentido
vertical e horizontal, de forma a permitir ao usuário “apontar” para o aplicativo a ser
executado.
Imagem 02
alfamacursos.com.br 11
Sistemas Operacionais
A de linhas de comando é bastante tediosa visto que exige do usuário o conhecimento dos
comandos, seus parâmetros e de suas respectivas sintaxes, porém, é ainda bastante comum
em ambientes do tipo mainframe ou em plataformas do tipo UNIX, Linux com seu Shell ,
seus comandos e sua conhecida verbose (muitos comandos, repletos de modificadores).
Fique ligado!
Um S.O. age como intermediário entre o usuário e o hardware do computador
proporcionando um ambiente no qual o usuário pode executar programas de forma
conveniente e eficiente. O S.O. é coleção de módulos cuja função é receber requisições
dos usuários e escalar os vários componentes de hardware e software do sistema
computacional para satisfazer tais requisições.
alfamacursos.com.br 12
Sistemas Operacionais
alfamacursos.com.br 13
Capítulo 2 - Evolução Histórica dos Sistemas Operacionais
A evolução dos sistemas operacionais foi uma consequência dos avanços ocorridos no
hardware dos computadores; em função disso, logicamente há de se falar em três níveis
de gerações de sistemas operacionais.
A primeira fase foi integrada pelos sistemas operacionais básicos, surgidos nos anos 50 e
seu objetivo limitava-se a auxiliar os programas nas operações de entrada e saída e, na
tradução nos programas fonte, escritos em linguagem pouco evoluída.
A segunda fase esteve disponível na década de 60 e a sua ajuda à programação foi mais
decisiva, proporcionando tradutores simbólicos mais evoluídos, programas de serviços
para transferência de informação entre periféricos e programas de controle de entrada e
saída, ou seja, os famosos IOCS (Input Output Control System).
alfamacursos.com.br 14
Sistemas Operacionais
alfamacursos.com.br 15
Sistemas Operacionais
Imagem 04
alfamacursos.com.br 16
Sistemas Operacionais
alfamacursos.com.br 17
Capítulo 3 - Classificação dos Sistemas Operacionais
Imagem 05
Fica dica
Monoprogramaveis/Monotarefa:
Executa uma tarefa de cada vez.
VANTAGEM: simplicidade de implementação.
DESVANTAGEM: desperdício do tempo de CPU.
Exemplo:
Imagem 06
alfamacursos.com.br 18
Sistemas Operacionais
As vantagens do uso deste tipo de sistema são a redução do tempo de resposta das
aplicações, além dos custos reduzidos devido ao compartilhamento dos recursos do sistema
entre as diferentes aplicações. Apesar de mais eficientes que os monoprogramáveis, os
sistemas multiprogramáveis são de implementação muito mais complexa.
Imagem 07
Fica a dica
Multiprogramáveis/Multitarefa
Executa mais de uma tarefa, mas sendo uma de cada vez.
VANTAGEM: melhor utilização da CPU.
DESVANTAGEM: complexidade de implementação.
alfamacursos.com.br 19
Sistemas Operacionais
Para cada usuário, o sistema operacional aloca uma fatia de tempo (time-slice) do
processador. Caso o programa do usuário não esteja concluído nesse intervalo de tempo, ele
é substituído por um de outro usuário, e fica esperando por uma nova fatia de tempo. Não
só o processador é compartilhado nesse sistema, mas também a memória e os periféricos,
como discos e impressoras. O sistema cria para o usuário um ambiente de trabalho próprio,
dando a impressão de que todo o sistema está dedicado, exclusivamente, a ele.
alfamacursos.com.br 20
Sistemas Operacionais
Múltiplos Processadores
Imagem 08
Analisando tomando por base o número de processadores, podemos ter:
Caracteriza-se por possuir um único processador, sendo este controlado pelo sistema
operacional instalado. Ex.: Microcomputador PC com Windows 98.
Caracteriza-se por possuir mais de um processador, sendo que estes podem compartilhar
o mesmo sistema operacional, ou cada um pode possuir o seu próprio sistema.
alfamacursos.com.br 21
Sistemas Operacionais
Cada nó também possui seu próprio sistema operacional, memória principal, processador
e dispositivos de E/S. Porém, existe um “relacionamento” mais forte entre esses nós, que,
geralmente, possuem o mesmo S.O.
alfamacursos.com.br 22
Sistemas Operacionais
alfamacursos.com.br 23
Capítulo 4 - Inicialização e Estrutura os Sistemas Operacionais
É um pequeno programa que tem uma única função. Ele carrega o sistema operacional
na memória e permite que ele comece a operar. Em sua forma mais básica, o bootstrap
configura os pequenos programas de driver que fazem interface e controlam os vários
subsistemas de hardware do computador. Ele configura as partes da memória que contêm
o sistema operacional, as informações de usuário e os aplicativos. Ele também estabelece
as estruturas de dados responsáveis pelos inúmeros sinais, flags e semáforos que são
usados para a comunicação com (e entre) os subsistemas e aplicativos do computador.
Então, ele entrega o controle do computador ao sistema operacional.
a) Gerenciamento do Processador.
b) Gerenciamento da Memória.
c) Gerenciamento de Dispositivos.
d) Gerenciamento de Armazenamento.
e) Interface de Aplicativos.
f) Interface do Usuário.
Um sistema operacional é dito ser monolítico quando todos os seus componentes estão
contidos no seu próprio Kernel , i.e, dentro do próprio sistema operacional e, em
assim sendo, todo componente pode comunicar-se diretamente com qualquer outro de
maneira rápida, ainda que não de forma modular e estruturada.
Tal abordagem tende a ser altamente eficaz, dado que muito pouco tempo é gasto nas
chamadas internas ao próprio sistema, entretanto a grande desvantagem dessa abordagem
é que por não ser uma concepção modular, fica muito mais difícil a determinação e correção
dos erros mais sutis. O sistema operacional é escrito como um conjunto de procedimentos,
alfamacursos.com.br 24
Sistemas Operacionais
cada um dos quais podendo chamar qualquer dos demais sempre que necessário. Quando
esta técnica é usada, cada procedimento do sistema deve ter uma interface bem definida
em termos de parâmetros e de resultados, sendo cada procedimento livre para chamar
qualquer outro se este último realizar algo de que o primeiro necessite.
Ex. MS-DOS, UNIX.
Imagem 9
Um dos primeiros sistemas operacionais a abordar o conceito “em camadas” (layers) foi o
Sistema Operacional THE (Technische Hogeschool Eindhoven), elaborado por Dijkstra na
Holanda em 1968. A vantagem da estruturação em camadas é isolar as funções do sistema
operacional facilitando sua alteração e depuração, além de criar uma hierarquia de níveis
de modos de acesso, protegendo as camadas mais internas (TANEMBAUM).
alfamacursos.com.br 25
Sistemas Operacionais
Uma tendência nos sistemas operacionais modernos é levar mais adiante essa ideia
de mover código para camadas mais altas e remover tanto quanto possível do sistema
operacional, deixando o mínimo de Kernel. A abordagem normal é implementar a maior
parte das funções do sistema operacional em processos de usuário. Para requisitar um
serviço, como ler um bloco de um arquivo, um processo de usuário (processo-cliente)
envia a requisição para um processo-servidor, que estão faz o trabalho e remete de volta
alfamacursos.com.br 26
Sistemas Operacionais
a resposta. Nesse modelo tudo que o Kernel faz é gerenciar a comunicação entre cliente-
servidor. Dividir o sistema operacional em partes, cada um gerenciando apenas uma
faceta do sistema operacional, como serviços de arquivos, serviços de processo, serviços
de terminal ou serviços de memória, torna todas as partes pequenas e gerenciáveis. As
demais, como todos os servidores executam como processo de modo usuário e não em modo
Kernel, eles não têm acesso direto ao hardware. Como consequência, se ocorrer um bug no
servidor de arquivos, o serviço de arquivos pode cair, mas isso normalmente não derrubará
a maquina inteira. Outra vantagem do modelo cliente-servidor é sua adaptabilidade para
uso em sistemas distribuídos. Se um cliente comunica-se com um servidor enviando-
lhe mensagens, o cliente não precisa saber se a mensagem é manipulada localmente
na máquina ou se foi enviada através de uma rede para um servidor em uma maquina
remota. No que diz respeito ao cliente, a mesma coisa acontece em ambos os casos:
uma requisição foi enviada e uma resposta voltou. Sempre que uma aplicação deseja
algum serviço, ela solicita ao processo responsável. Neste caso, a aplicação que solicita um
serviço é chamada de cliente, enquanto o processo que responde à solicitação é chamado
servidor.
Sistemas cliente-servidor
Imagem 11
Apesar de todas as vantagens deste modelo, sua implementação, na prática, é muito difícil
devido a certas funções do sistema operacional exigirem acesso direto ao hardware, como
operações de entrada e saída. Na realidade, o que é implementado mais usualmente é uma
combinação do modelo de camadas com o modelo cliente-servidor. 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 e gerência de memória, além das
funções dos device drivers.
alfamacursos.com.br 27
Sistemas Operacionais
_______________________________________________________________________
_______________________________________________________________________
_______________________________________________________________________
alfamacursos.com.br 28
Capítulo 5 - Gerenciamento de Dispositivos de E/S
alfamacursos.com.br 29
Sistemas Operacionais
O objetivo do DMA é para evitar que a última operação acima, que gasta um tempo
considerável, fosse necessária.
alfamacursos.com.br 30
Sistemas Operacionais
PARA LEMBRAR: O termo DMA é um acrônimo para a expressão em inglês Direct Memory
Access. O DMA permite que certos dispositivos de hardware num computador acedam a
memória do sistema para leitura e escrita independentemente da CPU.
Buffers - Dá-se o nome de buffer à uma parte da memória principal ou secundária para
possibilitar a transferência de dados entre os periféricos e a CPU. Essa área de buffer
é temporária, normalmente alocada dinamicamente e visa minimizar as diferenças de
velocidade do processamento da CPU e dos dispositivos de E/S e mesmo entre os vários
dispositivos de E/S.
6. Uma vez terminada a execução, o programa deve enviar uma mensagem de término ao
Gerenciador da Unidade de Processamento.
alfamacursos.com.br 31
Sistemas Operacionais
alfamacursos.com.br 32
Capítulo 6 - Gerência de Processos
6 - GERÊNCIA DE PROCESSOS
Exemplo:
• Um compilador é um programa que pode ser executado por vários usuários de uma só
vez; neste momento, tem-se um único programa (o compilador), mas vários processos
(um para cada compilação).
Associado com cada processo está seu espaço de endereçamento, uma lista de locais da
memória a partir de um mínimo (normalmente 0) até um máximo, que o processo pode ler e
gravar. O espaço de endereçamento contém o programa executável, os dados do programa
e sua pilha. Também associado com cada processo está um conjunto de registradores,
incluindo o contador de programa, o ponteiro da pilha e outros registradores de hardware
e todas as demais informações necessárias para executar o programa. (TANENBAUM)
6.1 - PROCESSOS
Todos os computadores modernos podem fazer várias coisas ao mesmo tempo. Enquanto
executa um programa do usuário, um computador também pode estar lendo a partir
de um disco e dando saída a texto para uma tela ou impressora. Em um sistema de
multiprogramação, a CPU também alterna de um programa para outro, executando cada um
por dezenas ou centenas de milissegundos. Monitorar múltiplas atividades paralelas é um
problema complicado. Assim, com os anos, os projetistas de sistemas desenvolveram um
modelo (processos sequenciais) que torna o paralelismo mais fácil de tratar. (TANEMBAUM)
alfamacursos.com.br 33
Sistemas Operacionais
carregar sua memória e para começar a rodar. Qualquer que seja a natureza exata da
chamada de sistema, os processos precisam dispor de uma maneira de criar outros
processos. Note que cada processo tem um pai, mas zero, um, dois ou mais filhos.
Cada processo tem um identificador único no sistema chamado pid (Process Identifier).
FORK cria processo “clone” do processo que chamou a função: retorna 0 no processo clone
filho. Retorna o identificador do filho criado (pid) no processo pai.
Embora cada processo seja uma entidade independente, com seu próprio contador de
programa e estado interno, os processos frequentemente precisam interagir entre si. Um
processo pode gerar alguma saída que outro processo utiliza como entrada. No comando
Shell: Cat chapter 1, chapter 2, chapter 3 | grep tree,
6.5 - THREADS
Os S.O.’s modernos estendem este conceito para permitir que um processo tenha vários
fluxos de execução, ou threads. O processo pode executar mais de uma tarefa a cada
vez. E permite que múltiplas execuções ocorram no mesmo ambiente do processo com
uma grau de independência umas das outras. Também chamadas de “Processos Leves”;
Aplicações multithread.
6.5.1 - VANTAGENS
No nosso dia a dia, encontramos vários tipos de atividades que são desenvolvidas em
paralelo, por exemplo: construção de um prédio, é uma justificativa para o uso de
paralelismo: muitos recursos (trabalhadores) estão disponíveis e o resultado (prédio
pronto) é obtido em menor tempo.
alfamacursos.com.br 34
Sistemas Operacionais
a) Independentes:
b) Concorrentes ou cooperantes:
alfamacursos.com.br 35
Sistemas Operacionais
alfamacursos.com.br 36
Capítulo 7 - Tipos de Processo e Escalonamento
Além dos processos do usuário, a CPU também executa processos internos do sistema.
São aqueles que oferecem os serviços do sistema operacional aos usuários, como criação/
eliminação de processos, tratamento de interrupção e todos aqueles correspondentes às
funções de um sistema operacional. Todos os processos internos ao sistema operacional
são executados, sempre, com certa prioridade, concorrendo com todos os processos do
usuário.
Os processos em execução, do usuário, podem ser de dois tipos diferentes, de acordo com
suas características de utilização da CPU e periféricos:
a) Processo CPU-Bound: é aquele processo que faz utilização intensa da CPU. Ele ganha
uma fatia de tempo (quantum) e a utiliza por inteiro, sem desperdiçar nenhum tempo. É o
caso de programas científicos, de aplicações numéricas diversas, de aplicações estatísticas,
pesquisas matemáticas, e também na área de simulação. Esses processos normalmente
fazem pouca ou nenhuma entrada de dados (input), e muito processamento.
b) Processo I/O-Bound: é aquele tipo de processo que utiliza muito mais os dispositivos
de E/S do que CPU. Aplicações que envolvem banco de dados, onde se fazem consultas e
atualizações constantes em arquivos em disco são bons exemplos deste tipo de processo.
De acordo com essas características, podemos dizer que este tipo de processo permanece
mais tempo em espera do que propriamente em execução, ocupando a CPU por períodos
mínimos de tempo.
Com relação às formas de interação com o(s) usuário(s), os processos podem ser de dois
tipos: os de plano frontal (foreground) e os de plano de fundo (backgroundl). Os processos
de plano de fundo podem dar a impressão de que não estão sendo executados pela CPU, já
que aparentam não estar se comunicando com o(s) usuário(s), entretanto, eles continuam
a ser executados e a disputar a CPU e o seu precioso tempo.
É aquele processo que está interagindo diretamente com o usuário, como por exemplo,
quando o usuário está atualizando os dados de uma planilha eletrônica, ou alterando algum
texto através de um editor de texto, ‘navegando’ na internet, compilando um programa
etc. Múltiplas janelas, cada uma delas com um aplicativo sendo executado, podem estar
abertas e não minimizadas, entretanto, somente uma delas está ativa. Esta janela ativa
constitui um exemplo de processo em foreground.
É aquele processo que foi ativado em algum instante pelo usuário e que está
momentaneamente sendo executado em outro plano de execução que não o frontal, ou
seja, que não está interagindo diretamente com o usuário. São exemplos de processos
em background todos aqueles que foram “minimizados” pelo usuário, como por exemplos,
sessões de download que ainda estão ocorrendo, uma ou mais janelas de navegação pela
internet, abertas, acessadas e minimizadas ou não pelo usuário. O ato de minimizar uma
determinada janela, com seu respectivo aplicativo sendo executado não caracteriza um
processo em background. Múltiplas janelas, cada uma delas com um aplicativo sendo
executado, podem estar abertas e não minimizadas, entretanto, somente uma delas está
ativa (foreground) – todas as demais janelas constituem-se de exemplos de processos em
background.
alfamacursos.com.br 37
Sistemas Operacionais
No escalonamento preemptivo é permitido que o processo que esteja apto a rodar seja
suspenso, adequa-se a sistemas multiusuários/multitarefas. As políticas que usam
preempção devem levar em consideração a sobrecarga para fazer a comutação1 entre
processos; esta sobrecarga pode ser grande, caso a comutação implique na permutação2
de processos entre a memória auxiliar e a memória principal.
1 - A comutação é o processo de interligar dois ou mais pontos entre si. Acesso em 05 dez. 2011.
http://pt.wikipedia.org/wiki/Comuta%C3%A7%C3%A3o
2 - O conceito de permutação expressa à ideia de que objetos distintos podem ser arranjados em
inúmeras ordens diferentes. http://pt.wikipedia.org/wiki/Permuta%C3%A7%C3%A3o
3 - Quantum (plural: Quanta) é termo genérico que significa quantidade elementar, como se infere da
etimologia da palavra, uma quantidade, unitária, de algo de natureza qualquer, abstrata ou concreta.
Acesso em 05 dez. 2011. http://pt.wikipedia.org/wiki/Quantum
alfamacursos.com.br 38
Sistemas Operacionais
Imagem 13
É muito simples mas pode trazer problemas se os tempos de execução são muitos discrepantes
entre si. Quando existem muitas tarefas ativas e longa duração no sistema, tarefas curtas
terão de resposta degradada porque as tarefas longas reciclarão continuamente a fila
circular, compartilhando de maneira equitativa o processador com as tarefas curtas.
Imagem 14
Concluímos que:
alfamacursos.com.br 39
Sistemas Operacionais
_______________________________________________________________________
_______________________________________________________________________
_______________________________________________________________________
alfamacursos.com.br 40
Capítulo 8 - Gerência de Memória
8 - GERÊNCIA DE MEMÓRIA
As memórias somente para leitura, do tipo ROM (Read Only Memory), permitem o acesso
aleatório e o usuário não podia alterar o seu conteúdo, que já vinha previamente gravado
do fabricante do aparelho. Para gravar memórias desse tipo são necessários equipamentos
específicos denominados gravadores de memória (ver abaixo).
Chamadas de memória real são memórias que o processador pode endereçar diretamente,
sem as quais o computador não pode funcionar. Estas fornecem geralmente uma ponte
para as secundárias, mas a sua função principal é a de conter a informação necessária
para o processador num determinado momento; esta informação pode ser, por exemplo,
os programas em execução. Nesta categoria insere-se a memória RAM (volátil), memória
ROM (não volátil), registradores e memórias cache.
São memórias que não podem ser endereçadas diretamente, a informação precisa ser
carregada em memória principal antes de poder ser tratada pelo processador. Não são
estritamente necessárias para a operação do computador. São geralmente não voláteis,
permitindo guardar os dados permanentemente. Incluem-se, nesta categoria, os discos
rígidos, CDs, DVDs e disquetes.
Fica a dica
Thrashing é a excessiva transferência de páginas/segmentos entre a memória principal
e a memória secundária.
O UNIVAC dos anos 50 foi uma supermáquina com alta tecnologia para a época. Não usava
mais grandes válvulas, mas várias pilhas de cartões de memória em módulos e formava
uma memória de ferrite. Cada memória tinha pequenos fios entrelaçados com pequenos
“anéis” magnéticos onde os fios se entrelaçavam. No meio do anel passavam pequenos fios
alfamacursos.com.br 41
Sistemas Operacionais
de cobre, (abaixo, à direita) cada qual com uma função específica (ler, gravar e sensor)
e, dependendo de qual função era selecionada, o pequeno “anel” era magnetizado de um
modo ou de outro, sinalizando um estado lógico “on” ou “off” (ou 1 e 0).
Em cada placa de memória, havia 1024 desses “anéis” magnéticos. Cada um representava
um bit de informação. Essa foi literalmente a última vez que poderia se observar a localização
de um bit na informação binária, isto porque algum tempo depois, os circuitos integrados
fizeram desse arranjo artesanal uma tecnologia obsoleta. O UNIVAC tinha 8 níveis juntos
dentro de uma pilha(stack), onde se encaixa as memórias (acima, à esquerda).
Cada um desses stacks eram feitos a mão e custavam em torno de US$ 6.000 doláres por
nível, na década de 50, o que era considerado caríssimo para a época, onde cada “anel” era
capaz de reter um estado lógico (0 ou 1) e, pelo fato de utilizarem tecnologia magnética,
as memórias de núcleo de ferrite eram do tipo não volátil. Para ler o conteúdo de um “anel”
era utilizado o fio sensor.
O cartão perfurado, que era um tipo de memória não volátil, foi aproveitado inicialmente
por Herman Hollerith, fundador da Tabulating Machine Company, precursora da atual
International Business Machine, IBM, para sistemas de informação não têxteis. Esses
cartões foram os precursores da memória usada em computadores. Nos primeiros
computadores, que eram máquinas enormes e muito complicadas de serem utilizadas. Os
alfamacursos.com.br 42
Sistemas Operacionais
A fita perfurada, que era também um tipo de memória não volátil é uma forma já bastante
obsoleta de armazenamento de dados, que consistia numa longa tira de papel, na qual
eram perfurados buracos que assim armazenavam informações. Foi usado largamente
em boa parte do século XX para a comunicação em aparelhos de telex, e em diversas
máquinas industriais.
As formas mais primitivas da fita perfurada provêm da sua utilização em teares e máquinas
de bordar, que eram alimentadas por cartões individuais com instruções simples sobre os
movimentos a serem executados por uma máquina, movimentos controlados por estes
cartões. Depois essas máquinas passaram a ser alimentadas por uma sequência de cartões
conectados. Isso levou à criação do conceito de não mais transmitir os dados por um
fluxo de cartões individuais, mas através de um “cartão contínuo” - ou seja - uma fita. As
máquinas que perfuravam essas fitas (ou cartões) eram conhecidas por “perfuradores”
(punchers), e foram muito utilizadas nas décadas de 60, 70 e80, peredendo espaço a partir
da década de 90.
Com o desenvolvimento dos transistores e com o contínuo avanço tecnológico nessa área
apareceram os circuitos integrados, inicialmente em pequena escala de integração (SSI –
Small Scale Integration), larga escala de integração (LSI – Large Scale Integration) e depois
com escala muito larga de integração (VLSI – Very Large Scale Integration). Memórias
alfamacursos.com.br 43
Sistemas Operacionais
semicondutoras são aquelas memórias que são construídas com tecnologia semicondutora,
qualquer que seja ela (HMOS, NMOS, PMOS, TTL, ECL, I2L, AsGa e etc.), e são memórias
de acesso aleatório, conforme já visto.
As memórias semicondutoras podem ser voláteis ou não voláteis. Memórias voláteis são
aquelas que requerem um constante fluxo de eletricidade para reterem os dados (RAM
(SRAm e DRAM), e memória cache e quando a energia elétrica é retirada, os dados se
perdem. Memórias não voláteis são aquelas memórias que continuam a reter os dados nelas
armazenadas, mesmo quando a eletricidade é retirada (ROM, PROM, EPROM, EEPROM,
Flash, discos magnéticos e óticos, fitas magnéticas e, muito antigamente as memórias de
ferrite, cartões e fitas perfuradas).
As memórias de sistema vêm em três tipos distintos de formato físico, denominados pelo
número de pinos em cada pente de memória:
• 30 pinos;
• 72 pinos;
• 168 pinos.
Todos os pentes SIMM de um banco devem ser do mesmo tamanho, e rodar à mesma
velocidade, definida pelo fabricante da placa-mãe, ou mais rápida.
A velocidade da memória RAM é medida em nanosegundos (ns). Hoje a maioria das placas-
mãe necessitam de memórias com velocidade de 70 ns ou mais rápidas. Assim você pode
colocar uma memória de 60 ns numa placa de 70 ns, mas nunca deverá fazer o contrário.
Fonte: http://www.superdicas.com/windows/windows13.asp
8.2.5 - DINÂMICAS
A memória dinâmica é a mais barata delas e, portanto, a mais utilizada nos computadores
e são aquelas que foram popularizadas como sendo as memórias RAM (Random Acess
Memory), i.e., memórias de acesso aleatório, o que significa que os dados nela armazenados
podem ser acessados a partir de qualquer endereço. As memórias RAM se contrapõem com
as de acesso sequencial, que exigem que qualquer acesso seja feito a iniciar pelo primeiro
endereço e, sequencialmente, vai “pulando” de um em um até atingir o objetivo, como em
fitas K7, fitas de vídeo cassete, fitas de computador do tipo CCT (Computer Compatible
Tape), fitas DAT (Digital Audio Tape) etc – Encontramos hoje no mercado memórias RAM
de 2, 3, 4 Me.
alfamacursos.com.br 44
Sistemas Operacionais
A memória estática não necessita ser refrescada periódicamente, pois é fabricada com uma
outra tecnologia utilizada em circuitos eletrônicos conhecidos como latches e que guardam
a informação por todo o tempo em que estiver a receber alimentação. Essas memórias são
mais rápidas, mais seguras e mais caras do que as memórias dinâmicas, entretanto são
mais lentas e mais baratas quando comparadas às memórias do tipo cache.
alfamacursos.com.br 45
Sistemas Operacionais
Quando o processo necessitar acessar a um dado que possa estar no local de armazenamento,
primeiramente ele verifica a memória cache. Se uma entrada for encontrada com o código
correspondente ao dado desejado, o elemento da cache é então utilizado ao invés do dado
original. Essa situação é conhecida como acerto na cache (cache hit). Como exemplo, um
navegador poderia verificar a sua cache local no disco para ver se tem uma cópia local dos
conteúdos de uma página Web numa URL particular. Nesse exemplo, a URL é o código e o
conteúdo da página é o dado desejado. A percentagem de acessos que resultam em cache
hits é conhecida como a taxa de acerto da cache (hit rate ou hit ratio).
Uma situação alternativa, que ocorre quando a cache é consultada e não contém um dado
com o código desejado, é conhecida como erro de cache (cache miss). O dado então é
copiado do local original de armazenamento e inserido na cache, ficando pronto para o
próximo acesso. Se a cache possuir capacidade de armazenamento limitada (algo comum
de acontecer devido ao seu custo), e não houver mais espaço para armazenar o novo dado,
algum outro elemento deve ser retirado dela para que liberte espaço para o novo elemento.
A forma (heurística) utilizada para selecionar o elemento a ser retirado é conhecida como
política de troca (replacement policy). Uma política de troca muito utilizada é a LRU (Least
Recently Used) que, em tradução livre, significa algo como “elemento recentemente menos
usado”.
Quando um dado é escrito na cache, ele deve ser gravado no local de armazenamento em
algum momento. O momento da escrita é controlado pela política de escrita (write policy).
Existem diferentes políticas. A política de write-through (algo como “escrita através”)
funciona da seguinte forma: cada vez que um elemento é colocado no cache, ele também
é gravado no local de armazenamento original. Alternativamente, pode ser utilizada a
política de write-back (escrita de volta), onde as escritas não são diretamente espelhadas
no armazenamento.
O mecanismo de write-back pode ser acionado por outras políticas também. O cliente
pode primeiro realizar diversas mudanças nos dados do cache e depois solicitar ao cache
alfamacursos.com.br 46
Sistemas Operacionais
para gravar os dados no dispositivo de uma única vez. Os dados disponíveis nos locais de
armazenamento original podem ser modificados por outras entidades diferentes, além do
próprio cache. Nesse caso, a cópia existente no cache pode se tornar inválida. Da mesma
forma, quando um cliente atualiza os dados no cache, as cópias do dado que estejam
presentes em outros caches se tornarão inválidas. Protocolos de comunicação entre
gerentes de cache são responsáveis por manter os dados consistentes e são conhecidos
como protocolos de coerência.
alfamacursos.com.br 47
Sistemas Operacionais
alfamacursos.com.br 48
Capítulo 9 - Sistemas de Arquivos
9 – SISTEMAS DE ARQUIVOS
É basicamente uma estrutura que indica como os arquivos devem ser gravados e guardados
em mídias. Através do sistema de arquivos, é que se determina o espaço utilizado no disco,
além de ser o método que permite gerenciar como partes de um arquivo podem ficar
“espalhadas” no dispositivo de armazenamento. Outro detalhe importante: é o sistema de
arquivos que determina como arquivos podem ser gravados, copiados, alterados, nomeados
e até apagados. Ou seja, resumindo, toda e qualquer manipulação de dados numa mídia
necessita de um sistema de arquivos para que essas ações sejam possíveis. Se não houver
estrutura de armazenamento e manipulação é impossível gravar dados.
OBSERVAÇÃO
alfamacursos.com.br 49
Sistemas Operacionais
Antes de uma partição ou disco ser usado como um sistema de arquivos ele necessita ser
inicializado, e a estrutura básica de dados necessita ser gravada no disco. Este processo é
chamado criação de um sistema de arquivos.
O primeiro sistema de arquivos estendido (ext) foi projetado por Remy Card e introduzido
no Linux em abril de 1992. O sistema de arquivos “ext” foi o primeiro a utilizar o comutador
do Sistema de Arquivo Virtual (VFS) implementado no kernel 0.96c e suportava sistemas
de arquivos de até 2 gigabytes (GB).
Após a inclusão do VFS (Virtual Filesystem) no núcleo inicialmente escrito por Chris
Provenzano, depois reescrito por Linnus Torvalds, Rémy Card criou o Ext em 1992, que foi
incluído no Linux 0.96c. Esse sistema de arquivos estendeu o limite do volume para 2 GiB
e o tamanho do nome de arquivo para 255 caracteres.
O “ext” ainda tinha alguns problemas, como a falta de suporte a modificação e no tempo
de modificação do arquivo. E com o uso, o sistema ficava fragmentado e lento. No início de
1993 foram disponibilizados 2 novos sistemas: o XiaFS, de Frank Xia, também baseado no
Minix; e o Ext2, que tornou-se o sistema de arquivos padrão para instalações Linux.
9.2.2 - A EXT2
Sem dúvida alguma o EXT2 foi uma evolução e tanto em relação ao EXT, pois neste sistema
de arquivos muitas melhorias foram implantadas, fazendo deste modo com que o Linux
tivesse um sistema de arquivos com recursos importantíssimos para uma boa administração
de sistemas, tais como o suporte a regras de permissões bem definidas. A estrutura do
EXT2 pode ser definida assim:
alfamacursos.com.br 50
Sistemas Operacionais
uma hierarquia de arquivos e diretórios, onde pode haver sub diretórios relacionados.
E todos devem estar organizados numa partição, que é onde o sistema de arquivos é
criado. Estas partições podem ser montadas ou desmontadas. Quando o sistema é iniciado,
verifica-se no arquivo /etc/fstab as partições e dispositivos a serem montados. Ao desligar
o sistema, as mesmas são desmontadas. Mesmo com o sistema ativo, as partições ou
dispositivos podem ser montados ou desmontados a qualquer hora, inclusive em diretórios
diferentes, o que dá uma versatilidade muito grande.
No Linux pode se acessar partições de diversos tipos, como FAT, FAT32, iso9660 e outras,
inclusive pode se instalar um sistema nestas partições, assim como rodá-lo através de
um CD-ROM. Isso se deve graças ao VFS (Virtual File System), que faz todo um trabalho
de gerenciamento do sistema de arquivos “desconhecido”, decifrando sua estrutura e
repassando as para o Kernel e programas, para que estes possam trabalhar sob o FS.
É evidente que isso tem um preço, que se traduz em perda de rendimento, devido a
emulação de estruturas.
Para quem tem dual boot, a versatilidade do Linux é um bom recurso, mas até pouco
tempo atrás ainda existia uma pequena barreira: NTFS.
Tantos recursos assim fazem com que o EXT2 seja poderoso, mas é evidente que ele tem as
suas fragilidades. Algumas delas podem até comprometer o bom andamento do trabalho.
9.2.3 - A EXT3
O Ext3 (ou third extended filesystem) é baseado em journaling, que é comumente usado
pelo kernel do Linux. Sua maior vantagem sobre o antigo Ext2 é justamente o uso do
journaling, que aumenta a confiabilidade e elimina a necessidade de checar o sistema de
arquivos depois de um desligamento inesperado do sistema.
1. Vantagens
Apesar de sua performance (velocidade) ser menos atrativa em comparação com outros
sistema de arquivos Linux como o JFS, ReiserFS e o XFS, o Ext3 tem uma importante
vantagem, que é a de ser possível um upgrade direto do ext2 sem a necessidade de backup
e restauração de dados.
a) Journaling.
b)Crescimento do sistema de arquivos de forma on-line.
c) Indexação por H-tree para diretórios com muitos arquivos. Uma H-tree é uma versão
especial de uma B-tree.
Sem estes elementos, qualquer sistema Ext3 se torna um Ext2 válido. Isto permitiu que
ferramentas de manutenção e reparação de sistemas de arquivos Ext2 já bem testados
e maduros pudessem ser usados para sistemas Ext3 sem grandes modificações. Ambos
usam o mesmo conjunto de ferramentas padrão, o e2fsprogs, que inclui um fsck. A estreita
relação permite a conversão direta entre os sistemas, em ambas as direções (tanto Ext2
para Ext3, quanto o caminho inverso).
alfamacursos.com.br 51
Sistemas Operacionais
Quando se trata de recuperação de dados o Ext3 tem uma significativa vantagem sobre
seus concorrentes. Os metadados do sistema ficam todos armazenados em localizações
fixas e bem conhecidas, e há uma certa redundância inerente nas estruturas de dados que
permitem que Ext2 e Ext3 sejam recuperáveis face a uma corrupção de dados significativa,
onde sistemas baseados em árvores de arquivos podem não ser.
9.2.4 - JOURNALING
1. Journal (risco mais baixo): Tanto metadados quanto o conteúdo dos arquivos são
escritos no journal antes de serem submetidos ao sistema de arquivos principais. Por o
journal ser relativamente contínuo no disco, isto aumenta a performance em algumas
circunstâncias. Em outros casos, a performance pode piorar, em razão de os dados serem
escritos duas vezes (uma vez no journal, e outra para o parte principal do sistema de
arquivos).
3. Writeback (risco mais alto): Somente metadados são escritos no journal; o conteúdo
dos arquivos não. O conteúdo pode ser escrito antes ou depois que o journal é atualizado.
Como consequência, arquivos modificados logo antes de uma pane podem ser corrompidos.
Por exemplo, um arquivo com dados sendo anexados pode ser marcado no journal como
sendo maior do que ele realmente é causando inconsistências. Versões antigas de
arquivos podem aparecer inesperadamente depois de uma recuperação do journal. A falta
de sincronização entre dados e journal é rápida em muitos casos.
9.2.5 - EXT4
O sucessor do Ext3 foi criado como uma série de extensões retro compatíveis para remover
os limites de armazenamento em 64 bits, e adicionar outras melhorias de performanc.
Entretanto, alguns desenvolvedores do Kernel do Linux mostraram-se contrários em aceitar
extensões no Ext3 por razões de estabilidade, e propuseram criar um fork do código fonte
do Ext3, renomeá-lo de Ext4, e fazer todo o desenvolvimento desta forma, sem afetar os
atuais usuários do Ext3. Tal proposta foi aceita, e em 28 de junho de 2006, Theodore Ts’o,
o mantenedor do Ext3 na época, anunciou o novo plano de desenvolvimento para o Ext4.
Uma versão preliminar do Ext4 foi incluída na versão 2.6.19 do kernel. Em 11 de outubro
de 2008, os patches que determinavam que o Ext4 tornou-se stable code foi integrado aos
repositórios do código-fonte do Linux 2.6.28, denotando o fim da fase de desenvolvimento
e consequente recomendação da adoção do Ext4. O Kernel 2.6.28 contendo o Ext4 foi
finalmente lançado no dia 25 de dezembro de 2008. Em 15 de janeiro de 2010, o Google
alfamacursos.com.br 52
Sistemas Operacionais
9.2.5.1 - CARACTERÍSTICAS
alfamacursos.com.br 53
Sistemas Operacionais
para um file system do tamanho que o Ext4 foi projetado para suportar. Esta funcionalidade
foi implementada na versão 2.6.24 o kernel.
9.4 - REISERFS
O sistema de arquivos ReiserFS teve sua primeira aparição no ano de 2001 pelas mãos de
Hans Reiser (daí o nome do padrão), que também montou uma equipe de nome NAMESYS
para gerenciar os trabalhos do projeto. Desde então, o ReiserFS vem sendo cada vez mais
utilizado, principalmente por estar disponível como padrão em muitas das distribuições
Linux, fazendo frente ao sistema de arquivos ext3.
O ReiserFS foi bem aceito devido ao seu conjunto de características, que o tornam um
sistema de arquivos seguro, eficiente, rápido e confiável.
9.4.1 - CARACTERÍSTICAS
9.4.1.1 - JOURNALING
Um dos recursos que faz o ReiserFS ser bastante seguro é a funcionalidade Journaling.
Com ele, o sistema de arquivos passa a registrar em uma área especial chamada “journal”
ou “log” as ações que serão feitas nos arquivos (gravação ou alteração de dados) antes
da execução em si. Após a execução, as operações registradas no log são tidas como
concluídas e, portanto, eliminadas. Esses registros somente são eliminados quando as
mudanças são executadas. Se, por exemplo, o computador for desligado repentinamente
(como ocorre em falta de energia elétrica), o sistema de arquivos verificará os registros
existentes no journal e executará aquilo que estiver marcado como não realizado. Isso faz
com que o risco de perda de dados diminua drasticamente, já que o sistema operacional
saberá “onde parou”.
alfamacursos.com.br 54
Sistemas Operacionais
9.4.1.3 - INODES
Inodes são estruturas que contém informações sobre os arquivos, diminuindo o desperdício
de espaço. Em outros sistemas de arquivos têm blocos de tamanho fixo para alocação,
assim, se não for necessário usar um bloco inteiro, o espaço restante fica em desuso. No
ReiserFS, a alocação é feita com base no tamanho do arquivo.
Nos inodes é que são classificadas as informações referentes a cada arquivo, isto é, os
metadados. Os direct items são os arquivos em si, mas quando armazenados nas “folhas”
das sub-árvores e, embora tenham tamanho variável, são compostos por blocos de dados
pequenos. Os direct items ficam próximos aos metadados, já que tanto um como o outro
são organizados nas árvores. Já os blocos maiores, isto é, os indirect items, não são
incluídos nas árvores (por isso recebem esse nome) e são “localizáveis” por ponteiros que
indicam onde estão armazenados.
9.5 - DESVANTAGENS
O sistema ReiserFS não trabalha perfeitamente com sistemas de arquivos de redes NFS
(Network File System). Existem alguns “patchs” disponíveis para consertar o problema,
mas não resolvem o problema completamente.
O ReiserFS também não funciona corretamente com RAID (Redundant Array of Independent
Drives) implementado via software, já se o uso for por meio de hardware o ReiserFS
suporta muito bem.
Outro fator que abala o crescimento do ReiserFS, foi a prisão do seu criador Hans Heiser no
final de 2006 e a sua condenação no início de 2008 por assassinato, gerando a paralisação
das atividades da Namesys (corporação californiana responsável pelo planejamento e
implementação dos sistemas de arquivos ReiserFS e Reiser4).
alfamacursos.com.br 55
Sistemas Operacionais
FAT é a sigla para File Allocation Table (ou tabela de alocação de arquivos). O primeiro FAT
surgiu em 1977, para funcionar com a primeira versão do DOS. Trata-se de um sistema
que funciona através de uma espécie de tabela que contém indicações para onde estão as
informações de cada arquivo. Quando um arquivo é salvo num disquete, por exemplo, o
FAT divide a área do disco em pequenos blocos. Assim, um arquivo pode (e ocupa) vários
blocos, mas eles não precisam estar numa sequência. Os blocos de determinados arquivos
podem estar em várias posições diferentes. Daí a necessidade de uma tabela para indicar
cada bloco. Com o surgimento de dispositivos de armazenamento com mais capacidade
e mais sofisticados, o sistema FAT foi ganhando alterações (identificadas pelos nomes
FAT12 e FAT16). Isso foi necessário porque o FAT era limitado a determinada capacidade
de armazenamento. Por exemplo, ele só operava com tamanho máximo de 2 GB. Diante
destes problemas a Microsof criou uma nova versão chamada FAT32, que é compatível com
os Windows 9x/Me/2000 e Xp.
O sistema de arquivos FAT não trabalha diretamente com cada setor, mas sim com um
grupo de setores. Esse grupo é chamado de cluster (ou unidade de alocação). Se por
exemplo, um disco com setor de 512 bytes, tiver 5 KB de tamanho, ele terá 10 setores e 5
clusters, se cada cluster ocupar dois setores. Sendo assim, quando o FAT precisar acessar
um determinado setor, primeiro ele descobre em qual cluster ele se encontra. É válido citar
que tanto o FAT quanto o FAT32 trabalham de acordo com este princípio.
O sistema FAT exige que cada cluster do disco seja usado somente para um único arquivo,
ou seja, num mesmo cluster, não pode haver informações sobre mais de um arquivo. Isso
gera desperdício, vamos supor que desejamos guardar num disquete um arquivo de 5
KB e tenha 8 KB de espaço e dois clusters de 4 KB. Um cluster ocuparia 4 KB do arquivo,
enquanto o outro cluster ocuparia apenas 1 KB. Como o cluster só pode trabalhar com um
arquivo, haveria desperdício de 3 KB. Vamos imaginar agora que em vez de termos clusters
com 4 KB, teremos clusters com 2 KB. Assim, 3 cluster seriam usados, sendo que um ainda
apresentaria desperdício de 1 KB. No entanto, sobrou um cluster com 2 KB, que pode ser
usado por outro arquivo.
Percebe-se com isso que o tamanho do cluster deve ser o máximo que o FAT consegue
manipular. Aliás, a principal diferença entre FAT e FAT 32, é que este último consegue
trabalhar com um número maior de clusters.
O sistema FAT (ou FAT16) consegue trabalhar com 65536 clusters. Esse número é obtido
elevando o número 2 a 16 (daí a terminologia FAT16). É importante frisar que o tamanho
do cluster deve obedecer também uma potência de 2: 2 KB, 4 KB, 8 KB, 16 KB e 32 KB, ou
alfamacursos.com.br 56
Sistemas Operacionais
seja, não é possível ter cluster de 5 KB, 7 KB, etc. O tamanho dos clusters no sistema FAT
também é uma potência de 2. O limite máximo de tamanho para uma partição em FAT16
é de 2 GB (correspondente a 2 elevado a 16). O tamanho máximo da partição em FAT32
é de 2 TB.
As diferenças entre FAT (ou FAT16) e FAT32 não param por aí. O FAT32 também é mais
confiável, além disso este sistema também consegue posicionar o diretório principal em
qualquer lugar do disco. Fora o fato de que no sistema FAT, havia uma limitação no número
de entradas que podiam ser alocadas no diretório principal (512 arquivos e/ou pastas).
Não há essa limitação no FAT32.
NTFS é acrônimo para New Technology File System. Desde a época do DOS, a Microsoft
vinha utilizando o sistema de arquivos FAT, que foi sofrendo variações ao longo do tempo,
de acordo com o lançamento de seus sistemas operacionais. No entanto, o FAT apresenta
algumas limitações, principalmente no quesito segurança. Por causa disso, a Microsoft
lançou o sistema de arquivos NTFS, usado inicialmente em versões do Windows para
servidores.
O NTFS possui características importantes, que o fez ser considerado um bom sistema de
arquivos. Entre essas qualidades estão: confiança, pois permite que o sistema operacional
se recupere de problemas sem perder informações, fazendo-o ser tolerante a falhas;
segurança, onde é possível ter um controle de acesso preciso e ter aplicações que rodem
em rede, fazendo com que seja possível o gerenciamento de usuários, incluindo suas
permissões de acesso e escrita de dados; armazenamento, onde é possível trabalhar com
uma grande quantidade de dados, permitindo inclusive o uso de arrays RAID; rede, fazendo
do sistema plenamente funcional para o trabalho e o fluxo de dados em rede.
Conforme as características herdadas do HPFS, o NTFS trabalha de uma forma mais eficiente
no gerenciamento do espaço de disco. Isso porque as informações são armazenadas
em uma base por setor do disco, em vez de utilizar clusters de múltiplos setores. Essa
forma de trabalho traz várias vantagens, como menor necessidade de desfragmentarão
de disco e maior consistência de dados. Isso porque essa arquitetura de dados por base
em setor permite manter os dados próximos, ou seja, não espalhados pelo disco. Até o
gerenciamento de grandes quantidades de dados é beneficiado por esta característica,
já que como acontecia com o FAT, trabalhar com clusters por setor, fazia do sistema de
arquivos dependente de um número pré-determinado de setores.
alfamacursos.com.br 57
Sistemas Operacionais
a) Ele oferece segurança muito melhor, compactação arquivo por arquivo, cotas e até
criptografia.
b) O NTFS é o melhor para uso em volumes de aproximadamente 400 MB ou mais. Isso
ocorre porque o desempenho não diminui sob NTFS com tamanhos de volume muito
grandes, como acontece sob FAT.
c) A recuperação designada no NTFS é de tal modo que um usuário nunca deverá executar
qualquer tipo de utilitário de reparo de disco em uma partição de NTFS.
alfamacursos.com.br 58
Sistemas Operacionais
_______________________________________________________________________
_______________________________________________________________________
_______________________________________________________________________
alfamacursos.com.br 59
Capítulo 10 - Conceitos de Hardware
10 – CONCEITOS DE HARDWARE
Neste capítulo vamos relembrar conceitos de hardware, entendendo melhor nossa matéria.
É importante para o conhecimento dos sistemas operacionais conhecer este importante
item.
10.1 - HARDWARE
Um programa é composto por uma série de instruções que são executadas sequencialmente
pela UCP, através de operações básicas como somar, subtrair, comparar e movimentar
dados. Desta forma, a UCP busca cada instrução na memória principal e a interpreta para
sua execução.
A UCP é composta por dois componentes básicos: unidade de controle e unidade lógica
aritmética. A Unidade de controle (UC) é responsável por controlar as atividades de todos
os componentes do computador, mediante a emissão de pulsos elétricos (sinais de controle)
gerados por um dispositivo denominado clock. Este controle pode ser a gravação de um
dado no disco ou a busca de uma instrução da memória. A unidade lógica e aritmética
(ULA), como o nome indica, é responsável pela realização de operações lógicas (testes e
alfamacursos.com.br 60
Sistemas Operacionais
10.3 - CLOCK
10.4 - REGISTRADORES
alfamacursos.com.br 61
Sistemas Operacionais
O processador se comunica com outros circuitos e placas que são encaixadas nas fendas,
os “slots”, ou seja, conectores da placa-mãe. O caminho pelo qual se dá essa comunicação
entre o processador e as outras placas é denominado de barramento.
É importante notar que quanto mais rápido for o processador, maior será a velocidade com
que os dados serão trabalhados e mais rapidamente as instruções serão executadas.
Lembrete
Mega é um prefixo de origem grega que dá a ideia de grande, aplicado às unidades,
utiliza-se “mega” para representar um milhão. Giga são mil milhões.
Hertz é uma unidade de periodicidade que corresponde a um ciclo por segundo algo
como uma “instrução-por-segundo”.
Logo, 100 Hz possibilita 100 instruções/segundo. 100 MHz são 100 milhões de
instruções por segundo. Mil megahertz (1000 MHz) equivalem a um gigahertz (1 GHz)
que, por sua vez, significa um bilhão de instruções por segundo.
Importante
Lembrar que todo processador deve ter um cooler acoplado, peça que lembra um
ventilador. O cooler é a responsável por manter a temperatura do processador em
níveis aceitáveis, o que é essencial, pois quanto menor for à temperatura, maior será
a vida útil do processador.
A temperatura sugerida para cada processador varia de acordo com o fabricante, com
o mecanismo e com o seu desempenho. Considera-se, de modo geral que 25ºC é um
valor bom para qualquer processador (e para qualquer peça dentro do computador, já
que não é apenas ele que esquenta).
alfamacursos.com.br 62
Sistemas Operacionais
O barramento frontal - FSB (“Frontside Bus”) é a medida com que o processador permite a
comunicação entre a memória RAM e todos os outros componentes do PC com o processador.
Em tese, quanto mais rápido o FSB, maior será a sinergia com os outros periféricos e mais
capacidade o processador terá de ter seu clock aumentado.
Os Pentium 4 sempre tiveram - e ainda têm - mais memória cache e um FSB superior
aos Athlon. No início de 2005, o Pentium IV era o processador “top” de linha, com alta
velocidade do barramento. As versões novas do Pentium rodavam, então, a 800 MHz de
barramento, enquanto o concorrente Athlon da “AMD” chegava a 400 MHz. É importante
lembrar que o processador Celeron é a opção de baixo custo da “Intel”, mas apresenta um
desempenho inferior aos demais e nem sempre é o mais barato.
Assim, no geral, o top de linha da “Intel” não é recomendado para ambientes de trabalho
(empresas) e para pessoas que precisem apenas usar programas de escritório, internet e,
talvez, uns jogos, já que o preço não compensa.
“Dual core” em português significa dois núcleos, ou seja, há dois núcleos de processamentos
embutidos em um chip, em vez de apenas um núcleo (“Single Core”). Não equivale
exatamente a ter dois processadores simultâneos, mas produz um resultado interessante,
principalmente para quem trabalha com várias janelas e/ou muitos aplicativos abertos ao
mesmo tempo.
Na prática, o uso de “dual core” ainda não tem utilidade para jogos, mas existe uma certa
diferença no ganho de desempenho para aplicativos de Internet e para as pessoas que
adoram ter dezenas de programas abertos ao mesmo tempo, Nesse patamar, a “AMD”
trabalha com o Athlon X2 e a “Intel” com o Pentium D, mas em novembro de 2005 ainda
são raros no Brasil.
No início de 2006 a “Intel” revelou que esperava vender 60 milhões de chips de núcleo duplo
este ano. E também que esperava colocar seu primeiro processador de núcleo quádruplo
no mercado em 2007.
alfamacursos.com.br 63
Sistemas Operacionais
tempo, usando menos energia que um design de núcleo único. O Clovertown é dirigido a
servidores que acionam redes empresariais e hospedam sites. Será vendido em servidores
com baias para dois processadores, o que significa que os computadores terão até oito
núcleos processando dados simultaneamente.
Portanto, a arquitetura de 64 bits consegue lidar com uma quantidade maior de dados
simultaneamente. Ou seja, um processador com 32 bits pode manipular um número de
valor até 4.294.967.296. Portanto, em um cálculo, se um certo número tiver valor superior
a esse, por exemplo: 70.000, terá que realizar cada etapa da operação em duas vezes ou
mais, enquanto um chip de 64 bits fará tudo em apenas uma vez, pois pode manipular
números de valor até 4.294.967.296 em uma única operação.
Assim para valores até 4.294.967.296 não faz muita diferença se usamos processadores/
programas 32 ou 64 bits. E uma boa quantidade de programas de uso comum ainda é
assim.
Por exemplo, supondo que alguém esteja utilizando um editor de textos. É improvável que
esse programa chegue a utilizar grandes valores em suas operações, portanto, a pessoa
praticamente não sentirá diferença se utilizar um computador com 32 ou com 64 bits.
alfamacursos.com.br 64
Sistemas Operacionais
alfamacursos.com.br 65
Capítulo 11 - Sistemas Operacionais Móveis
O mercado de celulares está crescendo cada vez mais. Provavelmente há mais de 3 bilhões
de pessoas que possuem um aparelho celular, isso corresponde a mais ou mesmo metade
da população mundial. A procura por celulares cada vez mais com recursos diversos como:
câmeras, músicas, Bluetooth, jogos, GPS, internet, e-mail e também TV. Com o crescimento
tecnológico o mercado coorporativo passou a crescer e o que vemos são diversas empresas
incorporando aplicações móveis no dia a dia, desse modo, os negócios passam a ser mais
ágeis, aumentando assim crescimento e rendimento das empresas. O mundo é globalizado
e a palavra mobilidade torna-se presente cada vez mais. Observamos o crescimento desse
meio nos acessos feitos por celular, transações bancárias (pagar conta, visualizar extratos),
busca de informações sincronizadas com servidores na empresa.
O sistema operacional (S.O.), tanto para celular, quanto para computador, é um programa
que tem como função gerenciar os aplicativos, a memória, criar sistema de arquivos e
etc. Veja quais são os tipos de sistemas e descubra qual se encaixa melhor com a sua
necessidade.
Palm OS
Symbian
Windows Mobile
alfamacursos.com.br 66
Sistemas Operacionais
Hoje, na versão 7, o Windows Mobile não pode ser classificado como multitarefa, mas
ele simula esse recurso alternando uso de soluções de computador com as aplicações
em execução. Essa última versão tem um diferencial bem interessante: um recurso que
permite que ele se comunique com outros dispositivos da Microsoft, como o Zune e o Xbox
360. Resumidamente, esse sistema é uma versão simplificada do software para desktops,
o que, geralmente, facilita muito a vida do usuário, que já tem bem mais familiaridade com
a plataforma.
iOS
O iOs é o sistema operacional desenvolvido pela Apple, a partir do Mac OS X. A versão é mais
simples, supercustomizada, tem acesso rápido e fácil aos dispositivos e foi popularizada
quando equipou o iPhone. Dividido em três domínios: o Machine Level Software - utilizado
para atender as necessidades de trabalho de todos os usuários; o System Level Software -
utilizado para atender as funções críticas do sistema; User Level Software - utilizado para
atender as necessidades de um usuário específico. As características multitarefa foram
adquiridas somente na versão 4, antes a Apple não acreditava ser necessário disponibilizar
o recurso. A interface de usuário é o grande motivo pelo qual esse sistema operacional ficou
tão conhecido. A interface intuitiva permite que um usuário com poucos conhecimentos
faça uso do sistema operacional.
Blackberry OS
Seus aparelhos são geralmente equipados com teclados (QWERTY ou outra variação) no
formato candybar (o teclado ocupa a parte inferior do aparelho e a tela no superior),
justamente para priorizar a comunicação.
Windows CE
Windows CE podendo ser chamado de WinCE é uma versão popular da linha de sistemas
operativos Windows. O Windows CE está optimizado para dispositivos que tem um
mínimo de armazenamento. É um sistema operacional que tem a mesma aparência e
características do Windows 95, é oferecido gratuitamente nos equipamentos e divididos
em três categorias. Windows CE é Windows em versão compacta e para os amantes da
Microsoft é um ótimo aliado dos aparelhos portáteis como minicomputadores, telefones
celulares e o videogame Dreamcast. Ele é suportado no Intel x86 e compatíveis com MIPS,
ARM, e processadores SuperH Hitachi. Seu uso mais notável é como sistema operacional
dos pocket PC´s produzidos pela Hewlett-Packard, Toshiba e outros. O Windows CE inclui
agenda interativa de compromissos, catálogo de endereços, correio eletrônico e navegação
na Web.
Android
alfamacursos.com.br 67
Sistemas Operacionais
O Sistema Operacional Android foi baseado no Kernel 2.6 Linux e é responsável por
gerenciar a memória, os processos, threads e a segurança dos arquivos e pastas, além de
redes e drivers.
Importante: toda segurança do Android é baseada na segurança Linux. No Android cada
aplicação é executada em um único processo e cada processo por sua vez possui uma
thread dedicada. Para cada aplicação instalada no celular é criado um usuário no sistema
operacional para ter acesso a sua estrutura de diretórios. Dessa forma nenhum outro
usuário pode ter acesso a esta aplicação.
alfamacursos.com.br 68
Sistemas Operacionais
alfamacursos.com.br 69
Capítulo 12 - Sistemas Operacionais - Linux, Windows, UNIX,
Mac OS – Conhecendo suas características e funcionalidades
Desenvolvido por Linus Torvalds. Ele queria um sistema operacional que fosse semelhante
a um Unix, com todas as suas funcionalidades e, ainda, que pudesse utilizá-lo num PC. A
partir dessa ideia, Linus começou a trabalhar nesse que seria o futuro Kernel do sistema
operacional que hoje é chamado de Linux. Isso tudo aconteceu em meados de 1991,
quando Linus cursava a faculdade de Computação na Finlândia. Em 5 de outubro de 1991
a seguinte mensagem circulou na usenet: “...Como eu mencionei há um mês, estou
trabalhando em uma versão free de um sistema semelhante ao Minix para computadores
AT-386. Ele já alcançou o estágio de ser usável (embora possa não ser, dependendo do
que você quer fazer), e pretendo distribuir o código-fonte. É apenas a versão 0.02... mas
já consegui rodar nele o bash, gcc, gnumake, gnused, compress, etc.” Esta mensagem era
assinada por Linus Torvalds, e ninguém adivinharia que ela estaria marcando o início de um
movimento que, menos de dez anos depois, já tem mais de trinta milhões de seguidores.
Assim surgiu, o que seria o primeiro Kernel utilizável do Linux. O Kernel é o núcleo do
sistema operacional, é a parte que controla diretamente o hardware da máquina. Quando
se fala de Linux, está se referindo somente ao Kernel do sistema. Tudo que existe ao redor
do Kernel são aplicativos que compõem uma distribuição do Linux.
Lembrando: Questão de gosto pessoal. Existe uma base comum grande de softwares
aplicativos (editores gráficos, planilhas, bancos de dados, ambientes de programação,
formatação de documentos, firewalls e etc.) Desenvolvidos pela GNU (GNU is not Unix)
da Free Software Foundation. Em uma distribuição o que se paga não é o Linux, mas
uma série de serviços disponibilizados – Cdrom, manuais de instalação, hot-line, software
proprietário e etc. Algumas distribuições Linux são maiores que outras, dependendo da
quantidade de aplicativos e a finalidade a que se propõem. Existem desde distribuições que
cabem num disquete de 1.44Mb até distribuições que ocupam vários CDs. Cada uma delas
têm seu público-alvo e finalidades específicas. As minidistribuições têm como objetivo
desde a recuperação de um sistema danificado até o monitoramento de uma rede de
computadores. Algumas distribuições incluem ferramentas de configuração que facilitam a
vida do administrador do sistema.
Exemplos:
Debian http://www.debian.org
Conectiva http://www.conectiva.com.br/
Slackware http://www.slackware.com/
SuSE http://www.suse.com/
Red Hat Enterprise Linux http://www.redhat.com/
Fedora http://fedora.redhat.com/
Mandrake http://www.mandrakelinux.com/
alfamacursos.com.br 70
Sistemas Operacionais
Kurumin http://guiadohardware.net/kurumin/index.
php/
Ubuntu http://www.ubuntu-br.org/
Tabela 1
12.3 - CARACTERÍSTICAS
Convive sem nenhum tipo de conflito com outros sistemas operacionais (com o DOS,
Windows, OS/2) no mesmo computador.
• Multitarefa real.
• Multiusuário.
• Suporte a nomes extensos de arquivos e diretórios (255caracteres).
• Conectividade com outros tipos de plataformas como Apple, Sun, Macintosh,
Sparc, Alpha, PowerPc, ARM, Unix, Windows, DOS e etc.
• Proteção entre processos executados na memória RAM.
• Suporte a mais de 63 terminais virtuais (consoles) memória o que é usado
durante o processamento, liberando totalmente a memória assim que o programa/
dispositivo é finalizado.
• Devido à 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, por exemplo).
• Não há a necessidade de se reiniciar o sistema após 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). Já pensou no seu desempenho em um 486 ou Pentium.
• 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 GNU/Linux é licenciado de acordo
com os termos da GPL. Acessa corretamente discos formatados pelo DOS, Windows,
Novell, OS/2, NTFS, Sun OS, Amiga, Atari, Mac, etc.
• Utiliza permissões de acesso a arquivos, diretórios e programas em execução na
memória RAM.
• O LINUX NÃO É VULNERÁVEL A VÍRUS! Devido à separação de privilégios entre
processos e respeitadas as recomendações padrão de política de segurança e uso
de contas privilegiadas (como a de root, como veremos adiante), programas como
vírus tornam-se inúteis, pois tem sua ação limitada pelas restrições de acesso
do sistema de arquivos e execução. Frequentemente são criados exploits que
tentam se aproveitar de falhas existentes em sistemas desatualizados e usá-las
para danificar o sistema. Erroneamente este tipo de ataque é classificado como
vírus por pessoas mal informadas e são resolvidas com sistemas bem mantidos.
Em geral, usando uma boa distribuição que tenha um bom sistema de atualização
resolve em 99,9% os problemas com exploits. Qualquer programa (nocivo ou não)
poderá alterar partes do sistema que possui permissões. Rede TCP/IP mais rápida
que no Windows e tem sua pilha constantemente melhorada. O GNU/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.
• Jogadores do Quake ou qualquer outro tipo de jogo via Internet preferem o GNU/
Linux por causa da maior velocidade do Jogo em rede. É fácil rodar um servidor
alfamacursos.com.br 71
Sistemas Operacionais
Quake em seu computador e assim jogar contra vários adversários via Internet.
Roda aplicações DOS através do DOSEMU, QEMU, BOCHS. Para se ter uma ideia, é
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.
• Suporte a dispositivos infravermelho.
• Suporte a rede via rádio amador.
• Suporte a dispositivos Plug-and-Play.
• Suporte a dispositivos USB.
• Suporte a Firewire.
• Dispositivos Wireless.
Vários tipos de firewalls de alta qualidade e com grande poder de segurança de graça.
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 GNU/Linux (Ext2) organiza os arquivos de forma inteligente evitando
a fragmentação e fazendo-o um poderoso sistema para aplicações multiusuá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 a maioria das distribuições 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 (instruções
digitadas pelo programador) faz e adaptá-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).
12.4 - WINDOWS
12.4.1 - MS-DOS
alfamacursos.com.br 72
Sistemas Operacionais
12.4.2 - WINDOWS
12.4.3 - WINDOWS 98 E ME
alfamacursos.com.br 73
Sistemas Operacionais
12.4.6 - WINDOWS XP
Fique atento!
Outras versões mais atuais para PC Windows 7 (Sevem) Windows 8 (ainda será lançado
no mercado) para servidores. Windows 2003 Server e Windows 2008 Server.
12.5 - MAC OS
Steve Jobs, fundador da Apple. Desde a criação de sua empresa, seu principal foco foi à
criação de computadores para o dia a dia, incluindo sistemas operacionais fáceis de serem
operados. O lançamento do Apple I em 1976, um dos primeiros computadores pessoais,
foi um marco na história da computação.
Pela primeira vez, um PC continha um teclado fácil de ser utilizado, com uma minitelevisão
adaptada como monitor. Assim, conhecimentos avançados de computação já não eram
mais requisitos para se operar um PC. Jobs fez questão de criar o seu sistema operacional
do zero, sem se basear inicialmente no Unix. Nos anos seguintes, os modelos Apple II e
Apple III foram lançados no mercado, um sucesso de vendas. Suas interfaces gráficas
eram muito primitivas comparadas com o padrão usado atualmente, mas avançadíssimas
para a época.
alfamacursos.com.br 74
Sistemas Operacionais
10.6 - UNIX
As raízes do Sistema UNIX tiveram início nos anos 60. Em 1961 foi desenvolvido um
Sistema Operacional no MIT (Massachussets Institute Of Technology), com o conceito de
tempo compartilhado.
Em 1969, a Bell Labs abandona o Multics. Neste mesmo ano, Ken Thomson, um pesquisador
da Bell Labs, reescreveu o Multics, criando um sistema operacional, que pudesse apoiar
os esforços coordenados de um time de programadores, num ambiente de pesquisa de
programação. Thomson propôs que os próximos desenvolvimentos do sistema fossem
apoiados pela Bell, para fornecer uma ferramenta de preparação de documento, à organização
de patentes da companhia. Em 1971 foi entregue uma versão primitiva do Sistema UNIX
à organização de patentes da Bell Laboratories. No início dos anos 70 o sistema UNIX
começa a ser utilizado internamente através da Bell System e a gerar interesse em várias
instituições acadêmicas de prestígio. Em Janeiro de 1974, a Universidade da Califórnia,
em Berkeley, recebe uma cópia do Unix. Dennis Ritchie e Ken Thompson escrevem um
artigo, em julho de 1974, sobre o Unix, classificando-o como um sistema operacional para
diversos fins, multiusuário e interativo.
alfamacursos.com.br 75
Sistemas Operacionais
alfamacursos.com.br 76
Sistemas Operacionais
_______________________________________________________________________
_______________________________________________________________________
_______________________________________________________________________
alfamacursos.com.br 77
Respostas - Exercícios Propostos
CAPÍTULO 1
CAPÍTULO 2
CAPÍTULO 3
CAPÍTULO 4
R - É um pequeno programa que tem uma única função. Ele carrega o sistema operacional
na memória e permite que ele comece a operar.
CAPÍTULO 5
CAPÍTULO 6
CAPÍTULO 7
R - É aquele processo que faz utilização intensa da CPU. Ele ganha uma fatia de tempo
(Quantum) e a utiliza por inteiro, sem desperdiçar nenhum tempo.
CAPÍTULO 8
R - Memórias voláteis são aquelas que requerem um constante fluxo de eletricidade para
reterem os dados (RAM (SRAm e DRAM), e memória cache) e quando a energia elétrica é
alfamacursos.com.br 78
Sistemas Operacionais
retirada, os dados se perdem. Memórias não voláteis são aquelas memórias que continuam
a reter os dados nelas armazenadas mesmo quando a eletricidade é retirada (ROM, PROM,
EPROM, EEPROM, Flash, discos magnéticos e óticos, fitas magnéticas e, muito antigamente
as memórias de ferrite, cartões e fitas perfuradas).
CAPÍTULO 9
CAPÍTULO 10
CAPÍTULO 11
R - Windows Mobile.
CAPÍTULO 12
alfamacursos.com.br 79
Referências
alfamacursos.com.br 80
Sistemas Operacionais
alfamacursos.com.br 81
alfamacursos.com.br