Buscar

sistema-operacional_compressed

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 121 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 121 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 121 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

SISTEMA OPERACIONAL
Professor Me. Victor Andrei da Silva
Reitor
Márcio Mesquita Serva
Vice-reitora
Profª. Regina Lúcia Ottaiano Losasso Serva
Pró-Reitor Acadêmico
Prof. José Roberto Marques de Castro
Pró-reitora de Pesquisa, Pós-graduação e Ação 
Comunitária
Profª. Drª. Fernanda Mesquita Serva
Pró-reitor Administrativo
Marco Antonio Teixeira
Direção do Núcleo de Educação a Distância
Paulo Pardo
Edição de Arte, Diagramação, Design Gráfico
B42 Design
*Todos os gráficos, tabelas e esquemas são creditados à autoria, salvo quando indicada a referência. Informamos 
que é de inteira responsabilidade da autoria a emissão de conceitos.
Nenhuma parte desta publicação poderá ser reproduzida por qualquer meio ou forma sem autorização. A 
violação dos direitos autorais é crime estabelecido pela Lei n.º 9.610/98 e punido pelo artigo 184 do Código Penal.
Universidade de Marília 
Avenida Hygino Muzzy Filho, 1001 
CEP 17.525–902- Marília-SP
Imagens, ícones e capa: ©envato, ©pexels, ©pixabay, ©Twenty20 e ©wikimedia
F385m sobrenome, nome
nome livro / nome autor. nome /coordenador (coord.) - Marília: 
Unimar, 2021.
PDF (00p.) : il. color.
ISBN xxxxxxxxxxxxx
1. tag 2. tag 3. tag 4. tag – Graduação I. Título.
CDD – 00000
BOAS-VINDAS
Ao iniciar a leitura deste material, que é parte do apoio pedagógico dos 
nossos queridos discentes, convido o leitor a conhecer a UNIMAR – 
Universidade de Marília.
Na UNIMAR, a educação sempre foi sinônimo de transformação, e não 
conseguimos enxergar um melhor caminho senão por meio de um ensino 
superior bem feito. 
A história da UNIMAR, iniciada há mais de 60 anos, foi construída com base 
na excelência do ensino superior para transformar vidas, com a missão 
de formar profissionais éticos e competentes, inseridos na comunidade, 
capazes de constituir o conhecimento e promover a cultura e o intercâmbio, 
a fim de desenvolver a consciência coletiva na busca contínua da valorização 
e da solidariedade humanas.
A história da UNIMAR é bela e de sucesso, e já projeta para o futuro novos 
sonhos, conquistas e desafios.
A beleza e o sucesso, porém, não vêm somente do seu campus de mais de 
350 alqueires e de suas construções funcionais e conectadas; vêm também 
do seu corpo docente altamente qualificado e dos seus egressos: mais 
de 100 mil pessoas, espalhados por todo o Brasil e o mundo, que tiveram 
suas vidas impactadas e transformadas pelo ensino superior da UNIMAR.
Assim, é com orgulho que apresentamos a Educação a Distância da UNIMAR 
com o mesmo propósito: promover transformação de forma democrática 
e acessível em todos os cantos do nosso país. Se há alguma expectativa 
de progresso e mudança de realidade do nosso povo, essa expectativa 
está ligada de forma indissociável à educação.
Nós nos comprometemos com essa educação transformadora, 
investimos nela, trabalhamos noite e dia para que ela seja 
ofertada e esteja acessível a todos. 
Muito obrigado por confiar uma parte importante do seu 
futuro a nós, à UNIMAR e, tenha a certeza de que seremos 
parceiros neste momento e não mediremos esforços para 
o seu sucesso!
Não vamos parar, vamos continuar com investimentos 
importantes na educação superior, sonhando sempre. 
Afinal, não é possível nunca parar de sonhar! 
Bons estudos!
Dr. Márcio Mesquita Serva
Reitor da UNIMAR
Que alegria poder fazer parte deste momento tão especial da sua vida! 
Sempre trabalhei com jovens e sei o quanto estar matriculado 
em um curso de ensino superior em uma Universidade de 
excelência deve ser valorizado. Por isso, aproveite cada 
minuto do seu tempo aqui na UNIMAR, vivenciando o ensino, 
a pesquisa e a extensão universitária. 
Fique atento aos comunicados institucionais, aproveite as 
oportunidades, faça amizades e viva as experiências que 
somente um ensino superior consegue proporcionar.
Acompanhe a UNIMAR pelas redes sociais, visite a sede 
do campus universitário localizado na cidade de Marília, 
navegue pelo nosso site unimar.br, comente no nosso blog 
e compartilhe suas experiências. Viva a UNIMAR!
Muito obrigada por escolher esta Universidade para a 
realização do seu sonho profissional. Seguiremos, 
juntos, com nossa missão e com nossos valores, 
sempre com muita dedicação. 
Bem-vindo(a) à Família UNIMAR.
Educar para transformar: esse é o foco da Universidade de Marília no seu 
projeto de Educação a Distância. Como dizia um grande educador, são 
as pessoas que transformam o mundo, e elas só o transformam 
se estiverem capacitadas para isso.
Esse é o nosso propósito: contribuir para sua transformação 
pessoal, oferecendo um ensino de qualidade, interativo, 
inovador, e buscando nos superar a cada dia para que você 
tenha a melhor experiência educacional. E, mais do que isso, 
que você possa desenvolver as competências e habilidades 
necessárias não somente para o seu futuro, mas para o seu 
presente, neste momento mágico em que vivemos.
A UNIMAR será sua parceira em todos os momentos de 
sua educação superior. Conte conosco! Estamos aqui para 
apoiá-lo! Sabemos que você é o principal responsável pelo 
seu crescimento pessoal e profissional, mas agora você 
tem a gente para seguir junto com você. 
Sucesso sempre!
Profa. Fernanda 
Mesquita Serva
Pró-reitora de Pesquisa, 
Pós-graduação e Ação 
Comunitária da UNIMAR
Prof. Me. Paulo Pardo
Coordenador do Núcleo 
EAD da UNIMAR
007 Aula 01:
018 Aula 02:
026 Aula 03:
034 Aula 04:
042 Aula 05:
049 Aula 06:
054 Aula 07:
059 Aula 08:
064 Aula 09:
072 Aula 10:
078 Aula 11:
084 Aula 12:
092 Aula 13:
099 Aula 14:
105 Aula 15:
111 Aula 16:
Sistemas Operacionais
Tipos de Sistemas Operacionais
Serviços e Funções de Sistemas Operacionais
Processos e Threads
Semáforos e Mutex
Monitores
Impasse/Deadlock
Sistemas Operacionais
Endereço Lógico e Físico
Gerenciamento de Arquivos
Estrutura de Armazenamento de Massa
Proteção e Segurança
Malwares
As Máquinas Virtuais/Virtualização
Linux
Como Utilizar o Linux
Introdução
É um imenso prazer me conectar com você por meio deste livro, e tenho a certeza de
que ao longo das unidades e temas, vamos conhecer um pouco mais sobre o universo
do conhecimento que envolve os sistemas operacionais. Desde a criação do
computador, a área da informática tem evoluído de forma rápida e intensa, e
compreender o funcionamento de sistemas operacionais e sua aplicação em desktops
e dispositivos é fundamental para os pro�ssionais da área.
Sistemas operacionais (SOs) são elementos essenciais para o funcionamento de
pequenos aparelhos até grandes processadores e equipamentos de tecnologia.
Usuários por todo o mundo, em suas rotinas de trabalho, utilizam sistemas e
equipamentos para realizar diversas atividades de trabalho e negócios, e um bom
sistema operacional, aliado com o uso de um equipamento de última geração, pode
garantir mais desempenho e performance nessas ações.
Os SOs têm in�uência direta na experiência do usuário e no comportamento das
aplicações. A usabilidade dos sistemas tem se tornado cada vez mais dinâmica, o que
é motivo de preocupação das empresas. O grande número de dados tem aumentado
exponencialmente, e a busca por mais velocidade e desempenho, aliada à segurança
de equipamentos e sistemas, é importante para o sucesso das tarefas.
Assim, ao longo deste material, faremos uma imersão em temas importantes da área
para compreender como elas impactam na criação de soluções que visam auxiliar no
desempenho das mais diversas atividades pro�ssionais, tecnológicas ou cientí�cas.
Vamos lá? 
6
01
Sistemas Operacionais
7
Introdução a Sistemas Operacionais
Olá a todos!
Neste início de disciplina, para entender melhor a de�nição do sistema operacional, é
necessário primeiro entender o signi�cado de hardware e software.
Keen (1996) de�ne hardware como “a parte física do equipamento, portanto, um
conjunto de unidades que constituem um sistema de processamento de dados. São
exemplos de hardwares: teclado, mouse, monitor, processador, memória, gabinete,
entre outros”.
Maran (1999) de�ne softwarecomo “um conjunto de instruções eletrônicas que
dizem ao computador o que fazer. Software também é conhecido por programa ou
aplicativo. Sistemas operacionais, planilhas eletrônicas, processadores de textos, são
alguns exemplos de softwares”.
Com essas de�nições, percebe-se que sistema operacional, a�nal, é um software, o
item mais importante para que o computador possa funcionar adequadamente, pois
todos os aplicativos precisam dele para funcionar. Por manter uma comunicação
direta com o hardware, o sistema operacional atua na camada modo núcleo. Todos
os outros softwares atuam na camada modo usuário, pois não mantém uma
comunicação direta com o hardware.
8
Segundo Tanenbaum (2016, p. 3) PCs são “equipados com um dispositivo de software
chamado de sistema operacional, cuja função é fornecer aos programas do usuário
um modelo do computador melhor, mais simples e mais limpo, assim como lidar com
o gerenciamento de todos os recursos mencionados”.
Sistemas operacionais podem ter ou não interfaces grá�cas. Quando não
há interface grá�ca, é utilizado o termo shell. Quando há interface grá�ca,
o termo utilizado é GUI (Graphical User Interface). Os sistemas
operacionais com interfaces grá�cas são indicados para o uso doméstico
devido à facilidade que proporciona aos usuários.
A Xerox foi quem utilizou a interface grá�ca pela primeira vez, porém,
como produto, a GUI foi utilizada de maneira inédita pela Apple. A
interação com os dispositivos digitais é geralmente realizada por meio de
um mouse, teclado ou através do simples toque em telas sensíveis que
equipam smartphones, tablets e computadores. Por meio dessa
interação, os usuários podem selecionar e manipular ícones e símbolos a
�m de conseguir realizar tarefas com algum dispositivo. Esses símbolos
são denominados de widgets, na maioria dos casos, e são agrupados em
kits. Leia mais em: 
9
https://go.eadstock.com.br/Mi
A matemática e escritora inglesa Ada Lovelace, considerada a primeira programadora
do mundo, escreveu o primeiro algoritmo para o matemático e inventor Charles
Babbage.
Fonte: Disponível aqui Disponível aqui
Geração de Computadores
A área de TI (Tecnologia da informação) tem evoluído consideravelmente através dos
anos. Os sistemas operacionais também.
O sistema operacional era ligado à arquitetura dos computadores aos quais eram
executados. Cada geração de computador tinha um tipo especí�co de sistema
operacional (Tanenbaum, 1990, p. 5).
Entre os anos de 1792 a 1871, o matemático inglês Charles Babbage projetou o
primeiro computador digital. Mesmo tendo gastado muito dinheiro e trabalho, nunca
conseguiu fazê-lo funcionar porque a máquina era mecânica e a tecnologia usada na
época não conseguiu acompanhá-la. Como era uma máquina analítica, não tinha
sistema operacional. “Babbage percebeu que ele precisaria de um software para sua
máquina analítica, então ele contratou uma jovem chamada Ada Lovelace, que era a
�lha do famoso poeta inglês Lord Byron, como a primeira programadora do mundo.
A linguagem de programação Ada é uma homenagem a ela.” (Tanenbaum, 1990, p. 5) 
10
https://pt.wikipedia.org/wiki/Ada_Lovelace#/media/Ficheiro:Ada_lovelace.jpg
https://pt.wikipedia.org/wiki/Charles_Babbage#/media/Ficheiro:Charles_Babbage_-_1860.jpg
A máquina analítica de Babbage
Fonte: Disponível aqui
A primeira geração (1945-1955) fazia uso das válvulas e precisava de muitas pessoas
para operá-las. Não havia sistemas operacionais. O alemão Konrad Zuse construiu o
computador Z3 com relés eletromagnéticos, e o inglês Alan Turing e um grupo de
cientistas construíram a máquina Colossus, na Inglaterra. Howard Aiken, de Harvard,
construiu o Mark I. Já o ENIAC foi construído na Universidade da Pensilvânia, por um
aluno de graduação, J. Presper Eckert, e seu professor William Mauchly.
11
https://pt.wikipedia.org/wiki/Maquina_Anal%C3%ADtica#/media/Ficheiro:AnalyticalMachine_Babbage_London.jpg
O Colossus e o cientista da computação Alan Turing
Fonte: Disponível aqui Disponível aqui
O ENIAC e o Mark I
Fonte: Disponível aqui Disponível aqui
12
https://pt.wikipedia.org/wiki/Colossus_(computador)#/media/Ficheiro:Colossus.jpg
https://escola.britannica.com.br/artigo/Alan-Turing/631068
https://pt.wikipedia.org/wiki/ENIAC#/media/Ficheiro:ENIAC_Penn1.jpg
https://pt.wikipedia.org/wiki/Harvard_Mark_I#/media/Ficheiro:Harvard_Mark_I_Computer_-_Right_Segment.JPG
O IBM 7094 e um sistema 1401, composto (da esquerda para a direita):
leitor/perfurador, , processador e impressora
Fonte: Disponível aqui   Disponível aqui
A segunda geração (1955-1965) fazia uso de transistores ao invés de válvulas, e os
computadores �caram mais con�áveis – assim surgiram os computadores de grande
porte, os mainframes. Para Tanenbaum (2016, p. 5), muitos computadores
“utilizavam a técnica de cartão perfurado para a inserção de instruções, criado pela
empresa IBM.” 7094 e o 1401 foram os principais computadores dessa geração,
fabricados pela IBM. Utilizavam os sistemas operacionais FMS (Fortran Monitor
System) e o IBSYS, desenvolvidos pela IBM para executar no 7094 e, são sistemas
operacionais em lote (batch).
A terceira geração (1965-1980) fazia uso das CIs e multiprogramação. Os fabricantes
de computadores tinham duas categorias de produtos: diferentes e incompatíveis.
Eram os computadores comerciais e os computadores cientí�cos de grande escala. O
computador 7094 era usado na ciência e na engenharia, orientado por palavras que
realizavam cálculos numéricos complexos. Já o 1401 era orientado por caracteres, e
seu uso era para a ordenação e impressão de �tas por bancos e companhias de
seguro, ou seja, era um computador para uso comercial.
A quarta geração (1980 - 1990), usou os circuitos integrados em larga escala (Large
Scale Integration — LSI), que são os chips que contém milhares de transistores. Esta
geração é conhecida como computadores pessoais, e as máquinas �caram cada vez
menores. IBM PC e Apple Lisa são exemplos de computadores desta geração. O IBM
PC utilizou o sistema operacional MS-DOS (Disk Operating System - distribuído pela
Microsoft), e o Apple Lisa foi desenvolvido por Steve Jobs, mas foi um fracasso.
13
https://pt.wikipedia.org/wiki/IBM_7090#/media/Ficheiro:IBM_7094_console2.agr.JPG
https://pt.wikipedia.org/wiki/IBM_1401#/media/Ficheiro:BRL61-IBM_1401.jpg
Telefone móvel da década de 1960 e o DynaTAC 800x, pai dos celulares
Fonte: Disponível aqui Disponível aqui
A quinta geração (1990 - presente), marcada pelos computadores móveis. Em 1946,
apareceu o primeiro telefone móvel, que pesava aproximadamente 40 quilos. Em
1970, surgiu o primeiro telefone móvel, o DynaTAC e pesava em torno de 1 quilo,
conhecido como “tijolão”.
14
https://pt.wikipedia.org/wiki/Telefone_celular#/media/Ficheiro:Mobile_radio_telephone.jpg
https://pt.wikipedia.org/wiki/Motorola_DynaTAC#/media/Ficheiro:DynaTAC8000X.jpg
“O DynaTAC (DYNamic Adaptive Total Area Coverage ou Cobertura Total
de Área Dinâmica Adaptiva) 8000x era bem diferente do que estamos
acostumados nos dias de hoje. Primeiramente, ele era enorme, tendo
dimensões de 33 cm x 4,4 cm x 8,9 cm. Outro limitador era a bateria, que
durava apenas 30 minutos de conversação e demorava 10 horas para ser
recarregada por completo.”
Ficou curioso? Saiba mais sobre o “tijolão” em:
Em 1990, a Nokia lançou o N9000, que combinava dois dispositivos, um aparelho de
telefone e um PDA (Personal Digital Assistant — assistente digital pessoal). A Ericsson,
em 1997, fez o lançamento do “Penelope” GS88, primeira vez que o termo
smartphone foi utilizado.
15
https://go.eadstock.com.br/Mj
O Nokia N900 e o Ericsson GS88
Fonte: Disponível aqui   Disponível aqui
Atualmente, 90% da população global tem telefone móvel, que pode ser em forma de
relógio de pulso, óculos e até embutido em itens de vestimenta. Esses aparelhos não
fazem somente chamadas telefônicas, mas possibilitam a navegação na internet, o
envio e o recebimento de emails, jogar, enviar e receber mensagens, entre outras
utilidades.
16
No dia 20 de novembro é comemoradoo aniversário do lançamento da
versão do Microsoft Windows. O seu início não foi fácil, apesar de ter sido
lançado com apps tais como Word e Excel, e seu lançamento ocorreu
junto com o lançamento do Macintosh, computador da Apple. Somente
com a terceira versão do sistema operacional, Windows 3.11, é que foi
despertado o interesse do público. Após o lançamento desta versão, a
Microsoft, empresa de Bill Gates, começou a desenvolver outras versões
do sistema operacional, acertando em algumas versões e errando em
outras.
17
https://go.eadstock.com.br/Mk
02
Tipos de Sistemas 
Operacionais
18
Principais Tipos de Sistemas
Operacionais
Os sistemas operacionais existem há cerca de cinquenta anos, período em que foram
desenvolvidos muitos tipos de sistemas operacionais, alguns bem conhecidos e
outros nem tanto. Alguns sistemas operacionais foram bem desenvolvidos e outros
nem chegaram a ser terminados.
Sistemas operacionais de computadores de
grande porte
Os sistemas operacionais para os computadores de grande porte ou mainframes,
segundo Tanenbaum (2016, p. 25) “são máquinas do tamanho de uma sala ainda
encontradas nos centros de processamento de dados de grandes corporações.” A
diferença dos mainframes para os computadores pessoais é a capacidade de E/S.
É comum encontrar mainframes com 1.000 discos e milhões de gigabytes de dados
como servidores so�sticados da web, nas transações entre empresas e em sites de
comércio eletrônico em larga escala. Esses tipos de computadores são indicados para
processarem muitas tarefas ao mesmo tempo exigindo o mínimo de E/S. OS/360 é
um exemplo de sistema operacional de computadores de grande porte. Mais tarde,
foi substituído pelo OS/390, e atualmente, as versões do Unix, como é o caso do
Linux, estão sendo utilizadas como sistema operacional de computadores de grande
porte. 
19
Sistemas operacionais de ser�dores
Esses sistemas operacionais são executados em servidores, que são computadores
pessoais considerados grandes, nas estações de trabalho ou até mesmo nos
computadores de grande porte. Eles têm a vantagem de servir múltiplos usuários ao
mesmo tempo por meio das redes de computadores, além de possibilitar que os
usuários compartilhem recursos de hardware e software.
Os servidores possibilitam o serviço de impressão de arquivos e até
mesmo impressão através da web. Usam diversas máquinas como
servidoras para dar suporte aos clientes, armazenar páginas da web, e
atender às requisições solicitadas. Solaris, FreeBSD, Linux e Windows
Server 201x são alguns exemplos de sistemas operacionais de servidores.
20
Sistemas operacionais de multiprocessadores
Os Sistemas operacionais de multiprocessadores são chamados de computadores
paralelos, multicomputadores ou multiprocessadores porque permitem conectar
diversos CPUs em um único sistema. Esses sistemas operacionais são especiais, pois
permitem a comunicação, a consistência e a conectividade entre as CPUs. Os
computadores pessoais fazem uso de chips multinúcleo, o que permite trabalhar
com multiprocessadores de pequena escala. São exemplos de sistemas que podem
ser executados em multiprocessadores os sistemas operacionais Windows e Linux.
Sistemas operacionais de computadores pessoais
Os computadores atuais atendem à multiprogramação, que permite que diversos
softwares sejam iniciados no momento que o sistema é inicializado. Porém,  atende
somente a um usuário de cada vez. Tem como principais utilidades dar acesso à
internet e fazer o processamento de textos e planilhas.  Linux, o FreeBSD, o Windows
e o OS X da Apple são alguns exemplos de sistemas operacionais de computadores
pessoais.
O desenvolvimento de software sem o uso de sistemas operacionais, no
mínimo, seria mais lento e trabalhoso, seria imprescindível uma nova
programação e con�guração de cada dispositivo/hardware a ser usado a
cada nova implementação.
21
Sistemas operacionais de computadores portáteis
O computador portátil, também conhecido como PDA (Personal Digital Assistant —
assistente pessoal digital) pode ser um tablet, um smartphones ou outro computador
portátil e geralmente eles cabem na palma da mão. Para Tanenbaum (2016, p. 26), “A
maioria deles conta com CPUs multinúcleo, GPS, câmeras e outros sensores,
quantidades enormes de memória e sistemas operacionais so�sticados. Além disso,
todos eles têm mais aplicativos (“apps”) de terceiros que você possa imaginar.”
Exemplos mais conhecidos de sistemas operacionais de computadores portáteis, são
o Android do Google e o iOS da Apple.
Sistemas operacionais embarcados
Os sistemas operacionais embarcados não permitem que usuários façam a sua
instalação. Ele já vem instalado de fábrica e não são vistos como computadores.
Podemos citar como exemplos os aparelhos de televisão, os MP3, o forno micro-
ondas, entre outros. O sistema operacional desses aparelhos está gravado na
memória ROM. QNX, VxWorks e Embedded Linux são exemplos de softwares
embarcados.
22
Sistemas operacionais de nós sensores (sensor-
node)
Esse tipo de sistema usa redes de nós sensores muito pequenos com várias
�nalidades. Os nós se comunicam entre si através de comunicação sem �o. Pode ser
usado com a �nalidade de medir a precipitação para a previsão de tempo, medir a
temperatura, detectar incêndios em �orestas, saber informações sobre inimigos em
campos de batalhas, entre outros. Os sensores se apresentam em forma de
pequenos computadores que utilizam a bateria com rádios integrados e têm a
necessidade de funcionar por longos períodos sem interrupção, geralmente ao ar
livre e em condições críticas. A rede precisa suportar falhas de nós individuais, como
ocorre nos casos da bateria se esgotar. TinyOS é um exemplo de sistema operacional
para um nó sensor.
Sistemas operacionais de tempo real
Esses sistemas possuem o tempo como característica principal. Há dois tipos de
sistema de tempo real: crítico e não crítico. Tanenbaum (2016, p.26) exempli�ca
sistema de tempo real crítico como os “sistemas de controle de processo industrial,
computadores em tempo real têm de coletar dados a respeito do processo de
produção e usá-los para controlar máquinas na fábrica. Muitas vezes há prazos
rígidos a serem cumpridos.”, ou seja, a ação desses sistemas deve ser realizada em
23
um determinado tempo ou dentro de certo tempo. Esses sistemas são fáceis de
serem encontrados nos processos industriais, militares e de aviação. Outra
característica importante desse tipo de sistema é a garantia de que determinada ação
ocorrerá no momento exato que deve ocorrer.
O sistema de tempo real é caracterizado como não crítico quando a ação que deveria
ocorrer em determinado momento não ocorre, e isto não prejudica de forma
permanente. Smartphones, áudio digital e sistemas de multimídia são alguns
exemplos. Esses tipos de softwares são inseridos pelo projetista, o que não permite
que usuários façam sua própria instalação, mas os torna seguros. eCos é um
exemplo deste tipo de software.
Sistemas operacionais de cartões inteligentes
(smart card)
Esses são os menores sistemas operacionais. São encontrados nos cartões
inteligentes, que são do mesmo tamanho que o cartão de crédito e possuem um chip
de CPU. Há dois tipos desses sistemas: os que realizam somente uma função e os
que realizam múltiplas funções. Há modelos de cartões inteligentes que são
orientados a Java e possuem o ROM, que contém um interpretador para a Java Virtual
Machine (JVM — Máquina virtual Java).
24
Quais são os melhores sistemas operacionais da atualidade? E os
principais SOs para notebooks e celulares? Conheça em: 
25
https://go.eadstock.com.br/Ml
03
Serviços e Funções de 
Sistemas Operacionais
26
Funções dos Sistemas Operacionais
Quando utilizam os computadores, os usuários gostam de executar várias funções ao
mesmo tempo, podendo ser computadores pessoais ou não. No uso pessoal,
podemos citar que é comum as pessoas navegar na internet, escutar música e se
corresponder por meio de trocas de mensagens nas redes sociais. Cada uma dessas
funções é umprocesso gerenciado pelo sistema operacional, que tem como função
garantir que os processos sejam executados da melhor maneira possível, sem
travamento e sem demora.
Afora os processos que são solicitados pelos usuários, há os processos que são
executados de tempos em tempos sem que o usuário solicite ou intervenha, como
exemplo, atualização do antivírus.   Os processamentos são executados muito
rapidamente, o que leva à falsa impressão de que são executados tudo ao mesmo
tempo. 
A gerência do processador ou a gerência de processos ou atividades é
quem faz a distribuição do tamanho do processamento entre as
aplicações de maneira que nenhuma aplicação possa monopolizar o uso
do processador. Por isso, o sistema operacional tem a função de fazer o
gerenciamento das múltiplas requisições de processos recebidas e
coordenar o acesso aos recursos (Maziero, 2011).
Gerenciamento de processos
O sistema operacional tem como uma das funções mais importantes o
gerenciamento de processos. Ele envolve os arquivos que o aplicativo precisa acesso
para funcionar bem, o tempo de CPU (unidade central de processamento) e o uso da
memória. Uma das precauções que o sistema operacional tem com a máquina é
sobre os processos: criar e destruir, parar, retomar e auxiliar nos mecanismos de
comunicação. É importante modi�car a con�guração da ferramenta de
gerenciamento de processos para dar prioridade às tarefas indispensáveis ou forçar
sua execução de modo manual.
27
Gerenciamento de memória principal
A memória principal também é gerenciada pelo sistema operacional. Ela tem como
função armazenar os dados que são compartilhados pela CPU e pelos aplicativos. Um
ponto importante a se preocupar é nos casos em que haja falha, pois ela perde a sua
capacidade. Por isso, a importância do sistema operacional ser o responsável pelo
gerenciamento de memória, tomando os devidos cuidados para não a sobrecarregar
e, desta forma, evitar a perda dos dados e informações contidas nela. O
gerenciamento da memória é realizado pelo sistema operacional, que garante qual
parte da memória está sendo usada e qual serviço está sendo executado no
momento.
Além disso, a memória principal organiza os espaços livres onde os processos serão
colocados e aloca e solicita um espaço que seja necessário para ser utilizado da
melhor forma.
Gerenciamento de armazenamento secundário
O sistema operacional também gerencia o armazenamento secundário. Em caso de
falha, a memória pode perder todos os dados contidos nela, por isso é importante ter
o armazenamento secundário que armazena os dados por um longo período. O
gerenciamento do armazenamento secundário é parecido com o da memória
principal, o sistema operacional cuida do espaço livre, da ordem de economia e dos
dados armazenados.
Gerenciamento do sistema de entrada e saída
As portas de entrada e saída do computador também são gerenciadas pelo sistema
operacional.  Para que periféricos tais como monitor, impressora e fones de ouvido
funcionem perfeitamente, o sistema tem como responsabilidade pesquisar na rede
os dados necessários de cada um.
28
Registro do sistema de arquivos
É da responsabilidade do sistema operacional criar, excluir e arquivar os arquivos
criados, além de facilitar a busca deles quando solicitados. A comunicação entre os
arquivos e as mídias de armazenamento também é da responsabilidade do sistema
operacional.
Segurança
A segurança da máquina também é da responsabilidade do sistema operacional, que
assegura que usuários não permitidos não tenham acesso à máquina e a atividades
indevidas. Outra ação importante é evitar que os vírus tenham acesso à máquina.
Algumas con�gurações podem ser realizadas para o sistema executar e garantir a
segurança do sistema.
29
Comunicação entre elementos e aplicações
O sistema operacional faz a comunicação entre os componentes do computador e
todos os outros aplicativos que se encontram em contato com ele, além de enviar e
receber todas as informações. Tudo isso é possível através das interfaces de rede.
Relatar status do sistema
Por padrão, ao lado do sistema operacional há outros softwares instalados, mas não
é um sistema operacional. O status do sistema propicia características e ambiente
básico para o desenvolvimento e execução dos softwares instalados no computador
e suporta qualquer tipo de linguagem de programação, permitindo a instalação de
qualquer tipo de aplicativo na máquina. Ele veri�ca a necessidade de alguma ação a
ser realizada para o bom funcionamento do sistema, além de informar como está sua
situação.
Gerenciamento de recursos
É função do sistema operacional gerenciar os principais componentes do
computador através do gerenciador de recursos e todos os componentes que entram
em contato com ele. Deve cuidar da segurança e da comunicação da unidade central
de processamento (CPU) e também dos dispositivos externos conectados à máquina.
 
