Você está na página 1de 100

SISTEMAS OPERACIONAIS

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

Por que usar Threads? 34 Discos Rígidos 70


Comunicação Entre Sistema de Arquivos 74 Desenvolvido pelo Núcleo de Educação a
Processos 36 Distância (NEAD)
Os Sistema de Arquivos 75 Designer Instrucional
A Comunicação 37 Sabrina Maciel
Arquivo 76 Diagramação, Ilustração e Alteração de Imagem
Regiões Críticas 38
Operações 77 Igor Zattera, Gabriel Olmiro de Castilhos
Deadlock 44 Revisora
Formatos 78 Ana Clara Garcia
O Deadlock 45
Diretórios 78
SISTEMAS OPERACIONAIS 3

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?

A resposta para todas essas perguntas é, “Sistemas


Operacionais”. Eles estão disseminados em muito mais
dispositivos que possamos imaginar. Ao término dessa
matéria, vocês irão estar com a mente mais aberta e en-
tender o motivo pelo qual os sistemas dominam o mundo.

Vamos “surfar” entre os seus gerenciamentos e


entender como tudo é processado e acessado. Ao final,
vocês saberão, não apenas como eles funcionam, mas
terão a capacidade de abstrair conceitos e aplicá-los em
seu dia a dia, afinal, de nada serve um conhecimento que
não pode ser aplicado!

Vamos lá então, bem-vindos ao mundo dos Sistemas


Operacionais!
SISTEMAS OPERACIONAIS 4

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?

A resposta para todas essas perguntas é, “Sistemas Ope-


racionais”. Eles estão disseminados em muito mais dispositivos
Vamos desvendar os mistérios dos Sistemas que possamos imaginar. Ao término dessa matéria, vocês irão
estar com a mente mais aberta e entender o motivo pelo qual
Operacionais, e você tirará suas próprias os sistemas dominam o mundo.
conclusões.
SISTEMAS OPERACIONAIS 5

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

• Características: A principal carac- • Aplicação: Comércio e ramo Cien- Quarta Geração


terística era o menor consumo de energia tífico
e tamanho.
• Descrição: As empresas que so- • Geração dos Microprocessadores
• Aplicação: Área científica, militar, breviviam do comércio começaram a dar
administrativa e gerencial. atenção aos computadores, que só eram • Características: Busca de proces-
usados para cálculos científicos e de en- sadores mais rápidos e miniaturização dos
• Descrição: Nesta geração surge o genharia. Logo, foi criada a Família de componentes
conceito de sistema operacional. Quando Computadores, que eram uma série de
o S.O. era único e vinculado a apenas um máquinas da mesma arquitetura, compar- • Aplicação: Uso Pessoal, Pequenas
computador, ou seja, cada sistema criado tilhando o mesmo conjunto de instruções, a Grandes Empresas
iria rodar somente em uma máquina X da tornando-se compatíveis e impulsionando
empresa Z, então, não era feito em grande o desenvolvimento de aplicações. Nessa • Descrição: Com a popularização
escala e sem grande suporte. O sistema mesma época, um grupo de Cientistas co- dos computadores e o advento de tecno-
era engessado. meçaram a desenvolver diversas ferramen- logias que proporcionaram sua miniatu-
tas importantes para a computação, dentre rização e baixa de preço, os computadores
Terceira Geração os cientistas os que mais se destacaram foi pessoais começam a ser cada vez mais bus-
Ken Thompson, que criou a Linguagem cados e surgiram os Sistemas Operacio-
B e Dennis Ritchie, que a partir da Lin- nais domésticos, com interfaces gráficas
• Geração dos Circuitos Integrados guagem B, criou a Linguagem C, revolu- e muito mais simples de serem utilizados.
– 1965 até 1975 cionando toda a computação (graças a ela, Devido às ideias do passado, hoje a in-
temos Java, PHP, C++, etc). Nesse tempo, formática é da forma que conhecemos e,
• Características: Computadores alguns dos cientistas que se destacaram graças a Jobs, Gates e Torvalds, chegamos
mais compactos e rápidos, sendo que foram Ken Thompson, já citado, por ter a evolução da computação pessoal e livre.
também consumiam menos energia e o criado a Linguagem B, e Dennis Ritchie
início de desenvolvimento de Sistemas que a partir dessa Linguagem (B), criou
Operacionais. a Linguagem C, revolucionando toda a
computação.
SISTEMAS OPERACIONAIS 8

Tipos de Sistemas Operacionais Sistemas Multitarefas hardware específico, consegue obter, de


forma exponencial, a melhora de perfor-
mance na execução de inúmeras tarefas.
Como dissemos no início, existem
Eles vieram para substituir os mo-
muitos tipos de sistemas operacionais. Va-
noprogramáveis, são mais complexos e Estrutura dos Sistemas
mos agrupar eles de acordo com algumas
eficientes. Nos sistemas multiprogramáveis Operacionais
características para facilitar o entendi-
podemos ter vários programas dividindo os
mento e o estudo deles, compreendendo Antes de começar a falar da estru-
mesmos recursos. As principais vantagens
suas aplicações. tura dos sistemas operacionais, vamos a
do uso de sistemas multiprogramáveis são
o aumento da produtividade e a redução uma revisão rápida do hardware. Essen-
Sistemas Monotarefa de custos, pois há o compartilhamento cialmente, o hardware é comporto por
dos diversos recursos do sistema. CPU, memória, controladores de mouse e
teclado, controlador de disco, controlador
Os sistemas monotarefas podem
Graças a invenção dos sistemas mul- de vídeo e controladores de I/O, em geral.
executar apenas uma tarefa por vez e nada
titarefas, podemos desfrutar de todo entre-
mais. Os gerenciamentos dele são mais O CPU é responsável pelo proces-
tenimento proposto em nossos computa-
simples e consomem menos recursos de samento dos processos que estão abertos
dores, videogames e dispositivos similares.
hardware, visto que apenas uma tarefa é no sistema. A memória RAM é respon-
executada de cada vez. O sistema mais sável por hospedar os processos que estão
famoso foi o MS-DOS. Sistemas de Multiprocessadores aguardando para serem processados e os
dados dos usuários que foram requisitados
O fato de executarem apenas uma Se os sistemas multitarefas já nos ao disco rígido.
tarefa por vez não quer dizer que são siste- proporcionam muito diversão e eficiência,
mas ruins. Podem ser aplicados em tarefas Os controladores de mouse e teclado
os que suportam mais de um processador
simples, que não venham demandar muita enviam interrupções para a CPU efetuar
nos proporcionam muito mais velocidade
capacidade de processamento, podendo alguma tratativa ou ação. Os controladores
para nossa diversão e trabalho. Um sistema
ser utilizado em hardwares mais simples de vídeos são responsáveis pelo interface-
operacional capaz de gerenciar mais de
e baratos. amento gráfico do computador, levando
uma unidade de processamento em um
a imagem para a tela do usuário. Os con-
SISTEMAS OPERACIONAIS 9

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

