Escolar Documentos
Profissional Documentos
Cultura Documentos
Mateus Buogo
SISTEMAS OPERACIONAIS 2
Introdução 3
SUMÁRIO
Gerenciamento de Compartilhamento de Arquivos 79
Sistemas operacionais 4 Memória 52
Travas em Arquivos e Semântica de
O Sistema Operacional 5 O Gerenciamento de Memória 53 Acesso 80
História 5 Memória RAM 55 Controle de Acesso 81
Tipos de Sistemas Operacionais 8 Buffering 56 Sistemas de Arquivos NTFS e EXT 81
Estrutura dos Sistemas Operacionais8 Monoprogramação sem troca de O Linux 85
processos ou paginação 57
System Call 10 História 86
Multiprogramação 57
Modos de Acesso 11 Entendendo o sistema 88
Gerenciamento de CENTRO UNIVERSITÁRIO UNIFTEC
Arquiteturas 11 Dispositivos de Entrada e Estrutura do Sistema 89 Rua Gustavo Ramos Sehbe n.º 107.
Saída 64 Kernel 90 Caxias do Sul/ RS
Gerenciamento de
Processo 14 Dispositivos de Entrada e Saída 65 Diretórios 91
REITOR
O Gerenciamento de Processos 15 Conceitos básicos do hardware 66 O famoso ROOT 93 Claudino José Meneguzzi Júnior
Escalonamento de Processos 19 Chipset 67 Segurança no Linux 94 PRÓ-REITORA ACADÊMICA
Débora Frizzo
Turnaround 22 Módulos de Entrada e Saída 67 Referências 99 PRÓ-REITOR ADMINISTRATIVO
Threads 31 Drivers de Dispositivos 68 Altair Ruzzarin
DIRETORA DE EDUCAÇÃO A DISTÂNCIA (NEAD)
Os Threads 32 DMA 69 Lígia Futterleib
INTRODUÇÃO
Algum dia você já se perguntou como tantos apare-
lhos tecnológicos são gerenciados? Já se perguntou como
seu videogame funciona ou como o computador de bordo
do seu carro controla tantos sensores? Você sabe como o
traje do Homem de Ferro consegue gerenciar tantas armas?
SISTEMAS
OPERACIONAIS
Sabia que os sistemas operacionais dominam
o mundo e você nem sabia? Sem eles nossa
vida seria vazia, sem diversão e muito mais
difícil. Exagero meu?! Vamos desvendar os
mistérios dos Sistemas Operacionais, e você
tirará suas próprias conclusões.
Algum dia você já se perguntou como tantos aparelhos
tecnológicos são gerenciados? Já se perguntou como seu vide-
ogame funciona ou como o computador de bordo do seu carro
controla tantos sensores? Você sabe como o traje do Homem
de Ferro consegue gerenciar tantas armas?
Vamos “surfar” entre os seus geren- sempre se lembre disso, um SO é responsá- História
ciamentos e entender como tudo é proces- vel por gerenciar recursos de hardware tais
Não vamos nos alongar muito na
sado e acessado. Ao final, vocês saberão, como processador, memória, rede, som,
história dos sistemas operacionais, pois
não apenas como eles funcionam, mas vídeo, armazenamento, entre outros. Ou-
conhecer a história é muito interessante,
terão a capacidade de abstrair conceitos e tra função do SO é interfacear o hardware
mas no contexto de tecnologia, tudo evolui
aplicá-los em seu dia a dia, afinal, de nada para o usuário, deixar ele transparente,
muito rápido e paradigmas são quebrados
serve um conhecimento que não pode ser facilitar a utilização do equipamento, per-
e tecnologias abandonadas, porém alguns
aplicado! mitir que exista interação entre o usuário
conceitos ainda são imutáveis desde a dé-
e o hardware, de forma muito simples.
cada de 1950.
Vamos lá então, bem-vindos ao
mundo dos Sistemas Operacionais! Costumo comparar o sistema ope-
No começo, a computação era sem
racional a um maestro de uma orquestra.
forma e vazia. Computadores enormes sur-
O Sistema Operacional Pois, cada músico da orquestra represen-
giram em 1950 e tinham que ser operados
ta um recurso de hardware que o siste-
por pessoas. Não existia um conceito de
ma pode acessar. Dessa forma, para que
Atualmente, existem muitos siste- sistema operacional, todas as operações
tudo ocorra bem e sem problemas, deve
mas operacionais, os quais são desenvolvi- eram realizadas no próprio hardware, de
existir harmonia entre todos os músicos
dos com finalidades específicas, variando forma mecânica e sem diversão alguma,
(recursos), para que cada um toque seu
sua complexidade e função. Um sistema apenas trabalho e mais trabalho.
instrumento da forma correta, na hora
operacional não está preso e restrito a um certa (compartilhamento de recursos) e a Um dos primeiros sistemas foi o
computador, podemos ter sistemas ope- música seja criada. O SO orquestra todos
projeto Mark I, de 1944, projetado e de-
racionais utilizados em máquinas indus- os acessos aos recursos, podendo compar-
senvolvido em conjunto entre IBM e a
triais, caixas eletrônicos bancários, robôs, tilhar eles entre os processos. Universidade de Harvard nos EUA. Em
dispositivos médicos, máquinas de café,
1946, o governo americano apresentou o
geladeiras, carros, entre tantos outros. Porém, antes de entender como eles seu computador eletrônico digital, utiliza-
funcionam, vamos estudar um pouco da do para cálculos militares, ao qual deno-
A principal função de um sistema história deles.
minaram ENIAC (Electronic Numerical
operacional é o gerenciamento de recursos,
Integrator Analyzer and Computer).
SISTEMAS OPERACIONAIS 6
Perceberam as datas? A Segunda Um tempo depois, Von Neumann evoluíram. Podemos dividir os computa-
Guerra Mundial trouxe um avanço de criou um novo conceito. Ele iniciou os dores em 4 gerações:
tecnologia enorme. Infelizmente, a guerra projetos de sistemas computacionais ba-
faz com que uma corrida de tecnologia seados numa arquitetura composta por Primeira Geração
comece, onde o mais atualizado leva uma três elementos básicos, sendo: Processa-
enorme vantagem. Os primeiros grandes dor, Memória e Dispositivos de Entrada
computadores eram usados para fins mi- e Saída (I/O). Eis um conceito aplicado • Geração das Válvulas (Bugs) –
litares. até os dias de hoje, Von Neumann foi um 1937 até 1955
dos principais nomes da era da tecnologia.
Uma curiosidade. Sabem o motivo Com um mesmo hardware, era possível • Características: Existiam muitas
pelo qual chamamos os erros dos sistemas efetuar várias tarefas, sem a necessidade válvulas e depois de horas de trabalho eles
de bug? Antigamente os computadores de alterar o hardware, como eram feitos paravam por superaquecimento. Tinham
eram valvulados. Então, eles geravam mui- nos outros computadores. um consumo de energia muito grande para
to calor incandescente, o que atraia insetos manter as válvulas.
para dentro das salas dos computadores, Na estrutura proposta por Von
afinal, esses eles adoram o calor de uma Neumann, um mesmo hardware tinha • Aplicação: Campo científico e
lâmpada. As válvulas eram sensíveis e de- capacidade de executar diferentes tipos militar
viam ser manuseadas com muito cuidado, de tarefas sem a necessidade de qualquer
porém os pobres insetos não sabiam disso modificação física, bastava que uma sequ- • Descrição: Não havia conceito de
e iam correndo, ou melhor, voando até as ência de instruções estivesse armazenada Sistema Operacional, todo o trabalho era
válvulas e quando encostavam nelas, quei- no computador. Dessa forma, surgiram feito com linguagem de máquina. Nesta
mavam-nas. Assim, quando uma válvula os conceitos de programas e computador época surgiu a linguagem Assembly.
queimava, o que era dito? “Deu bug!”. Em programável, juntamente com o conceito
inglês, bug, significa inseto. É por isso de programação de computadores.
que falamos que “deu bug” quando ocorre
Segunda Geração
algum erro no sistema. Desse modo, foram ocorrendo evo-
luções nos computadores e juntamente • Geração dos Transistores – 1955
com elas os sistemas operacionais também até 1965.
SISTEMAS OPERACIONAIS 7
troladores de discos gerenciam o acesso Caso não sejam verificadas falhas dware transparente, não somente para os
físico aos discos rígidos e à unidade de de hardware, o processo de boot ocor- usuários, mas também para as aplicações.
armazenamento. Por fim, os controladores re normalmente e o sistema operacional
gerais de I/O interfacem o mundo externo começa a ser carregado do disco rígido
com a placa mãe. ou unidade de armazenamento, para a
memória RAM, onde será processado e
Assim, o sistema operacional é res- terá o poder de controlar toda camada de
ponsável por tornar transparente a cama- hardware, podendo acessar os recursos.
da de hardware para o usuário, ou seja,
ele deve permitir que o usuário utilize o Kernel
computador sem a necessidade de se pre-
ocupar com a forma com que o hardware
O primeiro arquivo que é carregado
funciona, bem como, tornar o hardware
em memória RAM é o Kernel do sistema
transparente é o principal objetivo do sis-
operacional. O sistema operacional é for-
tema operacional.
mado por alguns conjuntos de rotinas que
proveem serviços aos usuários, aplicações
Sempre que o computador é ligado
e também ao próprio sistema. Chamamos
ocorre um processo chamado de boots-
de núcleo do sistema ou Kernel esse con-
trapping. Nesse modo, logo que a energia
junto de rotinas.
começar a passar pela placa mãe, a BIOS
do computador sobe e efetua testes básicos
O kernel é a principal parte do sis-
do hardware para verificar sua integridade.
tema operacional. Ele acumula inúmeras
Caso ocorra algum problema de verifi-
funções de gerenciamento; faz gestão de
cação que impeça o bom funcionamento
processos, memória, dispositivos de I/O,
do computador, a partir do sistema ope-
arquivos, redes, entre tantos outros. Pode-
racional, o processo de boot é abortado e
mos afirmar que o kernel é o responsável
algum erro aparecerá em tela.
por servir aos usuários, deixando o har-
SISTEMAS OPERACIONAIS 10
System Call Você deve estar se perguntando: no sistema operacional não pode ocorrer!
“Por que os processos e aplicativos não
podem acessar diretamente os recursos Dessa maneira, para acessar as ca-
Muito bem, o kernel é responsá- madas de hardware, os processos e aplica-
de hardware? ”, pois há uma explicação
vel pelo gerenciamento total do sistema tivos se comunicam com as System Calls
muito simples para isso. Um programa mal
operacional e também do acesso a todos e elas gerenciam o compartilhamento dos
desenvolvido poderia comprometer todo
os recursos do hardware. Cada processo recursos, para que não haja monopólio em
sistema operacional causando grandes pro-
ou aplicação que necessita ter acesso aos circunstância alguma, visto que isso pode
blemas. Um exemplo bem simples, vamos
recursos de hardware precisa “conversar” comprometer todo sistema operacional. As
imaginar que um programador acha que
com o kernel para conseguir se comunicar system calls trabalham de forma muito
seu programa é mais importante do que
com a camada de hardware. O sistema estreita com o kernel, com vistas a garantir
todos os outros e resolve alocar o recurso
não permite que nenhum processo acesse todo gerenciamento e transparência do
do CPU, exclusivamente para ele. O que
diretamente o hardware sem a intervenção hardware.
aconteceria?
do kernel, pois ele possui todos os geren-
ciamentos necessários para controlar e
Primeiramente, o sistema iria travar,
organizar esse acesso.
pois junto com os processos dos usuários
e das aplicações, estão em execução os
Uma das ferramentas utilizadas pelo
processos do sistema operacional. Ao mo-
kernel são as System Calls, ou Chamadas
nopolizar o processador para um único
de Sistema. As System Calls são respon-
processo, todos os outros não iriam ganhar
sáveis pelo compartilhamento de recursos
direito de uso da CPU, logo, todo sistema
de forma organizada e protegida, como
iria travar. Mas vamos ser menos radicais.
proteção de memória ou a monopolização
Supondo que o processo não aloque todo
do processador. O sistema deve impedir
processador para ele, mas sim os recursos
que os programas de usuário acessem di-
de áudio do computador, então, caso outro
retamente os recursos de hardware.
processo necessite acessar o dispositivo de
som, ele não conseguirá e irá travar o pro-
grama e até mesmo o sistema. Monopólio
SISTEMAS OPERACIONAIS 11
cionalidade não são bem separados. O uma das camadas as outras não serão afe- a sua história e sua arquitetura, para que,
excesso de liberdade torna o sistema muito tadas. dessa forma possamos entender melhor
vulnerável, ou seja, caso ocorra qualquer como manipular os sistemas em nosso dia
problema em uma parte do sistema, todo Mas como a vida não é “um mar de a dia, entendendo suas limitações e suas
ele será afetado e irá parar de funcionar rosas”, a vantagem de proteção traz para funcionalidades.
corretamente. os sistemas em camadas a desvantagem da
lentidão. Sistemas em Camadas tentem Os conceitos básicos dos sistemas
Arquitetura em Camadas a serem mais lentos, pois existem vários foram apresentados, então, peço que se
pedágios de acesso aos recursos e compar- lembrem deles durante toda a sua carreira
tilhamentos, a fim de proteger o sistema, na tecnologia, pois aprender conceitos e
Muito bem, já que deixar todo sis- então fica a dúvida: É melhor termos um ter eles bem fundamentados, tornara-los
tema em um único bloco o deixa muito sistema performático, porém com mais profissionais melhores e mais assertivos
vulnerável, a solução é separar eles em chances de falhas, ou é melhor ter um sis- nos projetos que desenvolverem!
camadas. Essa arquitetura divide o siste- tema muito seguro e menos performático?
ma operacional em sistemas sobrepostos
uns aos outros. Cada módulo oferece um A resposta é muito simples: Depen-
conjunto de funções que, por sua vez, pode de, tudo depende.
ser utilizado por outros módulos dentro
do sistema operacional.
Síntese Final
A vantagem da estruturação em
camadas é justamente o oposto da des- Chegamos ao final desse capítulo,
vantagem dos sistemas monolíticos. Essa e creio ter cumprido o objetivo de apre-
lógica permite isolar o sistema operacional, sentar o que é um sistema operacional e
facilitando sua alteração e debug, além de onde eles podem ser encontrados. Atual-
criar uma hierarquia nos níveis de modos, mente, todo e qualquer dispositivo mais
protegendo as camadas mais internas do “inteligente” precisa de um sistema sendo
sistema, logo, se um problema ocorrer em executado para controlar ele. Estudamos
EXERCÍCIOS 5) Diferencie System Call de Kernel e aponte qual a função
delas dentro do sistema operacional.
1) Quando o sistema é iniciado acontece o processo de
bootstrapping. Esse processo faz uma verificação da “saúde” do 6) Muitas instruções são restritas e somente acessadas
computador. Então, explique qual a importância das verificações pelo sistema. Existem os modos de acesso para garantir a
efetuadas no bootstrapping para o bom funcionamento do segurança e integridade do sistema operacional. Quais são
sistema operacional. eles? Explique cada um.
2) Podemos afirmar que existem 2 funções macros básicas
de um sistema operacional. A primeira é efetuar a gestão
de todos os recursos de hardware disponíveis e controles
de acesso a eles. Conforme, aponte qual é a segunda função
básica e muito importante do sistema operacional.
3) As arquiteturas dos sistemas operacionais podem ser
divididas em Monolítica e em Camadas. A estrutura em camada
traz maior segurança e confiabilidade ao sistema, pois permite
isolar partes do sistema como se fossem camadas, e caso
ocorra um problema em uma camada, não irá afetar a outra.
Diante desse contexto, qual a maior diferença e vantagem ao
utilizarmos uma estrutura em Camadas? Qual o ponto negativo
ao escolher por essa abordagem?
4) Por que o Kernel deve ser o primeiro a ser carregado em
memória RAM no processo de inicialização do sistema?
SISTEMAS OPERACIONAIS 14
GERENCIAMENTO
DE PROCESSO
Processos, processos e processos. Por que
tudo em um Sistema Operacional acaba em
processos?
Quantas vezes nos deparamos com um programa travado
e logo após uma caixa se abre pedindo: “Deseja encerrar o
processo? ”ou às vezes o programa fica no estado de “não res-
pondendo”. Afinal, o que são processos? Para que eles servem?
O Gerenciamento de Processos Ainda, temos que levar em conside- Agora, faça outro teste. Ainda com
ração que a informática, ao contrário do o gerenciador de processos aberto, coloque
que todos falam, é uma ciência exotérica uma música para tocar em seu computador.
O Gerenciamento de Processo é,
e não exata. Muitas bizarrices acontecem, Perceba que o processo do player de áudio
de longe, o principal dentro de um sis-
mesmo contrariando a lógica boleana que vai ser carregado na lista de processos em
tema operacional, aqui, vamos detalhar
permeia a computação, sendo agravado execução, logo, para você é perceptível
bastante esse assunto. Praticamente, tudo
pelo fator “usuário”. Nós usuários, compli- que tudo está sendo executado ao mesmo
dentro de um sistema operacional é um
camos ainda mais o bom funcionamento tempo.
processo, e saber gerenciar os processos
dos processos dentro de um sistema opera-
de forma coesa é fator fundamental para
cional, pois cada vez mais queremos fazer Eis, então, que chegamos na pri-
um sistema operacional ter sucesso em sua
muitas coisas ao mesmo tempo. Creio que meira “bizarrice” das muitas que vamos
implementação.
todos já jogaram um jogo online, ouvin- desvendar durante nossas aulas. O proces-
do música e com o chat aberto. Só nesse sador trabalha apenas com um processo
Antigamente, tínhamos computa-
contexto, inúmeros processos que surgiram por vez. Sim, podem acreditar! Nada no
dores que executavam apenas uma tarefa
do nada, no meio das rotinas do sistema computador é executado ao mesmo tempo,
(até hoje ele executa apenas uma tarefa
operacional e que devem ser atendidas, pois fisicamente o processador consegue
por vez, porém são inúmeras tarefas) e a
afinal, o sistema operacional foi criado processar apenas um processo de cada vez
organização dos processos era muito mais
para “servir” ao usuário e ele deve dar em seu núcleo.
simples, pois o programador do sistema
conta disso!
sabia a ordem em que cada processo seria
Conforme Tanenbaum (2005,
executado e quais os processos que seriam
Neste momento, surge o primeiro pag.53), “Estritamente falando, enquanto
executados. Assim, com a evolução dos
ponto a ser analisado. Abra o gerenciador a cada instante a CPU executa somente
computadores surgiu um novo paradigma.
de tarefas do sistema operacional que você um programa, no decorrer de um segundo
Agora, os programadores dos sistemas não
está usando e veja quantos processos estão ela pode trabalhar sobre vários programas,
sabem quantos processos serão executados
neste momento sendo executados. Teori- dando aos usuários a ilusão de paralelis-
e nem a ordem em que serão requisitados,
camente, todos estão sendo executados ao mo. ”
desse modo, esse aspecto trouxe grandes
mesmo tempo, certo?
problemas para os sistemas operacionais.
SISTEMAS OPERACIONAIS 16
Muitos processos são criados com Com os sistemas multitarefas e a criar processos “filhos” vinculados a eles,
a inicialização do sistema operacional. globalização dos computadores pessoais, porém os processos filhos podem criar
Quando o kernel é carregado em memória, os sistemas cada vez mais surgem com novos processos vinculados aos mesmos.
ele já cria os processos de gerenciamento inúmeros “penduricalhos” de novos pro- Então, teremos uma Hierarquia de Pro-
do sistema operacional para que ele possa gramas e aplicativos para os usuários. Uma cessos. Em sistemas Unix, essa hierarquia
ser executado. Alguns processos carregam das maiores fontes de criação de proces- é aplicada, mas no sistema operacional
em primeiro plano, interagindo com os sos são os usuários. Um processo é criado Windows não, pois todos os processos são
usuários, outros processos são executados para atender uma requisição de usuário. criados de forma igual.
em segundo plano, não integrando a um Cada programa que você executa em seu
usuário, mas realizando alguma função computador é um novo processo que está O Unix chama essa hierarquia de
específica. (Tanembaum, 2005). sendo gerado, portanto, o usuário requisita “Grupo de Processos”, e quando o pro-
Alguns processos são criados por a criação de muitos processos enquanto cesso “pai” é afetado, todos os seus filhos
outros processos. Estranho essa afirmativa está utilizando o computador. também serão, ou seja, caso o processo
não?! Mas é assim mesmo que funciona. pai seja “morto”, todos os seus filhos são
Um processo que está em execução pode A criação de processos através de job encerrados também.
criar um novo processo, se necessário. De em lote, é aplicado em situações específi-
forma prática, você está jogando seu jogo cas. Também, uma ferramenta de backup No Windows, ao contrário do Unix,
preferido em seu computador e decide é um exemplo de job em lote. Os Jobs de quando um processo pai é “morto”, seus
jogar online com seus amigos. O proces- backup são executados pelo gerenciador filhos não morrem junto, isso não é muito
so do jogo já existe e está em execução, de backup, isso se houver recurso dispo- efetivo contra os vírus, pois não adianta
porém no instante que você quiser jogar nível para ele em uma hora determinada. matar só o processo que gerou o vírus,
online. Assim, o processo do game cria Essa ação do software de backup, irá gerar deve-se eliminar por completo todos os
um processo de chamada de sistema para novos processos para coleta dos dados de processos, matando todos os seus filhos.
que ele possa obter acesso ao hardware de backup.
rede e conseguia fazer você se conectar
em um servidor do jogo pela internet. Um Nesse contexto de criação de pro-
processo criando um novo processo para cessos, temos as árvores de processos.
auxiliá-lo. Cada processo chamado de “pai” pode
SISTEMAS OPERACIONAIS 18
sua vez para ser processado. O processo já Percebam que em todos os casos o grande desafio do gerenciador de pro-
possuiu todas as informações necessárias comentamos sobre o registro dele no bloco cessos. Garantir que todos os processos
para ser executado, basta aguardar a sua de controle de processo? Pois uma das sejam processados e que a CPU não fique
vez na fila do escalonador. No bloco de suas funções é registrar o estado de cada de alguma forma ociosa, otimizando ao
controle de processo o status do processo processo para que o escalonador possa máximo o processamento.
fica como “Pronto”. decidir qual processo irá escalonar para
o processamento. Iremos estudar os es- Para organizar o processamento, o
O terceiro estado é “Bloqueado”. calonadores a seguir. gerenciador utiliza a técnica de escalona-
Esse status é rotulado no processo quando dores de processos. O escalonador é um
ele está aguardando algum evento externo Outra característica muito impor- subsistema do sistema operacional, respon-
para ser processado. De forma muito inte- tante é que nenhum processo pode ser sável por decidir qual processo terá direito
ligente, processos bloqueados não estão na retirado do estado de “Bloqueado” e ser de uso da CPU. Cada escalonador possui
fila para execução e, dessa forma, otimiza atualizado para o status de “Em Execu- um algoritmo específico que decide qual
o uso da CPU que irá se concentrar so- ção”. Todo processo só irá ser executado se processo será executado e qual a ordem
mente em processos Prontos. Um exemplo ele estiver passado pela fila de “Prontos”, de execução. A decisão do escalonador é
simples do status bloqueado é a utilização ou seja, caso um processo esteja bloque- tomada em virtude de algumas informa-
de um editor de texto. Para o editor de ado, ele deverá ser atualizado para fila ções dos processos e da lógica em que será
texto é muito importante que o usuário de prontos e só mais adiante irá ganhar implementado.
interaja com o teclado. Caso esse esteja direito de uso da CPU, bem como, entrar
aberto, e o usuário não estiver digitando, o no status de “em execução”. Alguns algoritmos são preempitíveis
sistema pode bloquear o processo do editor e outros são não-preempitíveis. Quando
de texto, retirando ele da fila, ficando no Escalonamento de Processos há preempção, o algoritmo do escalona-
aguardo para a interação do usuário no dor pode interferir na ordem da fila de
teclado, a fim de colocá-lo novamente na processamento, alterando ela da forma
fila de Prontos. No bloco de controle de Como já vimos, existem inúmeros que quiser, retirando ou concedendo o
processos o status dele é registrado como processos que estão sendo executados no direito de uso de CPU a um processo.
“Bloqueado”. sistema operacional, porém a CPU exe- Em escalonadores não-preempitíveis, não
cuta apenas um processo de cada vez. Eis há essa flexibilidade, e uma vez que a fila
SISTEMAS OPERACIONAIS 20
do escalonador é formada, a ordem de acordo com a ordem de chegada e senhas. que possuem até 10 itens, não precisam
processamento dos processos será sempre enfrentar uma fila longa e demorada, eles
a mesma, sem sofrer alteração. O FIFO é um algoritmo não-pre- são atendidos primeiramente em caixas
emptivo, ou seja, a ordem de processa- especiais, pois possuem menos itens.
Escalonamento FIFO mento da fila não pode ser alterada pelo
sistema, independentemente do número No computador não temos um pro-
Um escalonador com uma lógica de processos ou prioridade, cada processo cessador para processos menores e outro
FIFO trabalha de uma forma muito sim- irá aguardar o tempo necessário para ser processador para processos maiores, temos
ples. Todos os processos formam um fila processado. A partir do momento que o apenas uma CPU, portanto, o SJF orga-
no escalonador. Cada processo possui uma processo ganha direito de uso da CPU, ele niza a fila de forma que os processos com
prioridade e um tempo de execução. O só irá sair dessa depois que estiver com seu menor tempo estimado de execução sejam
tempo de execução é o quanto de tem- processamento completo, ou seja, se um processados antes que os demais.
po alocado da CPU ele precisa para ser processo demora 10ms para ser processado,
processado e finalizado. O algoritmo de ele irá segurar a CPU com ele por 10ms e Escalonamento por Prioridade
FIFO olha para a fila de processos que só depois ceder o direito de acesso a ela.
estão aguardando para ser processados e Este algoritmo, diferente dos ou-
escolhe o que chegou primeiro para ganhar Escalonamento SJF – Processo mais curto tros, pode ser tanto preemptivo quando
direito de uso da CPU. primeiro não-preemptivo, depende de como ele será
implementado no sistema.
Na lógica do FIFO, o primeiro pro- O escalonamento SJF (Shortest Job
cesso que entra na fila será o primeiro a ser Frist), também é não-preemptivo. A orga- O algoritmo de FIFO não leva em
processado, ou seja, o primeiro que chega nização da fila desse algoritmo é um pouco consideração o tempo de execução de cada
é o primeiro que sai (FIFO é anagrama diferente do FIFO. O SJF organiza a fila processo nem a sua prioridade. O algorit-
de First in First out). de espera de acordo com o processo que mo SJF leva em consideração somente o
possui menor tempo estimado de proces- tempo de execução de cada processo. O
Podemos comparar o FIFO a uma samento e coloca ele na frente da fila. Em Escalonamento por Prioridade, em con-
fila de banco, onde cada pessoa possui uma uma analogia, podemos pegar os caixas trapartida, analisa somente a prioridade
senha, e são chamadas pelas atendentes de rápidos dos supermercados. Os clientes de cada processo.
SISTEMAS OPERACIONAIS 21
A fila é organizada sempre de forma esperando e nunca seja processado, por isso caso não tenha sido completo, vai par o
com que os processos de maior prioridade criou-se uma técnica denominada aging. final da fila aguardar novamente sua vez
ganhem direito de uso da CPU antes dos Como resolver o problema de espera?! de usar a CPU.
outros. Nos casos em que é preemptivo, Simples, basta incrementar a prioridade
o sistema pode alterar a ordem da fila de desses processos que estão a um bom tem- Supondo que um processo possua
processamento a qualquer instante, caso po aguardando, fazendo com que sejam seu tempo de execução de 400ms, ele irá
chegue um processo de maior prioridade mais prioritários e possam ganhar o direitoganhar direito de uso da CPU por 100ms
que os demais que estão na fila, aguar- de uso da CPU, isso é o aging. e depois vai para o final da fila. Esse pro-
dando para serem processados. cesso irá ser repetido por 4 vezes, até que
Escalonamento Round Robin esteja com seu processamento completo.
Um ótimo exemplo disso é a fila Devido a essa característica, o tempo de
de idosos do banco. Por mais que seja sua espera dos processos é maior do que nos
vez de ser atendido por causa da ordem Algoritmo nativamente preemptivo. outros algoritmos.
de chegada, se um idoso chegar no banco É utilizado em sistemas de tempo com-
ele irá ganhar a prioridade de atendimento partilhado. O Round Robin não leva em Além disso, como é preemptivo, a
e você terá que aguardar até que ele seja consideração a prioridade nem o tempo ordem da fila de processamento pode ser
atendido. Se chegarem muitos idosos, você de execução dos processos. Ele divide a alterada pelo sistema sempre que neces-
ficará aguardando até que todos sejam CPU em time-slice ou quantum, que é sário, não sendo uma constante dentro
atendidos. uma fatia de tempo fixa, a qual geralmente do sistema.
está entre 100ms e 300ms.
Neste caso temos um grande pro-
blema. Processos com prioridade menor Cada processo ganha direito de uso
podem ficar infinitamente esperando na da CPU por 100ms e depois perde esse
fila para serem processados, a isso damos direito, indo para o final da fila. Assim,
o nome de starvation. em vez do processo ocupar a CPU durante
todo seu tempo de execução e sair somente
Não é interessante para o sistema depois que estiver terminado (como nos
que um processo fique de forma infinita outros algoritmos), ele fica por 100ms, e
SISTEMAS OPERACIONAIS 22
Escalonamento Round Robin esteja com seu processamento completo. O turnaround consiste na soma do
Devido a essa característica, o tempo de tempo que o processo ficou esperando para
espera dos processos é maior do que nos ser processado com o seu tempo de proces-
Algoritmo nativamente preemptivo. outros algoritmos. samento, gerando assim o tempo total que
É utilizado em sistemas de tempo com- o processo demorou para ser finalizado.
partilhado. O Round Robin não leva em Além disso, como é preemptivo, a
consideração a prioridade nem o tempo ordem da fila de processamento pode ser Turnaround – escalonador FIFO
de execução dos processos. Ele divide a alterada pelo sistema sempre que neces-
CPU em time-slice ou quantum, que é sário, não sendo uma constante dentro
uma fatia de tempo fixa, a qual geralmente do sistema. O escalonador FIFO é um dos mais
está entre 100ms e 300ms. simples. O primeiro que entra na fila, é o
Turnaround primeiro que será processado. Da mesma
Cada processo ganha direito de uso forma, o cálculo de turnaround médio do
da CPU por 100ms e depois perde esse escalonador FIFO é muito simples.
direito, indo para o final da fila. Assim, Um conceito muito importante que
em vez do processo ocupar a CPU durante devemos saber é o Turnaround. Uma das Vamos utilizar o seguinte exemplo:
todo seu tempo de execução e sair somente formas de medir a eficiência de um esca-
depois que estiver terminado (como nos lonador é com o cálculo de turnaround Imaginemos que 5 processos entram
outros algoritmos), ele fica por 100ms, e médio que ele possui. Podemos usar esse no escalonador para serem executados. Os
caso não tenha sido completo, vai par o valor para decidir qual escalonador é mais processos P1, P2, P3, P4 e P5 na ordem
final da fila aguardar novamente sua vez eficaz na organização de determinados de chegada conforme a tabela a seguir:
de usar a CPU. processos. Pois não existe um escalonador
Processo Tempo de Processamento Prioridade
melhor ou pior que outro, o que temos são
P2 1 0
Supondo que um processo possua situações diferenciadas e cada escalonador
seu tempo de execução de 400ms, ele irá deve ser aplicado de forma coerente a cada P3 3 4
ganhar direito de uso da CPU por 100ms uma delas. P1 2 8
e depois vai para o final da fila. Esse pro- P5 1 3
cesso irá ser repetido por 4 vezes, até que P4 4 2
SISTEMAS OPERACIONAIS 23
Então, com a lógica do FIFO, teremos a seguinte sequência de processamento: P2, P3, P1, P5 E P4. Seguindo a lógica
do escalonador podemos representar graficamente o processamento desta forma:
P4 P4 P4 P4
P5
P1 P1
P3 P3 P3
P2
Tempo de processamento
Agora, vamos repetir a mesma tabela, porém calcularemos o turnaround de cada um dos processos de forma individual,
lembrando que o turnaround é a soma do tempo de espera mais o tempo de processamento:
Processo P2: Esperou 0, pois foi o primeiro a chegar e tem seu tempo de processamento de 1, logo o seu turnaround é 1.
Processo P3: Esperou 1 e seu tempo de processamento é 3, logo seu turnaround é 4.
Processo P1: Esperou 4 e seu tempo de processamento é 2, logo seu turnaround é 6.
Processo P5: Esperou 6 e seu tempo de processamento é 1, logo seu turnaround é 7.
Processo P4: Esperou 7 e seu tempo de processamento é 4, logo seu turnaround é 11.
T=11
T=7 P4 P4 P4 P4
T=6 P5
T=4 P1 P1
T=1 P3 P3 P3
P2
SISTEMAS OPERACIONAIS 24
Agora, vamos repetir a mesma tabela, porém calcularemos o turnaround de Turnaround – escalonador por Prioridade
cada um dos processos de forma individual, lembrando que o turnaround é a soma
do tempo de espera mais o tempo de processamento:
O escalonador por Prioridade utiliza
Processo P2: Esperou 0, pois foi o primeiro a chegar e tem seu tempo de processa-
como critério de escalonamento a priori-
mento de 1, logo o seu turnaround é 1.
zação de processos, de forma que, quanto
Processo P5: Esperou 1 e seu tempo de processamento é 1, logo seu turnaround é 2. maior sua prioridade, antes ele será pro-
cessado.
Processo P1: Esperou 2 e seu tempo de processamento é 2, logo seu turnaround é 4.
Processo P3: Esperou 4 e seu tempo de processamento é 3, logo seu turnaround é 7. Vamos utilizar o mesmo exemplo:
Processo P4: Esperou 7 e seu tempo de processamento é 4, logo seu turnaround é 11.
Imaginemos que 5 processos entram
T=11 no escalonador para serem executados. Os
T=7 P4 P4 P4 P4 processos P1, P2, P3, P4 e P5 na ordem
T=4 P3 P3 P3 de chegada conforme a tabela:
T=2 P1 P1 Tempo de
Processo Prioridade
T=1 P5 Processamento
P2 P2 1 0
P3 3 4
Tempo de processamento P1 2 8
P5 1 3
Agora que sabemos o turnaround de cada um dos processos, podemos calcular P4 4 2
o turnaround médio do escalonador SJF, somando todos e dividindo pelo número de
processos que foram executados.
SISTEMAS OPERACIONAIS 26
Então, com a lógica do escalonador por Prioridade, teremos a seguinte sequência de processamento: P1, P3, P5, P4 E P2.
Seguindo a lógica do escalonador podemos representar graficamente o processamento desta forma:
P2
P4 P4 P4 P4
P5
P3 P3 P3
P1 P1
Tempo de processamento
Mais uma vez, vamos repetir a mesma tabela, porém calcularemos o turnaround de cada um dos processos de forma in-
dividual, lembrando que o turnaround é a soma do tempo de espera mais o tempo de processamento:
Processo P1: Esperou 0, pois foi o primeiro a chegar e tem seu tempo de processamento de 2, logo o seu turnaround é 2.
Processo P3: Esperou 2 e seu tempo de processamento é 3, logo seu turnaround é 5.
Processo P5: Esperou 5 e seu tempo de processamento é 1, logo seu turnaround é 6.
Processo P4: Esperou 6 e seu tempo de processamento é 4, logo seu turnaround é 10.
Processo P2: Esperou 10 e seu tempo de processamento é 1, logo seu turnaround é 11.
T=11
T=10 P2
T=6 P4 P4 P4 P4
T=5 P5
T=2 P3 P3 P3
P1 P1
SISTEMAS OPERACIONAIS 27
Tempo de processamento Os processos P1, P2, P3, P4 e P5 na ordem de chegada conforme a tabela a seguir:
Processo Tempo de Processamento Prioridade
P2 1 0
Agora que sabemos o turnaround de
cada um dos processos, podemos calcular P3 3 4
o turnaround médio do escalonador SJF P1 2 8
somando todos e dividindo pelo número P5 1 3
de processos que foram executados. P4 4 2
Turnaround médio: (2 + 5 + 6 + 10 + 11)/5
Então, com a lógica do escalonador Round Robin não teremos uma lógica de
= 6,8
processamento fixa como nos outros, pois ela será variável. Seguindo a lógica do
escalonador podemos representar graficamente o processamento desta forma:
Turnaround – escalonador Round Robin
P5
O escalonador por Round Robin P4
não considera nem ordem de chegada, P3 P4
nem o tempo de processamento e muito P2 P3 P4 P4
menos a sua prioridade. Para o escalona- P1 P1 P3
mento Round Robin é aplicado uma fatia
de tempo fixa para cada processo e eles
ficam ganhando e perdendo o uso de CPU Tempo de processamento
até o término do seu processamento.
Cada processo ganha uso da CPU e perde até que esteja completo seu proces-
Vamos utilizar o mesmo exemplo: samento. Os processos P2 e P5 possuem apenas 1 tempo de processamento, por isso
aparecem apenas 1 vez na representação. O processo P1 terminou seu processamento
Imaginemos que 5 processos entram no ciclo 6, de todo o processamento. Já o processo P3 terminou no ciclo 9, e por fim,
no escalonador para serem executados. o processo P4 no ciclo 11 de processamento. Dessa forma, o cálculo do turnaround
SISTEMAS OPERACIONAIS 28
é um pouco mais complexo, pois o processo espera mais que uma vez para ser pro- Tempo de processamento
cessado e quando ganha uso de CPU, que nem sempre é terminado.
Mas vamos lá, o cálculo será assim: Agora que sabemos o turnaround
de cada um dos processos, podemos cal-
P1: Durante todo o processo acumulou uma espera de 4 e possui tempo de proces- cular o turnaround médio do escalonador
samento de 2, logo o turnaround é 6. Round Robin, somando todos e dividin-
do pelo número de processos que foram
P2: Durante todo o processo acumulou uma espera de 1 e possui tempo de proces- executados.
samento de 1, logo o turnaround é 2.
Turnaround médio: (6 + 2 + 9 + 11
P3: Durante todo o processo acumulou uma espera de 6 e possui tempo de proces- + 5)/5 = 6,6
samento de 3, logo o turnaround é 9.
P4: Durante todo o processo acumulou uma espera de 7 e possui tempo de proces-
samento de 4, logo o turnaround é 11.
P5: Durante todo o processo acumulou uma espera de 4 e possui tempo de proces-
samento de 1, logo o turnaround é 5.
P5
P4
P3 P4
P2 P3 P4 P4
P1 P1 P3
SISTEMAS OPERACIONAIS 29
Síntese Final
THREADS
Se um processo em um hardware de
um núcleo de processamento, trabalha
muito rápido, o que acontece se tivermos
mais processos e mais núcleos de
processamento? Acontece algo mágico e
exotérico!
A necessidade voraz dos usuários e as demandas cada
vez mais “pesadas” de processamento estavam sobrecarre-
gando os processadores, que tinham somente um núcleo de
processamento. Então, primeiramente, para otimizar o uso
da CPU, foram criadas as threads, onde houve um ganho de
performance, porém a mágica só aconteceu realmente quando
os processadores com mais núcleos de processamentos foram
criados. Logo, analisamos que coisas exotéricas realmente
acontecem e a mágica do paralelismo existe nos sistemas
operacionais.
Vamos desvendar os mistérios das Threads e suas
aplicações nesta etapa da aula.
SISTEMAS OPERACIONAIS 32
Para melhorar ainda mais a performance Um hardware só otimiza um sistema maximizar o desempenho da aplicação.
dos processadores, os fabricantes inserem ou programa que foi bem desenvolvido
outra tecnologia neles, a de multithread. pelos programadores. Portanto, na hora de escolher o tipo
Por sua vez, esses processadores são de- de hardware, veja as especificações dos
senvolvidos para otimizar ainda mais o Vamos exemplificar melhor. Supon- fabricantes dos sistemas, o qual irá oti-
uso dos threads. do que temos um processador, com quatro mizar de forma correta o sistema. Assim,
núcleos de processamento e capacidade não há melhor ou pior, e sim o hardware
Agora, fica uma dica do professor. para 8 Threads, porém no desenvolvi- que se adequa melhor à necessidade. Pode
mento de um sistema operacional novo, o ser que para um determinado sistema, é
Vamos refletir em algumas questões: programador não considerou as boas prá- melhor mais Threads e menos núcleos, e
• O melhor processador é o que possui ticas de programação para utilizar mais de para outro, seja ao contrário, seu desem-
mais núcleos de processamento e o um núcleo e Threads. O que vai acontecer penho fica otimizado com mais núcleos
maior número de Threads. quando ele for executado? Ele usará so- e menos Threads.
• O melhor processador é o que possui mente 25% da capacidade do processador,
menos núcleos de processamento, deixando 75% de CPU ociosa. Vejam que Existem 2 tipos de threads. As que
porém maior número de Threads. nem tudo é hardware, o software deve são criadas pelo Kernel do sistema opera-
acompanhar as evoluções. cional e as que são criadas pelos programas
• O melhor processador é o que possui de usuário.
mais núcleos de processamento, Outro exemplo mais prático. Supon-
porém menor número de Threads. do que você terá que adquirir um servidor Os threads de usuários são aquelas
para executar um banco de dados. Qual a utilizadas a partir de bibliotecas específicas
melhor opção de compra entre as 3 afir- e que complementam o sistema operacio-
Qual será a afirmativa correta? Qual mativas citadas? A resposta é a fatídica nal, ou seja, são implementadas acima do
está errada? “Depende, tudo depende”. Normalmen- Kernel pelos programas de usuário. Não
te, os desenvolvedores de banco de dados são vitais para o funcionamento do sistema
A resposta para essa pergunta é a disponibilizam a configuração de hardwa- operacional.
seguinte. “Depende, tudo depende”. re recomendada para executar o sistema,
justamente para otimizar o hardware e
SISTEMAS OPERACIONAIS 34
COMUNICAÇÃO
ENTRE
PROCESSOS
A comunicação é algo de extrema importância em
nosso dia a dia. Mas afinal, que língua eles falam?
A Comunicação praticamente tudo no sistema. Então temos um comando para listar os processos
que estão em execução no Linux, chamado PS. Quando o executamos, o sistema nos
mostra uma lista enorme de processos.
Creio que você já consegue perce-
ber o quão complexo é gerir um sistema
operacional. Praticamente, tudo é um pro-
cesso com prioridade, tempo de execução,
preempção, etc. Neste cenário a harmonia
entre os processos deve ser total para que
não ocorram problemas de alocação de
recursos entre eles, e que possam com-
prometer o sistema.
Outro ponto importante da comu- Regiões Críticas fez uma compra, e então vão em sua conta
nicação entre processos é a delimitação de retirar o valor correspondente.
áreas que podem ser acessadas por cada
Muitos processos podem comparti-
processo. Imaginemos que você vai jogar Tudo muito simples, não é? Nem
lhar recursos, uma vez que eles são finitos
um jogo e, ao mesmo tempo, quer deixar tanto, coisas bizarras e exotéricas costu-
nos computadores. As áreas de comparti-
um player de música aberto no computa- mam acontecer em sistemas operacionais
lhamento de recursos são as Regiões Crí-
dor com sua música favorita tocando. Os com pseudoparalelismo, que ficam cha-
ticas. Para explicar melhor o que é uma
2 processos vão querer acessar os recursos veando os processos.
região crítica, vamos usar um exemplo de
de áudio, então a orquestração de aloca-
fácil compreensão.
ção dele deve ser rigorosa, para que os 2 Vamos imaginar que o aposentado
processos sejam atendidos. Outro ponto tem mil reais em sua conta, e vai receber
Vamos usar um banco como exem-
de atenção é que 2 processos não podem mais mil de décimo terceiro salário. O
plo, e o seu banco de dados de clientes
estar na região crítica, pois podem gerar processo específico de aumento de saldo da
e contas correntes. Para nível de exem-
um grande problema. conta recebe a informação desse depósito,
plo, vamos pegar, especificamente, em
checa o valor da conta do aposentado e faz
uma conta de determinado cliente. Esse
Existe também a dependência entre a soma, mas ainda não atualiza o valor na
cliente é aposentado e por isso vive cain-
os processos. Muito parecido com nosso tabela. O próximo passo desse processo
do dinheiro em sua conta (#SQN), com
primeiro caso, porém neste, um processo é colocar na conta o valor final na conta,
bastante frequência. Esse aposentado é
depende exclusivamente de outro processo que é de 2 mil reais.
fã da Elba Ramalho, e vive comprando
ou grupo de processo para poder ser exe-
CD’s pela Internet.
cutado. Por esses motivos, é muito im- Nessa hora, a CPU alerta “ei pro-
portante que haja uma orquestração entre cesso, seu tempo aqui já acabou, agora é a
Existem processos no sistema de
todos os processos do sistema operacional. vez de outro processo executar”. Ou seja,
banco de dados do banco que recebem a
antes de atualizar o valor na conta, houve
informação que algum dinheiro foi cre-
um chaveamento, saiu um processo e vai
ditado na conta do cliente, indo em sua
entrar outro processo que ganhou direito
conta e aumentando seu saldo. Já, outros
de uso da CPU.
processos recebem a informação que ele
SISTEMAS OPERACIONAIS 39
Nesse momento, o banco recebe a so e iniciar outro não funciona, acessar Tratativas para Regiões Críticas
informação que o aposentado gastou cem um mesmo dado (no caso, uma variável
reais em CD’s da Elba Ramalho. O pro- que armazena o saldo do cliente do ban-
cesso responsável por debitar dinheiro, vai co) exige mais cuidado, pois quando dois Muito bem, podemos perceber que
na conta do aposentado e vê que ele tem ou mais processos atuam juntos, em um tratar dessas regiões é algo preponderante
mil reais na conta (lembre-se: não deu mesmo local de memória, coisas bizarras para o bom funcionamento do Sistema
tempo de o processo anterior atualizar o e quase improváveis podem acontecer por Operacional, então não podemos negli-
valor pra 2 mil). Então, retira R$ 100,00 conta da troca de processos. genciar elas, por mais que às vezes apa-
da conta dele, e atualiza informando que reçam algumas “telas azuis” com códigos
agora ele tem R$ 900,00 na conta corrente. Mas então, qual a solução para isso? hexadecimais em nossas telas, devemos
A ideia base é simples, não permitir que saber se existem formas de cuidar desses
Até aqui tudo certo. O software está dois ou mais processos acessem esses re- acessos!
fazendo o que foi requisitado para ele fazer. cursos compartilhados, ou seja, a região
O processo de débito terminou, então o crítica, por motivos óbvios de integridade Para evitar esse problema, devemos
sistema operacional vai chamar aquele do sistema. Porém, fiquem tranquilos (ou encontrar um modo de impedir que mais
processo anterior de crédito para a conta, não), a possibilidade do banco errar isso de um processo leia e escreva ao mesmo
a fim de que seja concluído. Lembra onde nos dias de hoje é muito pequena, ou seja, tempo na memória compartilhada, ou seja,
ele parou? Sim, ele ia atualizar o valor pra se você gastar irá sair da sua conta! precisamos de exclusão mútua, para im-
R$ 2.000,00 na conta do aposentado. E pedir que outro processo use uma variável
por incrível que pareça é isso mesmo que Em suma, a Região Crítica é parte que já esteja em uso por outro processo.
ele faz, é seu último passo, simplesmente do programa que está em memória com- Essencialmente, se um processo já está
colocar dois mil como saldo final na conta partilhada. Quando os processos disputam usando algum recurso da região crítica,
do aposentado. concorrencialmente essas áreas, damos o somente ele poderá usar esse recurso en-
nome de condição de corrida. quanto tiver direito de uso da CPU.
No fim das contas, o aposentado
tinha mil, recebeu mais mil, gastou cem e
ficou com dois mil na conta. Perceberam?
Simplesmente chavear, parar um proces-
SISTEMAS OPERACIONAIS 40
Uma boa solução para o acesso às Quando um processo entra em uma para ser processado, contudo, o recurso
regiões críticas deve obedecer 4 premissas: região crítica, ele pode sinalizar o sistema Z está alocado para B e ele só irá largar
com uma variável que fala “ei sistema, eu o recurso Z quando concluir seu proces-
• Nunca 2 processos podem estar estou usando o recurso por algum tempo, samento, porém o processo A está com 2
simultaneamente em suas regiões críticas; não permita que nenhum outro processo recursos alocados e não irá largar eles até
aloque o recurso ou entre na região crítica”. concluir sua execução.
• Nada pode ser afirmado sobre a Dessa maneira, todos os outros processos
velocidade ou sobre o número de CPU’s, serão excluídos de forma mútua, até que Perceberam o looping que foi gera-
então a solução para esse problema não o recurso seja liberado. do? Para exemplificar melhor isso, existe o
pode levar em consideração a arquitetura famoso algoritmo dos filósofos chineses.
de hardware; No entanto, temos um outro proble-
ma que surge nesse contexto. Perceba que Vamos observar a seguinte imagem:
• Nenhum processo executando fora os problemas só pioram e são cada vez mais
de sua região crítica pode bloquear outro complexos. Depois de tudo isso, você dará
processo, senão teríamos um festival de mais valor às pessoas que desenvolveram
“bloqueamentos” entre os processos; o sistema operacional que está usando!
Temos 5 filósofos e apenas 5 hashis. soltar os 2 hashis. Na próxima ordem de Dessa forma, vamos usar outro
Se você já comeu comida chinesa com execução, o segundo filósofo irá conferir exemplo lúdico, o do barbeiro dorminhoco.
hashis, sabe que são necessários 2 hashis se os 2 recursos estão disponíveis, e caso Imaginemos uma barbearia. O barbeiro
para conseguir comer, caso contrário a esteja, ele irá alocar os mesmos e comer se mantém acordado enquanto há clientes
massa não irá “grudar” nos pauzinhos. por um determinado tempo. na barbearia. Quando não há clientes ele
Se todos os filósofos resolverem comer dorme para recuperar suas energias. Caso
ao mesmo tempo, cada um irá ficar com Deu para entender a lógica de alo- ele esteja dormindo e um cliente chegar,
um hashi na mão e não terão o segundo cação dos recursos? É mais ou menos isso ele deve acordar o barbeiro para que ele
hashi para comer. que os sistemas operacionais fazem para comece a trabalhar.
poder gerir os recursos e não travar em
Pois bem, então, como resolver esse um looping infinito de espera de recursos, Se mais de um cliente chegar para
impasse de forma que todos possam comer atendendo àquelas 4 premissas para uma cortar o cabelo, ele deve esperar sua vez
e ninguém morra de fome? boa resolução de problemas para o acesso para ser atendido em uma fila, até que o
Às regiões críticas. barbeiro esteja disponível.
É muito simples, e a resolução é mais
ou menos a seguinte: O primeiro filóso- No entanto, acham que os problemas Isso é mais ou menos o que acontece
fo (processo) olha para sua direita e para acabaram? Ainda temos outro problema nos sistemas. Se o sistema está ocioso, ele
sua esquerda, caso exista 1 hashi de cada mais clássico em modelos de cliente x ser- não manterá todos os recursos disponíveis.
lado, ele aloca o recurso para ele comer por vidor. Um sistema de servidor serve para O primeiro processo que requisitar algum
um determinado tempo. Caso o segundo atender inúmeras requisições de usuários recurso irá “acordar o sistema”. Caso mais
filósofo queira comer, ele irá olhar para distintos. de um processo queira usar um recurso,
sua direita e para sua esquerda e se houver ele ficará em uma fila de espera até que
apenas um recurso disponível ele não aloca Um sistema de servidor só necessita chegue sua vez de processamento.
nenhum para ele e aguarda novamente executar algumas funções caso os seus
sua vez de comer. Assim que o primeiro clientes necessitem delas. Deixar tudo Em suma, essas são técnicas de com-
filósofo terminar de comer (em um tempo sempre rodando nas filas de processamento partilhamento de recursos de forma segura
determinado, senão um filósofo guloso pode onerar o poder de processamento e dentro do sistema operacional.
aloca os recursos e não solta mais), ele irá utilizar o recurso de forma indevida.
SISTEMAS OPERACIONAIS 42
Síntese Final
DEADLOCK
A briga por recursos e o egoísmo entre os
processos são constantes. O resultado de uma
disputa entre os processos é o Dealock.
Ainda estamos falando de processos? Sim, nós estamos!
Vocês não acreditaram quando falei que os processos são a
parte mais importante dos sistemas, estou certo? Pois bem,
vamos a mais um grande problema que o sistema deve ser
capaz de gerenciar, o Deadlock.
não liberar recursos, ele vai alocando cada é feita através de grafos dirigidos, onde um
vez mais recursos para ele, sem liberá-los. quadrado representa um recurso e num
círculo um processo. Quando um processo
• Os recursos não podem ser retira- aloca um recurso, uma seta do recurso ao
dos dos processos que os mantém alocados processo é traçada e quando um processo
enquanto estes processos não finalizam sua necessita do recurso, uma seta do processo
utilização, o que denominamos de “con- ao recurso é traçada.
SISTEMAS OPERACIONAIS 47
Para não haver DeadLock, a sequência de alocação deve ser esta: A terceira técnica é um pouco mais
elaborada e tem como objetivo evitar de
forma dinâmica que o deadlock aconteça,
através de alocação dinâmica de recursos
de forma cuidadosa, evitando que ocorra
o problema. E, por fim, a quarta técnica
é prevenir que o deadlock aconteça, impe-
dindo que uma das 4 condições necessárias
para haver deadlock surja no sistema.
Os deadlocks são muito indesejáveis, como já se era de esperar, pois eles tra-
Pois bem, vamos conhecer mais pro-
vam todo sistema operacional. Então, neste contexto, nada mais inteligente do que
fundamente as técnicas de tratativas de
tratar os deadlocks no sistema. Basicamente, utilizamos 4 técnicas para tratativas de
deadlock. A primeira e mais barata é o
deadlocks nos sistemas operacionais.
Algoritmo do Avestruz. O que o avestruz
faz quando acontece algum problema ou
Primeira técnica é simplesmente ignorar o problema. Isso mesmo que você está
quando ele está com medo? Simplesmente
lendo, simplesmente podemos ignorar o problema e torcer para que ele não aconteça.
enfia a cabeça debaixo da terra e ignora
A segunda técnica é detectar e recuperar os deadlocks, ou seja, o sistema permite que
tudo ao seu redor (não que isso resolva
eles aconteçam e depois que eles se concretizem, o próprio sistema busca uma forma
alguma coisa, mas ele faz). O sistema ope-
de corrigi-lo, fazendo com que nada de ruim aconteça.
racional faz a mesma coisa! Quando ocorre
SISTEMAS OPERACIONAIS 48
o deadlock, ele ignora e deixa tudo travar O objetivo é permitir que os blo- quando você está jogando e seu persona-
(qualquer tela azul que já passou em sua queios ocorram e, a partir disso, detec- gem morre e você não volta para o início
vida não é mera coincidência...). tá-los e recuperá-los através de algorit- do jogo, mas sim para um estágio antes
mos desenvolvidos para este fim. Estes da morte do personagem, um passo antes
Essa forma de tratar o deadlock é algoritmos possuem a tarefa de descobrir de cair do buraco? É mais ou menos isso
utilizada pelos sistemas, levando em con- as causas das ocorrências de deadlock e que o algoritmo faz. Ele guarda o último
sideração algumas ponderações. Às vezes eliminar novas ocorrências. estado “bom” do processo, e caso ocorra o
o deadlock é raro e o custo de prevenção deadlock, ele faz o processo/recurso voltar
muito alto, tanto monetariamente, com Recuperação por meio de preemp- um passo atrás e impede que ele gere o
horas de desenvolvimento quando em ção: Esse algoritmo retira um recurso deadlock.
tempo de processamento, pois são mais passível de preempção de um processo
e mais processos de controles que devem entregando ele a outro processo e depois Recuperação por meio de elimina-
ser implementados. Pode ser displicência, devolvendo para o primeiro processo. Des- ção de processo: Simplesmente, o processo
porém, o uso deste tipo de algoritmo é feito sa forma, não há ocorrência do deadlo- é “morto” e nada mais. Trágico não?! O
com base em informações estatísticas da ck, pois nenhum processo fica esperando sistema escolhe o processo menos crítico
ocorrência dos deadlocks. infinitamente para obter o recurso, ele é e “mata” ele, dessa forma, os recursos são
compartilhado através da preempção do liberados e o deadlock não acontece. Matar
Detecção e Recuperação de Deadlocks mesmo, se necessário, a fim de liberar o processos é uma prática muito comum para
recurso. O sistema pode retirar recurso destravar sistemas ou processos que estão
dos processos. com problemas. No Windows utilizamos o
Muito bem, em sistemas melhores comando taskkill e no Linux o kill (nomes
desenvolvidos, ignorar que o deadlock Recuperação por meio de reversão sugestivos, não é?).
existe não é uma boa prática. Então vamos de estado: Guardar o estado do processo
ver o que pode ser feito. O sistema pode para que possa ser revertido ao seu es-
aplicar algoritmos de detecção e recupe- tado interior (chekpoint) caso ocorra o
ração de deadlock. deadlock, liberando os recursos que estão
alocados. Um exemplo muito bom para
isso é para os amantes de games! Sabe
SISTEMAS OPERACIONAIS 49
Prevenção de DeadLocks bre-se que tudo em informática está dentro de alocação nos diz que irá gerar uma si-
de uma questão maior ainda, “Depende, tuação de espera infinita por um recurso
tudo depende”, então, teoricamente exis- ou uma condição circular de alocação, o
Muito bem, vimos como detectar e tem técnicas capazes de evitar deadlock, SO impede a alocação dos recursos, evi-
recuperar deadlocks, mas também exis- mas tudo em informática é algo exotérico! tando o deadlock. Estado inseguro não é
tem técnicas de prevenção. Quanto mais sinônimo de deadlock, apenas no estado
complexa é a tratativa do deadlock, maior Alguns algoritmos, os mais efica- inseguro temos a maior probabilidade de
seu custo monetário e de processamento zes, utilizam-se de técnicas de caminho surgir um deadlock.
do sistema, porém o SO fica muito mais de estados seguros e caminhos de estados
seguro e estável! Vamos ver algumas téc- inseguros. Algoritmo do Banqueiro
nicas de prevenção.
Nos caminhos de Estado Seguro
Prevenção Dinâmica: Este algorit- existe uma sequência de alocações que ga- Quem melhor para saber comparti-
mo previne, através de procedimentos de rante que todos os processos sejam conclu- lhar recursos do que o banco? Os bancos
alocação que analisam e mapeiam a possi- ídos. É seguro, pois o sistema escalonando pegam nosso dinheiro e distribuem entre
bilidade de formação de cadeias circulares, cuidadosamente cada recurso e entregando suas agências, porém, nosso dinheiro não
os looping de requisição de recursos, e por de forma racional, pode evitar o deadlo- está todo em uma única dessas. O recurso,
consequência, os deadlocks. Logo, são al- ck. Assim, o sistema só libera o processo dinheiro dos bancos, está distribuído de
goritmos complexos e há possibilidade de para alocar o recurso, se todos estiverem forma que possa atender a todos os saques
grande consumo de recursos, aumentando em um estado seguro, caso contrário, não de seus clientes. Mas imagine se todos
o tempo de resposta do sistema opera- será liberado alocar os mesmos. os clientes resolvessem sacar todo o seu
cional em determinados processos mais dinheiro em uma única agência? Não é
complexos. Nos caminhos de Estados Inse- possível, pois a agência não comportaria
guros existe uma ou mais sequências de tanto dinheiro. Todavia, qual a probabili-
Caminhos Seguros e Inseguros: A alocações que podem impactar na conclu- dade de todos os clientes irem sacar todo
grande questão de estudo é, “Existe algum são dos processos, gerando deadlock. Os seu dinheiro na mesma agência do banco?
algoritmo capaz de realmente evitar Dea- sistemas não podem garantir a conclusão Praticamente impossível, certo?!
dlock? ”, a resposta é “Sim, existe”. Lem- de todos os processos. Quando a lógica
SISTEMAS OPERACIONAIS 50
GERENCIAMENTO
DE MEMÓRIA
Hoje minha memória está RAM, eu durmo e
esqueço das coisas. Entendeu a brincadeira?
Não? Então vamos estudar como a memória
RAM funciona!
O Gerenciamento de Memória, assim como o de pro-
cesso, é peça fundamental para o bom funcionamento do sis-
tema operacional. A memória nem sempre foi em abundância.
A facilidade em adquirir memória RAM é algo novo. Nos
primórdios da programação e dos computadores, a memória
RAM era escassa, por isso deveria ser gerenciada de forma
muito precisa pelo sistema.
O Gerenciamento de Memória mento. Deve estar com o navegador aberto rápido, pois, fisicamente está “colocada”
na página do Uniftec, buscando material junto ao processador, porém é muito cara,
de estudo, ao mesmo tempo que seu sof- mas muito cara mesmo.
Fechamos toda parte de gerencia-
tware de downloads preferido está aberto,
mento de processos e agora vamos avançar
juntamente com seu player de música fa- Normalmente os computadores pos-
mais um pouco. Vamos entrar no Geren-
vorito e, talvez ainda tenha um software suem alguns megabytes somente, entre
ciamento de Memória que é de extrema
de mensageria aberto para conversar com 2 e 8 megabytes. O sistema operacional
importância para o bom funcionando
seus amigos, tudo isso sendo executado e carrega em memória Cache os programas
do SO. Não menosprezando os demais
ocupando espaço em memória RAM! A que mais são utilizados ou que necessitam
gerenciamentos, porém o de memória e
orquestração da memória deve ser impe- de uma execução muito rápida. Quanto
processos são mais importantes, sem eles
cável para que tudo funcione. maior o cache, mais rápido é o acesso aos
o SO não funciona ou qualquer problema
programas.
neles impacta em todo SO de forma crítica.
Hierarquia das Memórias
Vamos exemplificar melhor. Um
A memória que iremos trabalhar
pedreiro está fazendo uma parede e precisa
nesse gerenciamento é a principal, que
Existe uma hierarquia de memórias. de tijolos, ele pede para o ajudante ir bus-
está ligada diretamente na CPU, através
Cada tipo de memória foi criado para al- ca-los. Então, o ajudante pega os tijolos e
de filamentos e tilhas na placa mãe. A
gum objetivo específico e desempenha traz para o pedreiro colocar na parede. A
memória é um recurso importantíssimo
funções diferenciadas. velocidade da memória e do processador
para o Sistemas Operacional e deve ser
são diferentes, sendo a memória RAM
gerenciado com muito cuidado. Os pro-
O primeiro nível da hierarquia é muito mais lenta, mas muito mais lenta
gramas cada vez mais tendem a crescer e
muito pequeno, no hardware do compu- mesmo, dessa maneira, usa-se o cache para
ocuparem mais espaço em memória.
tador. Ela é uma memória volátil, muito agilizar as coisas. O ajudante deixa alguns
rápida e de custo muito alto. A memória tijolos ao lado do pedreiro e continua tra-
Com os sistemas multitarefas e a
Cache, normalmente localizada dentro zendo mais para que o pedreiro não pare.
criatividade dos usuários, o gerenciamento
do slot do processador ou até mesmo fi-
de memória deve estar muito bem esque-
xada junto à base do processador. Essa
matizado. Pense agora, você, neste mo-
memória possui um acesso extremamente
SISTEMAS OPERACIONAIS 54
Avançando agora para o segundo centenas de gigabytes, de custo baixo e O sistemas operacional deve geren-
nível de memória. Uma grande área de velocidade baixa. São os nossos HD’s ciar todas essas memórias, entretanto, o
memória principal, volátil, com dezenas convencionais, com braços mecânicos e gerenciamento de memória está restrito
de megabytes de velocidade e custo mé- discos internos, ou até mesmo nossos CD’s às memórias voláteis, as demais são tra-
dio. Essa é a memória RAM ou memória e DVD’s. As memórias de armazenamento balhadas como dispositivos de entrada e
principal. O tempo de acesso dela é mais tendem a sere muito mais lentas no seu saída que iremos estudar mais adiante.
lento que a Cache, porém muito mais rá- tempo de acesso, e servem apenas para
pida que a memória de armazenamento, armazenar dados. O valor delas em com- Como as coisas funcionam?
como os HD’s. Quanto mais memória paração com as outras duas memórias é
RAM dispor para o Sistema Operacional, muito mais baixo.
mais rápido serão as trocas de processos e Como eu venho falando nos ou-
acesso às informações. Eu, ainda arrisco inserir mais um tros capítulos, meus estimados amigos,
nível de memória. Uma memória não- as coisas funcionam de forma exotérica
Logo, não podemos dizer que so- -volátil, de custo alto e velocidade alta. em informática, porém ainda racional.
mente a memória RAM deixa o computa- Os HD’s SSD ou sólidos. Como não há Vamos ver algumas regras básicas de como
dor mais rápido. Vamos novamente a um nada mecânico neles, o tempo de acesso é os programas são executados dentro do
exemplo. Não adianta nada comprarmos muito mais rápido, mas muito mais rápido sistema operacional.
uma Ferrari e colocarmos um motor de mesmo. Essa tecnologia ainda está cara,
Fusca 1970 dentro dela. Por mais que a porém como todas novas tecnologias, fi- Você liga o seu computador, e o pro-
carenagem seja da Ferrari, o que faz o cará acessível daqui algum tempo. HD’s cesso de bootstraping acontece. O geren-
carro andar é a de um Fusca. Dessa for- SSD realmente deixam os sistemas muito ciador de boot do HD (veremos isso no
ma, a Memória RAM deve andar lado a mais rápidos, portanto, considere trocar próximo capítulo) irá pegar os arquivos
lado com a capacidade de processamento seu HD convencional por um SSD, a fim dos sistemas operacional e largá-los na
e endereçamento do processador, tudo em de melhorar a performance do seu com- memória RAM. Isso mesmo pessoal, o
harmonia. putador, mas sempre lembre-se, de nada Sistema Operacional é executado na me-
adianta uma Ferrari com motor de Fusca. mória RAM, o HD está ali somente para
Em um terceiro nível de memó- guardar os arquivos dos sistemas para que
ria temos uma memória não-volátil, com ele possa iniciar.
SISTEMAS OPERACIONAIS 55
Depois dos arquivos dos sistemas • O gerenciador de memória decide Memória RAM
estar em memória RAM, eles são proces- onde colocar o processo na memória.
sados e o sistema toma conta do hardware
Memória RAM ou memória princi-
do computador. Ao desligar o computador • Somente depois da carga na me-
pal é o componente de hardware respon-
todos os dados da memória RAM são mória é que o processo está disponível
sável por armazenar os dados que serão
perdidos e na próxima inicialização o ge- para rodar.
executados. Como ela é volátil, ao perder
renciador de boot carrega novamente todos
energia elétrica os dados serão perdidos.
os arquivos do SO em memória RAM, A função do gerenciador de me-
para ser executado novamente. mória é carregar os programas em me-
O acesso à memória RAM funciona
mória RAM, liberar espaço na memória
através de endereços. Cada célula de me-
Uma regra básica que não pode ser de programas que já foram executados e
mória possui endereços hexadecimais que
esquecida jamais. Todo e qualquer pro- gerenciar todo chaveamento de memória
vão armazenar os dados. Assim, o sistema
cesso/programa/software, só pode ser entre os níveis de memória.
referencia esses endereços para saber a
executado se estiver alocado em memória
localização dos dados armazenados.
RAM, caso contrário ele não é execu- Podemos classificar os sistemas de
tado. duas formas referentes ao gerenciamento
Vocês já viram um erro que aconte-
de memória. Temos os sistemas, que du-
cia com alguma frequência em um sistema
Basicamente, está é a lógica: Todo rante a execução levam e trazem arqui-
operacional proprietário, onde aparecia
o programa executável é um arquivo que vos e dados entre a memória principal e
uma tela azul com erros e uma mensagem
reside em disco: o disco rígido, bem como temos sistemas
de despejo de memória física? Logo abaixo
que simplesmente não fazem isso, apenas
dessa mensagem, apareciam códigos he-
• Ao ser executado, primeiramente carregam as suas informações em memória
xadecimais de regiões de memórias que
precisa ser carregado na memória. principal e não há esse chaveamento, como
foram afetadas. Dessa forma, um endereço
por exemplo, alguns sistemas embarcados
com problema físico na memória compro-
• O gerenciador de processos decide que vamos trabalhar mais adiante.
mete o bom funcionamento do sistema
qual processo será executado.
operacional.
SISTEMAS OPERACIONAIS 56
a CPU poderá processar diversos registros Monoprogramação sem troca de lizado, o SO libera a área na RAM para
antes de o dispositivo de saída realizar a processos ou paginação outro programa ser carregado no espaço,
gravação. Isso é extremamente eficiente, antes ocupado pelo primeiro programa.
pois, dessa maneira, é possível compatibili-
Cada sistema operacional possui
zar a diferença existente entre o tempo em Desse modo, o compartilhamento
uma finalidade. Nem todos os sistemas
que a CPU processa os dados e o tempo de memória RAM é muito simples, pois
são programados para executar inúmeros
em que o dispositivo de E/S realiza as o sistema já sabe quanto de espaço cada
processos, alguns sistemas apenas rea-
operações de leitura e gravação.” programa irá ocupar em memória, basta
lizam pequenas tarefas, sempre iguais e
alocar a área quando for carregado. São
sempre da mesma forma, sem variar seu
processados (operações de leitura), sistemas que realizam atividades especí-
comportamento.
ou processados, mas ainda não gravados ficas e repetidas, sem variação.
(operação de gravação). Dessa forma, o
Normalmente, sistemas embarcados
dispositivo de entrada poderá ler diversos Multiprogramação
trabalham dessa maneira, pois executam
registros antes que a CPU os processe, ou a
apenas uma tarefa e sempre igual. Entre-
mesma poderá processar diversos registros
tanto, isso, iremos estudar nos próximos Alguns sistemas operacionais são
antes de o dispositivo de saída realizar a
capítulos. desenvolvidos para executarem tarefas
gravação. Isso é extremamente eficiente,
pois, assim, será possível compatibilizar a específicas, porém outros sistemas não.
Quando se utiliza um esquema mais Muitos SO são desenvolvidos para execu-
diferença existente entre o tempo em que a
simples de programação de gerenciamento tarem inúmeras atividades e atenderem a
CPU processa os dados e o tempo em que
de memória no sistema operacional, ela é solicitações diversas. Sistemas desse tipo
o dispositivo de E/S realiza as operações
compartilhada entre o programa e o siste- tendem a alocar áreas de memórias fixas
de leitura e gravação.”
ma e somente um programa é executado de ou variáveis, de acordo com cada necessi-
cada vez. Quando o sistema é organizado dade. Então, temos a multiprogramação
dessa maneira, somente um processo pode com partições fixas e a multiprogramação
ser executado a cada instante. O SO carre- com partições variáveis.
ga todo o programa na memória, enquanto
está sendo executado. Quando for fina-
SISTEMAS OPERACIONAIS 58
Ainda temos alguns problemas na A melhor forma de escolher onde cada processo irá ser alocado, é utilizar uma
multiprogramação, como não saber em fila única de todos os processos e pesquisar nela o tamanho de cada um deles, assim
que endereço de memória o programa será como ir alocando de forma mais inteligente o espaço que cada um irá ocupar.
carregado, bem como a proteção que deve
ser realizada para que nenhum programa Observe a imagem seguinte, em que a figura (b) representa a fila única de
invada o espaço do outro. Assim, o ge- alocação de memória:
renciador de memória deve garantir essa
segurança e resolução desses programas.
Multiprogramação com Partições CPU, onerando os processos, logo, deve ser e ao mesmo tempo estar baixando algo e
muito bem pensada antes de ser utilizada. ouvindo música, enquanto colocamos o
Variáveis
status do skype como ausente. Tudo isso
Troca de Processos consumindo memória RAM e tempo de
Já percebemos que utilizar partições processamento.
fixas não é uma ideia muito inteligente
para sistemas de multiprogramação, tendo Os sistemas estão em constante evo- Mas, então, como resolver esse pro-
em vista o número de processos e progra- lução e os programas também. Hoje, temos blema antigo e atual? Para isso, surgiram
mas que existem. Então, foram desenvol- memória RAM aos montes instaladas em duas técnicas que solucionarão esse pro-
vidas técnicas de partições variáveis que nossos computadores, mas nem sempre blema de falta de memória RAM, são elas:
se adequam a cada processo. foi assim. Houve época em que memó- técnica de Swapping e Memória Virtual.
ria RAM era cara e muito limitada, por
As partições variam de acordo com a causa das arquiteturas que existiam. Cada Swapping
necessidade de cada processo, levando em programa brigava por cada byte livre que
consideração o seu tamanho, localização existia. Atualmente, as coisas mudaram,
e número de partições, melhorando assim mas nem tanto. Os programas são desen- Temos um computador com 16 MB
a utilização de memória. Cada processo volvidos para usar o máximo de memória de memória RAM (sim senhores, já houve
irá usar somente a área que for necessária. que podem e a cada dia aparecem mais época em que os computadores pessoais
Porém, essa técnica dificulta o processo e mais novos programas que consomem tinham isso de memória RAM e nela de-
de alocação e desalocação de memória. mais memória RAM. veria estar alocada a área de memória do
sistema operacional, que é intocável) e
Mesmo com esse cuidado, ainda Eis, então, que surge mais um pro- também a área que os processos irão ocu-
podemos ter espaços vazios entre os pro- blema. Nem sempre existe memória RAM par. Tínhamos o problema de os 16 MB
cessos na memória, oriundos da alocação e suficiente para todos os programas que es- encherem e o usuário pedir para que um
desalocação deles, em RAM. Então exis- tão sendo executados. Nós, usuários, que- novo programa fosse aberto. Não havendo
tem técnicas de compactação de memória, remos cada vez mais empilhar processos e mais espaço em memória, e o que fazer?
que visam “tapar” esses buracos, mas a programas abertos ao mesmo tempo. Não
utilização delas acarreta uso excessivo da basta jogar um jogo, nós temos que jogar
SISTEMAS OPERACIONAIS 60
Pois bem, foi desenvolvida uma so- o programa novamente, e a memória es- Memória Virtual – Paginação
lução muito inteligente para isso. Quando tiver lotada? Ele faz novamente o mesmo
instalamos um sistema operacional (de processo. Desaloca uma área, levando os Já entendemos o que é swapping ou
forma automática ou não), temos que de- dados para swapping, liberando o espaço troca de processos. Agora, vamos avançar
finir uma área de Swapping no HD. Um necessário. um pouco mais nessa construção de me-
espaço em memória secundária, que esta- mória virtual. A área de swappping em
rá “morto”, exclusivo para ser usado para Normalmente, o tamanho de área si, abriga as páginas de memória. Mas o
troca de processos. de swapping é equivalente ao tamanho da que vem a ser isso?
memória RAM. Assim, se temos 1 GB
Voltando ao nosso exemplo. Nosso de memória RAM, podemos ter 1 GB Vamos a outro conceito, o de Me-
computador está com 16 MB de memó- de memória de swapping no HD. Porém, mória Virtual e Paginação de memória.
ria RAM lotada, e um novo programa é percebam que isso não é uma constante, A CPU precisa alocar os processos em
aberto pelo usuário. Nesse momento, o então, vamos pensar. Se temos um compu- endereços de memória e se ele conseguir
sistema escolhe um processo ou programa tador atual com 16 GB de memória RAM, ler somente 16 MB, não alocará mais nada
que está mais ocioso ou que impacta me- é inteligente manter 16 GB de memória além dos 16 MB. No entanto, como resol-
nos na utilização do SO, logo o retira da swapping? Claro que não. Essa lógica se ver nosso problema de memória? Em al-
memória RAM, levando seus dados para aplica mais em computadores velhos e mais gum momento um cientista de informática
a área de Swapping, liberando espaço em lentos. Visto que os sistemas operacionais inventou algo chamado MMU (Memory
memória RAM, vindo a permitir que um atuais, possuem já uma otimização para Management Unit), uma peça física que
novo programa seja aberto naquele local. o uso de swapping. Então, antes que você conversa diretamente com o processador
pense em alterar qualquer coisa em um e engana-o de forma vergonhosa.
Quando o usuário precisar do pro- sistema, pense muito bem antes.
grama que foi retirado de memória RAM, A MMU serve para enganar o pro-
o gerenciador vai até a memória secundária cessador e mostrar endereços de memória
(HD), verifica se o programa está em área a mais para ele. De forma bem prática, te-
de swapping e carrega ele novamente em mos 16 MB de memória RAM e a MMU
memória RAM, para que possa ser exe- engana o processador, falando para ele que
cutado. Entretanto, se na hora de carregar temos 32 MB de memória RAM.
SISTEMAS OPERACIONAIS 61
A MMU está localizada muito próxima do processador, de acordo com a se- Vamos observar a imagem a seguir:
guinte imagem:
Desse modo, acontece a multiplicação lógica de memória RAM e todos os Fonte: TANENBAUM, Andrew S. – Sistemas Operacionais moder-
problemas estão resolvidos, certo? Claro que não! Então vamos entender como a nos, 2003
Certo, temos as páginas virtuais e Os principais são: muito elas, pois os sistemas ficará muito
as molduras de páginas, mas como isso lento.
funciona? O gerenciador de memória fica • Ótimo
monitorando a memória RAM, quando Síntese Final
ela está com um percentual cheio, então, • NRU
ele começa a fazer o swapping dos dados
para o disco rígido. O gerenciador pega • FIFO Concluímos o estudo sobre geren-
as páginas que estão na memória e deslo- ciamento de memória e abordamos os
ca para a área de paginação da memória • Segunda Chance principais aspectos relevantes acerca do
secundária, liberando espaço para novas assunto. Aprendemos qual a função da
páginas entrarem nas molduras. Quando • Relógio memória, os tipos de memória e quais
o processador precisa de uma página que os desafios que um sistema possuiu ao
não está em memória RAM, o gerenciador • LRU gerenciar memórias. Portanto, creio que
carrega a página em memória principal estamos aptos para avançar aos próximos
para ser processado. Isso é repetido de • Working set módulos, que no meu ponto de vista, exis-
forma frenética durante todo tempo de tem para agregar valor na utilização do
execução do sistema operacional. • WSClock sistema. Nesse sentido, é muito importante
levarmos conosco os conceitos e técnicas
Assim, como existe o escalonamento Essas técnicas tendem a manter o de gerenciamento de memória, para com-
de processos, podemos dizer que existe sistema operacional funcional, sem que ele preender melhor os problemas que ocorrem
um escalonador de página. Existem vá- trave por falta de memória. Porém, existe em nosso dia a dia.
rios algoritmos que são utilizados para um grande custo para que isso aconteça.
escalonar a troca de página e decidir qual Todo esse processo deixa o sistema muito
página sai e qual página fica. Uma dica: lento. Toda lógica de memória virtual,
pesquise mais sobre eles!!! paginação, swapping, é muito lenta! Por
isso, são técnicas usadas apenas para não
“travar” o sistema, não sendo aconselhável
trabalhar no limite de memória e utilizar
EXERCÍCIOS 5) Para alocar as áreas de memória que serão utilizadas pelos
programas, o sistema utiliza duas técnicas, a de partições fixas
1) Tão importante quanto o processador e o gerenciamento de
e partições variáveis. Explique como elas funcionam e quais os
processos, são as memórias e o gerenciamento de memória,
pontos fortes e fracos de cada uma delas.
que também desempenha uma função visceral para que o
sistema possa ser utilizado. Conhecer os tipos de memórias nos
permite entender como o sistema funciona. A partir disso, cite a
hierarquia de memória, juntamente com sua característica.
2) Todo processamento acontece de forma muito rápida e o
acesso aos dados devem ser rápidos. Explique qual o motivo
pelo qual todo programa deve ser carregado na memória
principal para ser processado.
3) Nem sempre tivemos memória sobrando nos computadores,
no início havia pouca memória e muitos programas para serem
executados. Então, surgiu a técnica de memória virtual. Explique
como a MMU funciona e o conceito de memória virtual.
4) Junto com a técnica de Memória Virtual, temos a técnica de
swapping, utilizada para manter o sistema funcionando, mesmo
quando não há mais memória disponível. Explique o que é e
como funciona o swapping.
SISTEMAS OPERACIONAIS 64
GERENCIAMENTO
DE DISPOSITIVOS DE
ENTRADA E SAÍDA
A diversão só está completa com nosso computador,
em virtude dos dispositivos de entrada e saída.
O grande objetivo do sistema operacional em interfa-
cear o hardware para o usuário e facilitar a usabilidade do
sistema é estendida e completa, juntamente com os inúmeros
dispositivos de entrada e saída que existem.
Dispositivos de Entrada e Saída por causa dos usuários domésticos, surgiu são responsáveis pela interface homem-
muito antes disso, porém podemos perce- -máquina.
ber que foi junto com a computação pessoal
Até agora, durante o curso, esta-
que as coisas evoluíram mais. Dentre os dispositivos de memória
mos estudando tudo o que é básico para
secundária, destacamos os HD’s. Com a
um sistema operacional funcionar. Atem
Quando a memória RAM e o pro- crescente necessidade de armazenar in-
mesmo, sobre possuir processador e me-
cessador não eram mais suficientes para formações, os HD’s foram evoluindo em
mória em uma placa que interligue tudo
atender as necessidades, alguns periféricos tecnologia e capacidade. Atualmente, as
isso. O funcionamento básico é o mais
tiveram que ser acoplados à placa mãe do unidades de armazenamento são impor-
importante do computador, resume-se a
computador e os sistemas começaram uma tantes para armazenar não só arquivos dos
isso: processador e memória, o restante são
importante evolução. usuários, mas também todos os arquivos
apenas futilidades. No entanto, como tudo
do sistema operacional. O sistema deve ser
na vida, são as futilidades que deixam as
Então, surgiram os dispositivos de capaz de entender como esses dispositivos
coisas muito mais interessantes e legais.
Entrada e Saída (E/S) ou como vários funcionam para que possa acessar os dados
autores utilizam, Input e Output (I/O). que estão gravados neles e também efetuar
Com o avanço da computação pes-
Os dispositivos de entrada e saída (E/S) um controle sobre isso (iremos estudar no
soal, muitos “penduricalhos” tiveram que
são utilizados para estabelecer a comuni- próximo capítulo os Sistemas de Arquivos
ser agregados aos computadores para dei-
cação entre o computador e o mundo ex- que realizam essa atividade).
xá-los cada vez mais atraentes e com mais
terno. Através desses dispositivos, a CPU
funcionalidades. Os computadores deixa-
e a memória principal podem estabelecer A partir disso tudo, fica a pergunta:
ram de ser apenas grandes “trambolhos”
comunicação, tanto com usuários quanto “mas você não falou que são apenas futi-
utilizados por empresas e se tornaram uma
com memórias secundárias. lidades? Como um sistema pode subsistir
ferramenta de diversão e entretenimento.
sem o HD, por exemplo, para salvar os
Dessa forma, o sistema operacional teve
Os dispositivos de E/S são divididos seus arquivos?”, Vamos ver mais adiante
que ir evoluindo em vários aspectos.
basicamente em 2 categorias. Temos os que, podemos sim, ter um sistema opera-
dispositivos que desempenham a função cional sem possuir um HD instalado no
O que vamos estudar, neste momen-
de memória secundária, como HD’s, fitas, computador.
to, não é algo que tenha sido desenvolvido
disquetes entre outros, e também os que
SISTEMAS OPERACIONAIS 66
Já os dispositivos de interface ho- Mouse e teclado foram concebidos Conceitos básicos do hardware
mem-máquina, não armazenam informa- junto aos computadores, e possuem sua
ções, contudo realizam toda a interface devida importância. No entanto, como o
Certo pessoal, eu sei que essa maté-
entre o computador e o ser humano. E ser humano nunca está satisfeito e percebeu
ria é Sistemas Operacionais e não Arqui-
podemos destaca-los como os verdadeiros que pode “pendurar” muitas outras coisas
tetura de Computadores ou Fundamentos
“penduricalhos”, os quais são agregados ao no computador, bem como o sistema deve
Computacionais, porém temos que rever
computador e que o sistema possui a difícil ser capaz de gerenciar tudo. Vamos, desde
algumas coisas para entender como os
missão de gerenciar, todos eles. pantufas USB que esquentam no inverno,
dispositivos de E/S funcionam e como o
até dispositivos de reconhecimento de mo-
sistema operacional necessita entender eles
Partindo do mais básico e essencial, vimentos capazes de conduzir uma cirur-
para gerenciá-los. Então, vamos primei-
temos dispositivos como teclado e mouse, gia remota. A variedade de dispositivos é
ramente entender como as interligações
ainda, algumas interconexões que desde os enorme. Para os gamers, assim como eu,
funcionam.
primórdios já eram utilizadas para interfa- não podemos esquecer dos joystick e ga-
cear o computador com os usuários, peças mepads, que foram sendo criados ao longo
fundamentais para facilitar a utilização dos do tempo para nos proporcionar horas de Barramento
computadores. O sistema operacional deve diversão infinita à frente de consoles.
entender como esses dispositivos funcio-
Vamos a definição teórica de bar-
nam para que seja possível sua utilização. Basicamente, podemos classificar
ramento retirado do Wikipédia:
Dentro disso, já podemos destacar que o tudo o que é externo à placa mãe, como
grau de importância de processamentos dispositivos de entrada e saída, incluindo
“Em Arquitetura de Computadores,
desses dispositivos é alta. A priorização impressoras, plotters, webcam, mouse,
um barramento é um conjunto de linhas
para processar interrupções de teclado por teclado, entre outras coisas. A cada dia,
de comunicação (condutor elétrico ou fibra
exemplo, faz-se necessária para que em usamos nossa criatividade e criamos algo
ótica) que permitem a interligação entre
caso de problemas, possamos ter o controle novo e o sistema operacional deve saber
dispositivos de um sistema de computação
do sistema. gerir todas elas, afinal, como já vimos, a
(CPU; Memória Principal; HD e outros
principal função do SO é deixar o har-
periféricos), ou entre vários sistemas de
dware o mais transparente possível para
computação.”
o usuário.
SISTEMAS OPERACIONAIS 67
Vamos resumir e entender melhor. necessidade de mais circuitos e as placas O Chipset de Ponte Norte é res-
Um barramento é o que permite uma liga- foram ficando cada vez maiores. ponsável por fazer a comunicação da CPU
ção física entre todos os componentes da com as memórias. Ele controla a memória
placa mãe. Logo, temos alguns barramen- Assim, é de nosso cotidiano saber RAM, os barramentos de Vídeo, e possui
tos padrões como o IDE, SATA, SCSI, que não queremos mais computadores uma interface com o chipset de Ponte Sul.
PCI, AGP, que facilitam a interligação e grandes e imponentes, quanto mais pe- Essencialmente, a função do Chipset de
comunicação dos periféricos à placa prin- quenos, melhor para nós. Então, uma bri- Ponte Norte é o controle de memórias,
cipal do computador. Adiante segue uma lhante ideia surgiu! De maneira muito facilitando o transporte de informações
foto de uma placa mãe, evidenciando os mais prática e fácil, pois tivemos realizada das memórias até o processador.
barramentos: uma combinação de vários circuitos em
um único, que tinha como objetivo, fazer O Chipset de Ponte Sul é respon-
com que ele desempenhasse a função de sável por controlar praticamente todo o
vários chips. resto. Esse “resto” seriam a comunicação
Desse modo, surgiram os chama- com os HD’s, portas USB e Parelelas,
dos chipsets que, ao pé da letra, significa Som, Rede, Barramento PCI, DMA, en-
“conjunto de chips”. Os diversos circui- tre outros. De forma resumida, todos os
tos foram encapsulados em dois chips, dispositivos onboard até a placa-mãe são
responsáveis cada um por uma parte das gerenciados por ele.
funções. O chipset de Ponte Sul e chipset
de Ponte Norte. Módulos de Entrada e Saída
Chipset
É muito importante sabermos para
que eles servem, uma vez que o sistema Entendemos agora que o proces-
Inicialmente os computadores pos- deve conversar muito bem com eles e en- sador e as memórias são interligados aos
suíam um circuito integrado para controlar tender como funcionam. A centralização dispositivos através dos barramentos que
cada uma das interfaces e barramentos também melhora a capacidade de proces- conduzem os pulsos eletrônicos, levando
que existiam, afinal, não existiam tantos samento e comunicação da CPU com os os dados e as interrupções. Ainda temos
assim. Porém, com a evolução, houve a demais periféricos. um detalhe importante para entendermos,
SISTEMAS OPERACIONAIS 68
afinal, os periféricos não são ligados di- nectar os periféricos à placa mãe. Atual- cionais devem se adaptar a todos eles. Só
retamente na placa mãe. mente, a módulo USB vem ganhando cada que temos um enorme problema perante
vez mais espaço e, praticamente, assume a variedade de hardware existente. Para
No início da computação, cada em- quase todas as funções de interconexão o sistema operacional conseguir acessar
presa desenvolvia também seu padrão de dos dispositivos. o hardware e utilizá-lo, é necessário que
conexão e interligação, com uma forma tenha as informações, bem como o har-
proprietária e singular para cada compu- Veja a figura seguinte, para melhor dware entenda como ele funciona.
tador, assim como o sistema operacional entender:
deveria ser desenvolvido de forma espe- Quando tínhamos poucos fabrican-
cífica a entender às instruções. tes, era muito mais simples, os sistemas
já sabiam como as coisas funcionavam,
Nesse sentido, criaram-se os mó- então era só fazer funcionar. Porém, com
dulos de Entrada e Saída, basicamente o passar do tempo tudo mudou e inúmeros
com 2 objetivos macros. O primeiro era Drivers de Dispositivos fabricantes foram surgindo e o código do
fornecer uma interface entre os periféri- sistema não conseguiu mais comportar
cos e o barramento das placas, facilitan- todas as instruções de acesso de todos os
do sua conexão e desconexão. O segundo Agora, deixamos de lado a parte físi- fabricantes.
objetivo completa o primeiro e foca na ca do computador e vamos nos concentrar
padronização de conexões. Quando temos na parte lógica, onde o sistema operacional Para facilitar a comunicação entre os
padrões iguais para todos os fabricantes de trabalha. Entendemos como o hardware programas e os dispositivos de hardware
computadores, conseguimos desenvolver funciona, bem superficialmente, e sabemos do computador, existem módulos especiais
sistemas operacionais que seja de melhor como as coisas acontecem. No entanto, dentro do Sistema Operacional, os quais
adaptação às necessidades dos usuários, compreender como as coisas funcionam servem como ponte de comunicação, ou
logo a padronização foi um grande avanço. nos auxilia a desenvolver sistemas cada um tradutor, entre os dispositivos e seu
vez mais otimizados e estáveis. computador, esses módulos são conhecidos
Os módulos de Entrada e Saída são como driver de dispositivo.
as conexões serial, paralela, usb, ps2, entre Atualmente, temos inúmeros fabri-
outras, todas as que utilizamos para co- cantes de hardware e os Sistemas Opera-
SISTEMAS OPERACIONAIS 69
Para entender o quer são os drivers as suas funções, mas o que pode acontecer máximo toda lógica operacional.
de dispositivo, vamos no seguinte exemplo: se o driver de chipset estiver desatuali-
cada dispositivo, incluindo a impressora, o zado no sistema operacional? O sistema Agora, vamos usar o exemplo do
mouse, e, assim por diante, fala uma língua não irá entender como o chipset trabalha Android, Sistema Operacional mantido
diferente com um padrão de comunica- corretamente e, simplesmente poderia tra- pela grandiosa Google, que funciona desde
ção diferente. Então, quando conectarmos var o sistema ou perder toda otimização uma cafeteira até um tanque de guerra.
uma impressora nova, o computador tenta extra que o hardware garante ao mesmo. Mesmo sendo de código livre, o sistema
se comunicar e a impressora responde em Logo, possuir drivers bem instalados e não consegue abraçar de forma 100% sa-
sua própria língua, só que o computador atualizados é fundamental para o bom tisfatória tudo o que é proposto a ele fazer.
não entende o que ela fala. Ele precisa de funcionamento do SO, por outro lado, Nunca terá a mesma estabilidade da Apple,
um intérprete que possa entender a lin- um driver mal instalado ou configurado que desenvolve apenas para hardware cria-
guagem da impressora e a dele, para poder pode comprometer todo o SO. do por eles mesmos.
traduzir as instruções e explicar como o Como podemos esperar que o Win-
dispositivo funciona. Vamos fazer um parêntese aqui. Sa-
bem o motivo pelo qual os produtos da dows tenha a mesma performance de um
Alguns módulos de driver são pa- Apple são muito mais performáticos do IOS, se ele é projetado para ser executado
drão e utilizados por todos os fabricantes, que os concorrentes? A grande mágica da em inúmeros tipos de hardware diferentes?
como por exemplo os drivers de USB, um Apple é desenvolver um sistema operacio- Mesmo com os drivers bem instalados,
exemplo claro de auxílio que a padroni- nal totalmente engajado com o hardware, nunca será a mesma coisa.
zação trouxe para a evolução do sistema, que é desenvolvido por ela mesma. Pen-
DMA
porém muitos dispositivos não possuem sem comigo: hoje a Apple só precisa se
drivers nativos nos SO e sem eles, o sis- preocupar em desenvolver sistemas que
Pois bem, vimos que toda máquina
tema não consegue se comunicar com o funcionem corretamente no seu hardware
de transmissão de dados acontece entre a
hardware. Então, driver é um tradutor de proprietário. Toda equipe de sistema está
CPU e as memórias. Quanto mais rápido
instruções do hardware para o sistema. a alguns passos dos engenheiros que pro-
deixarmos a comunicação entre CPU, me-
jetaram o hardware e podem pedir para
Lembram-se que falamos do Chip- mórias e periféricos, mais rápido o sistema
eles detalhes importantes sobre o funcio-
set? Ele é muito importante para otimizar irá trabalhar e a CPU ficará menos tempo
namento do aparelho, logo, otimizar ao
a utilização do computador, tendo em vista ociosa.
SISTEMAS OPERACIONAIS 70
Antigamente, toda transferência de a memória principal, otimizando o tem- Os discos giram muito rápido, cerca
dados entre memória e periféricos exigia a po de acesso, deixando a CPU livre para de 7200 RPM para discos mais novos, em
intervenção da CPU, o que roubava tem- processar outros dados. redor de um eixo no sentido oposto dos
po de processamento e deixava o sistema braços de um relógio. Como sabemos, o
mais lento. A solução desse problema foi Discos Rígidos computador funciona de maneira binária
a implementação de um controlador na e os dados são armazenados bit a bit, gra-
placa mãe, juntamente com uma técnica vando 0 ou 1 no disco. Sobre os discos,
de transferência de dados denominada Agora, no final desse módulo, va- há uma fina camada magnética de alguns
DMA (Direct Memory Access). Veja a mos focar no funcionamento dos discos mícrons de espessura, estando esta reves-
seguinte imagem: rígidos, pois são importantes para arma- tida de um filme protetor, onde os dados
zenar os arquivos dos sistemas, e iremos são armazenados de forma magnética.
A técnica de DMA permite que um precisar desse conhecimento para o pró-
bloco de dados seja transferido entre me- ximo módulo de Sistemas de Arquivos! A agulha de leitura e gravação tra-
mória e periféricos, sem a necessidade que balham por indução, ou seja, são capazes
Um disco rígido é formado por de gerar um campo magnético entre elas
vários discos que são de metal, vidro ou e a superfície do disco. Quando o bit a ser
cerâmica, empilhados uns sobre os outros gravado é 1, a indução polariza a super-
a uma distância muito pequena. Esses dis- fície positivamente, caso contrário não, e
cos são chamados de bandejas. Observe a o bit será 0.
imagem na coluna ao lado:
Cabe ressaltar algo muito impor-
tante, que o braço de gravação jamais toca
no disco, ele somente grava por indução
a CPU execute alguma tarefa, exceto no magnética. Logo, caso a agulha encoste
início e no final da transferência. Assim, fisicamente no disco, ele gerará um “bu-
quando o sistema deseja ler ou gravar um raco”, ao qual chamamos de Bad block,
bloco de dados, são passadas da CPU para da mesma forma, qualquer defeito físico
o controlador as informações, então ele no disco também pode ser chamado de
realiza a transferência entre o periférico e Bab block.
SISTEMAS OPERACIONAIS 71
Os Bad block são extremamente in- As pistas são separadas entre dois Pois bem, agora temos o HD to-
desejáveis e não possuem correção, é algo raios que se chamam Setores, e possuem talmente segmentado. E vamos dar um
que se agrava com o tempo. Por isso, os tamanho de no mínimo 512 bytes por se- passo adiante, a fim de entender o que
HD’s possuem vida útil e caso não tome- tor, em geral. A imagem a seguir ilustra chamados de Formatação em nosso dia
mos alguns cuidados, eles estragam bem melhor: a dia. O sistema operacional antes co-
antes, devido a isso, evite desligar o com- piar os seus arquivos para o HD, efetua
putador pelo “botão”, faça todo processo a instalação do seu sistema de arquivos.
de desligamento correto, isso irá preservar Quando ele faz isso, um conjunto de se-
mais o disco. tores do HD são endereçados como uma
única unidade lógica, chamada Cluster.
Antes de se tornar utilizável o HD Um cluster é a menor parcela do HD, que
precisa ser segmentado, para que o siste- pode ser acessada pelo sistema operacional.
ma operacional consiga gravar os dados O tamanho de cada cluster varia de acor-
nele e montar seu sistema de arquivos. Os Cilindros são como “colunas” do com o sistema de arquivos escolhido.
Então é realizada a técnica de Formatação composta por vários setores, um abaixo do Usando FAT 16, cada cluster tem até 32
de Baixo Nível. A Formatação de Baixo outro. O HD grava em cilindros, distri- KB, usando FAT 32, cada cluster possui
Nível segmenta o HD em Pistas, Setores buindo as informações em todas as faces apenas 4 KB, assim como, usand NTFS
e Cilindros. de todos os discos, diminuindo o tempo cada cluster possui entre 512 bytes e 4 KB.
de acesso e leitura. Conforme a imagem
As Pistas são gravadas desde a peri- que segue na coluna ao lado: Na construção do Cluster temos um
feria do disco até o centro dele. Podemos grande problema: um arquivo grande é di-
pegar como analogia a gravação dos discos vidido e ocupa mais de um cluster, porém
de Vinil. Estas pistas possuem uma distân- um arquivo pequeno, ocupa um cluster
cia entre eles e seguem por todo o disco. inteiro e nenhum novo arquivo pode ser
Os HD’s gravam tanto na parte superior gravado nele, ou seja, se um cluster tem
quanto na inferior dos discos, e o braço 4 KB de tamanho e um arquivo de 1 KB
de gravação pode ler as 2 faces. é gravado nele, teremos o desperdício de
3 KB. Quanto menores forem os clusters,
SISTEMAS OPERACIONAIS 72
Síntese Final
SISTEMA DE
ARQUIVOS
Sempre, ao ouvir uma música, assistir a um vídeo
ou salvar um arquivo, você só está fazendo isso,
porque existe um sistema de arquivo gerenciando
tudo para você!
Nos últimos tempos, podemos dizer que até antigamente,
o uso de um computador consiste em recuperar e apresen-
tar informações armazenadas, como documentos, imagens,
músicas, vídeos, entre outros. Essa afirmativa é verídica e
não temos como negá-la. Cada vez mais temos unidades de
armazenamentos maiores e, nós, como usuários conseguimos
encher cada byte disponível com algum arquivo.
No entanto, não vamos falar que quivo que ele irá utilizar para armazenar época sabe a aflição que nos dava quando
somente os usuários se utilizam das uni- os arquivos do sistema, que servirão para faltava energia elétrica e o computador
dades de armazenamento. O próprio sis- inicializar o mesmo a cada vez que o com- desligava sozinho.
tema necessita armazenar seus arquivos de putador ou dispositivo for iniciado.
inicialização em algum local seguro, para Outra função importantíssima do
que possam ser carregados em memória O sistema de arquivo deve garantir sistema de arquivo é saber onde os arqui-
RAM durante o processo de start do sis- métodos para acesso aos arquivos arma- vos estão armazenados, de forma física
tema. No final, todos estamos reféns do zenados. Repare que sempre iremos falar no HD ou unidade de armazenamento.
armazenamento de dados. de arquivos, nunca dados ou informações, Afinal, do que nos serve os arquivos sal-
pois para o sistema operacional tudo é um vos se não conseguimos localizá-los? Os
Dessa maneira, nesse contexto, arquivo, quando for armazenado. sistemas de arquivos indexam todo con-
surgiu o Sistema de Arquivos, onde cada teúdo para poder acessá-los sempre que
sistema operacional possui sua lógica de Além disso, o sistema de arquivo necessário. Eles ainda precisam garantir
armazenamento, busca e gerenciamento deve garantir técnicas de integridade des- que os usuários possam criar, alterar e
da informação, dele próprio e do usuário. ses arquivos para que eles não sejam cor- excluir arquivos, assim como realizar sua
rompidos, tanto os de usuários como os de duplicação e transferência de dados entre
Os Sistema de Arquivos sistema. Isso me faz lembrar um sistema os mesmos, suportando também operações
operacional que corrompia os arquivos de backup e restore.
de inicialização com facilidade, e quando
Então, vamos começar a entender era iniciado, uma mensagem desagradável Outro ponto importante do sistema
essa última, porém não menos importante, aparecia, sugestionando que um determi- de arquivo é o compartilhamento desses
parte de funcionamento do sistema opera- nado arquivo estava faltando ou corrom- entre os usuários, sejam eles usuários de
cional. Vamos recapitular algo do capítulo pido e a inicialização seria suspensa. Os rede ou usuários locais dentro do sistema.
anterior. Estão lembrados da formação dos sistemas mais atuais já possuem grande Naturalmente, grandes desafios aparecem
cluster nos HD’s? Então, os sistemas de proteção de seus arquivos e são capazes nesse âmbito, pois o compartilhamento é
arquivos trabalham diretamente com os de recuperar arquivos preponderantes para fundamental para o bom funcionamento
clusters. Quando formatamos os HD’s, seu funcionamento, porém o índice desses do sistema, porém quando um arquivo é
estamos inserindo neles o sistema de ar- erros diminuiu muito. Só quem viveu essa compartilhado, a probabilidade dele ser
SISTEMAS OPERACIONAIS 76
corrompido, perdido ou danificado, au- Arquivo em um único diretório? Tente fazer esses
menta de forma exponencial. testes, verás que não é possível, pois para o
sistema o arquivo é único. Você pode salvar
Se estamos estudando um sistema de
Os sistemas de arquivos ainda de- arquivos com o mesmo nome, somente
arquivos, temos que entender o que é um
vem garantir segurança e auditoria de aces- se estiverem em diretórios diferentes. Às
arquivo. De forma teórica, os arquivos são
so aos arquivos. Eis o grande diferencial vezes, o sistema ainda não permite que 2
um conjunto de dados em um dispositivo
do Linux sobre o Windows, no que tange arquivos sejam carregados em memória
físico não-volátil e possui um nome. Para
segurança. Iremos estudar melhor isso com o mesmo nome, causando conflito.
ser mais simples, praticamente tudo que
mais adiante, agora nos basta saber que
está em um dispositivo de armazenamento
os sistemas de arquivos devem garantir a • Tipo: O tipo de arquivo indica
é um arquivo, até mesmo um diretório é
segurança de acesso aos arquivos. qual formato ele possui, ou seja, se ele é
um arquivo (veremos isso no Linux mais
um mp3 ou um jpeg ou até mesmo aquele
adiante). O arquivo é a unidade básica de
E claro, contribuindo para um dos seu controle financeiro em uma planilha
armazenamento de informação.
objetivos principais do sistema operacio- xls. Alguns sistemas operacionais usam
nal, assim, os sistemas de arquivos ofere- parte do nome do arquivo para identificar
Para diferenciar e classificar arqui-
cem uma interface amigável para o usuá- o conteúdo, na forma de uma extensão:
vos, os mesmos possuem alguns atributos
rio interagir com os arquivos, garantindo “.doc”, “.jpg”, “.mp3”, “.xls”, etc. O Linux
que variam de acordo com cada sistema
transparência e facilidade de utilização. não utiliza isso, ele trabalho diretamente
de arquivo ou sistema operacional, porém
com o conteúdo do arquivo.
os mais básicos são esses:
Em suma, podemos afirmar que os
sistemas de arquivos são responsáveis por • Tamanho: Todo arquivo possui
• Nome: Eu sei que parece meio es-
organizar os arquivos do sistema opera- indicação do seu tamanho. É importante
quisito falar que cada arquivo possui um
cional e do usuário, a fim de controlar, o usuário ter conhecimento do tamanho
nome, afinal estamos acostumados a dar
organizar e garantir a integridade e se- para melhor manipular o arquivo.
nome para cada arquivo, porém o nome
gurança dos mesmos.
é de suma importância, pois é ele que o
• Data: Para fins de auditoria e ge-
identifica. Já tentou salvar um arquivo sem
renciamento, manter as datas dos arquivos
nome, criar 2 arquivos com o mesmo nome
é importante.
SISTEMAS OPERACIONAIS 77
• Proprietário: Nos sistemas multiu- Operações • Abrir: Parece óbvio, mas antes que
suários é importante identificar o proprie- uma aplicação manipule os dados em um
tário do arquivo para que nenhum outro arquivo, ela solicita ao sistema operacional
Muito bem, agora temos os arqui-
usuário possa ter acesso ou gerenciar o a “abertura” dele. Primeiramente, o sistema
vos armazenados em nossas unidades de
arquivo de outro. Para construção de pri- irá verificar se o arquivo existe, analisar
armazenamento, porém os usuários não
vilégios de acesso, também é necessário quais são as permissões vinculadas ao ar-
deixam esses arquivos estáticos e mui-
a informação do proprietário do arquivo. quivo e se permitem a abertura do dele. E,
to menos o sistema. Algumas operações
por fim, o sistema localiza seu conteúdo
devem ser realizadas sobre eles. Afinal,
• Permissão de Acesso: As permis- no dispositivo de armazenamento.
de nada adianta termos arquivos que não
sões indicam quais usuários têm acesso
podem ser manipulados. Geralmente, as
àquele arquivo e quais as formas de acesso • Ler: Se o sistema consegue abrir o
operações são implementação através de
são permitidas (leitura, escrita, remoção). arquivo, então isso lhe permite transferir
chamadas de sistemas, ou seja, os usuários
os dados presentes no arquivo para uma
e os programas dependem da interação
• Localização: Pensem comigo, é área de memória, para que a aplicação
com o kernel, através das systems call,
mais fácil achar uma rua no GPS ou ficar possa acessar os dados.
para poder ter acesso aos arquivos.
dando voltas pela cidade até chegar nela?
A localização dos arquivos é importante • Escrever: Quando escrevermos em
As operações mais básicas que po-
para facilitar a gestão dele no sistema e é um arquivo, estamos atualizando o con-
dem ser realizadas são as seguintes:
um atributo importantíssimo. teúdo dele, ou seja, estramos transferindo
os dados da memória da aplicação para o
• Criar: De forma simplista, a cria-
Essencialmente, esses são os atri- arquivo no dispositivo de armazenamen-
ção de um arquivo implica em separar o
butos básicos dos arquivos. Quando estu- to, sendo que os novos dados podem ser
espaço para ele dentro do dispositivo de
darmos o Linux, vamos ver algumas delas adicionados ao final do arquivo ou sobres-
armazenamento, bem como definir seus
de gerenciamento do sistema de arquivos. crever dados já existentes.
atributos como nome, localização, proprie-
tário, permissões de acesso, entre outros;
• Alterar atributos: Podemos tam-
bém modificar atributos e outras caracte-
rísticas do arquivo, como nome, localiza-
SISTEMAS OPERACIONAIS 78
ção, proprietário, permissões, entre outros. kernel do sistema operacional, e nada mais. e manipular o conteúdo dele. Essa mesma
O sistema, normalmente, não interpreta lógica se aplica para todos os formatos que
• Fechar: Ao término do uso do ar- todo e qualquer tipo de arquivo, somente conhecemos, como jpeg, mp3, pdf, dwg,
quivo, a aplicação deve informar ao sistema os que são essenciais para o seu bom fun- entre tantos outros.
operacional que o mesmo não é mais ne- cionamento. Um sistema que só interpreta
cessário e, assim, liberar as estruturas de arquivos importantes para ele, não seria de Diretórios
gerenciamento dele na memória do Kernel. grande valor para nós, certo? Afinal, pre-
cisamos manipular uma variedade enorme
• Remover: Essa operação elimina o de arquivos. Estão lembrados de quando falei,
arquivo do dispositivo, descartando seus que para o sistema de arquivos quase tudo
dados, logo libera o espaço ocupado por Para abrir formatos desconhecidos, o é um arquivo? Pois bem, um diretório é
ele no dispositivo de armazenamento para sistema operacional depende de interpre- um arquivo. Isso mesmo que você leu, um
que um novo arquivo seja gravado. tadores ou software que o auxiliam nessa diretório é um arquivo.
tarefa. Muitos formatos são proprietários
e exclusivos de alguns fabricantes de sof- Vou tentar explicar um pouco me-
Formatos
tware, o que permite que sejam abertos lhor!
somente por programas e aplicativos de-
De forma essencial, todo o arquivo senvolvidos por eles mesmos. O sistema de arquivo só geren-
é apenas uma sequência de bytes que está cia arquivos, só que se todos os arquivos
estruturado de diversas formas, e com isso, Vamos exemplificar melhor: um dos ficassem soltos dentro das unidades de
consegue representar inúmeros tipos de formatos mais conhecimentos de docu- armazenamento, tudo seria muito mais
informações que está contido neles. Para mentos de texto é o criado pelo Microsoft complexo e desorganizado, gerando len-
o sistema operacional um arquivo equivale Word, o qual gera arquivos no formato tidão na procura de arquivos, perda de
a muitos dados sem sentido algum. .DOCX. Desse modo, o sistema opera- arquivos, entre outros tantos problemas.
cional por si só não consegue interpretar o
Alguns formatos básicos como ar- conteúdo do arquivo, logo, não consegue A parir disso, surgiu uma ideia, criar
quivos binários, bibliotecas e executáveis, abri-lo. Então, é preciso instalar o Mi- diretórios a fim de organizar os arquivos
conseguem ser interpretados pelo próprio crosoft Word para poder abrir o arquivo e poder trabalhar de forma mais precisa
SISTEMAS OPERACIONAIS 79
podemos nos deparar com uma situação com vários arquivos .DOCX neles. O pri- o arquivo, e os demais usuários poderão
em que dois usuários querem acessar o meiro usuário que abrir um dos arquivos usá-lo somente em modo de leitura. Essas
mesmo arquivo ao mesmo tempo. Esse irá ganhar o direito de acesso e edição, travas de acesso, propostas pelo sistema,
tipo de situação pode gerar um grande já o segundo usuário que abrir o mesmo podem ser obrigatórias (madatory locks)
problema, como corromper o arquivo ou arquivo, conseguirá o acesso apenas como ou recomendadas (advisory locks).
perder os dados que estão nele. “somente leitura”, justamente para proteger
a integridade do arquivo. Dessa maneira, temos uma solução
Usualmente, o acesso simultâneo de travas nos arquivos, mas nem sempre
a um arquivo somente para leitura dele, Travas em Arquivos e Semântica elas atendem nossas necessidades, então
não acarreta em problemas, ou seja, mais de Acesso temos algumas técnicas de semântica de
de um usuário ou processo podem acessar acesso para nos auxiliar e, assim, não per-
um arquivo ao mesmo tempo se eles vão dermos os arquivos. São elas:
somente “ler” o mesmo, sem alterar nada Acesso simultâneo é algo indesejá-
dentro dele. O grande problema aconte- vel, como já podemos perceber, pois pode • Semântica UNIX: Nessa técnica
ce quando esse acesso simultâneo entre corromper o arquivo, então algumas tra- toda alteração realizada em um arquivo é
os processos tem o objetivo de alterar os tativas de acesso devem ser realizadas, a imediatamente visível a todos os proces-
dados dentro do arquivo. fim de protegê-los. Como solução mais sos. Essa semântica é a mais comum em
simples e usada na maioria das vezes, te- sistemas de arquivos locais, ou seja, para
Esse acesso gera uma condição de mos a técnica de exclusão mútua. acesso aos arquivos nos dispositivos locais.
disputa entre os processos ou usuários para
ver quem terá acesso ao arquivo. Podemos A exclusão mútua é muito simples, • Semântica de sessão: Nessa ló-
chamar essas situações de race conditions, ela se denomina pelo fato de um arquivo, gica, cada processo usa um arquivo em
que podem levar à inconsistência dos dados que esteja alocado a um usuário ou a um uma sessão que tem início com a abertura
e outros problemas. processo, onde o sistema simplesmente do dele e que termina quando o mesmo
suspende qualquer outro que queira o mes- é fechado. As alterações realizadas em
Um exemplo muito claro disso é mo arquivo, até que ele esteja liberado e, um arquivo de uma sessão, estão somente
quando estamos com um compartilhamen- dessa forma, protegendo o mesmo. Quem visíveis depois que o processo fechar o
to no sistema operacional de um diretório, chegar antes, tem o direito de manipular arquivo. Assim, as sessões concorrentes
SISTEMAS OPERACIONAIS 81
de acesso a um arquivo compartilhado Basicamente, para controlar o acesso aos toda essa parte de permissão de acesso e
conseguem ver conteúdos diferentes para arquivos, vinculamos a eles o proprietário compartilhamento de arquivos.
o mesmo arquivo. A respectiva semântica do arquivo e também as permissões de
é normalmente aplicada aos sistemas de acesso de cada usuário ou grupo (leitura, Sistemas de Arquivos NTFS e EXT
arquivos de rede. escrita e execução) sobre ele.
• Semântica imutável: Nessa se- Em sistemas operacionais multiusu- Já entendemos quais as funções de
mântica, um arquivo pode ser comparti- ários, fica muito bem clara essa distinção um sistema de arquivos, agora vamos co-
lhado por vários processos, sendo marcado de acesso aos arquivos. Vamos utilizar o nhecer os sistemas de arquivos mais po-
como imutável, ou seja, seu conteúdo não exemplo clássico do Windows. Temos 2 pulares que temos.
pode ser alterado. Essa técnica é a forma usuários cadastrados no sistema, o usu-
mais simplista de conseguir a consistência sário1 e o usuário2. Todos os arquivos NTFS
do arquivo entre os processos que compar- criados pelo usuário1 estarão vinculados
tilham seu acesso e, em vista disso, é usada a ele como dono e terá permissões de con-
em sistemas de arquivos distribuídos. trole total sobre ele. Caso tentemos acessar O NTFS é um sistema de arquivos
os arquivos com o usuário2, irá aparecer desenvolvido pela Microsoft e utilizado em
uma mensagem de “acesso negado” e os grande escala em seus sistemas operacio-
Controle de Acesso
arquivos não irão abrir. Para que o usuário2 nais. O primeiro sistema a usar o NTFS
tenha acesso aos arquivos, é necessário foi o Windows NT, sistema operacional
Uma das principais funções do sis- que o usuário1 dê essa permissão para ele, para uso em servidores, sendo sua primeira
tema de arquivos é garantir a seguran- podendo escolher se irá somente permitir a versão de 1993.
ça de acesso aos que estão armazenados. leitura do arquivo ou se também irá liberar
Existem arquivos do próprio sistema que alterações de escrita nele. Na época do lançamento do Win-
só podem ser acessados por usuários au- dows NT, a Microsoft utilizava o sistema
torizados ou com privilégios de admi- Existem outras tantas permissões e de arquivos FAT. Esse sistema de arquivo
nistração do sistema, a fim de proteger formas de acesso, mas de forma simplória, funcionava bem em aplicações domésticas,
os arquivos preponderantes para o bom é mais ou menos assim que funciona. Mais mas possuía uma série de restrições como,
funcionamento do sistema operacional. adiante, no Linux, iremos estudar melhor baixa tolerância a falhas, inviabilidade de
SISTEMAS OPERACIONAIS 82
uso de permissões de arquivos e limitações mas há falhas onde não é possível efetuar Dentre as melhorias que o padrão
com volume de dados maiores (arquivos rollback, portanto, melhor não confiar EXT teve, até chegar no EXT4, podemos
acima de 4GB). 100% nestes mecanismos. ressaltar o aumento do file system. O pa-
drão EXT3 conseguia alocar uma partição
Com o crescimento da computação Outra característica de evolução do de no máximo 32 TB e manipular arquivos
doméstica surgiu a necessidade de arma- NTFS foi o aprimoramento das permis- de até 2 TB. Já, o EXT4 consegue alocar
zenar arquivos maiores, somadas às falhas sões de acesso aos arquivos, tornando-se para partições até 1EB (exabyte) e 16TB
do sistema de arquivos FAT, fizeram a muito mais seguro e estável com seus atri- para os arquivos.
Microsoft decidir a investir no NTFS butos de segurança.
como seu sistema de arquivo padrão nos Outro ponto importante é o maior
servidores e nos desktops. EXT número de subdiretórios possíveis. O pa-
drão tinha um limite de subdiretórios por
Uma das principais características pastas de 32000 pastas. Já no EXT4 não
do NTFS é que ele consegue recuperar Se no lado do Windows temos o sis- temos essa limitação, o número de sub-
arquivos em casos de falhas. Dessa for- tema de arquivos NTFS, no lado do Linux diretórios é ilimitado.
ma, o NTFS consegue reverter os dados temos o EXT. O padrão EXT foi criado
à condição anterior ao incidente. Pode- para o UNIX e como o Linux é baseado Assim como o padrão NTFS, o
mos comparar isso a um checkpoint que em Unix, acabou sendo a base de criação EXT4 também possui sua técnica de re-
existem nos jogos, onde nos casos em que dos sistemas operacionais do Linux. cuperação de arquivos. Ela é chamada de
o jogador “morre” ele não retorna até o Journaling e tem seu funcionamento pra-
início do jogo, mas volta um passo antes O primeiro EXT surgiu em 1992, ticamente igual ao do NTFS. A técnica
de “morrer”, assim os arquivos funcionam. sendo incorporado por Linus Torvalds de recuperação do NTFS também pode
O sistema guarda logs que permitem a ao Linux 0.96. Assim como o sistema de ser chamada de journaling, desse modo,
eles desfazer ações que comprometeram os arquivo da Microsoft foi evoluindo, o do essa melhora trouxe mais estabilidade para
arquivos, como o desligamento inesperado Linux também foi, passando pelo EXT2, o Linux.
do sistema em caso de falta de energia EXT3 e chegando ao atual EXT4, lançado
elétrica. Mas não se iludam, que o NTFS em 2006 e utilizado até os dias atuais.
não faz milagre, ele pode ser muito bom,
SISTEMAS OPERACIONAIS 83
O LINUX
O Windows não é o único sistema existente. Agora,
vamos entrar no submundo do Linux e descobrir o
quão fantástico ele é
Não sou um ativista do software livre, muito menos
um defensor de softwares proprietários, mas posso dizer que
tenho um carinho especial pelo Linux, porém consumo mui-
tas soluções de softwares proprietários. Digo isso, pois o meu
objetivo aqui não será falar mal do Windows ou falar que o
Linux é o melhor sistema de todos os tempos, mas sim poder
abrir as mentes de todos para novas tecnologias e como elas
podem nos ajudar em nosso dia a dia.
sabe o que é isso, peço que abra sua mente de sistemas operacionais. Enquanto era o sistema operacional deveria ser muito
para um novo mundo de possibilidades e lançado o MS-DOS, o vovô UNIX já enxuto e exponencialmente otimizado,
liberdade. Caso você já seja um ativista era maduro e usado em computadores de para que pudesse extrair o máximo de de-
de software livre, ajude-nos nos fóruns grande porte. Apenas um ponto de vista sempenho do computador. Diante dessas
de discussão, expondo suas experiências e meu: Bill Gates foi inteligente ao focar necessidades, o Unix surgiu e foi evoluindo
ensinando-nos, pois quero muito aprender em computadores pessoais e fez um bom ao longo do tempo. Mais um adendo meu
mais com vocês! trabalho de marketing. aqui: Os desenvolvedores da Microsoft
não pensaram muito em desempenho e
Sem mais delongas, podemos resu- O UNIX começou sua vida em otimização quando criaram o Windows
mir nesta introdução que o Linux é um 1969, em um computador que custava na Vista, correto?!
sistema operacional livre, gratuito e que se época US$ 72.000, chamado de PDP-7.
adapta a qualquer necessidade. Excelente Ele tinha incríveis 8 Kbytes de memória O Unix era um sistema “chato” sen-
para desenvolvedores, muito seguro para RAM e utilizava fitas magnéticas para do usado largamente para “coisas sérias”,
publicação de aplicações e mais perfor- armazenamento. O poder de processa- como aplicações militares, bancos e outras
mático para execução de banco de dados. mento dele era menor que uma agenda áreas onde não podem haver margem para
Então era isso, vamos conhecer mais deste eletrônica. Nessa época, gerenciamento falhas. A evolução do sistema o tornou
sistema operacional que encanta a tantos. de memória do sistema era algo crucial, muito robusto e estável, sendo utilizados
pois havia pouca memória física e os pro- até hoje em aplicações críticas e “sérias”.
História gramadores tinham que escrever códigos
dos sistemas capazes de liberar memória Por volta dos anos 1980, os compu-
após sua execução, caso contrário, tudo tadores pessoais eram vistos como equipa-
Nosso conhecido Bill Gates come- iria travar. Caro programador, pense que mento limitados e não conseguiam rodar
çou o domínio dos sistemas operacionais programar em Java pode ser difícil, mas um sistema Unix, por isso não houve in-
em 1981, com o lançamento do MS-DOS fazer as cosias funcionarem com 8 Kbytes vestimentos no desenvolvimento de Unix
para PC e foi evoluindo até chegar nas de RAM, é muito mais difícil. para desktops domésticos. Assim, com o
diversas versões do Windows, que até hoje tempo, a plataforma foi se definhando e
ocupa a maior fatia de mercado. Apesar Como podemos perceber, existiam o Windows tomando cada vez mais corpo
disso, a Microsoft é uma novata no ramo limitações enormes de hardware, então na computação pessoal.
SISTEMAS OPERACIONAIS 87
No entanto, em 1991, o visionário Juntamente como Linux, outros pro- o file system no HD e efetuar a cópia dos
Linus Torvalds começou a trabalhar em jetos puderam ser emplacados. Visto que, o arquivos.
um sistema Unix para rodar em seu com- sistema sozinho não é de grande valia para
putador pessoal, um 386. Na época, existia desktops, pois o kernel do sistema sozinho O Linux é um software livre, to-
um sistema chamado Minix, utilizado não faz nada, ele precisa de aplicativos talmente livre e de código aberto. Essa
no meio acadêmico, baseado em Unix. e softwares que rodem nele para que os característica é seu ponto forte, mas tam-
Torvalds utilizava-o para rodar editores, usuários possam realizar suas atividades. bém é o seu “calcanhar de Aquiles”. Com
compiladores e outras ferramentas de Dess3 modo, projetos como OpenOffice, o passar dos anos inúmeras distribuições
desenvolvimento para avançar o Kernel Gnome, Firefox, entre outros, ganharam do Linux surgiram, mas inúmeras mesmo.
do Linux. Quando o Minix não era mais corpo e foram sendo integrados ao Linux, Inicialmente, poderia colocar um número
necessário, ele começou a utilizar o seu permitindo uma experiência diferenciada estimado, mas esse número é controverso
próprio sistema Linux, ou seja, o Linux com o mesmo. e não preciso (o Google não me ajudou
passou a ser desenvolvido dentro do pró- muito nessa não). Como há muitas dis-
prio Linux. Outro marco na história do Linux tribuições, sendo extremamente comple-
até os dias atuais é o Knoppix e a pos- xo alguém manter aplicações que rodem
Assim, como todo bom nerd, o sibilidade de executar o sistema através em todas elas. Outra dificuldade é com o
hobby de Torvalds era programar. O Linux de um Live CD. Em 2002, a tecnolo- desenvolvimento de alguns drivers especí-
era um projeto pequeno, desenvolvido por gia do Knoppix permitiu rodar o sistema ficos, é muito mais simples um fabricante
um programador, porém ele colocou o sof- operacional através do CD-ROM, sem a desenvolver um drive para um número
tware sob a licença GPL, o que criou opor- necessidade do HD estar conectado. Hoje, limitado de sistemas e muito mais barato.
tunidade para que outros programadores praticamente todas versões do Linux per-
adotassem o projeto, podendo contribuir mitem que você execute o sistema através Algumas distribuições são conside-
com melhorias e correções. Isso permitiu de um pendrive bootável ou um Live CD. radas principais, por serem mais robustas
que vários esforços fossem canalizados Em vez do processo de o boot carregar o e possuírem uma comunidade mais ativa e
para desenvolver o Linux e evoluir ele até sistema do HD, ele busca no CD ou no até mesmo patrocinada. Podemos destacar,
o código que temos hoje, que permanece pendrive os arquivos de inicialização e como distribuições seminais, o Red Hat,
em constante evolução. carrega em memória RAM, o que per- Slackware, Debian, Ubuntu (baseado em
mite testar o sistema sem ter que instalar kernel Debian) e Suse. Desculpe se deixei
SISTEMAS OPERACIONAIS 88
alguma distribuição que você goste de O Linux é famoso pela sua versa- lização do Linux, ainda, praticamente,
fora, mas creio ser essas as mais “velhas” e
tilidade no modo CLI (command line todo o material está disponível de forma
que serviram de base para todas as outras. interface), sendo utilizado em sua grande gratuita.
Vamos dar uma olhada no Ubuntu durante maioria em servidores. A falta de ambien-
a nossa aula, pois creio ser muito didáticate gráfico talvez seja a experiência mais Então, vamos mergulhar um pouco
e de simples manuseio para iniciantes. disruptiva que um usuário que vem do mais na estrutura do sistema, entender
Windows sofra, porém nem tudo é feito como ele funciona e aprender a utilizar essa
Agora que conhecemos um pouco em linha de comando e existem ambientes ferramenta tão poderosa que é o Linux.
do sistema, vamos dar sequência e entender gráficos muito utilizados em desktops.
como ele funciona! Todo o usuário do Linux, mesmo os que
utilizam a versão Desktop, optam por rea-
Entendendo o sistema lizar várias tarefas no modo CLI, uma vez
que permite mais agilidade na execução
de várias tarefas.
Muito bem, caro aluno, a partir
desse momento, peço-lhe que abra a sua Como a principal ideia de um Cen-
mente para coisas novas! O Linux possuiu tro Universitário é quebrar paradigmas e
muitas características do sistema que o incentivar seu corpo acadêmico a novos
originou, o Unix. Assim, para quem vem desafios, vamos focar o estudo na ver-
do universo desenhado pela Microsoft, são mais básica do Linux, sem ambiente
o Linux parece algo exotérico, com sua gráfico, para abstrair conceitos e entender
organização de pasta, forma de instalação melhor a estrutura do sistema.
de programas e o uso de arquivos, mas
nem tudo é tão complicado assim, basta Um dos grandes diferenciais do
um pouco de tempo e um primeiro con- Linux é a quantidade de documentação
tato para você ver que o sistema é muito disponível na internet. Existe uma comu-
interessante e completo. nidade muito ativa que alimenta fóruns,
portais, blogs e sites especializados na uti-
SISTEMAS OPERACIONAIS 89
Estrutura do Sistema montagem “/”, o qual pode ser comparado como uma analogia
à partição “C” do Windows, porém, dentro dela a estrutura
de pastas é esotericamente diferente, mais ou menos como a
Dentro do seu Windows, acessando o menu Meu Compu-
seguinte imagem:
tador, você verá que há uma unidade de disco “C”, dentro dela
existem pastas como Arquivos de Programas (que armazenam
os arquivos dos programas instalados), há também uma pasta
chamada Usuários e dentro de cada usuário os arquivos perti-
nentes, incluindo Desktop, Documentos, Imagens entre outras.
Em suma, é uma partição chamada de “C”, onde ficam todos
os arquivos do sistema, mais ou menos como a imagem adiante:
Acessando o Linux em modo gráfico, essa mesma tela preta e cheia de carac- da estrutura através dele. Se entrarmos
teres é mais ou menos igual à próxima tela: dentro da pasta /boot do Linux, vamos
ver que ali dentro existe um arquivo cha-
mado vmlinuz.x.x.x.x.x e é esse arquivo
que contém o Kernel do sistema, que é
o primeiro a ser carregado em memória
RAM, na inicialização do computador.
incorporados ao kernel, assim todos os Os módulos estão ligados direta- arquivos dentro da pasta /home e nada
problemas seriam resolvidos, correto? Na mente ao kernel para a forma que foram mais. Você até pode salvar seus arquivos
vida nada é tão simples assim, não sendo desenvolvidos. Assim, caso um módulo de em outras pastas, alterar algumas permis-
diferente com o Linux. uma distribuição X de Linux seja levado sões de acessos, mas não é recomendado.
para uma distribuição Y, é muito provável Digamos que o Linux limita o acesso do
Caso vários drivers fossem retirados, que ele não irá funcionar, pois os inter- usuário comum aos seus diretórios e por
o kernel seria enxuto, mais performático e pretadores serão diferentes em seus modos isso que ele funciona tão bem.
estável, contudo, corria o risco de precisar de acesso ao hardware.
carregar algum componente de hardware Vamos, mais uma vez, falar algo
e o sistema não ser capaz de acessá-lo, Diretórios para que o conceito seja bem garavdo.
comprometendo seu funcionamento. Nesse Uma das primeiras coisas a se habituar
caso, não poderia ser grande demais e nem é que no Linux não existe unidades para
pequenos demais. O primeiro grande susto para quem partições diferentes como no Windows,
está chegando do mundo da Microsoft é onde aparece C:\ , D:\ e E:\ entre outras.
Dessa forma, os ativistas do Linux a estrutura de diretórios do Linux. No No Linux tudo faz parte do diretório raiz,
pensaram em uma solução, no ano de 1999, Windows temos a ideia de que existe uma representado por “/”.
e lançaram o kernel na versão 2.2, onde era pasta chamada Windows, que concentra
possível resolver esse problema. A técnica todos os arquivos do sistema e a pasta Ar- Vamos agora entender os diretórios
consiste em dividir os drivers em módulos quivos de Programas, a qual armazena os que ficam no “/” e para que cada um deles
externos ao kernel, mas que se comunicam arquivos dos softwares e aplicativos, ainda, serve. São esses:
com ele e ampliam os horizontes do Linux. você pode criar e organizar seus arquivos e
Até hoje, o Linux permanece com a mes- pastas da forma que quiser e onde quiser. • /BIN: Armazena os executáveis de
ma lógica de construção. A modulariza- alguns comandos básicos do sistema, como
ção permite uma versatilidade enorme do No Linux é exatamente a mesma o “su”, “tar”, “cat”, “rm”, “pwd”, etc. Esses
sistema e que pode se adaptar a qualquer coisa, só que tudo ao contrário, simples executáveis são básicos para administração
dispositivo. assim. O diretório raiz do sistema está do Linux. Manter eles em um diretório
tomado de pastas com arquivos do sistema separado, permite por exemplo, que fi-
e esse espera-se que você armazene seus quem acessíveis desde o início do boot do
SISTEMAS OPERACIONAIS 92
sistema, podendo ser utilizados mesmo praticamente todos os programas estão tório exótico. Você pode esquecer a função
antes de todo o sistema ser carregado. ali, o número de arquivos vai crescendo da metade dos diretórios do Linux que
conforme novos programas são instalados. nada irá mudar na sua vida, mas se esque-
• /SBIN: Essa diretório complemen- cer a função do DEV, garanto que irá pas-
ta o /BIN. Nele estão salvos os executáveis • /USR/lib: Esse também é um sar por dificuldades. Todos os arquivos que
dos comandos utilizados, exclusivamente diretório grande, que armazena muitos estão armazenados neste diretório, como o
pelo ROOT (mais adiante estudaremos o arquivos. As bibliotecas dos programas “/dev/sda”, “/dev/dsp”, “/dev/modem”, entre
ROOT). São comandos de administra- ficam armazenadas aqui, sendo muito se- outros, não são arquivos armazenados no
ção do sistema operacional que permitem melhantes as dll’s do Windows e de extre- HD literalmente, mas sim ponteiros para
criação de usuários e grupos, entre outras ma importância par o bom funcionamento dispositivos de hardware. É tão exótico,
funções. Perceba que no Linux todo “co- dos programas e do sistema. que se torna até complicado de explicar.
mando” é um executável. Vamos imaginar que somos programado-
• /BOOT: Nesse diretório o Ker- res e que nosso programa precisa acessar
• /USR: O mais interessante des- nel fica armazenado, como já vimos, mas a placa de som do computador. Então,
te diretório é que a maioria das pessoas também os arquivos de configuração do vamos passar os parâmetros do /dev/dsp
pronunciam “user” quando na verdade é gerenciador de boot ficam neste local. Se para ele e assim usarmos o hardware. Mas
apenas “USR”, sendo anagrama de Unix usarmos o Grub como gerenciador de boot, por que então é tão importante saber o seu
System Resources. Podemos dizer que na pasta /BOOT iremos encontrar seus funcionamento? Nele estão contidas todas
esse é um dos maiores diretórios do Linux arquivos de configuração salvos. Uma dica, as informações de hardware do computa-
no que tange número de arquivos. Estão evitem alterar os arquivos do gerenciador dor, assim podemos identificar problemas,
armazenados nesse diretório os executá- de boot, pois qualquer deslize de configu- mapear unidades de discos e criar pontos
veis e bibliotecas de todos os principais ração pode comprometer de forma séria a de montagem quando necessário.
programas instalados. inicialização do sistema e só irá gerar dor
de cabeça. • /ETC: Posso afirmar que esse sim
• /USR/BIN: Esse diretório arma- é um diretório que deve ser estudado e
zena os binários dos programas. Cerca • /DEV: Se achou uma loucura o aprendido do Linux. Não sendo exotérico,
de 2000 mil programas e atalhos são ar- Linux até aqui, então irá se surpreender nem complicado, mas de extrema impor-
mazenados nele e como os executáveis de com o diretório /DEV. Esse sim é um dire- tância para o sistema, ainda, dentro desse
SISTEMAS OPERACIONAIS 93
diretório estão os arquivos de configuração Dessa maneira, de forma rápida, O Windows possui o seu usuário de
do sistema. Toda e qualquer configuração busquei explanar um pouco sobre os di- administração máxima do sistema, que é
pode ser feita com os arquivos que estão retórios. Entendo que seja confuso, mas o Administrador (às vezes ele está ativo
dentro do /, etc. Nem sempre os arquivos para aprender, é preciso colocar a mão na e outras vezes não está ativo no sistema).
possuem um nome padrão entre as versões, massa. Eu demorei um tempo para com- O problema é que o Windows, devido à
mas todos estão dentro deste diretório. preender, porém depois tudo fica claro. sua arquitetura e sua forma de trabalhar,
Para colocarmos a configuração de IP no Não se assustem, experimentem e testem, permite explorar muitas vulnerabilidades
Linux o arquivo está localizado em /etc/ é muito legal. que podem deixá-lo inseguro e exposto à
network/interfaces. ameaças.
O famoso ROOT
• /MNT: Esse diretório recebe esse No Linux o usuário de administra-
nome, pois pode ser utilizado para efetuar ção é o Root. Diferentemente do Win-
os pontos de montagem do sistema. Anti- Quando pedimos para alguém o dows, o Linux é estruturado de tal forma
gamente, se colocávamos um CD dentro que elas sabem de Linux, posso afirmar que somente o usuário Root consegue al-
da unidade de CDROM nada acontecia no que 90% das respostas é que o sistema é terar configurações do sistema ou acessar
Linux. Para poder acessar o CD tínhamos seguro. Para muitos o Linux é sinônimo diretórios críticos do sistema, sendo muito
que montá-lo no sistema, e como era feito de segurança e elas estão certas. O Linux pouco provável que haja uma vulnerabili-
isso? Tínhamos que ir na pasta /DEV, lo- é muito seguro devido a sua estrutura de dade simples a ser explorada.
calizar dentro dela se existia o hardware do pastas e permissões de acesso.
CDROM e caso houvesse, era necessário Vamos entender um pouco melhor o
executar o comando “mount /dev/cdrom / Parte dessa segurança está vincula- Root. Cada arquivo e processo do Linux
mnt/cdrom”. Dessa forma, dentro da pasta da ao famoso ROOT. Todo sistema ba- possui um dono, ou seja, quem é o proprie-
/MNT iriamos ter uma pasta chamado seado em Unix possui um usuário com tário do arquivo determina quem pode ou
CDROM, que permitia acessar o dispo- acessos irrestritos a arquivos, diretórios não pode acessar ele. O dono do arquivo
sitivo. Atualmente, o Linux faz os pontos e processos. Sendo um usuário capaz de tem acesso irrestrito aos seus pertences, o
de montagem automáticos, porém, ainda deletar qualquer arquivo e alterar todas as que pode acontecer é que alguns arquivos
assim, os pontos de montagem são muito regras de permissões de acesso, esse cara podem estar bloqueados para alguns usu-
utilizados em servidores. é o ROOT. ários e abertos para outros.
SISTEMAS OPERACIONAIS 94
Para os processos e arquivos ligados aplicativos novos. Já ouviram falar que não Ainda temos algumas versões do
ao funcionamento do sistema operacional, existe vírus para Linux? A verdade é que Linux que possuem uma forma de eleva-
temos como dono o usuário Root, ou seja, para um vírus ser instalado no Linux você ção de privilégios para os usuários em vez
somente o root ou usuários com privilé- terá que efetuar o download dele, alterar de utilizar o usuário root. Como é o caso
gios de superusuário poderão acessá-los e as permissões de acesso do arquivo dando das versões que são baseadas em kernel
alterá-los. Em suma, o Root é o cara que a ele permissão de execução, dependendo Debian. Existe o comando “SUDO SU”
manda em tudo. do caso, talvez até compilar ele e acima de que eleva o usuário para privilégios de
tudo estar logado como root no sistema. root. Alguns defendem essa arquitetura
No entanto, como diria o “Tio Ben e outros creem ser uma falha de segu-
Parker”: “Com grandes poderes, vêm gran- Falar que não existe vírus para rança. Executando o comando “sudo su
des responsabilidades ”. Quanto utilizamos Linux é complicado, pois tudo em in- nome_do_usuário”, ele eleva o usuário
o usuário root para usar o sistema Linux, formática depende de tempo e dinheiro, para nível de root. O root vem desativado
temos que ter a consciência que tudo o que mas podemos afirmar que é muito mais por padrão nestas versões, mas é possível
pedirmos para ser feito, será! O sistema complicado infectar uma máquina com ativá-lo.
tem convicção que o usuário é inteligente e Linux, uma vez que nenhum software é
sabe o que está fazendo quando está logado instalado sem a permissão do root. Agora,
como root e toda e qualquer ação que esse se fosse baixar o arquivo, alterar as permis- Segurança no Linux
executar, será realizada. Quando estamos sões, compilar ele e executar como root,
utilizando o root devemos ter atenção re- não culpe o sistema, pois foi você que quis
Se tem algo que podemos tirar o
dobrada para cada comando executado, fazer isso e lembre-se, o Linux acha que
chapéu para o Linux é o fato da sua es-
pois podemos comprometer todo o sistema você é inteligente o suficiente para saber
trutura de pastas e permissões de acesso
operacional caso executemos algo errado. o que está fazendo.
que garantem segurança ao sistema. Se
você não tiver permissão de acesso a um
Um dos motivos da segurança ser Como boa prática, logamos no
arquivo, não irá acessá-lo, assim como,
atrelada ao Linux está também no con- Linux como root somente quando pre-
não existe “dar um jeitinho”, pois não irá
ceito do Root. Como dissemos, somente cisarmos, caso contrário, o melhor é usar
acessar mesmo.
ele possui licença para acessar conteúdos seu usuário pessoal para evitar qualquer
sensíveis do sistema e até mesmo instalar surpresa indesejada.
SISTEMAS OPERACIONAIS 95
O objetivo desta aula não é nos tornarmos experts em Linux, mas entender Mais adiante, aparecerão 3 blocos
um pouco da sua estrutura. Quem tiver interesse em entender melhor o sistema pode de 3 caracteres cada um. E é ali que a má-
surfar na internet entre inúmeros sites da comunidade Linux , pois conseguirá todo gica da permissão de acesso acontece. O
e qualquer apoio para esclarecer dúvidas e aprender um pouco mais! primeiro bloco de 3 caracteres representa
as permissões do dono do arquivo. O se-
Vamos ver como os arquivos aparecem no Linux. Executando o comando ls -la, gundo bloco de 3 caracteres representa a
o sistema nos retorna algumas informações importantes, veja a imagem: permissão de um grupo e o último bloco
a permissão para os outros usuários.
permissão de execução, ele não fará nada! Número Permissão o arquivo; que o grupo possa ler e escrever
Então, voltando à questão de segurança, o arquivo e os outros usuários apenas ler o
0 ---
mesmo que você baixe um arquivo mali- arquivo, como ficaria o comando? Ficaria
cioso, ele só afetará o sistema se você der 1 --x chmod 7 6 4 aula.txt.
a permissão de execução para ele, caso 2 -w-
contrário será apenas um arquivo solto 3 - wx Após a aplicação do comando o sis-
(diferente do Windows e sai executando 4 r-- tema irá mostrar a seguinte linha para
coisas mesmo sem você ter autorizado). 5 r–x aula.txt ao início do arquivo - rwxrw-r--
6 rw -
Desse modo, vamos supor que temos Algo muito importante que temos
7 rwx
um arquivo chamado AULA.TXT, cuja que ponderar é a utilização das permissões
permissão é R W - R - - - - -, podemos Quando queremos alterar a permis- 777. Muitos utilizam o comando CH-
afirmar que o arquivo dá permissão de são de um arquivo basta executarmos o MOD 777 para “agilizar” alguma con-
leitura e escrita para o dono do arquivo, comando CHMOD, juntamente com a figuração que estão fazendo no sistema,
permite que os usuários do grupo leiam o referência numérica para cada bloco de porém isso permite que qualquer usuário
arquivo e os demais usuários não possuem caracteres de permissão. Vamos usar o tenha acesso para ler, editar e executar
permissão para fazer nada no arquivo. mesmo exemplo dado. O arquivo AULA. aquele arquivo. Esse tipo de configuração
TXT com a permissão R W – R - -- - gera uma falha de segurança no sistema
Então, vocês se perguntam: “Mas -. Segmentando isso em 3 blocos, temos grave e não devemos utilizá-lo.
como vamos colocar as permissões nos RW- / R - - / - - -. Já, se olharmos na
arquivos pela linha de comando? “. Há tabela podemos observar que existe um Está certo, eu sei que parece um
algum tempo foi criado um método mui- número para cada combinação, assim, a bicho de 7 cabeças, mas como falei, en-
to interessante e prático para fazer isso. forma numérica para representar essa per- tender o Linux é uma questão de quebrar
O comando CHMOD nos auxilia nesta missão de acesso é 6 4 0. paradigmas. Não será nesta aula que va-
empreitada. Observe a tabela que segue: mos entender todo o sistema, mas é um
Para alterar a permissão de acesso começo para saber como ele funciona. Para
do arquivo de forma que o proprietário aprender Linux, somente “colocando a
tenha permissão de ler, escrever e executar mão na massa”.
SISTEMAS OPERACIONAIS 97
Síntese Final
REFERÊNCIAS
FLYNN, Ida M.; MCHOES, Ann Mclver. Introdução aos Sistemas Operacionais. São Paulo: Pioneira Thomson Learning, 2002.
MORIMOTO, Carlos E. Linux, Guia Prático. São Paulo: GDH Press e Sul Editores, 2009
OLIVEIRA, Rômulo Silva de; CARISSIMI, Alexandre da Silva; TOSCANI, Simão Sirineo. Sistemas Operacionais. 4ª. Ed. Porto Alegre:
Bookman, 2010.
TANENBAUM, Andrew S. Sistemas Operacionais Modernos. 2ª.Ed. São Paulo: Pearson, 2003.
TANENBAUM, Andrew S.; Woodhull, Albert. Sistemas Operacionais: Projeto e Implementação. 2ª. Ed. Porto Alegre: Bookman, 1999.