30
Administração do usuário
É de responsabilidade do sistema operacional gerenciar os per�s criados e
armazenados no computador. O per�l de usuário pode ser do tipo único ou
multiusuário. O per�l de usuário único signi�ca que há somente as atividades de um
usuário ativas, e o per�l de usuário multiusuário signi�ca que poderá haver
atividades de vários usuários ativos ao mesmo tempo.
Ser�ços de sistemas operacionais
A de�nição de um processo é bem simples, um programa em execução é chamado
processo. A leitura de um e-book no computador é um processo. Para ler o e-book no
computador, ele precisa estar em execução e, para isso, é necessário que o e-book
esteja aberto e um processador de texto também. Neste momento, há um processo
em execução. Para ele ter entrado em execução, foi preciso que o sistema
operacional estivesse monitorando o dispositivo de entrada, no caso o mouse ou o
teclado e, identi�casse que houve uma instrução, um clique duplo do mouse ou uma
execução através do teclado, por exemplo, sobre determinado arquivo.
Foi preciso que o sistema operacional identi�casse o tipo do arquivo e consultasse a
lista de programas que poderiam executar e interpretar o arquivo. Após ter
localizado o programa para executar o arquivo, o sistema operacional solicitou o uso
do processador que realizou o processamento, criando um processo, ou seja, um
programa em execução.
Um processo precisa de recursos para executar a sua tarefa. Tais recursos
podem ser arquivos e dispositivos de entrada/saída, memória, tempo de
CPU. Conforme os processos são criados e/ou são mantidos em execução,
os recursos são alocados ao processo.
Os processos têm sua memória dividida em três áreas: seção de texto, seção de
dados e a pilha. A área de texto contém o código do programa, o contador do
programa e o conteúdo que está nos registradores do processador. A área de dados
contém as variáveis globais, e a lacuna é o espaço para alocação dinâmica de
31
Imagem 4 – As áreas do processo: texto, seção e pilha
Fonte: Tanenbaum (2016, p. 39).
memória enquanto o processo está em execução. Já a área da pilha contém dados
temporários tais como endereços de retorno, variáveis locais e parâmetros de
função.
A área de dados cresce para cima e a pilha cresce para baixo, como mostrado na
Imagem 4.
32
Fonte: o autor (2021).
Nos computadores que possuem o sistema operacional Windows,
pressione CTRL+ALT+DEL e será aberto o gerenciador de tarefas. Na aba
processos, aparece quais programas em execução estão sendo
coordenados pelo sistema operacional. Caso o sistema operacional seja
Linux, digite o comando ps no console.
33
04
Processos e Threads
34
Processos
Atualmente, é normal para os computadores realizar mais de uma tarefa ao
mesmo tempo. Os usuários estão acostumados a fazer várias solicitações ao
mesmo tempo, mas a maioria nem imagina como isso acontece.
Tanenbaum (2016, p. 59) explica:
Primeiro, considere um servidor da web, em que solicitações de
páginas da web chegam de toda parte. Quando uma solicitação chega,
o servidor confere para ver se a página requisitada está em cache. Se
estiver, elaé enviada de volta; se não, uma solicitação de acesso ao
disco é iniciada para buscá-la. No entanto, do ponto de vista da CPU,
as solicitações de acesso ao disco levam uma eternidade. Enquanto
espera que uma solicitação de acesso ao disco seja concluída, muitas
outras solicitações podem chegar. Se há múltiplos discos presentes,
algumas ou todas as solicitações mais recentes podem ser enviadas
para os outros discos muito antes de a primeira solicitação ter sido
concluída.
Para controlar essas solicitações, é preciso um serviço chamado processo. Em um
PC normal, após inicializar o sistema, vários processos são inicializados sem que o
usuário saiba.   Pode ser inicializado um processo para aguardar a entrada de e-
mails, outro para executar o antivírus. Outros tipos de processos podem ocorrer
concomitantemente com outro, por exemplo, o usuário pode salvar e imprimir
arquivos em uma mídia externa enquanto navega na web.   Nos sistemas de
multiprogramação, a central de processamento vai de um para outro processo em
questão de milissegundos.
A Imagem 5 apresenta um computador multiprogramado com quatro programas
na memória. 
35
Imagem 5 – Código de erros do sistema
Fonte: Tanenbaum (2016, p. 60).
O Modelo de Processo
Todos os softwares possíveis de execução, incluindo o sistema operacional, são
processos. Muitos imaginam que há uma CPU virtual para cada processo, mas a
realidade é que a CPU está sempre trocando de processo em processo a todo
momento, o que recebe o nome de multiprogramação.
Tanenbaum (2016, p. 61) esclarece por meio de uma analogia a distinção entre
processo e programa,
“considere um cientista de computação que gosta de cozinhar e está
preparando um bolo de aniversário para sua �lha mais nova. Ele tem
uma receita de bolo de aniversário e uma cozinha bem estocada com
todas as provisões: farinha, ovos, açúcar, extrato de baunilha etc.
Nessa analogia, a receita é o programa, isto é, o algoritmo expresso
em uma notação adequada, o cientista de computação é o
processador (CPU) e os ingredientes do bolo são os dados de entrada.
O processo é a atividade consistindo na leitura da receita, busca de
36
ingredientes e preparo do bolo por nosso cientista. Agora imagine que
o �lho do cientista de computação aparece correndo chorando,
dizendo que foi picado por uma abelha. O cientista de computação
registra onde ele estava na receita (o estado do processo atual é
salvo), pega um livro de primeiros socorros e começa a seguir as
orientações. Aqui vemos o processador sendo trocado de um
processo (preparo do bolo) para um processo mais prioritário (prestar
cuidado médico), cada um tendo um programa diferente (receita
versus livro de primeiros socorros). Quando a picada de abelha tiver
sido cuidada, o cientista de computação volta para o seu bolo,
continuando do ponto onde ele havia parado.”
Criação do Processo
O sistema operacional é o responsável para que um processo possa existir. Em
sistemas projetados para executar apenas uma aplicação, pode ser possível ter
todos os processos que poderão ser necessários quando o sistema for ligado. Em
geral, os sistemas têm uma maneira de iniciar e terminar cada processo, de acordo
com a necessidade e enquanto a operação for executada.
Um processo é capaz de ser gerado por intermédio de algumas ocorrências.
Segundo Tanenbaum (2016, p. 61), um processo consegue ser gerado por
intervenção de quatro ocorrências:
37
1. Inicialização do sistema. Quando o computador é ligado, o
sistema operacional e o computador são iniciados.
2. Execução de uma chamada de sistema de criação de processo
por um processo em execução. Quando o processador de texto é
usado e deseja imprimir o que foi criado, tem um processo
(processador de texto) solicitando a criação de outro processo
(gerenciador de impressão).
3. Solicitação de um usuário para criar um processo. Ao executar
um programa, na maioria das vezes clica-se duas vezes sobre ele
e ele é executado pelo sistema operacional.
4. Início de uma tarefa em lote. É empregada somente nos sistemas
de grande porte. O sistema operacional executará o processo até
�nalizá-lo, somente depois começará a executar outro processo.
Pode ocorrer que, logo após um processo ser criado, ele compartilhe de outros
recursos do seu autor, como arquivos que estejam abertos.
Término do Processo
Qualquer processo tem o seu início e o seu término. Portanto, após o processo ser
realizado, ele é encerrado mediante algumas situações. Tanenbaum (2016, p. 63)
lista as situações:
Saída normal voluntária: acontece quando o processo é �nalizado com êxito
ou quando o usuário encerra o processo.
Término por erro voluntário: acontece nos processos com erro fatal e o
encerramento é solicitado.
Erro fatal involuntário: acontece quando um processo em execução recebe
uma instrução não planejada.
Cancelamento por outro processo involuntário: acontece quando um
processo é �nalizado por um programa autorizado.
38
A diferença do encerramento por erro e por erro fatal ocorre quando o
desenvolvedor criou uma exceção para o erro, caso contrário, é
considerado encerramento por erro fatal.
O ambiente necessário para a execução de um processo é formado
pelos contextos de hardware e de software. O contexto de hardware é
fundamental para que os processos possam se revezar no controle
(utilização) da UCP, podendo ser interrompidos pelo SO e,
posteriormente, reinicializados do ponto onde haviam parado sem
qualquer solução de continuidade, isto é, como se nada tivesse
ocorrido. A operação que possibilita tal revezamento é chamada de
troca de contexto (context switch) e consiste basicamente em salvar o
conteúdo dos registradores e carregá-los com os valores referentes ao
processo que esteja ganhando o controle da UCP. 
Leia mais em: 
 