Modos de Acesso calls específicas, com privilégios em modo Arquitetura Monolítica


kernel. Basicamente, o modo usuário de
Como já percebemos, o sistema acesso consegue efetuar operações que
operacional tem que ser muito organi- não comprometem o sistema, já o modo A arquitetura monolítica é uma das
zado para conseguir gerir todos hardwa- kernel executa operações que impactam mais simples. Praticamente todo código de
re e garantir o seu bom funcionamento, no gerenciamento do sistema, como alo- desenvolvimento dessa estrutura é alocado
juntamente com aplicativos e programas cação de memória, alteração de ordem de em apenas um bloco de programação. O
que são executados com ele. Uma técnica escalonamento de processos entre outros. SO inteiro é executado como um único
muito importante utilizada nos sistemas programa no modo núcleo.
são os modos de acessos. Os modos de acesso contribuem
também para que nenhum processo aloque Neste tipo de arquitetura o sistema
Algumas instruções que podem os recursos de forma monopólica, impe- e as rotinas podem interagir livremente
comprometer o sistema não podem ser dindo o bom funcionamento do sistema. umas com as outras. É um sistema formado
acessadas por qualquer usuário ou progra- por vários procedimentos que são com-
ma. Com o objetivo de proteger a integri- Arquiteturas pilados separadamente e depois unidos,
dade do sistema, as instruções privilegiadas formando um único e grande programa
não podem ser acessadas por programa de executável.
usuários, sendo que somente as instruções Os sistemas operacionais não são
não privilegiadas estão disponíveis para os todos iguais. Cada um é desenvolvido de A grande vantagem dessa arquite-
programas de usuários. acordo com uma finalidade específica e tura é sua simplicidade para programação
possui uma arquitetura singular. Vamos e também o alto desempenho que elas
Essa divisão acontece com os modos estudar rapidamente algumas das arqui- possuem, uma vez que não são pedágios
de acesso ao sistema, sendo eles, o modo de teturas mais comuns. entre os recursos e tudo é acesso muito
acesso usuário e o modo de acesso kernel. mais rápido. Entretanto, toda vantagem
Instruções muito específicas do sistema possui sua desvantagem.
que podem comprometer o seu funcio-
A desvantagem principal da arqui-
namento, são executadas somente pelos
tetura monolítica é que os níveis de fun-
processos do próprio sistema, com system
SISTEMAS OPERACIONAIS 12

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?

Podemos afirmar que tudo dentro de um sistema opera-


cional pode ser resumido a processos. Definitivamente, toda
camada lógica do sistema é fundamentada em processos e
compreende seu funcionamento, permitindo-nos desenvolver
sistemas cada vez mais robustos e performáticos.

Nesta etapa, iremos compreender como o gerenciador


Nesta etapa, iremos compreender como o de processos de um sistema operacional trabalha e qual a sua
gerenciador de processos de um sistema importância para o bom funcionamento de todos os programas
e aplicativos utilizados nele.
operacional trabalha
SISTEMAS OPERACIONAIS 15

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

Portanto, temos a ilusão que tudo • Tratativas de DeadLocks; Criação de processos


está sendo executado ao mesmo tempo,
porém não está, tudo roda em um pseu- • Mecanismos de proteção e segurança.
doparalelismo, sendo executado um de Pois bem, os processos não apare-
cada vez. Você ainda está ouvindo a mú- Como vimos, existem vários pro- cem do “além”, todo processo deve ser
sica que pedi para ser executada? Então cessos executando, em um compasso fre- criado. O gerenciador de processos deve
você pode estar se perguntando: “Se cada nético, no sistema operacional. A difícil ter a capacidade de gerenciar isso de for-
processo é executado de forma individu- tarefa de gerenciar cada um deles faz com ma muito hábil. Como cita Tanenbaum
al, por que a música não picota ou perde que o gerenciador de processos se utilize (2005, pág. 54):
qualidade? ”, faço minhas as palavras do de algumas técnicas para organizá-los. Um
autor Tanenbaum, dentro de 1 segundo descritor de processo chamado de Process “Contudo, em sistemas de propósito
o processador consegue processar vários Control Block é utilizado para essa fina- geral, é necessário algum modo de criar
processos e muito rapidamente. A troca de lidade de gestão. e terminar processos durante a operação,
processos na CPU é tão rápida que para quando for preciso. ”
nós, seres humanos, é imperceptível essa Dessa maneira, o bloco de controle
troca, logo, a música parece estar sendo do processo armazena informações sobre Basicamente, contamos com 4 ações
executada ao mesmo tempo, junto com cada processo. Essas informações são uti- que geram a criação de processos nos sis-
os outros processos, quando na verdade lizadas pelo gerenciador para determinar temas operacionais:
não está! qual processo terá direito de uso da CPU,
além de sua prioridade de processamento. • Início do sistema;
O Gerenciamento de Processo tem Algumas informações adicionais e muito
• Execução de uma System Call de
como tarefas as seguintes ações, entre ou- importantes também estão descritas nele.
criação de processos por um processo em
tras, dentro do Sistema Operacional: Basicamente, o process control block ar-
execução;
mazena as informações dos processos e
• Escalonamento de processos; serve de referência para o gerenciador de • Uma requisição do usuário para criar
processos. um novo processo;
• Sincronização de processos;
• Início de um job em lote.
SISTEMAS OPERACIONAIS 17

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

Término de Processos executa o comando de compilação referen- o encerramento dele. No Windows, ao