39
https://go.eadstock.com.br/Mm
Threads
Thread é a atividade de um processo. Um arquivo sendo digitado no teclado e
exibido na tela do computador é um thread.
Os sistemas operacionais da atualidade atuam em processos com várias atividades,
chamados múltiplos threads. Nos sistemas de processamento em lote (batch jobs),
geralmente cada processo possui somente um thread, chamados de monothread.
É normal o usuário utilizar nos computadores domésticos processos com múltiplos
threads, chamados multithread.
Tanenbaum (2016, p. 67) de�ne thread da seguinte maneira:
Em sistemas operacionais tradicionais, cada processo tem um espaço
de endereçamento e um único thread de controle. Na realidade, essa
é quase a de�nição de um processo. Não obstante isso, em muitas
situações, é desejável ter múltiplos threads de controle no mesmo
espaço de endereçamento executando em quase paralelo, como se
eles fossem (quase) processos separados (exceto pelo espaço de
endereçamento compartilhado).
Todo processo possui no mínimo um thread. Os threads permitem múltiplas
execuções em um processo.
40
Condições de corridas ocorrem quando dois ou mais processos
acessam informações compartilhadas obtendo como resultado
ocorrências que depende da ordem em que os processos são
executados. Esta ordem de execução é determinada pelo mecanismo
de escalonamento do sistema operacional. A condição de corrida pode
ser impedida pelos mecanismos de exclusão mútua. É da
responsabilidade da exclusão mútua certi�car que apenas um processo
usará os dados compartilhados num exato momento. A região crítica
ocorre quando o trecho do código onde os dados compartilhados são
acessados. A exclusão mútua tem como �nalidade impedir que mais de
um processo entre na região crítica. Há inúmeras maneiras para atingir
a exclusão mútua, se um processo utilizar a região crítica, outro
processo não poderá utilizar a mesma região para evitar que
aconteçam problemas. Seguindo estas informações vamos analisar
como este processo ocorre numa �la de impressão.
Para fazer a impressão de qualquer arquivo é necessário colocá-lo na
�la de impressão, que está compartilhada. O processo de impressão
organiza os arquivos de acordo com a ordem que chegaram à �la. Se a
�la de impressão for compartilhada,signi�ca que as informações, os
indicadores de frente e �m da �la também são. Quando dois processos
decidem imprimir um documento no mesmo momento, o primeiro
processo acaba sendo interrompido por ter acabado o seu tempo, e o
segundo processo coloca o seu documento na �la antes que o primeiro
processo tenha sido �nalizado. Neste caso, houve uma condição de
corrida.
Fonte: REISSWITZ, Flávia. Análise de Sistemas V. 9. ed. Clube de Autores,
2009.
41
05
Semáforos e Mutex
42
Em 1965, o cientista da computação holandês E. W. Dijkstra teve a ideia de usar
uma variável inteira para contar o número de sinais. Sua proposta, embasada no
semáforo da cidade, surgiu como um recurso para ajudar os programadores que
não tinham conhecimentos profundos em hardware e nas implementações às
instruções TSL.
Esta solução tem o nome de semáforo, e é representada por uma variável especial
do tipo abstrato de dados. Duas operações possibilitam chegar ao semáforo: WAIT
() e SIGNAL ().
Silberschatz (2011) descreve que as operações wait e signal devem ser executadas
indivisivelmente, portanto, quando um processo alterar o valor do semáforo,
nenhum outro processo poderá alterar o mesmo valor, concomitantemente.
Nos sistemas operacionais, há possibilidade de haver dois modelos de semáforos:
semáforos binários e semáforos de contagem.
Nos semáforos binários, como o nome diz, o valor da variável pode receber
somente dois valores, 0 e 1. Este semáforo também recebe o nome de mutex, por
ser usado para garantir a exclusão mútua.
Os semáforos de contagem controlam o acesso a algum recurso. O seu valor inicial
é a mesma quantidade de recursos disponíveis. Se um dos recursos for solicitado, a
operação wait é chamada para fazer o decréscimo de valor levando até ao número
zero, para caracterizar que todos os recursos se encontram em uso. No momento
em que houver a liberação de um recurso, a operação signal acrescenta um valor à
variável do semáforo. 
Quando uma operação de semáforo for iniciada, nenhum processo
pode ter acesso ao semáforo até que a operação seja �nalizada ou
bloqueada. Essa ação é importante para resolver os problemas de
sincronização e anular condições de corrida.
43
Um processo tem suas próprias características. Tem como estrutura
básica uma imagem de código executável associado a um software. O
código executável e dados especí�cos fazem parte da memória. 
Cada processo atravessa por estados distintos do início ao �m. No
momento inicial é classi�cado como “Novo”. Durante a sua execução é
classi�cado como “Executando”. Mas quando precisa da execução de
algum evento é classi�cado como “Esperando”. Logo não seja mais
preciso, seu processo é classi�cado como “Terminado”. O sistema
operacional é o responsável por juntar todos estes dados por meio das
estruturas especí�cas conhecidas como PCB (sigla de Process Control
Blocks) ou Blocos de Controle de Processos.
Com os conhecimentos adquiridos sobre processos, terá maior
compreensão sobre Gerenciador de Tarefas do Windows. Utilize a
combinação Ctrl+Alt+Del e selecione Gerenciador de Tarefas, depois a
aba “Processos”. As informações apresentadas é a lista dos processos
que estão em execução naquele momento. O Gerenciador de Tarefas,
por padrão, �ltra alguns processos apresentando uma lista pequena.
Para ter acesso à lista completa de todos os processos clica em
"Mostrar processos de todos os usuários”.    
44
https://go.eadstock.com.br/Ou
Figura 7 – O problema do produtor-consumidor com uma condição de corrida fatal
Fonte: Tanenbaum (2016, p. 89).
Dijkstra propôs trabalhar com duas ações nos semáforos: down e up. Down
signi�ca generalizações de sleep, e up signi�ca wakeup. Para Dijkstra, a execução
da operação down em um semáforo tinha como função averiguar se o valor é
maior do que 0. Em casos em que se obtém a resposta positiva, o valor será
decrementado. Nos casos em que o valor for 0, o processo é posicionado para
dormir sem completar o down.
45
Solucionando o Problema
Produtor-Consumidor Usando
Semáforos
Semáforos são utilizados para esclarecer a di�culdade do sinal perdido. Nos casos
em que diferentes CPUs estejam sendo utilizadas, todo semáforo precisará ser
preservado por uma variável de trava, junto com as orientações TSL ou XCHG
empregadas para garantir que somente uma CPU analisará o semáforo.
A execução do semáforo ocorrerá em microssegundos, à medida que o produtor
ou o consumidor são capazes de ter longa duração. Para realizar este
procedimento são usados três semáforos, o full, o empty e o mutex. O semáforo
full faz a contagem do número de vagas que se encontram cheias. O semáforo
empty faz a contagem do número de vagas vazias. O semáforo mutex certi�ca-se
de que o produtor e o consumidor não conectem ao bu�er, simultaneamente. No
início, full tem o valor de 0; empty possui o mesmo número de vagas no bu�er;
mutex é 1.
Semáforos inicializados com 1 e utilizados por dois ou mais processos para garantir
que apenas atinjam a região crítica um de cada vez, recebem o nome de semáforos
binários.
Para assegurar que a exclusão mútua exista, é necessário certi�car-se de que cada
processo execute um down momentos antes de atingir a sua região crítica e um up
no �nal.
Nos sistemas que usam semáforos, a forma padrão de ocultar interrupção é iniciar
um semáforo com 0, relacionado com o dispositivo de E/S. Imediatamente após o
início de um dispositivo de E/S, o processo de gerenciamento executa um down no
semáforo associado, o que faz com que seja bloqueado imediatamente. No
momento em que ocorre a interrupção, o tratamento de interrupção executa um
up, fazendo com que o processo se torne importante e preparado para nova
execução.
Os semáforos são usados de duas formas distintas: para exclusão mútua e para a
sincronização. Para a exclusão, é utilizado o semáforo mutex. Para fazer a
sincronização são utilizados os semáforos full e empty. O semáforo mutex assegura
46
que somente um processo de cada vez esteja lendo ou escrevendo no bu�er ou em
várias associadas. A exclusão mútua tem como função impedir o caos (Tanenbaum,
2016, p. 91).
A sincronização é o segundo uso dos semáforos.  Para Tanenbaum (2016, p. 91),
semáforos full e empty “são necessários para garantir que determinadas
sequências ocorram ou não. Nesse caso, eles asseguram que o produtor pare de
executar quando o bu�er estiver cheio, e que o consumidor pare de executar
quando ele estiver vazio. Esse uso é diferente da exclusão mútua”.
Alguns aplicativos são verdadeiros devoradores de memória e
prejudicam o desempenho do sistema. Um bom exemplo é o processo
svchost.exe, responsável por executar várias tarefas do Windows.
Contudo, se ele consome muita memória de seu PC, como saber quais
os aplicativos responsáveis por isso?
Clique com o botão direito do mouse sobre ele e depois na opção Ir
para Serviço(s). Nela, você visualiza a aba Serviços do próprio
Gerenciador, e lá serão exibidos os aplicativos relacionados ao processo
que você selecionou. Se desejar, você pode encerrá-los.
Infelizmente, o Gerenciador de tarefas do Windows não permite a você
visualizar o quanto cada aplicativo consome de memória, porém, seu
leque de possíveis devoradores já diminui bastante.
47
https://go.eadstock.com.br/Ov
Mutex
Nas ocasiões em que o semáforo não precisa fazer contagem, a função mutex pode
ser utilizada. Mutexes têm como funcionalidade coordenar a exclusão mútua de
qualquer recurso ou trecho de código em geral. Os mutexes são simples e fáceis de
implementar, por isto, são essenciais em pacotes de threads, contribuindo com as
implementações que são realizadas totalmente no espaço do usuário.
Mutex é o nome dado a uma variável compartilhada que pode ter dois estados:
destravado ou travado. Precisa somente de 1 bit para caracterizá-lo, mas
constantemente um número inteiro é utilizado. O valor 0 representa destravado e
os outros valores representam travado.
Mutexes fazem uso de duas rotinas. Mutex_lock e Mutex_unlock. O Mutex_lock
ocorre quando um thread necessita acessar a regiãocrítica. Tanenbaum (2016)
enfatiza “Se o mutex estiver destravado naquele momento (signi�cando que a
região crítica está disponível), a chamada seguirá e o thread que chamou estará
livre para entrar na região crítica”. Mas, nos casos em que o mutex encontrar-se
travado, o thread que fez a solicitação será bloqueado até que o thread na região
crítica seja concluído e chame mutex_unlock. Continua Tanenbaum (2016) “Se
múltiplos threads estiverem bloqueados no mutex, um deles será escolhido ao
acaso e liberado para adquirir a trava”.
Existe uma distinção entre enter_region e mutex_lock. Nos casos em que o
mutex_lock erra em obter uma trava, o thread_yield é chamado para liberar a CPU
para outro thread. Tanenbaum (2016) a�rma que “thread_yield é apenas uma
chamada para o escalonador de threads no espaço de usuário, ela é muito rápida”.
48
06
Monitores
49
Monitor
O programador teve um ganho de rendimento com o uso de semáforos, tanto pelo
que o semáforo proporciona quanto pela facilidade do seu uso.  Mas isto não evita
que o programador use os semáforos incorretamente. Para ajudá-los, nestes casos,
foi criado o monitor.
Quando utiliza semáforo é preciso ser responsável, pois qualquer erro pode fazer
com que pare toda a execução.
Os erros ocorrem em condição de impasses, corridas e diversos tipos de
procedimento inesperado e inimitável.
Para ajudar no desenvolvimento adequado de programas, Brinch Hansen (1973) e
Hoare (1974) apresentaram uma ideia de sincronização de nível mais alto
denominada monitor. Monitor é um conjunto de normas de rotinas, variáveis e
estruturas de dados, agrupadas em um tipo exclusivo de módulo ou pacote. Os
processos conseguem juntar as rotinas em um monitor, a todo momento, mas não
conseguem conectar claramente as estruturas internas de dados do monitor
através de rotinas declaradas fora do monitor.
Tanenbaum (p. 96, 2016) de�ne:          
Monitores são uma construção da linguagem de programação, então,
o compilador sabe que eles são especiais e podem lidar com
chamadas para rotinas de monitor, diferentemente de outras
chamadas de rotina. Tipicamente, quando um processo chama uma
rotina do monitor, as primeiras instruções conferirão para ver se
qualquer outro processo está ativo no momento dentro do monitor.
Se isso ocorrer, o processo que chamou será suspenso até que o outro
processo tenha deixado o monitor. Se nenhum outro processo está
usando o monitor, o processo que chamou pode entrar.
50
O compilador é responsável por compilar a exclusão mútua nas chegadas do
monitor, mutex ou semáforo binário é a forma normal de utilizar. Como a
responsabilidade é do compilador de organizar a exclusão mútua, di�cilmente
ocorre algum erro. Desta forma, o programador não precisa saber como é
organizada a exclusão mútua, ele precisa saber que em todas as regiões críticas
que são alteradas em normas de monitores, não há a possibilidade de dois
processos executarem suas regiões críticas, simultaneamente. Os monitores
facilitam a exclusão mútua, mas é necessária uma forma para os processos
bloquearem quando não conseguirem continuar.
Algumas linguagens implementam o conceito de monitor para garantir que os
semáforos sejam utilizados de forma correta, são elas: Java, Pidgin Pascal e C#.
Pidgin Pascal é uma linguagem imaginária, Java e C# são linguagens reais. A
linguagem C não pode ser usada nos monitores, pois eles são conceitos da
linguagem C e não os possui. A linguagem Java orientada a objetos oferece suporte
a threads de usuário, além de permitir que as rotinas �quem agregadas em classes.
O sistema operacional se utiliza de diversas técnicas para certi�car que a
comunicação através dos processos aconteça sem interrupções e de forma
ordenada.
Se ocorrer de dois processos estarem concorrendo em condição de pronto são
perfeitamente capazes de ser processados. Podem ocorrer duas situações:
Mais de uma CPU na máquina, não há nenhum problema, pois há mais
unidades de processamento desocupadas do que o número de processos a
serem executados.
Apenas uma CPU na máquina, neste caso, haverá uma CPU e dois processos
a serem executados. Para casos como estes, o sistema operacional dispõe de
escalonador de processos.
51
Em grandes e médias cidades há um problema já conhecido pelos
engenheiros de tráfego, o problema de �uxo de tráfego. Em ciência da
computação esse problema é visto na área de redes de computadores
quando existe um congestionamento em algum ponto da rede. As
operações de espera e sinal nas variáveis de condição em um monitor
são semelhantes às operações P e V na contagem de semáforos. Uma
instrução de espera pode bloquear a execução de um processo,
enquanto uma instrução de sinal pode fazer com que outro processo
seja desbloqueado. No entanto, existem algumas diferenças entre eles.
Quando um processo executa uma operação P, ele não
necessariamente bloqueia esse processo, porque o semáforo de
contagem pode ser maior que zero. Em contraste, quando uma
instrução de espera é executada, ela sempre bloqueia o processo.
Quando uma tarefa executa uma operação V em um semáforo, ela
desbloqueia uma tarefa que está aguardando esse semáforo ou
incrementa o contador do semáforo se não houver tarefa para
desbloquear.
52
https://go.eadstock.com.br/Ow
O produtor e o consumidor possuem threads. Os threads do produtor e do
consumidor são práticos e similares em várias ocasiões. O produtor possui um laço
ilimitado criando dados e os inserindo no bu�er comum. O consumidor também
possui um laço ilimitado retirando dados do bu�er e criando coisas diferentes. No
momento em que o produtor está ativo e incluso no insert, ele entende que o
consumidor não consegue estar ativo e o remove, fazendo com que as variáveis
possam ser renovadas de forma protegida e o bu�er sem dúvida de ter condições
de corrida.
Os monitores são concebidos da linguagem de programação. É de
responsabilidade do compilador identi�car e organizar, de qualquer forma, a
exclusão mútua. Algumas linguagens, como é o caso de Pascal, C. etc., não
possuem monitores, sendo assim, não deve esperar que seus compiladores
realizem qualquer tipo de exclusão mútua. Mas, é simples criar semáforos para
estas linguagens, é só adicionar rotinas de código de montagem à biblioteca para
enviar as solicitações up e down. Não é preciso nem informar ao compilador que o
semáforo existe, mas o sistema operacional deve ser informado sobre o semáforo.
Se o sistema operacional for fundamentado em semáforo, há possibilidades de
desenvolver programas para ele em C++ ou em próprio C. Com o monitor é
diferente, é necessária uma linguagem que seja incorporada.
O monitor e o semáforo foram planejados para resolver o impasse da exclusão
mútua em um ou mais computadores, com acesso à memória padrão.   As corridas
com os semáforos na memória compartilhada poderão ser impossibilitadas de
ocorrer e protegidas com as instruções TSL ou SCHG. A conclusão de que se tem é
que o monitor não é vantajoso, à exceção de uma escassa linguagem de
programação e, o semáforo pertence a um grau muito baixo. Além de tudo, as
fontes originais não possibilitam a transferência de dados entre os computadores.
Precisa de outras coisas mais essenciais.
53
07
Impasse/Deadlock
54
Impasse
O sistema operacional tem um trabalho muito importante, a escolha de quais
processos serão processados primeiro. Independentemente dos diversos métodos
que há nas máquinas, apenas um processo por vez pode ser utilizado.
Scanner, CD-ROM, impressora são alguns dos recursos. Na hora em que dois ou
mais processos precisarem do recurso que o outro está utilizando e bloqueando,
há uma situação de impasse ou deadlock.
Para Tanenbaum (2010, p. 271), o impasse é “um conjunto de processos que estará
em situação de impasse se todo processo pertencente ao conjunto estiver
esperando por um evento que somente outro processo desse mesmo conjunto
poderá fazer acontecer”.
Imagine dois processos, X e Y, que precisam usar recursos do PC, impressora e
scanner. Os processos executam as funções como:O processo X digitaliza uma ilustração e solicita a impressora para impressão.
O processo Y faz a impressão através da impressora e depois digitaliza uma
ilustração.
A execução destes processos ocorreu com o processo X acionando primeiro o uso
da impressora, que foi prontamente atendido. Logo após, foi pedido início do
processo Y, o escalonamento de nome round-robin inicializou o processo Y, que
usufruiu do recurso scanner. O processo X encerrou a utilização da impressora e
buscou a execução do scanner, ele estava bloqueado pelo uso do processo Y. A
mesma coisa aconteceu com o processo Y, quando solicitou o uso da impressora,
ela estava bloqueada pelo processo X. Neste caso, houve um impasse entre dois
processos e o uso de seus recursos. Nenhum processo será �nalizado se não foi
solicitado pelo usuário.
O impasse acontece quando quatro situações acontecem concomitantemente:
inexistência de preempção, posse e espera, exclusão mútua e espera circular.
Na exclusão mútua, cada recurso consegue ser utilizado somente por um processo
por vez. Se mais um processo pedir o mesmo recurso, o processo que pediu
precisa ser suspenso até o recurso ser disponibilizado.
55
Na posse e espera, um processo necessita estar no mínimo em um recurso e
aguardar para conseguir recursos complementares que se encontrem na execução
de outro processo.
Na inexistência de preempção, um recurso permitido a um processo não permite
que seja retirado deste processo. O recurso deve ser disponibilizado livremente
pelo processo que esteja sendo mantido depois que o processo tiver �nalizado a
sua atividade.
Na espera circular, precisa ter uma associação entre dois ou mais processos. Cada
um destes processos depara com o aguardo de um recurso que esteja em uso pelo
próximo componente da cadeia. 
De uma forma mais simples, para melhor entendimento, podemos dizer
que deadlock é um termo empregado para traduzir um problema
ocorrido quando um grupo de processos competem entre si. A
ocorrência do deadlock depende das características de dois ou mais
programas diferentes e dos respectivos processos a executar pelos
diferentes programas ao mesmo tempo. Pode ser que esses processos
possam ser executados de forma repetitiva usando diferentes
processos sem que ocorra deadlock, todavia, basta um único processo
padrão complicado para entrar em situação de deadlock.
56
https://go.eadstock.com.br/Ox
Prevenção de Impasses
Um impasse acontece se quatro condições forem realizadas ao mesmo tempo.
Caso haja garantia que ao menos uma das situações não aconteça, certi�ca-se um
sistema operacional sem problemas. Para isto, deve estabelecer alguns critérios,
tais como:   atacar a condição de exclusão mútua, atacar a condição de posse e
espera, atacar a condição de inexistência de preempção, atacar a espera circular.
Atacar a condição de exclusão mútua signi�ca que todo tipo de aplicação de
recurso só deve existir nos casos em que seja indispensável. Ademais, precisará
garantir que o mínimo permitido de processos consiga solicitar o recurso.
Atacar a condição de posse e espera signi�ca certi�car-se de que quando um
processo solicitar um recurso, ele não se encontre em nenhum outro recurso ou
estes precisam encontrar-se livres para que a ação possa acontecer.
Atacar a condição de inexistência de preempção signi�ca que um processo que
esteja em um recurso requisita outro recurso que não seja capaz de ser reservado
rapidamente. A preempção permite que, a cada intervalo de tempo, o recurso
possa ser utilizado por um processo.
Esta forma de prevenção é perigosa. Suponha que diversos processos tenham
requisitado a impressora e, por causa da preempção, as linhas impressas são
relacionadas a um processo.
É uma situação perigosa, pressupõe diversos processos requerendo uso da
impressora e, por causa da preempção, toda linha imprimida é referente a um
processo. No �nal da execução, os arquivos teriam sido impressos de maneira
errônea. 
Atacar a espera circular signi�ca certi�car-se de que ela não aconteça.
Para isto, é determinada uma regra a todas as categorias de recursos.
Um processo é capaz de solicitar recursos quando preciso, mas estes
precisam ser realizados em ordem numérica.
57
Computadores são cheios de recursos que só podem ser utilizados por
um processo por vez. O controle de acesso aos mesmos é realizado de
forma individual, pelos mecanismos de exclusão mútua, como os
semáforos. Contudo, uma nova classe de problemas surge quando
vários processos estão competindo por vários destes recursos ao
mesmo tempo.
Fonte: ROCHA, Carlos Gustavo A. da. 
58
https://go.eadstock.com.br/Oy
08
Sistemas Operacionais
59
Sistemas Operacionais
O PC possui o sistema operacional como o software mais importante. Ele nos
possibilita manuseá-lo e determinar o que ele deve fazer. Um computador sem um
sistema operacional é inoperante. Sem ele não há plataforma que sustente os
softwares para executar nenhum tipo de trabalho, ouvir uma música, acessar uma
rede social, escrever um documento, elaborar uma planilha etc.
O sistema operacional administra todos os mecanismos do computador, o software
e o hardware. O sistema operacional coordena todos os softwares e componentes
da máquina.
Ao ligar o botão de ligar da máquina, o sistema operacional efetua todos os testes
necessários para assegurar que tudo vai ser realizado, perfeitamente, certi�ca os
componentes físicos e, só assim, inicializa o sistema operacional.
A de�nição do sistema operacional para Tanenbaum (2016, p. 3),
É difícil dizer com absoluta precisão o que é um sistema operacional,
além de ele ser o software que opera em modo núcleo — e mesmo
isso nem sempre é verdade. Parte do problema é que os sistemas
operacionais realizam duas funções essencialmente não relacionadas:
fornecer a programadores de aplicativos (e programas aplicativos,
claro) um conjunto de recursos abstratos limpo em vez de recursos
confusos de hardware, e gerenciar esses recursos de hardware.
Dependendo de quem fala, você poderá ouvir mais a respeito de uma
função do que de outra. Examinemos as duas então.
O sistema operacional faz a gerência dos processos que são executados pela CPU.
Tais processos também são chamados de programas. Para estes programas em
execução, precisam encontrar-se totalmente ou uma parte dele na memória
principal da máquina. Uma CPU veloz necessita de uma grande capacidade de
memória para que tudo funcione corretamente. Sim, a CPU e a memória devem
trabalhar juntas para assegurar agilidade nos processos. A CPU dispõe de ligação
direta na memória principal, também conhecida como memória RAM, como é o
caso dos registradores, que são modelos de memória embutida dentro do próprio
processador.
60
Imagem 10 – Pirâmide da Hierarquia de Memória
Fonte: Disponível aqui
Para Tanenbaum (2016, p. 22), o sistema operacional é parecido com uma máquina
estendida, “A arquitetura (conjunto de instruções, organização de memória, E/S e
estrutura de barramento) da maioria dos computadores em nível de linguagem de
máquina é primitiva e complicada de programar, especialmente para
entrada/saída”.
Memórias são dispositivos utilizados no armazenamento e recuperação de
informação. Identi�ca uma diversidade de tecnologias, capacidade, valor e
desempenho. A concepção de hierarquia de memória oferece uma melhor
compreensão do desempenho, valor, capacidade e desempenho das memórias.
Conseguimos entender melhor esta hierarquia através de uma pirâmide. Na base
da pirâmide �cam as memórias com baixo valor, grande capacidade de
armazenamento e com o menor desempenho. No topo da pirâmide, �cam as
memórias com baixo valor, menor capacidade de armazenamento e com o maior
desempenho. A imagem 10 apresenta melhor esta concepção de hierarquia.
Na imagem 10, é possível veri�car na pirâmide, que a principal função do sistema
operacional é gerenciar memórias de velocidade e tamanhos diversos. A hierarquia
é fundamentada na velocidade, no valor e na capacidade.
No topo da pirâmide estão os registradores e a memória cache, são memóriasinternas ao processador, são memórias muito rápidas, possui capacidade limitada,
tamanho reduzido e o valor excepcionalmente alto. Na parte de baixo da pirâmide,
61
https://docente.ifrn.edu.br/tadeuferreira/disciplinas/2016.1/sistemas-operacionais/Aula12.pdf
está a memória RAM com características inferiores à memória secundária,
entretanto, como as memórias secundárias, tudo se apaga quando o sistema é
desligado.
Se na memória principal e memória secundária todas as informações são apagadas
ao desligar o computador, o mesmo não ocorre com os discos rígidos, que estão na
parte inferior da pirâmide. Fazem parte do disco rígido as mídias ópticas que são
CD, DVD e Blue Ray e a memória Flash, o pen drive.      
É importante evidenciar determinadas especi�cações da memória:
A memória principal é mais veloz, consome mais energia, possui menor
capacidade de armazenamento, tem o valor mais alto e são memórias voláteis.
Nesta categoria se incluem também memória RAM, cache L1 e L2 e os
registradores.
A memória secundária, também conhecida como memória de massa, se
comparada com a memória principal, possui o custo mais baixo, são morosas, e
não voláteis. Nesta categoria também são incluídos o CD-ROM e o disco rígido.
A imagem 11 apresenta a hierarquia de memória com as especi�cações de cada
tipo de memória, como, velocidade, custo, capacidade, tamanho de cada tipo de
memória e se são energizados ou não.
62
Imagem 11 – Pirâmide da Hierarquia de Memória com suas especi�cações
Fonte: Disponível aqui
À medida que você adquire um disco rígido de 1TB pelo valor X, você
não adquire pelo mesmo valor uma memória RAM de 1 TB.
O sistema operacional usa a memória principal e a memória secundária.
O sistema operacional não tem interferência nos registradores e nem
nas memórias do tipo cache L1 e L2.
63
http://taturial.blogspot.com/2012/02/diferenca-entre-as-memorias.html
09
Endereço Lógico 
e Físico
64
Endereço Lógico e Endereço Físico
Um software em execução desencadeia uma sequência de endereços de memórias
gerados pelo processador conhecidos por endereços lógicos, recebem este nome por
ter a lógica do software. A partir do momento em que estes endereços são
armazenados �sicamente na memória RAM, recebem o nome de endereços físicos.
Geralmente, um endereço lógico não será parecido com o endereço físico da
memória RAM.
A CPU gera um endereço lógico enquanto o software está em execução. O endereço
lógico é um endereço virtual, ele não existe �sicamente. Usa-se o endereço lógico
como orientação para conectar a área da memória física.
O hardware faz a conversão do endereço lógico para o endereço físico. O hardware
que faz esta conversão recebe o nome de Memory Management Unit ou
simplesmente, MMU.
A MMU conhece muito bem o local em que o endereço lógico foi armazenado
�sicamente na memória RAM. Ela conhece inúmeras técnicas para realizar esses
armazenamentos.
A MMU mapeia o endereço lógico para o seu endereço físico. Ele se utiliza de
processos de vinculação de endereços para estabelecer os endereços físicos e lógicos
semelhantes enquanto é realizada a compilação e o tempo de carregamento.
Entretanto, enquanto ocorre a execução, os processos de ligação de endereço criam
endereços físicos e lógicos diferentes.
65
No âmbito das redes de informática, há dois endereços principais
atribuídos a um dispositivo de host: físico (MAC) e lógico (IP). 
Tanto o endereço MAC como o IP trabalham juntos para identi�car um
dispositivo na rede. O processo de usar os endereços MAC e IP para
localizar um computador é semelhante ao processo de usar o nome e o
endereço de uma pessoa para enviar uma carta.
O nome de uma pessoa geralmente não muda. O endereço de uma
pessoa, refere-se ao local onde mora e pode ser alterado. O endereço
MAC de um host não muda; ele é atribuído �sicamente à placa de rede do
host e é conhecido como endereço físico. 
O endereço IP baseia-se no local em que o host realmente se encontra.
Por meio desse endereço, é possível que um quadro determine o local a
partir do qual um quadro deve ser enviado. O endereço IP, ou o endereço
de rede, é conhecido como um endereço lógico por ser atribuído
logicamente. Ele é atribuído a cada host por um administrador de rede
com base na rede local em que o host está conectado. 
Os endereços MAC físico e IP lógico são necessários para que um
computador se comunique em uma rede hierárquica, assim como o nome
e o endereço de uma pessoa são necessários para enviar uma carta.
 