ciando o arquivo codigo.py. O compilador forçarmos o encerramento de um processo,
(processo) vai buscar o arquivo codigo1. estamos criando um novo processo chama-
Todo processo tem o seu fim. Ne- py, porém esse arquivo não existe, então do taskkill.exe que irá “matar” o processo
nhum processo pode ser executado de for- ele irá reportar um erro e será encerrado. que está trancado. No Linux, utilizamos
ma infinita (teoricamente ele não pode), o processo kill para “matar” processos de
todos eles são criados e depois encerrados. • Saída por Erro Fatal: Ainda usan- forma abrupta.
De forma bem simples e prática, existem do o exemplo relatado anteriormente. Você
4 principais motivos para um processo ser executou o compilador e fez a referência Estado dos Processos
terminado: certa ao nome do arquivo do código fonte.
Então, o compilador irá começar a realizar
• Saída normal: Quando não acon- o trabalho de compilação, todavia, ao de- O gerenciador de processos é ex-
tece nenhum erro à vida de um processo senvolver o código você errou em algumas tremamente organizado, e para garantir
acabado, quando o mesmo terminou de linhas dentro dele, logo, o complicador que os mesmos sejam executados de forma
fazer o seu trabalho, simples assim. Ele não conseguirá terminar a compilação, ordeira, o sistema se organiza através de
tinha uma tarefa “X” para ser executada e em virtude do erro, e irá encerrar o pro- 3 estados para os processos, dando a eles
após terminar ela, o processo é encerrado, cesso. Erros fatais são erros associados a direito ou não de uso da CPU.
desocupando a área de memória e saindo equívocos de código dos programas, que
da fila de escalonamento; os impedem de serem executados de forma O primeiro estado é o de Em Execu-
íntegra. ção. O processo recebe esse status quando
• Saída por erro: Um processo é en- está em execução na CPU. Enquanto ele
cerrado de erro, quando é designado a ele • Cancelamento por um outro pro- estiver em execução na CPU o status dele
que realize uma tarefa e não pode reali- cesso: Um processo pode encerrar ou- no bloco de controle de processos estará
zá-la por falta de algum elemento, então tro processo. O exemplo mais clássico e como “Em Execução”.
ele é encerrado, por exemplo, se você é comum disso é quando precisamos en-
um programador e tem que complicar o cerrar um programa que não está mais O segundo estado é “Pronto”. Um
código fonte de um sistema. Você salvou respondendo e está travado. Ao abrir o processo está com o status de Pronto quan-
o arquivo com o nome codigo1.py, então gerenciador de processos, podemos forçar do ele está na fila de processos aguardando
SISTEMAS OPERACIONAIS 19

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

Tempo de processamento  Processo Tempo de Processamento Prioridade


P2 1 0
Agora que sabemos o turnaround de P3 3 4
cada um dos processos, podemos calcular P1 2 8
o turnaround médio do escalonador FIFO
P5 1 3
somando todos e dividindo pelo número
de processos que foram executados. P4 4 2

Então, com a lógica do SJF teremos a seguinte sequência de processamento:


Turnaround médio: (1 + 4 + 6 +7 + P2, P5, P1, P3 e P4. Repare nos processos P2 e P5, eles possuem tempo igual de
11)/5 = 5,8 processamento, nestes casos, o primeiro a chegar é processado. Seguindo a lógica do
escalonador, podemos representar graficamente o processamento desta forma:
Turnaround – escalonador SJF
P4 P4 P4 P4
P3 P3 P3
O escalonador SJF utiliza como cri-
P1 P1
tério de escalonamento a priorização de
processos com tempo de processamento P5
menor, sendo assim, os mais “curtos” são P2
processados primeiro.

Vamos utilizar o mesmo exemplo:

Imaginemos que 5 processos entram


no escalonador para serem executados. Os
processos P1, P2, P3, P4 e P5 na ordem
de chegada conforme segue a tabela:
SISTEMAS OPERACIONAIS 25

tTempo de processamento  Turnaround médio: (1 + 2 + 4 +7 +


11)/5 = 5

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

Chegamos ao final desse capítulo,


que no meu ponto de vista, é o principal
a ser lembrado e estudado, pois tudo den-
tro de um sistema operacional se resume
a processos. Conseguimos nesta etapa
compreender o que é um processo, como
o sistema trabalha com ele, bem como é
realizado o escalonamento deles, a fim de
compartilhar a CPU entre todos.

Aprendemos os principais algorit-


mos de escalonamento e sua aplicabilidade.
Não existe um escalonador melhor que o
outro, mas sim o que mais se adequa às
necessidades para o qual foram destinados.

Portanto, concluímos essa etapa,


tornando-nos mais aptos para, nos pró-
ximos capítulos, seguirmos desvendan-
do mais mistérios a respeito dos sistemas
operacionais.
EXERCÍCIOS
Considerando a seguinte tabela, responda às perguntas. Vamos
supor que existem 5 processos que chegam junto à CPU, nesta
ordem de chegada:
Processo Tempo de Processamento Prioridade
P1 2 0
P2 4 4
P3 3 2
P4 1 1
P5 2 5

1) Calcule o Turnaround médio do algoritmo FIFO.


2) Calcule o Turnaround médio do algoritmo SJF.
3) Calcule o Turnaround médio do algoritmo por Prioridade,
sendo 0 a prioridade menor.
4) Em qual dos algoritmos houve menor tempo de Turnaround
médio?
5) O processo P1, teve seu tempo de espera maior em qual dos
algoritmos de escalonamento?
6) O processo P5 foi executado antes, mas em qual dos
escalonadores?
SISTEMAS OPERACIONAIS 31

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

Os Threads Em hardwares que possuem apenas ram a incorporar mais de um núcleo de


um núcleo de processamento, as Threads processamento. Vocês lembram quando
O poder computacional vem evo- são executadas uma de cada vez, igual aosa Intel lançou o processador Dual Core?
luindo de forma extraordinária nos últi- processos; já em hardware, que possuem Primeiramente, apenas grandes servidores
mos 30 anos. A cada dia, novos hardwares mais de um núcleo de processamento, elas possuíam processadores assim, visto que
são desenvolvidos, tecnologias são imple- podem ser executadas de forma paralela. eram caros demais para nós, meros mor-
mentadas e cresce a necessidade por alta tais, porém como toda tecnologia, ela se
performance na execução de programas. Eis uma questão. Lembrem que es- tornou acessível para computadores pes-
As Threads surgem no cenário computa- tudamos a lógica de processamento? Fa- soais.
cional como ferramenta para maximizar lamos sobre pseudoparalelismo e também
o desempenho dos sistemas. que a CPU executa um processo de cada Desse modo, atualmente quase todo
vez? Então, como explicar que as Threads novo processador já possui mais de um
Então, os cientistas da computação podem ser executadas ao mesmo tempo? núcleo de processamento, fazendo com
descobriram uma forma de maximizar o Calma pessoal, isso está correto. que o tempo de execução dos processos
uso da CPU e otimizar o processamen- sejam otimizados e executados ao mesmo
to, a partir das Threads. Uma vez que os Não somente as Threads, mas tam- tempo. Temos realmente o paralelismo de
processos são complexos e muitas vezes bém os processos podem ser executados ao processamento. Então, você se pergunta,
necessitam efetuar várias tarefas, ainda mesmo tempo em arquiteturas que pos- “Qual a relação disso com os Threads? ”,
acessar vários recursos para concluir suas suem mais de um núcleo de processamen- eis o momento que toda mágica acontece.
tarefas. to. Vejam bem, somente em arquiteturas
que possuam mais que um núcleo de pro- Todo Thread se comporta igual a
Um processo pode se dividir em vá- cessamento. Mas onde podemos ver isso? um processo, logo, se temos mais de um
rias atividades, que podem ser executadas núcleo de processamento, podemos exe-
concorrencialmente. Essas tarefas são as Nos primórdios, cada processador cutar mais de um processo/Thread por
Threads, sendo compreendida como uma tinha apenas um núcleo de processamento, vez. Se o sistema consegue executar mais
divisão que permite otimizar o tempo de então os processos eram executados um coisas, ele ficará mais rápido. Em pro-
processamento e recursos utilizados pelos de cada vez. Mais tarde, com a evolução cessadores com quatro núcleos, temos 4
processos. da tecnologia, os processadores começa- tarefas sendo executadas ao mesmo tempo.
SISTEMAS OPERACIONAIS 33

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