66
https://go.eadstock.com.br/Oz
Figura 7 – O papel da MMU entre o processador e a memória
Fonte: Rômulo, Carissimi e Simão (2002, p. 11).
Como se Origina o Lógico e
Endereço Físico
O endereço físico descobre o local físico na memória. A MMU executa o endereço
físico em endereço lógico equivalente. Da mesma forma, a MMU utiliza de endereço
físico como endereço lógico. Não é obrigação do usuário tratar com o endereço físico.
O endereço físico é conectado por seu próprio endereço lógico através do usuário.
Imagina-se que é o endereço lógico que executa o programa do usuário, mas o
endereço lógico é gerado pelo programa que o usuário esteja usando. O programa
necessita da memória física para ser rodado. Sendo assim, o endereço lógico precisa
ser estruturado primeiro para o endereço físico para depois ser utilizado.
O endereço lógico é estruturado para o endereço físico utilizando o hardware
Memory Management Unit (MMU). Todos os endereços lógicos criados formam um
grupo de todos os endereços físicos que recebe o nome de espaço de endereço
lógico.
Oliveira, Carissimi, Toscani (2002, p. 10) de�nem Memória lógica e memória física
como:
O espaço de endereçamento lógico de um processo é formado por
todos os endereços lógicos que esse processo pode gerar. Existe um
espaço de endereçamento lógico por processo. Já o espaço de
endereçamento físico é formado por todos os endereços aceitos pelos
circuitos integrados de memória. A unidade de gerência de memória
(Memory Management Unit, MMU) é o componente do hardware
responsável por prover os mecanismos que serão usados pelo sistema
operacional para gerenciar a memória. Entre outras coisas, é a MMU que
vai mapear os endereços lógicos gerados pelos processos nos
correspondentes endereços físicos que serão enviados para a memória. 
67
O endereço lógico é o caminho para chegar ao endereço físico. O usuário utiliza o
endereço lógico para chegar ao endereço físico na unidade de memória.
Fragmentação
A memória guarda, provisoriamente, um grupo de informações usado pelos
processos. Estas informações são inseridas e retiradas da memória RAM pela MMU,
por intermédio da CPU. No caso de uma memória que é capaz de guardar 15
posições, o processo A pede a utilização de duas posições. A MMU reservará o
primeiro e o segundo espaços, as posições 1 e 2. Em seguida, outro processo, o
processo B pede a utilização de quatro posições, ou seja, solicita quatro espaços na
memória. A MMU reservará as posições 3, 4, 5 e 6. Agora, a memória dispõe de 9
espaços livres e 6 espaços ocupados por dois processos, A e B. O cliente fechou o
processo A, o espaço 1 e 2 serão liberados pela MMU. As posições 1, 2, 7, 8, 9, 10, 11,
12, 13, 14 e 15 estarão liberadas e as posições 3, 4, 5 e 6 estarão ocupadas. A MMU
tirou as informações do processo A, mas não rede�niu os lugares, mudando as
posições ocupadas para os primeiros lugares da memória.
Um terceiro usuário pede a realização de outro processo que precisa de quatro
espaços na memória. A MMU reservará as posições 7, 8, 9 e 10 para este novo
processo, visto que as posições 3, 4, 5 e 6 estão preenchidas e nas posições 1 e 2 não
cabe o que foi pedido. Compreende-se que as duas primeiras posições da memória
permaneceram desocupadas, ou seja, �cou um vazio no início da memória. Estes
tipos de ocorrências podem agravar com as informações inseridas e retiradas da
memória RAM. Este espaço vazio na memória é chamado de fragmentação. A
fragmentação pode ser do tipo fragmentação externa ou fragmentação interna.
A fragmentaçãoexterna acontece quando há espaços livres na memória em
pequeno espaço sem serem seguidos, ou seja, quando há espaços na memória e
estes não são próximos. No exemplo acima ocorreu uma fragmentação externa.
A fragmentação interna acontece quando todo o espaço de um bloco de alocação
de memória não é utilizado na sua totalidade.
68
Estratégias de Alocação
A memória RAM aplica técnicas para manter os dados do sistema operacional e os
inúmeros processos na memória. As principais técnicas para realizar estes
procedimentos são: alocação contígua, alocação por segmentos e alocação paginada.
Na alocação contígua, a memória é fragmentada em duas divisões. Uma divisão é
para o sistema operacional. A outra divisão é para tamanhos �exíveis, são ajustáveis
para se adaptar à solicitação exclusiva de cada processo do usuário. Neste tipo de
alocação, a MMU tem o endereço lógico e procura salvar em uma partição. Se o
espaço pedido for compatível, os dados são salvos, caso contrário, devolve a
interrupção para o processador e informa que o endereço é inválido. Esta alocação é
considerada fácil para ser realizada, tem como desvantagem poder ser transformada
em uma fragmentação externa.
Na alocação por segmentos, a memória é fracionada em espaços que recebem o
nome de segmentos, eles podem ser reservados independentemente da memória
física. Também pode ser transformada em uma fragmentação externa.
A alocação paginada foi desenvolvida para impossibilitar a fragmentação externa e a
obrigação de compactação. A alocação paginada possibilita que o endereçamento
físico de um processo não seja próximo. Este tipo de alocação é atual, é utilizado pela
maioria dos sistemas operacionais atuais. Neste tipo de alocação, o espaço de
endereço lógico é dividido em blocos chamados de páginas, em que para o processo,
esta divisão é separada em grupos que recebem o nome de páginas.
Para os processos esta separação é natural. Da mesma forma, o espaço do endereço
físico é separado em grupos que recebem o nome de quadros. O espaço lógico ou
página será designado em um quadro, ou seja, em um espaço físico sem se importar
com a posição livre na memória principal. Este tipo de relação recebe o nome de
tabela de páginas. 
69
Memória Virtual
O uso de armazenamento externo, como, ampliação da memória principal recebe o
nome de memória virtual. Quando a memória RAM não dispõe de local livre para
arquivar pedidos de um processo, é utilizado algum algoritmo que retira as
informações mais antigas. O algoritmo, então, escolhe algumas informações para
serem salvas em outro local que não seja a memória RAM, podendo ser o disco rígido
e disponibiliza o espaço que precisa para salvar o que foi requerido pelo processo.
Este método recebe o nome de swapping (troca de processo).
De acordo com Maziero (2019, p. 164),
Para ocultar a organização complexa da memória física e simpli�car os
procedimentos de alocação da memória aos processos, os sistemas de
computação modernos implementam a noção de memória virtual, na
qual existem dois tipos de endereços de memória distintos: endereços
físicos (ou reais) são os endereços dos bytes de memória física do
computador. Estes endereços são de�nidos pela quantidade de
memória disponível na máquina. Endereços lógicos (ou virtuais) são os
endereços de memória usados pelos processos e pelo sistema
operacional e, portanto, usados pelo processador durante a execução.
Estes endereços são de�nidos de acordo com o espaço de
endereçamento do processador.
70
Os sistemas operacionais atuais utilizarão a memória virtual paginada. Eles irão
retirar páginas da memória principal para um armazenamento externo, o que
permitirá que haja mais quadros disponíveis na memória RAM. 
Os processadores crescem com uma velocidade absurda, isto ocorre com
mais velocidade que o tamanho de armazenamento das memórias RAM.
Isto faz com que mais processos necessitem de espaço na memória. A
memória virtual possibilita a apropriada performance nos computadores
atuais.
Fonte: A autora, 2021.
71
10
Gerenciamento 
de Arquivos
72
Gerenciamento de Arquivos
As informações que necessitam ser armazenadas por um longo período devem
utilizar dispositivos de armazenamento, disco rígido e o DVD-ROM. Estas informações
necessitam ser administradas de maneira e�ciente pelo sistema operacional. 
Estrutura de Armazenamento de
Massa
Os discos rígidos, os discos óticos, que são os DVD-ROM e CD-ROM, os discos de
estado sólido, que são as memórias �ash e USB, são os dispositivos que oferecem
uma extensa quantidade de memória secundária. É no disco rígido que a maioria dos
sistemas operacionais são instalados. Há também versões que podem ser utilizadas
no USB ou no CD-ROM sem precisar ser instaladas, como é o caso do Ubuntu Linux.
O disco rígido é o dispositivo que possui determinados grupos de discos que rodam
em alta rotação. Nos discos há partições denominadas como setores. É capaz de
existir um disco rígido N partições com N sistemas operacionais.
A partição chamada de Master Boot Record (MBR) tem como obrigação armazenar
uma tabela de partição com os dados das outras partições, bem como o sistema
operacional instalado. A MBR é a responsável por conectar a primeira partição
73
quando o computador é ligado e informar quais sistemas operacionais foram
instalados. Para instalar o sistema operacional, e este funcionar da maneira correta, é
essencial fazer a formatação antes. A formatação corresponde à união dos setores e
o sistema operacional.
Arquivos e Diretórios
Maziero (2019, p. 4) de�ne arquivo como um conjunto de dados armazenados em um
dispositivo não volátil, “um aplicativo acessa dados em disco através de arquivos e
diretórios, sem precisar se preocupar com a estrutura real de armazenamento dos
dados, que podem estar em um disquete, um disco SATA, uma máquina fotográ�ca
digital conectada à porta USB, um CD ou mesmo um disco remoto, compartilhado
através da rede”.
Qualquer arquivo dispõe de um conjunto de características, sendo os mais usados:
nome, extensão ou tipo, tamanho, datas, proprietário ou criador, permissões de
acesso. Para conhecer essas características usando o sistema operacional Windows, é
só clicar com o botão direito em cima de algum arquivo do seu computador e
selecionar propriedades. O sistema operacional identi�ca poucos tipos de arquivos.
Imagens do tipo .JPG, .GIF são identi�cadas pela maioria dos sistemas operacionais,
pois são muito usadas em páginas da internet. Imagem do tipo .PSD, não é
reconhecida pelo sistema operacional, portanto, imagem deste tipo só será aberta se
o software Photoshop estiver instalado corretamente.
74
Os diretórios têm como função melhorar a estruturação lógica dos
arquivos. O sistema operacional ocupa-se de muitos arquivos, contudo, os
usuários necessitam de um jeito para juntar as informações e
disponibilizá-las de uma maneira ordenada para que as próximas
consultas sejam realizadas de maneira simples e rápida.
Sistema de Arquivos
A organização física e lógica dos arquivos e diretórios recebe o nome de sistema de
arquivos. Assim de�ne Maziero (2019, p. 292): “A organização do conteúdo dos
arquivos e diretórios dentro de um dispositivo físico é denominada sistema de
arquivos”. O usuário pode detectar a organização lógica dos arquivos e diretórios
quando tem o sistema operacional instalado.
A organização lógica do Windows, como do Linux, usa de um sistema de arquivo
próprio, contudo, tem como base as estratégias de alocação de arquivos em
memórias de massa.
Há vários sistemas de arquivos, os mais utilizados são: NTFS, FAT, HFS+, Ext2 ou Ext3
ou Ext4.
As NTFS são para os usuários de Windows que possuem a versão a partir de 2000
(inclui XP, Vista, Windows 7 e Windows 8).
A FAT é muito usada em Pen Drives e em versões mais antigas do Windows.
A HFS+ é usada por usuários que possuem computadores da marca Apple com
sistema operacional MAC OS.
A Ext2 ou Ext3 ou Ext4 é usada por usuários que utilizam distribuições Linux.
75
Não se pode confundir as alocações de memória primária

Continue navegando