Os Threads do sistema operacio- processamento, ainda mais se aplicado em Síntese Final


nal, do Kernel, são aquelas suportadas processadores com multithread.
diretamente pelo sistema operacional, e,
Chegamos ao final dessa etapa, um
portanto, são nativas deste sistema. Elas Para o sistema operacional, criar
pouco mais breve que as demais, mas de
são criadas diretamente pelo kernel e são uma Thread é muito mais rápido do que
muita importância para compreender o
de extrema importância para o sistema um processo, dessa forma, teremos oti-
funcionamento do sistema. Atualmente,
operacional. mização do tempo de processamento e
as Threads são largamente implementa-
execução do processo principal.
das, devido ao avanço da tecnologia na
Por que usar Threads? construção de hardwares mais robustos
Com as Threads também podemos
que suportam múltiplos núcleos de pro-
compartilhar recursos e dados entre elas,
Falamos bastante sobre threads, como afirma Tanembaum (2005, p.63) cessamento.
agora vamos entender as vantagens de
utilizar elas. Qual o objetivo de dividir “Só que agora, com os Threads, adi-
os processos em tarefas menores. cionamos um novo elemento: a capacidade
de entidades paralelas compartilharem
A principal razão para existirem é de um espaço de endereçamento e todos
que em muitas aplicações executam múlti- os seus dados entre elas mesmas. Isso é
plas atividades ao mesmo tempo, e decom- essencial para certas aplicações, nas quais
por em múltiplos Threads torna mais fácil múltiplos processos (com seus espaços de
o modelo de programação. O programador endereçamentos separados) não funcio-
pode otimizar o acesso aos recursos. Se narão.”
o processo é muito complexo, é compli-
cado conseguir uma boa performance de Em suma, a grande função das
processamento, tendo em vista todos os Threads é otimizar o processamento, ga-
acesso aos recursos que ele faz. Então, é rantindo maior performance.
bom para a prática segmentar os proces-
sos em tarefas menores para otimizar seu
EXERCÍCIOS
1) O que são Threads?
2) Quando podemos extrair o máximo que os Threads podem
nos oferecer?
3) Qual o principal ganho que temos ao utilizar Threads na
programação?
4) Por que não podemos afirmar que um núcleo com grande
capacidade de Threads é melhor que um que possuiu mais
núcleos de processamento?
5) Para rodar um banco de dados, é melhor um processador
com muitas Threads?
SISTEMAS OPERACIONAIS 36

COMUNICAÇÃO
ENTRE
PROCESSOS
A comunicação é algo de extrema importância em
nosso dia a dia. Mas afinal, que língua eles falam?

Havíamos estudado que tudo dentro do sistema ope-


racional é um processo, e não estávamos mentindo. Ainda
estamos falando sobre processos e agora falaremos de algo
muito importante, a comunicação entre os processos.

Dentro do sistema os processos são criados e destruídos


de forma frenética, e se eles não “conversarem” da forma cor-
reta, haverá grandes problemas no sistema. Posso até firmar
que muitas vezes eles entram em “discussão”, brigam e até
matam uns aos outros! Duvida?! Vamos conferir então!
Para os processos isso não é diferente, a
comunicação entre eles é de extrema importância.
SISTEMAS OPERACIONAIS 37

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.

A comunicação entre os processos


deve levar alguns critérios em considera-
ção. Muitas vezes um processo necessita
de informações que são repassadas de um
Normalmente, queremos descobrir se um processo específico está em execu-
outro processo para poder dar sequência a
ção, visto que, procurá-lo em uma lista enorme de processos dificulta muito! Então,
um processamento. Ficou confuso? Sim,
podemos concatenar 2 comandos, de forma que um segundo comando filtre melhor
eu sei que pareceu meio confuso, então
as informações. Usamos neste caso o GREP.
vamos exemplificar.

Vamos usar um exemplo do sistema


operacional Linux. Nunca ouviste falar
do Linux? Não se assuste, iremos tratar
Se utilizarmos o GREP sozinho, ele não fará nada, pois ele depende da saída
dele mais adiante. Algo que deve ficar
de um primeiro processo para que possa filtrar as informações. Se houver falha nessa
claro, é que todo comando executado em
comunicação o comando terá sua saída inconsistente.
um sistema é um processo, assim como
SISTEMAS OPERACIONAIS 38

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!

• Nenhum processo deve esperar Normalmente, os processos alocam


eternamente para entrar em sua região mais de um recurso, pois nós usuários exi-
crítica, ou seja, não podem haver processos gimos cada vez mais deles! Então, vamos
que aloquem de forma infinita os recursos supor que um processo A precise do re-
para sí. curso X e Y para ser executado. Logo, o
Basicamente, uma das formas mais processo A aloca o recurso X e Y para ele.
simples de fazer essa gestão é utilizando O processo B precisa dos recursos X e Z
uma lógica parecida com a de banheiros. para ser executado. Como o processo A
Você já viu na empresa que trabalha ou em já está com o recurso X alocado, o pro- Fonte: TANENBAUM, Andrew S. – Sistemas Operacionais moder-
nos, 2003
algum lugar público uma placa de “ocu- cesso B aloca o processo Z para ele. Já o
pado” ou “livre” na porta? processo C precisa somente do recurso Z
SISTEMAS OPERACIONAIS 41

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

Chegamos ao final de mais um ca-


pítulo, onde pudemos compreender um
pouco mais do funcionamento dos sistemas
operacionais. O compartilhamento de re-
cursos é o grande desafio imposto para os
sistemas. Cada vez mais novos processos
são criados dentro dos sistemas e há mais
aplicações sendo executadas ao mesmo
tempo, o que torna o compartilhamento
de recursos algo crítico ao sistema.

Portanto, compreender a forma com


que o sistema organiza esse compartilha-
mento nos permite melhorar as aplicações
desenvolvidas e otimizar os sistemas, a fim
de melhor nos atender com maior segu-
rança e escalabilidade.
EXERCÍCIOS
1) O que são regiões críticas?
2) Por que as regiões críticas são tão “críticas”?
3) Quais as 4 premissas que devem ser atendidas para uma boa
tratativas de acessos às regiões críticas?
4) Qual a lógica do algoritmo dos filósofos?
5) Qual o problema de termos clientes servidor nos modelos?
SISTEMAS OPERACIONAIS 44

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.

Nesta parte da aula, vamos entender o que são os De-


adlocks, o motivo de serem tão indesejáveis e também como
tratar deles.

Mas como ser o juiz dessa briga? Vamos ver!


SISTEMAS OPERACIONAIS 45

O Deadlock Suponhamos por exemplo: 2 pro- tipos de recursos: os recursos preemptíveis


cessos, em que cada um deseja gravar em e os não-preemptíveis.
CD um documento obtido de um scanner.
Como já vimos nos capítulos ante-
O processo A pede permissão para usar o Os recursos preemptíveis são aqueles
riores, o SO deve ser capaz de gerenciar
scanner e é concedido. O processo B que é que podem ser retirados do processo que
recursos. Alguns desses, ou praticamente
programado diferente, solicita primeiro a o detém, sem que haja prejuízos em sua
todos, que só podem ser acessados por
permissão para gravar o CD e também é execução. Um bom exemplo disso, é um
um processo de cada vez, e é ali que toda
autorizado. Então, o processo A pede para documento que está na fila de impressão
mágica do sistema operacional acontece.
usar o Scanner, porém é negado até que o e é cancelado. O máximo que irá aconte-
O SO garante o acesso limitado de tempo
processo B libere o gravador. Infelizmente, cer é o documento não ser impresso e ter
para cada processo, bem como esses re-
o processo B pede para usar o Scanner, só que ser enviado novamente para a fila de
cursos de forma exclusiva, para que nada
que é negado até que A libere o scanner. impressão. Retirar o documento da fila
de errado aconteça.
Percebam, nesse caso, um vai esperar de não ocasiona problema algum, apenas um
forma infinita o outro liberar o recurso. retrabalho, talvez.
Agora, vamos imaginar o que acon-
tece se um processo aloca um recurso para
E então, teremos algo que todos os Já os recursos não-preemptíveis são
ele, de forma exclusiva, e no meio do ca-
programadores de sistemas operacionais o oposto, como já era de se esperar. Caso
minho o mesmo precisa de um recurso
odeiam, o temido DEADLOCK! O termo eles sejam removidos dos processos que os
que já está alocado para outro processo,
Deadlock (bloqueio perpétuo) significa detém, algum problema sério ou irreversí-
que também alocou de forma exclusiva.
um evento que jamais irá ocorrer, vindo vel irá ocorrer. Um exemplo bom para isso
O primeiro processo fica esperando o
a travar o sistema. é um gravador de CD. Caso o recurso do
segundo processo para pegar o recurso,
gravador seja retirado do processo durante
porém o segundo processo não liberada o
Para reiterar, os recursos do compu- a gravação do CD, não terá como retomar
recurso, pois precisa justamente do recurso
tador são impressoras, unidades de fitas, à gravação e o CD não será gravado de
do primeiro processo. Isso entre em um
tabelas, endereço de memória, registrador, forma correta. Não há como reverter isso
looping infinito. Confuso, certo?! Vamos
ou seja, tudo “aquilo que pode ser usado” e o CD será perdido.
entender com um exemplo mais prático.
pelo sistema. Tantos recursos de hardware,
como recursos de softwares. Existem 2
SISTEMAS OPERACIONAIS 46

Em via de regra, os deadlocks acon- dição de ausência de preemptividade”.


tecem com recursos não-preemptíveis, po- É lógico, sem preempção nos recursos,
rém todos sabem que a informática é uma os processos podem alocá-los por tempo
ciência exotérica e coisas bizarras podem indeterminado. Se houver preempção de
acontecer. recursos, basta o SO retirar o processo
dele, logo não temos deadlock. Fonte: TANENBAUM, Andrew S. – Sistemas Operacionais moder-
nos, 2003
Para que aconteça um deadlock, são
necessários que 4 variáveis existam, caso • Forma-se uma cadeia circular de A representação da ocorrência de
contrário, não temos deadlock. São elas: processos onde cada processo solicita um DeadLock está no grafo a seguir, também
recurso alocado pelo próximo processo na exemplicado por Tanenbaum.
• Os processos exigem controle ex- cadeia, o que denominamos de “condição a
Requisita r
b
Requisita r
c
Requisita t
clusivo dos recursos que solicitam, o que de espera circula”. O exemplo do proces- Requisita s
Libera R
Requisita s
Libera R
Requisita r
Libera t
Libera s Libera s Libera r
denominamos de “condição de exclusão so do gravador de CD e do Scanner que 1. a Requisita r (a) (b) (c)

mútua”. Quando um processo “pega” um damos ao início do capítulo é um ótimo 2. b Requisita s A B C A B C A B C


recurso para si, ele aloca e não libera mais exemplo disso. 3. c Requisita t
4. a Requisita s
o recurso, excluindo os demais processos. 5. b Requisita t
R S T
(e)
R S T
(f )
R S T
(g)
Modelagem de Deadlock 6. c Requisita r

• Os processos mantém alocados Deadlock


(d) A B C A B C A B C
recursos enquanto solicitam novos recur- Para melhor entender como os dea-
sos, o que denominamos de “condição de dlocks funcionam, existe uma modelagem
R S T R S T R S T

espera por recursos”. Além do processo


(h) (i)

exposta por Tanenbaum. A representação


(j)

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.

Percebam que nem sempre tratar


deadlock é evitá-lo ou preveni-lo, às ve-
zes, os sistemas apenas aceitam que eles
Fonte: TANENBAUM, Andrew S. – Sistemas Operacionais modernos, 2003 podem ocorrer.

Tratativas para DeadLocks Algoritmo do Avestruz

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

O Algoritmo do banqueiro é um algoritmo de alocação de Síntese Final


recursos com prevenção de deadlock desenvolvido por Edsger
Dijkstra. Ele testa a segurança pela simulação da alocação do
Chegamos ao final de mais uma etapa e ainda estamos fa-
máximo pré-determinado possível de montantes de todos os
lando de processos, mas podem ficar tranquilos que de agora em
recursos, em seguida faz uma verificação de estados seguros
diante não iremos mais falar de processos de uma forma direta,
para testar a possibilidade de condições de deadlock para todas
agora vamos avançar para outras partes da arquitetura do sistema.
as outras atividades pendentes, antes de decidir se a alocação
deve prosseguir.
Portanto, compreender como os processos funcionam e quais
os problemas que podem ocorrer com eles, como o deadlock, irá
O algoritmo aloca recursos de forma racional, que possa
nos capacitar para que possamos desenvolver aplicações cada vez
atender a todos os processos que necessitam dos mesmos, de
mais estáveis e sem problemas. Em todos os fechamentos comen-
forma similar ao que o banqueiro faz e no final todos estão
tei em “desenvolver aplicações melhores”, esse assunto deve ser
contentes com seus recursos.
recorrente, pois o maior desafio mesmo é criar aplicações estáveis
no meio de um universo exotérico dos sistemas operacionais.
EXERCÍCIOS
1) Compartilhar recursos é o grande desafio do sistema
operacional. Muitos processos requisitam recursos, que muitas
vezes não estão livres para uso. No meio do compartilhamento
nos deparamos com alguns problemas como o Deadlock.
Explique o que é deadlock e o motivo pelo qual eles são tão
indesejados.
2) A preempção é uma característica de alguns tipos de
sistemas e muitas vezes é usada nos escalonadores de
processos. Esse conceito também é utilizado com recursos,
podendo ser eles preemptíveis ou não. Explique a diferença
entre recursos preemptíves e não-preemptíveis.
3) Os deadlocks não surgem do limbo. Para que exista deadlock
são necessárias 4 situações de forma simultânea. Dessa forma,
aponte quais são elas e explique.
4) Existem algumas técnicas para tratativas do deadlock a fim
de otimizar o uso do sistema operacional. Explique 2 técnicas de
detecção ou recuperação de deadlock.
5) Além das técnicas de detecção e recuperação de deadlock, o
sistema pode ainda aplicar técnicas de prevenção desse, que são
muito interessantes para o sistema. Aponte 2 dessas técnicas.
SISTEMAS OPERACIONAIS 52

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.

Vamos compreender como os sistemas modernos geren-


ciam as memórias e entender quais técnicas eram e ainda são
utilizadas para fazer a mágica de multiplicação de memória
Confie na importância da memória RAM ao estudar RAM!
este capítulo.
SISTEMAS OPERACIONAIS 53

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

Memória Cache Buffering A onda de streaming pela internet


também necessita de buffer. O Netflix,
Youtube, Spotify, entre outros, só fun-
Posso afirmar que sem o buffer nos-
A memória Cache é uma memó- cionam corretamente, porque existe um
sa vida não seria tão divertida como ela
ria volátil de alta velocidade. O tempo buffer de dados carregados previamente
é atualmente. A velocidade com que o
de acesso a um dado nela é muito menor e atualizado durante todo processo para
processador e a memória trabalham são
do que se o mesmo estivesse alocado na que não haja interrupções na exibição dos
muito mais rápidos do que a velocidade que
memória principal. vídeos e músicas.
os dispositivos periféricos trabalham. O
buffer surge para tentar minimizar a dis-
Toda vez que o processador faz re- Em suma, o buffer carrega informa-
paridade que existe entre os dispositivos.
ferência a um dado que está na memória ções antes de iniciar a execução. Podemos
principal, ele “procura” antes na memória utilizar o mesmo exemplo do pedreiro. O
O tempo de acesso que um HD
cache. Se ele encontrar o dado na memó- buffer dele é uma pilha de tijolos extras
possui é inferior ao tempo de acesso da
ria cache, não há necessidade do acesso à que o mesmo mantém antes de precisar
memória principal. Para os devotos aos
memória principal, deixando mais rápido comprar mais tijolos. Assim, até os tijolos
games, o buffer é o responsável pelas suas
o processo. novos chegarem, ele usa os tijolos extras.
horas de diversão sem os indesejáveis lags
que podem acontecer. O jeito frenético
Memória Secundária Como definição mais formal, vou
com que os jogos funcionam necessitam
invocar nosso amigo Tanenbaum (2010):
que as informações sejam armazenadas
em uma forma de buffer, a fim de otimi-
A memória secundária é um meio “O buffer deve possuir a capacidade
zar o processamento da CPU. Então, a
permanente, ou seja, não volátil, de ar- de armazenar diversos registros, de forma a
cada loading que ele realizada, acontece o
mazenamento de programas e dados. permitir que existam dados lidos no buffer,
chaveamento da memória, troca de infor-
Enquanto a memória RAM precisa estar mas ainda não processados (operações de
mações entre o HD e a RAM e também
energizada para manter as informações, leitura), ou processados, ainda não grava-
um certo buffer.
a memória secundária não precisa de ali- dos (operação de gravação). Dessa forma, o
mentação elétrica para manter seus dados dispositivo de entrada poderá ler diversos
armazenados por tempo indeterminado. registros antes que a CPU os processe, ou
SISTEMAS OPERACIONAIS 57

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 Fixas

A maneira mais simples de se tra-


balhar com sistemas de multiprograma-
ção, no que tange ao gerenciamento de
memória, é dividir o espaço de memória
em partições fixas de tamanhos variados.

Quando um novo processo chega


para ser alocado em memória RAM o
sistema procura a menor partição existente,
que seja suficiente para alocar o programa
dentro dela. Todavia, isso gera um grande
problema de desperdício de memória, pois
a partição de memória que foi alocada é
exclusiva do processo que a ganhou, e caso Fonte: TANENBAUM, Andrew S. – Sistemas Operacionais modernos, 2003
sobre memória livre ela será perdida.
SISTEMAS OPERACIONAIS 59

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:

Fonte: TANENBAUM, Andrew S. – Sistemas Operacionais modernos, 2003

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

MMU trabalha com a técnica de memória virtual.


A MMU trabalha com o conceito
de Páginas Virtuais. Cada página virtual
recebe um endereço que é apresentado ao
processador. Então a MMU faz a conver-
são desse endereço virtual para o endereço
físico correspondente a uma moldura de
página. Observe na figura anterior.
SISTEMAS OPERACIONAIS 62

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.

Nessa etapa, vamos entender quais as funções desses


dispositivos e sua importância na evolução dos sistemas opera-
cionais, assim, junto das facilidades que eles nos proporcionam.

Garanto que você também chegará a essa conclusão.


Aceita o desafio? Vamos lá!
SISTEMAS OPERACIONAIS 65

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

menor será a quantidade de espaço desper-


diçada no HD. A estratégia do tamanho
de cada cluster é restrita a cada lógica de
construção do sistema operacional.

Síntese Final

Ao finalizar esse módulo nos torna-


mos aptos a avançar para o próximo que
está, de certa forma, interligado a esse,
pois ele só existe em virtude da existirem
os dispositivos de entrada e saída. Assim,
conseguimos compreender o funciona-
mento dos periféricos que estão conecta-
dos ao computador e como o sistema deve
gerenciá-los.

Portanto, de posse desse conheci-


mento, conseguiremos resolver melhor os
problemas de interconexão entre disposi-
tivos e o sistema operacional.
EXERCÍCIOS
1) Compreender o funcionamento do hardware é importante
para desenvolver sistemas cada vez estáveis e performáticos.
Explique para que servem os chipsets e os barramentos.
2) Interligar os dispositivos de entrada e saída da placa mãe,
é uma tarefa desenvolvida pelos módulos de entrada e saída.
Quando surgiram não havia um padrão e cada fabricantes tinha
seu próprio modelo. Dessa maneira, quais as vantagens que a
padronização desses módulos trouxeram para os sistemas?
3) Cada vez mais os processadores tornam-se mais rápidos
e o tempo de acesso aos dispositivos deve ser muito menor.
Explique qual a técnica/hardware utilizado para acelerar
o acesso às informações dos dispositivos em tempo de
processamento.
4) O HD, quando criado, não possui nada, sendo necessário que
sejam criados setores, trilhas e cilindros. Explique qual é a
técnica utilizada para preparar o HD com essas divisões.
5) Um cluster é uma conjunto de setores. Quando utilizamos
clusters temos um grande problema. Explique qual é esse
problema e por que o mesmo é um desafio para os sistemas
operacionais.
SISTEMAS OPERACIONAIS 74

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.

Arquivos, como nós geramos arquivos. Alguns são mais


organizados e dividem tudo dentro de diretórios, por tipo,
data, tamanho, qualidade entre outras características. Mas
também existem, assim como eu, as pessoas que salvam todos
seus arquivos soltos e perdidos em uma pasta ou até mesmo
no Desktop de seus computadores. Então, cabe ao sistema
Preste atenção para aprender tudo de Sistema de conseguir gerenciar todos os arquivos, armazenando eles de
forma íntegra e indexável.
Arquivos neste capítulo!
SISTEMAS OPERACIONAIS 75

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

com as permissões de acessos e proteção de


alguns dados. Os diretórios são arquivos
que contém uma lista de outros arquivos e
também de diretórios, funcionando mais
ou menos, ao meu ponto de vista, como
um índice, onde ficam armazenadas as
coordenadas para chegar até os arquivos.

Os diretórios são manipulados de


uma forma muito similar aos arquivos, ten-
do os mesmos atributos e operações, com a
diferença que algumas operações, quando
aplicadas no diretório, vão ser replicadas
de forma hierárquica para todos os arqui-
vos e subdiretórios que estão abaixo dele.
Por exemplo, se tivermos um diretório
chamado Música e ali tivermos “dentro”
dele um CD completo da Elba Ramalho,
todos os arquivos estão vinculados com
a pasta raiz, Música, e caso deletemos o
diretório Música, todos os arquivos ligados
a ele serão também removidos.

Para termos uma ideia de como está Compartilhamento de Arquivos


estruturada a hierarquia de pastas, abra
o prompt de comando do DOS (CMD), Um grande desafio do sistema de arquivos é gerenciar o compartilhamento dos
em seu computador, e digite o comando arquivos do sistema entre os usuários e processos. É muito comum que mais de um
TREE, o resultado será algo assim: usuário tenha permissão de acesso a um arquivo. Logo, em um sistema operacional
SISTEMAS OPERACIONAIS 80

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

MBR Quando instalamos o sistema ope- Síntese Final


racional no HD precisamos efetuar a ins-
Muito bem, já entendemos como o talação de algo mais importante, o Ge-
Finalizando essa etapa, já encer-
sistema de arquivos funciona e já conhece- renciador de Boot (Boot Manager). Ele é
ramos essa descoberta inicial de como
mos os mais populares, então, agora temos responsável por carregar os arquivos do
os sistemas funcionam. Neste capítulo,
que aprender mais uma coisa que deixamos sistema durante o processo de boot, o mes-
conseguimos compreender como o siste-
para o final. Vamos fazer uma ligação mo se encontra dentro da MBR instalado.
ma operacional armazena seus arquivos e
entre os dispositivos de entrada e saída como ele garante a integridade dos mes-
e o sistema de arquivos neste momento. Os gerenciadores de boot mais po-
mos, gerenciando também o controle de
pulares são do NTLDR e o BOOTMGR
acesso e segurança dos mesmos.
Já vimos como o HD funciona com utilizados pela Microsoft. Pelo lado do
trilhas, setores e cilindros e que para que Linux temos como mais populares o LILO
Portanto, de posse de todo esse co-
o sistema operacional possa ser carrega- e o GRUB.
nhecimento, vamos dar sequência e entrar
do em memória RAM os seus arquivos no submundo do Linux, em um mergulho
devem estar armazenados no HD, sendo Cabe ponderarmos que se a MBR
raso, o qual nos capacitará para irmos mais
necessário o sistema de arquivo “instala- for corrompida o sistema operacional não
fundo!
do” para organizar os arquivos e garantir irá mais iniciar, pois sem ela o processo de
a eles integridade. boot não sabe onde os arquivos do sistema
estão localizados, a fim de carregá-los em
No HD existe uma trilha chamada memória. Caso ocorra a perda da MBR,
de Trilha Zero ou MBR (Master Boot basta reinstalá-la, não sendo necessário
Recorder). A MBR possui 512 bytes de reinserir todo o sistema operacional.
tamanho e nela estão armazenadas as in-
formações sobre os sistemas operacionais
instalados e onde os arquivos de iniciali-
zação estão salvos (o endereço deles) para
que o sistema possa ser carregado de forma
organizada.
Exercícios
1) Para que seja possível utilizar o HD para salvar arquivos
é necessário que um sistema de arquivo esteja “instalado”
nele. Dessa forma, quais as principais funções do sistema de
arquivos?
2) Para organizar melhor o sistema operacional ele dividiu
os dados em arquivos e diretórios, porém, para ele tudo é a
“mesma coisa”. A partir disso, por que um diretório é “a mesma
coisa” que um arquivo?
3) Proteção de dados é com toda certeza uma função primordial
de um sistema de arquivos e, para isso, foi desenvolvido a
técnica de journaling. O que é journaling e por que ele é tão
importante?
4) Para que o computador saiba onde estão os arquivos de
inicialização ele precisa de um “GPS” que indique para onde
estão os arquivos, por isso existe a MBR. O que e onde fica
gravada a MBR?
5) O sistema operacional não consegue abrir qualquer tipo de
arquivo. Para as extensões desconhecidas, como ele abre os
arquivos?
SISTEMAS OPERACIONAIS 85

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.

Durante minha trajetória pessoal, profissional e docente


na área da tecnologia, pude permear variados mundos e trocar
muitas experiências com amigos, colegas e principalmente
alunos. Dou início a esse capítulo com uma conclusão: conclui
que não existe sistema melhor ou pior, pois toda tecnologia
quando bem empregada cumpre o seu papel.

Nós, quanto profissionais de tecnologia, temos a obri-


gação de conhecer todas as ferramentas que estão a nossa dis-
Abra sua mente e prepare-se para aprender o que posição, para que dessa forma possamos criar softwares cada
vez melhores, mais robustos, escalonáveis e acima de tudo,
é o Linux! adaptáveis. Então, se você nunca instalou o Linux ou nem
SISTEMAS OPERACIONAIS 86

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:

Posso pensar que após visualizar essa imagem, você deve


ter feito pelo menos 5 minutos de silêncio, ou travado, pensando:
“Que raio de tela preta com coisas escrita é essa? “, mas não se
desespere, no final tudo acabará bem.

Dessa maneira, temos a primeira quebra de paradigma.


No Linux não teremos uma partição “C”, mas sim um ponto de
SISTEMAS OPERACIONAIS 90

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.

Nos primórdios do Linux, todos os


drivers e outros componentes do sistema
eram compilados junto com o kernel. No
começo não se tinham grandes problemas
quanto a isso, pois não haviam tantos fa-
bricantes, os módulos eram pequenos e
tudo estava bem.

Entretanto, como sabemos, a tec-


nologia evolui de forma frenética e cada
O grande desafio que os primeiros passos no Linux nos propõe é conseguir vez mais novos dispositivos foram sur-
abstrair a tela gráfica, através da visualização do modo texto. Entendo, que essa di- gindo, mais drivers sendo desenvolvidos
nâmica é algo que leva tempo para se conseguir absorver, então vamos dar sequência e mais códigos devendo ser integrados
na aula, pois aos poucos ela irá ficar cada vez mais clara para nós. ao kernel. Então, começaram a existir 2
problemas: o primeiro era que se todos os
Kernel drivers fossem incorporados ao kernel ele
iria ficar gigantesco, pesado e complexo,
o que inviabilizaria uma utilização mais
A principal parte do sistema operacional é o Kernel. Nada funciona se o Ker- limpa e estável, para o qual a solução se-
nel não existir ou se ele estiver com problemas, por isso, vamos começar o estudo ria escolher quais drivers poderiam ser
SISTEMAS OPERACIONAIS 91

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.

Então, temos algo assim:

Vamos desmembrar: a primeira coluna pode aparecer com com 3 símbolos,


também pode aparecer com o “d”. Assim, sempre que tiver a letra “d” no início da Cada uma das letras representam
linha, significa que é um diretório. Consequentemente, observe o diretório CACHE, uma ação. A letra “r” representa READ,
ele está com a leta “d” no início. ou seja, permissão para ler o arquivo. Dá
direito de abrir o arquivo e ver seu conte-
O segundo símbolo pode ser um “-“, o qual significa ser um arquivo, então údo. A letra “w” representa WRITER, ou
sempre que aparecer “-“ saiba que é um arquivo. seja, permissão para escrever no arquivo e
editar ele. E a letra “x” representa EXE-
O terceiro símbolo é o “l”. Para indicar que é um atalho o Linux insere um CUÇÃO, ou seja, permite que o arquivo
“l” no início da linha, logo, sempre que houver um “-“, lembre-se que é um atalho. possa ser executado. A permissão de exe-
cução é muito legal dentro do Linux, pois
se você criar algum script e não der a ele
SISTEMAS OPERACIONAIS 96

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

Muito bem, estimado aluno, che-


gamos ao fim do módulo teórico sobre
Linux. O objetivo deste capítulo foi mos-
trar um pouco do universo Linux para
você. Eu sei que pareceu meio confuso
tudo o que abordamos, por isso peço aten-
ção e foco no material de apoio e nas vi-
deoaulas, onde iremos aprender a instalar
o sistema e colocar a mão na massa para
abstrair os conceitos, aplicando na prática
os ensinamentos que tivemos não somen-
te neste módulo, mas tudo o que vimos
durante o semestre.

O Linux possui uma vasta docu-


mentação na internet, a qual aborda cada
tópico que estudamos de forma excelente.
Portanto, os desafios do Linux apenas co-
meçaram e foram evidenciados para você.
Aceite o desafio de aprender um novo
sistema e abra sua mente para coisas novas.
Exercícios arquivo chamado teste.txt com níveis de permissão 774. Qual é o
nível de permissão dele?
1 - O sistema operacional Linux usa o comando chmod
para configurar as permissões de uso dos seus arquivos e 5 – Informe qual seria o parâmetro do comando CHMOD para
diretórios. Como exemplo, em um arquivo de nome concurso. termos as seguintes saída:
txt, inicialmente com as permissões rwxrwxrwx, após ser usado
a) – rwxrwxr- -
o comando chmod 557, quais serão as novas permissões do
arquivo? b) – rw - - - - r - -
2 - As permissões de acesso protegem o sistema de arquivos c) – rwx- - -rw –
do Linux do acesso indevido de pessoas ou programas não d) –r- - rwxrw –
autorizados. A sequência correta para proteger arquivos e
diretórios é: 6 – Explique qual o motivo de o comando CHMOD 777 ser
evitado ao máximo?W
a) leitura, escrita e execução (r,w,x).
b) execução, leitura e escrita (x,r,w).
c) escrita, execução e leitura (w,x,r).
3 – Escreva os níveis de permissão dos seguintes comandos de
chmod:
a) Chmod 576 aula.txt:
b) Chmod 607 aula.txt
c) Chmod 352 aula.txt
4 – Ao digitar o comando ls –la na pata /home, foi localizado um
SISTEMAS OPERACIONAIS 99

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.

Você também pode gostar