Buscar

Sistemas Operacionais

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 168 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 168 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 168 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

Este livro é destinado a uma melhor compreensão 
do papel e das atividades desempenhadas pelo 
sistema operacional. Para isso, começa com uma 
apresentação histórica dos sistemas operacionais, 
seus possíveis ambientes, seus componentes e sua 
arquitetura. Em seguida, explica a forma com que 
o sistema operacional interage com o hardware 
e com o software; a execução de tarefas pelos 
sistemas operacionais; a conversão de processos 
em threads; o armazenamento em memória real e 
em memória virtual do computador; e, finalmen-
te, trata da segurança em sistemas operacionais, 
as possíveis formas de ataque e defesa dos siste-
mas e apresenta técnicas de proteção dos dados 
trocados pelos computadores. 
 
Em suma, esta obra traz as informações básicas 
para a compreensão do papel dos sistemas opera-
cionais e destina-se aos estudantes que desejam 
aprofundar seus conhecimentos sobre esse co-
adjuvante que merece todos os créditos por um 
trabalho bem realizado nos nossos computadores.
S
IS
T
E
M
A
S
 O
P
E
R
A
C
IO
N
A
IS
A
N
D
E
R
S
O
N
 D
U
T
R
A
 M
O
U
R
A
Código Logístico
59313
Fundação Biblioteca Nacional
ISBN 978-85-387-6615-5
9 7 8 8 5 3 8 7 6 6 1 5 5
Sistemas Operacionais 
Anderson Dutra Moura
IESDE BRASIL
2020
Todos os direitos reservados.
IESDE BRASIL S/A. 
Al. Dr. Carlos de Carvalho, 1.482. CEP: 80730-200 
Batel – Curitiba – PR 
0800 708 88 88 – www.iesde.com.br
© 2020 – IESDE BRASIL S/A. 
É proibida a reprodução, mesmo parcial, por qualquer processo, sem autorização por escrito do autor e do 
detentor dos direitos autorais.
Projeto de capa: IESDE BRASIL S/A. Imagem da capa: spainter_vfx/ whiteMocca/Shutterstock
CIP-BRASIL. CATALOGAÇÃO NA PUBLICAÇÃO 
SINDICATO NACIONAL DOS EDITORES DE LIVROS, RJ
M884s
Moura, Anderson Dutra
Sistemas operacionais / Anderson Dutra Moura. - 1. ed. - Curitiba 
[PR] : IESDE, 2020. 
164 p. : il.
Inclui bibliografia
ISBN 978-85-387-6615-5
1. Sistemas operacionais (Computadores). I. Título.
20-64981 CDD: 005.43
CDU: 004.451
Anderson Dutra 
Moura
Mestre em Tecnologia da Saúde pela Pontifícia 
Universidade Católica do Paraná (PUCPR). MBA em 
Sistemas de Informação pela mesma instituição. 
Bacharel em Ciência da Computação pela Universidade 
Federal do Paraná (UFPR). Professor universitário há 
mais de 15 anos em diversas instituições de ensino 
superior e empresário da área de tecnologia da 
informação (TI), com mais de 25 anos de experiência.
Agora é possível acessar os vídeos do livro por 
meio de QR codes (códigos de barras) presentes 
no início de cada seção de capítulo.
Acesse os vídeos automaticamente, direcionando 
a câmera fotográ�ca de seu smartphone ou tablet 
para o QR code.
Em alguns dispositivos é necessário ter instalado 
um leitor de QR code, que pode ser adquirido 
gratuitamente em lojas de aplicativos.
Vídeos
em QR code!
SUMÁRIO
1 Introdução aos sistemas operacionais 9
1.1 Evolução dos sistemas operacionais 9
1.2 Ambientes de sistemas operacionais 21
1.3 Componentes e objetivos dos sistemas operacionais 25
1.4 Arquitetura de sistemas operacionais 38
2 Interação do sistema operacional com hardware e software 45
2.1 Arquivos e diretórios 46
2.2 Interpretadores e compiladores 52
2.3 Firmware e middleware 54
2.4 Processadores 57
2.5 Memória 66
2.6 Discos e fitas 70
2.7 Dispositivos de E/S e barramentos 71
3 Processos e threads 76
3.1 Processos 76
3.2 Threads 88
3.3 Execução assíncrona concorrente 95
3.4 Programação concorrente 98
3.5 Deadlock e adiamento indefinido 100
3.6 Escalonamento de processador 103
4 Memória real e virtual 108
4.1 Memória real 108
4.2 Memória virtual 117
4.3 Questões de projeto e implementação 127
5 Segurança em sistemas operacionais 133
5.1 Criptografia 133
5.2 Autenticação 138
5.3 Controle de acesso 142
5.4 Ataques à segurança 146
5.5 Prevenção de ataques e soluções de segurança 148
5.6 Comunicação e protocolos de segurança 154
 Gabarito 1611
Desde sua criação, na década de 1950, a computação evoluiu e passou a 
ocupar um lugar importante no cotidiano das pessoas, seja em casa, seja no 
trabalho, de um modo nunca antes visto. Na forma dos grandes computadores, 
utilizados pelos centros de pesquisa e grandes corporações, computadores 
pessoais, notebooks, tablets e até mesmo celulares, os dispositivos estão 
presentes em nossas vidas, realizando uma quantidade de tarefas além do que 
foi imaginado quando os primeiros aparelhos foram concebidos. Conectados 
a redes com ou sem fio, os computadores permitiram a comunicação entre 
usuários e outras máquinas separadas por longas distâncias.
Desempenhando um papel coadjuvante nessa evolução, surgiu o sistema 
operacional, responsável por atender às solicitações feitas pelos usuários, 
controlar e se comunicar com a infinidade de dispositivos e acessórios, 
que podem ser conectados aos computadores e dispositivos; garantir a 
comunicação e a segurança na troca de informações com os computadores 
em rede ou que acessam a Web, entre outras tarefas.
Este livro é destinado a uma melhor compreensão do papel e das atividades 
desempenhadas pelo sistema operacional. Para isso, começaremos com uma 
apresentação histórica dos sistemas operacionais, seus possíveis ambientes, 
seus componentes e sua arquitetura. Em seguida, apresentaremos a 
forma com que o sistema operacional interage com o hardware e com o 
software; a execução de tarefas pelos sistemas operacionais; a conversão de 
processos em threads; o armazenamento em memória real e em memória 
virtual do computador; e, finalmente, trataremos da segurança em sistemas 
operacionais, as possíveis formas de ataque e defesa dos sistemas e algumas 
técnicas de proteção dos dados trocados pelos computadores.
Em suma, esta obra traz as informações básicas para a compreensão do 
papel dos sistemas operacionais e destina-se aos estudantes que desejam 
aprofundar seus conhecimentos sobre esse coadjuvante que merece todos 
os créditos por um trabalho bem realizado nos nossos computadores.
Bons estudos!
APRESENTAÇÃO
Introdução aos sistemas operacionais 9
1
Introdução aos sistemas 
operacionais
Se formos tomar como base o conceito de sistema operacio-
nal da época em que ele foi criado, veríamos a definição de um 
software que controla um hardware. Para aquele tempo, esse con-
ceito era válido. Porém, se examinarmos o hardware que temos 
hoje, podemos observar que ele está interagindo com um número 
cada vez maior de softwares, simultaneamente. Essa mudança na 
utilização e forma de interação com o software levou à necessi-
dade da redefinição desse conceito; o novo papel desempenhado 
pelo sistema operacional é o de realizar a separação entre as apli-
cações (software e hardware), criando um controle de acesso e um 
conjunto de serviços e permitindo a comunicação entre eles.
Neste capítulo, abordaremos a evolução dos sistemas opera-
cionais, que acompanha a evolução dos computadores e suas di-
versas finalidades, tamanhos e componentes, motivando a criação 
e evolução dos sistemas operacionais. Além disso, observaremos 
os diferentes ambientes e tipos de sistemas nos quais os siste-
mas operacionais estão inseridos, os principais componentes dos 
sistemas operacionais e as características consideradas essenciais 
em um sistema operacional. Por último, analisaremos a arquitetura 
dos sistemas operacionais. 
1.1 Evolução dos sistemas operacionais 
Vídeo Segundo Deitel, Deitel e Choffnes (2005), um sistema operacio-
nal é um software que habilita as aplicações para interagirem com 
o hardware de um computador. Com a evolução dos hardwares, 
suas diferentes aplicações e múltiplas possibilidades de utilização de 
softwares, podemos encontrar os sistemas operacionais não somente 
10 Sistemas Operacionais
em computadores de pequeno ou grande porte, mas também em nos-
sos celulares, geladeiras, automóveis, televisões, videogames etc.
Na maioria dos casos, a interaçãoentre o usuário e o sistema operacio-
nal se resume à execução de uma tarefa, como executar um aplicativo ou 
copiar um arquivo. Ao receber esse comando, o sistema operacional faz 
a interação entre o hardware e o software, necessária para que a tarefa 
solicitada seja cumprida. Isso faz com que, para o usuário, o sistema ope-
racional seja um mero coadjuvante na execução das suas tarefas; porém, 
ele desempenha um papel primordial nessa relação, com o hardware ge-
renciando os recursos disponíveis e o software gerenciando as aplicações 
em seus diferentes formatos e distribuições.
A evolução dos sistemas operacionais está intimamente ligada à 
dos computadores. À medida que os computadores foram se moder-
nizando, por meio de novos dispositivos de hardware e novas formas 
de programação, fez-se necessária a criação e adaptação dos sistemas 
operacionais para realizar a comunicação entre as aplicações (software 
e hardware), bem como para atender à crescente expectativa por parte 
dos usuários.
A primeira fase de computadores, criados entre 1945 e 1955, se 
caracterizava pelo uso de milhares de válvulas, que ocupavam enormes 
áreas e ainda não faziam uso de sistemas operacionais. A interação dos 
programadores com essas máquinas era feita com chaves mecânicas, nas 
quais se introduziam os comandos bit-a-bit 1 , para que estes fossem con-
vertidos em uma linguagem que a máquina pudesse compreender.
Esse cenário somente foi melhorado com a criação dos cartões per-
furados, nos quais os comandos bit-a-bit foram transformados em se-
quências no papel, acelerando o processo de programação por meio 
de linguagens, como assembly, que convertiam os sinais recebidos no 
cartão e permitiam a realização de operações básicas pelo computador.
Para que um programador pudesse executar um job, isto é, um pro-
grama ou conjunto de programas, ele deveria escrevê-lo em uma fo-
lha de papel, fazendo uso da linguagem de programação chamada de 
Fortran ou em linguagem de montagem (assembly). Após essa etapa, 
ele iria transferir o programa para um cartão perfurado (Figura 1). Nes-
se momento, ele poderia utilizar um ou mais cartões para representar 
o seu programa. Depois disso, os cartões seriam entregues para serem 
processados aos operadores do computador.
Para ter uma noção do 
esforço realizado pelos 
pioneiros da computação, 
assista ao filme O jogo 
da imitação. Baseado no 
livro de Alan Turing, The 
Enigma, o longa-metra-
gem retrata a busca de 
Turing para desenvolver 
um computador capaz de 
decodificar as mensagens 
nazistas, geradas pela 
máquina Enigma.
Direção: Morten Tyldum. São Paulo: 
Paris Filmes, 2016.
Filme
A expressão bit (dígito binário - 
BInary digiT) é a menor unidade 
de medida de transmissão de 
dados utilizada pelos computa-
dores. Um bit possui valor único, 
podendo ser definido como zero 
ou um, verdadeiro ou falso.
1
Para ter uma noção 
da primeira e segunda 
fase dos computadores, 
assista ao filme Estrelas 
além do tempo, que 
conta a história de três 
matemáticas da Nasa (Ka-
therine Johnson, Dorothy 
Vaughn e Mary Jackson), 
as quais se mostram 
parte fundamental da 
evolução tecnológica 
durante a Guerra Fria.
Direção: Theodore Melfi. São Paulo: 
WB Filmes, 2017.
Filme
https://pt.wikipedia.org/wiki/NASA
https://pt.wikipedia.org/wiki/Katherine_Johnson
https://pt.wikipedia.org/wiki/Katherine_Johnson
https://pt.wikipedia.org/wiki/Dorothy_Vaughan
https://pt.wikipedia.org/wiki/Dorothy_Vaughan
https://pt.wikipedia.org/wiki/Mary_Jackson
Introdução aos sistemas operacionais 11
Figura 1
Cartão perfurado
Ar
no
ld
Re
in
ho
ld
/W
ik
im
ed
ia
 C
om
m
on
s
O primeiro sistema operacional surgiu no início da década de 1950, 
desenvolvido pelos Laboratórios de Pesquisa da General Motors, e foi 
chamado de GM-NAA I/O, para ser executado nos computadores IBM 
701 (Figura 2), e comercializado a partir de 1953.
O desenvolvimento do transistor e das 
memórias magnéticas marcou o começo da 
segunda fase de computadores, aqueles 
que foram construídos entre 1955 e 1965. 
A substituição das válvulas da primeira fase 
pelo transistor trouxe velocidade e confia-
bilidade ao processamento. Já a criação das 
memórias magnéticas garantiu que os da-
dos fossem acessados mais rapidamente, 
aumentou a capacidade de armazenamento 
e permitiu que o tamanho dos computado-
res fosse reduzido. Com essa evolução, os 
computadores tornaram-se mais confiáveis 
e passaram a ser comercializados, porém 
com uso restrito para a realização de cálculos 
científicos e de engenharia.
A segunda fase marcou a distinção dos 
profissionais que participavam do projeto, da 
construção, da operação, da programação e 
da manutenção dos computadores, os quais 
passaram a ser instalados em salas exclusi-
Figura 2
Computador IBM 701
Da
n/
W
ik
im
ed
ia
 C
om
m
on
s
12 Sistemas Operacionais
vas para eles, que eram acessadas somente pelo pessoal autorizado e 
especializado. Em virtude do alto custo para aquisição, instalação e ma-
nutenção desses computadores, eles eram utilizados exclusivamente 
por grandes empresas, órgãos governamentais ou universidades.
Nessa fase, quando um programa (job) encerrava o seu processa-
mento, um dos operadores da máquina retirava o relatório de saída, 
que havia sido impresso pelo programa, deixando-o na expedição. Esse 
relatório seria retirado, posteriormente, pelo programador do job. Ten-
do feito isso, o operador selecionava um novo grupo de cartões, que 
haviam sido deixados pelos programadores na recepção, avaliando e 
providenciando os recursos necessários para a execução desse novo 
programa – por exemplo, a utilização do compilador Fortran, fazendo 
com que o operador realizasse a leitura do grupo de cartões correspon-
dente ao compilador. Boa parte das atividades realizadas nessa fase es-
tavam concentradas no trabalho dos operadores, que circulavam pela 
sala e providenciavam os recursos necessários para a execução dos 
jobs que estavam sob sua responsabilidade.
Além do alto custo dos computadores, a forma como os programas 
eram executados não era muito eficiente, pois dependia da inserção 
manual por parte dos operadores e, enquanto não eram alimenta-
dos por novas massas de cartões, os processadores ficavam ociosos. 
Buscando reduzir o desperdício do tempo de utilização da máqui-
na, sua alimentação passou a seguir um novo modelo, chamado de 
sistema batch (lote).
A ociosidade dos processadores era decorrente da utilização das lei-
toras de cartão, como periférico de entrada, e das impressoras, como 
periférico de saída. Os processadores eram lentos, quando compara-
dos ao processador que ficava aguardando a entrada dos dados, via 
cartão, ou o final da impressão do relatório, que marcava o término de 
execução do programa.
Em 1957, a utilização da fita magnética surgiu como uma opção 
para resolver esse problema. Os dados dos cartões magnéticos eram 
transferidos para uma fita, que posteriormente era lida pelo computa-
dor; o mesmo ocorria com os resultados que deveriam ser impressos, 
sendo copiados para uma outra fita. Assim, criando uma separação en-
tre sistemas, o sistema auxiliar carregava os dados na fita magnética e 
Introdução aos sistemas operacionais 13
realizava a impressão, deixando o sistema principal responsável pelo 
processamento.
A utilização da fita magnética para armazenamento dos dados de 
entrada e dos resultados de saída foi chamada de rolamento (spooling). 
Essa técnica permitia que a massa de cartões fosse gravada em uma 
fita, enquanto o sistema principal executava outro programa e gravava 
seus resultados em outra fita, que seria lida pelo sistema secundário, 
responsável por imprimir esses dados. Com sua utilização, as tarefas 
de entrada e saída foram agrupadas, maximizando o número de tare-
fas processadas por unidade de tempo (throughtput) no sistema prin-
cipal. Porém, a circulação das fitas pela sala ainda consumia tempo e, 
caso um programa muito longo fosse executado, ocasionava um atraso 
na execução dos demaisprogramas, em virtude da natureza sequen-
cial do processo.
Os programadores deixaram de se preocupar em desenvolver ro-
tinas de leitura/gravação específicas, para cada dispositivo periférico, 
quando os sistemas operacionais incorporaram um conjunto de roti-
nas para operação de entrada/saída (Input/Output Control System – 
IOCS). Com isso, possibilitava-se a interdependência de dispositivos, o 
que trouxe avanços, como o conceito de canal, que permitia a transfe-
rência de dados entre dispositivos de E/S e a memória principal, sem a 
participação da CPU (UCP – Unidade Central de Processamento).
A segmentação no uso dos computadores – divididos em computa-
dores científicos de larga escala, usados em processamento científico 
e em computadores comerciais e utilizados por bancos, companhias 
de seguro e departamento de recursos humanos, que realizavam ope-
rações de pesquisa de arquivos em fita magnética e a impressão de 
relatórios – marcou o surgimento da terceira fase de computadores, 
abrangendo aqueles criados entre 1965 e 1980.
Entretanto, o desenvolvimento e o suporte de duas linhas de pro-
dutos diferentes, uma para uso científico e outra para uso comercial, 
representavam um grande desafio para os fabricantes na época, pois 
os clientes, inicialmente, necessitavam de máquinas mais simples e, 
gradualmente, foram exigindo mais agilidade no processamento e au-
mento na capacidade de armazenamento. Mesmo com a atualização 
de seu equipamento, o usuário poderia encontrar dificuldade em exe-
14 Sistemas Operacionais
cutar mais rápido um programa que foi desenvolvido na sua máquina 
inicial, mais simples que a atual.
Buscando solucionar o problema de performance e de armazena-
mento, a International Business Machine (IBM) lançou a série 360, com-
posta de máquinas compatíveis entre si. A série começava com o 1401, 
um computador menos potente, chegando até o IBM 7094, o computa-
dor mais potente da série. A diferença entre os computadores estava no 
preço e na performance, em virtude da quantidade de memória, da velo-
cidade do processador, do número de dispositivos de E/S etc. A compa-
tibilidade dos programas a serem executados nos computadores dessa 
série era garantida por uma arquitetura comum entre eles e um mesmo 
conjunto de instruções básicas. Com a série 360, a IBM conseguia unir, 
em um mesmo conjunto de computadores, a utilização tanto para uso 
científico como para uso comercial.
Uma outra inovação trazida pela IBM, na série 360, foi a utilização dos 
Circuitos Integrados (CI) ou Small Scale Integration (SSI) na sua fabrica-
ção, o que trouxe um resultado de preço e performance muito superior 
quando comparado com os computadores da fase anterior, construídos 
com transistores individuais. O sucesso da série 360, que trouxe o con-
ceito de uma família de computadores compatíveis, fez com que os ou-
tros fabricantes adotassem, rapidamente, essa ideia.
Realmente, a ideia da IBM era muito boa: a criação de uma família 
de computadores que atendessem ao processamento comercial e ao 
científico, de modo eficiente, e que permitissem qualquer programa. 
Entre esses programas, estava o sistema operacional OS/360, nativo 
tanto nas máquinas pequenas, que desenvolviam atividades mais sim-
ples e gerenciavam poucos periféricos, como nas máquinas maiores, 
que realizavam cálculos matemáticos mais complexos e possuíam uma 
variedade muito grande de dispositivos de E/S.
Na prática, a ideia de compatibilidade da série 360 acabou se revelan-
do um grande problema, pois o OS/360, sistema operacional da série, era 
muito complexo, sendo três vezes maior do que os sistemas operacionais 
utilizados em computadores mais antigos. O OS/360 possuía muitos códi-
gos escritos em linguagem de máquina, apresentando um número grande 
de erros, que, à medida que eram resolvidos, revelavam novos erros.
Mesmo diante da complexidade, tamanho e erros de execução, o sis-
tema operacional OS/360 e os sistemas operacionais de outros fabrican-
Introdução aos sistemas operacionais 15
tes, que seguiram o seu modelo, foram bem recebidos pelos usuários, 
pois introduziam novas técnicas até então não disponíveis nos sistemas 
operacionais, como a multiprogramação, que permitia a execução si-
multânea de vários programas por meio do compartilhamento de acesso 
à memória principal, ocupando em cada um deles um espaço reservado.
A evolução trazida pelo OS/360 e os sistemas de outros fabricantes 
não mudou o fato de que o processamento ainda era realizado em lote, 
ou seja, eles ainda eram sistemas batch. Além disso, em virtude da auto-
matização de muitas tarefas, os programadores começaram a sentir fal-
ta do tempo em que tinham acesso ao computador por horas seguidas 
e podiam consertar, com mais agilidade, os seus jobs. O grande desafio 
era que os programadores daquela época não estavam presentes quan-
do seus programas eram executados – eles os deixavam em cartões 
perfurados ou fitas de computador, aos cuidados do operador de sis-
tema responsável por carregá-los no computador para execução. Caso 
ocorresse um erro durante a execução, o job era paralisado e somente 
poderia ser executado novamente depois de ser corrigido, o que o fazia 
entrar, mais uma vez, na fila de espera por carregamento e execução.
Com a padronização obtida pelos computadores da série 360, ao uti-
lizar seu modelo mais potente, o IBM 7094, evidenciou-se que, nas apli-
cações científicas, as operações de E/S não eram usadas com frequência; 
o contrário acontecia nas aplicações comercias, que utilizavam muito os 
dispositivos de E/S, acarretando uma ociosidade por parte do processa-
dor que, ao finalizar o job atual, ficava esperando o encerramento das 
operação de E/S. Isso não era perceptível para as aplicações científicas, 
mas para as comerciais representava uma perda de 80 a 90% de tem-
po. A observação dessa diferença de comportamento e do desperdício 
no uso do processador trouxe à tona um problema que precisava ser 
solucionado.
O conceito de compartilhamento de tempo (time sharing), uma va-
riante da multiprogramação, surgiu em resposta à necessidade de se 
conseguir melhores tempos de resposta no processamento. Com a im-
plantação do compartilhamento de tempo, cada usuário passou a aces-
sar um terminal que não possuía capacidade de processamento e que 
era on-line, isto é, ligado diretamente ao computador por uma conexão 
ativa. Por meio desse terminal, os programadores poderiam se comuni-
car com seus programas em tempo de execução. Porém, para que essa 
técnica pudesse ser disseminada, eram necessárias ações de proteção 
16 Sistemas Operacionais
do hardware do computador, que passou a ser acessado pelos 
programadores.
Entre os sistemas operacionais, que faziam uso de time 
sharing na terceira fase dos computadores, podemos citar:
Vyacheslavikus/Shutterstock
O sistema Multiplexed 
Information and 
Computing Service 
(Multics) – desenvolvido 
pelo MIT, General 
Electric (GE) e Bell 
Laboratories para 
substituir o CTTS. Seus 
desenvolvedores foram 
os primeiros a utilizar 
o termo processo para 
descrever um programa 
em execução no sistema 
operacional. Também 
foi o primeiro sistema 
operacional escrito com 
uma linguagem de alto 
nível (EPL) e não uma 
linguagem de montagem 
(assembly).
Control Program/
Conversational Monitor 
System (CP/CMS) 
– programa de controle/
sistema monitor 
conversacional –, 
que eventualmente 
evoluiu para o sistema 
operacional Virtual 
Machine (VM) – máquina 
virtual –, desenvolvido 
pelo Cambridge Scientific 
Center da IBM.
Compatible Time- 
-Sharing System 
(CTTS), traduzido 
como sistema 
compatível de tempo 
compartilhado, 
desenvolvido pelo 
Massachusetts 
Institute of 
Technology (MIT).
Time sharing 
system (sistema 
de tempo 
compartilhado), 
desenvolvido 
pela IBM.
Uma das conquistas dessa fase foi a diminuição do tempo de 
retorno, isto é, o tempo entre a submissão de um job e o retorno de 
seus resultados foi reduzido para minutos ou até segundos.Assim, 
o programador não precisava esperar muito tempo para corrigir os 
erros mais simples; ele dava entrada no programa e realizava a com-
pilação, na qual recebia uma lista dos erros de sintaxe. Isso permitia 
a execução, depuração, correção e conclusão do programa com eco-
nomia de tempo.
Os sistemas operacionais TSS, Multics e CP/CMS incorporavam 
o conceito de memória virtual, em que os programas conseguiam 
endereçar mais localizações de memória do que as providas pela 
memória principal, também chamada de memória real ou física. 
Isso permitia que os programadores se preocupassem com o desen-
volvimento das aplicações e não precisassem mais atuar no geren-
ciamento de memória.
Introdução aos sistemas operacionais 17
Tendo sido concebido e implementado, em 1969, na AT&T Bell 
Laboratories, por Ken Thompson, Dennis Ritchie, Douglas McIlroy e 
Joe Ossanna, o sistema operacional Unix foi lançado em 1971, todo 
escrito em linguagem assembly. Sua versão original foi substituída, 
em 1973, por uma nova versão, reescrita por Dennis Ritchie, com a lin-
guagem de programação C – uma linguagem de alto nível, que garan-
tiu a portabilidade do Unix para outras plataformas de computador.
Assim, o Unix cresceu rapidamente e se disseminou por institui-
ções acadêmicas e empresas, pois, em virtude de uma lei antitrus-
te, que proibia a AT&T de entrar no ramo de computadores, o seu 
código-fonte precisou ser licenciado.
Os computadores na década de 1970 foram marcados por algu-
mas evoluções, como:
a. o aumento na comunicação entre sistemas de computadores 
nos EUA, graças ao uso dos padrões Transmission Control 
Protocol/Internet Protocol (TCP/IP), criados pelo departamento 
de defesa americano, que passaram a ser utilizados em larga 
escala, especialmente no meio militar e acadêmico;
b. o padrão Ethernet, desenvolvido pelo Palo Alto Research 
Center (PARC) da Xerox, que popularizou a comunicação em 
redes locais (Local Area Network – LAN);
c. o microprocessador comercial criado pela Intel, tendo como 
destaque o modelo 8080, que serviu de base para os primeiros 
microcomputadores pessoais, e fazendo uso do sistema operacional 
Control Program Monitor (CP/M), também criado pela Intel.
Em virtude dessas evoluções e com o aumento da transferência de 
dados em ambientes vulneráveis, a segurança se tornou um proble-
ma. Isso aumentou a responsabilidade dos sistemas operacionais, que 
passaram a atender as novas demandas, como as funcionalidades de 
redes e de segurança, além da melhoria no desempenho, por causa 
das demandas comerciais.
O desenvolvimento da integração de circuitos em grande esca-
la (LSI – Large-scale Integration) marcou o início da quarta fase de 
computadores, produzidos a partir de 1981, época em que surgi-
ram os chips, nos quais milhares de transistores estavam encapsu-
lados em 1 cm² de silício. Esse fato permitiu o desenvolvimento do 
conceito de computador pessoal.
18 Sistemas Operacionais
O surgimento de softwares, como planilhas de cálculo, editores de 
texto, bancos de dados e pacotes gráficos, ajudou a dar impulso à revo-
lução da computação pessoal, criando uma demanda entre as empresas, 
as quais podiam usar esses aplicativos para aumentar sua produtividade.
Nessa fase, a aquisição de computadores por empresas ou univer-
sidades foi facilitada pelo surgimento de oferta dos minicomputado-
res – como os da classe PDP-11, desenvolvidos pela Digital Equipment 
Corporation (DEC) –, que não eram muito diferentes em termos de ar-
quitetura dos computadores pessoais.
Também, nessa fase, surgiu o conceito de rede, que permitia a troca 
de informações entre os computadores pessoais ligados a ela. A evolu-
ção desse conceito é a internet, com a qual a maioria dos computado-
res pessoais estão conectados atualmente. Os computadores pessoais 
mais poderosos passaram a ser chamados de workstations (estações de 
trabalho) e eram usados nas mais diferentes atividades.
Com o desenvolvimento e a disseminação dos computadores, os 
softwares também precisaram passar por uma evolução, para que se 
tornassem o mais amigável possível para o usuário, ocultando toda a ló-
gica envolvida no funcionamento do computador. Assim, foram criadas 
as Graphicals User Interfaces (GUI) – interfaces gráficas com o usuário 
–, pelo PARC da Xerox, que também desenvolveu o mouse. A aplicação 
dessas interfaces se deu de maneira intensa na criação dos sistemas 
operacionais. No Apple Macintosh (Figura 3), lançado em 1984, a GUI 
estava embutida no sistema operacional, padronizando o aspecto de 
todas as aplicações.
Nessa fase, podemos destacar sistemas operacionais, 
como: o MS-DOS, lançado em 1981, pela Microsoft, para ser 
utilizado no Personal Computer (PC) da IBM; o System OS, cria-
do pela Apple; e o Windows, também criado pela Microsoft, 
com base em um ambiente gráfico, sobreposto ao MS-DOS. 
No segmento de mini e superminicomputadores, destacaram-
-se os sistemas multiusuários, compatíveis com Unix e o VMS 
da DEC.
O ano de 1983 marcou o início de uma revolução no desen-
volvimento de software. Nesse ano, Richard Stallman, um ex-
-funcionário da IBM, ex-aluno de Harvard e desenvolvedor do 
MIT, fundou o movimento de software livre, que buscava obter e 
Figura 3
Apple Macintosh
Kevin chen20
03/Wikimedi
a Commons
Introdução aos sistemas operacionais 19
garantir certas liberdades para os usuários, como o direito de executar, 
estudar e modificar o software, além de a liberdade de distribuir cópias 
desse software, com ou sem alterações. O lançamento do Projeto GNU, 
também criado por Stallman, representou o marco de início do mo-
vimento de software livre. O objetivo do projeto era criar um sistema 
operacional, chamado GNU, com base em software livre. Esse projeto é 
mantido, atualmente, pela Free Software Foundation (FSF) – Fundação 
para o Software Livre – fundada por Stallman, em 1985.
O núcleo (core) do sistema operacional Linux começou com um 
projeto particular de Linus Torvalds, inspirado no Minix, um pequeno 
sistema operacional baseado no Unix, que foi criado por Andrew S. 
Tanenbaum para fins acadêmicos.
Na década de 1980, foram desenvolvidos os sistemas operacionais 
distribuídos, que trabalham com vários processadores. Esse conceito 
foi popularizado pelo modelo cliente/servidor (client/server), em que 
os clientes são os computadores de usuários que requisitam vários 
serviços, e os servidores são computadores que executam os serviços 
requisitados. Muitas vezes, os servidores eram dedicados a um tipo es-
pecífico de tarefa, como: renderização de gráficos, gerenciamento de 
banco de dados ou hospedagem de páginas web.
A utilização de vários processadores, por parte dos sistemas distribuí-
dos, levou à necessidade de se melhorar os algoritmos de escalonamen-
to de processador, a fim de aprimorar o grau de paralelismo do sistema.
Os softwares de redes e as redes de computadores passaram a 
ocupar um lugar de destaque nos sistemas operacionais, permitindo o 
acesso a outros sistemas computacionais, independentemente do fa-
bricante, estado ou, até mesmo, país.
O multiprocessamento, isto é, a adição de mais processadores 
ao computador, marcou o final dos anos 1980. Esse avanço veio para 
atender à exigência das aplicações na realização de volumes de cálcu-
los gigantescos. Diante disso, os sistemas operacionais precisaram se 
atualizar com novos mecanismos de controle e sincronismo, garantin-
do a execução simultânea de mais de um programa ou, ainda, a execu-
ção de um mesmo programa em processadores diferentes.
Entre as novas tecnologias que foram introduzidas, com a utilização 
do multiprocessamento, garantindo o aumento de performance dos 
computadores, podemos destacar:
https://pt.wikipedia.org/wiki/Sistema_operacional
https://pt.wikipedia.org/wiki/Sistema_operacional
https://pt.wikipedia.org/wiki/GNU
https://pt.wikipedia.org/wiki/Software_livre
20 Sistemas Operacionais
O uso dos processadores vetoriais ou processadores de matriz, 
que implementavam um conjuntode instruções no formato de matrizes 
unidimensionais de dados, chamadas vetores. Diferentemente dos 
processadores escalares, cujas instruções operavam em itens de dados 
individualmente, essa abordagem garantia um melhor desempenho 
em simulações numéricas. Tendo surgido no início da década de 1970 
e dominado os projetos de supercomputadores até os anos 1990, o 
surgimento dos microprocessadores, com uma melhor relação entre 
preço e desempenho, pôs fim à sua utilização.
O uso das técnicas de paralelismo, que permitem a execução 
simultânea das tarefas.
Os sistemas operacionais desenvolvidos na década de 1990 foram 
marcados por uma interface mais amigável com o usuário; as capa-
cidades de GUI, incluídas pela Apple no seu sistema operacional, e o 
System OS, nos anos 1980, foram ampliados e melhorados. A possibili-
dade de o usuário adicionar e remover componentes de hardware (plu-
g-and-play – ligar e usar) sem ter de reconfigurar o sistema operacional 
tornaram-se reais. Os usuários passaram a autenticar seu acesso ao 
sistema operacional, mantendo o seu perfil e permitindo a personaliza-
ção da interface, diferenciando-a dos demais usuários.
O núcleo do Linux, versão 0.02, foi lançado por Linus Torvalds em 
1991. No ano seguinte, ele mudou a licença do núcleo do Linux para a 
licença GPL (General Public License), criada pelo Projeto GNU, que foi, 
inicialmente, utilizado por programadores, que interagiam por linhas de 
comando. Atualmente, esse projeto é usado por grupos de desenvolve-
dores que criam interfaces gráficas para diferentes distribuições GNU/Li-
nux, tornando-o um sistema operacional mais acessível. O projeto reúne 
muitos programadores, de diversas partes do mundo, que contribuem 
com o desenvolvimento do Linux, tornando o projeto um exemplo de 
sucesso colaborativo no desenvolvimento de um sistema operacional.
O Linux é disponibilizado aos usuários por meio de várias distri-
buições, como: Arch Linux, CentOS, Debian, Fedora Linux, Linux Mint, 
openSUSE, Ubuntu etc. Os usuários corporativos fazem uso de distri-
buições focadas nesse público, como Red Hat Enterprise Linux ou SUSE 
Linux Enterprise Server. Uma distribuição Linux inclui: o núcleo Linux, 
bibliotecas e utilitários, além de aplicações, como a suíte de escritório 
denominada LibreOffice.
Introdução aos sistemas operacionais 21
Nos anos 2000, um número cada vez maior de computadores 
passou a conseguir realizar paralelismo maciço, pois possuíam uma 
grande quantidade de processadores, permitindo que partes indepen-
dentes das operações pudessem ser executadas em paralelo. Esse é 
um conceito drasticamente diferente da computação sequencial das 
fases iniciais das máquinas.
A computação em dispositivos móveis, como celulares e tablets, tor-
nou-se cada vez mais comum à medida que os processadores ficavam 
menores e mais poderosos. O que era utilizado, inicialmente, para opera-
ções como e-mail, navegação web e fotos, hoje é utilizado por aplicações 
intensivas em recursos, como videoconferências. Apesar de limitados pelo 
tamanho, os dispositivos móveis dependem da computação distribuída 
para atender à sua demanda crescente de dados e processamento.
1.2 Ambientes de sistemas operacionais 
Vídeo Atualmente, os computadores são utilizados por usuários no seu 
dia a dia, em computadores pessoais (desktops), notebooks, estações 
de trabalho (workstations) ou dispositivos móveis (celulares e tablets); 
ou corporativamente, por meio de servidores web, servidores de ban-
cos de dados, entre outros. Isso fez com que os sistemas operacionais 
tivessem de se relacionar com um crescente número de recursos de 
hardware, como: memória principal, discos de alta capacidade, dis-
positivos periféricos etc. Somado a isso, do outro lado, há o sistema 
operacional que se responsabiliza pela execução de uma infinidade de 
aplicações (software) com diferentes finalidades (Figura 8). 
Aplicação Espaço do usuário 
Espaço do núcleo
Componentes do SO 
Aplicação
Interface de chamada ao sistema
Aplicação
Figura 4
Interação entre as aplicações e o sistema operacional
Fonte: Deitel; Deitel; Choffnes, 2005.
22 Sistemas Operacionais
Diante dessa diversidade de hardware e software, os sistemas ope-
racionais precisaram se adaptar a diferentes tipos de ambientes.
1.2.1 Sistemas embarcados
Segundo Stallings (2017), bilhões de sistemas operacionais são pro-
duzidos anualmente. Os sistemas embarcados são computadores de-
dicados ou embutidos, presentes em equipamentos que estão a nossa 
volta, sendo chamados de computadores pervasivos ou ubíquos. Segun-
do Li (2003), os usuários muitas vezes não percebem sua existência, 
mas podemos encontrá-los nos eletroeletrônicos, hardwares de rede, 
equipamentos hospitalares, automóveis etc.
Ao desenvolver sistemas operacionais para sistemas embarcados, 
a grande preocupação está em gerenciar, de maneira eficiente, os re-
cursos disponíveis. Como estamos falando de dispositivos de pequeno 
porte, a capacidade de armazenamento é limitada, levando à necessida-
de da construção de sistemas operacionais que atendam aos serviços 
necessários, com uma pequena quantidade de código. Outros pontos a 
serem observados nesse tipo de sistema são: gerenciamento de energia 
(bateria) e a necessidade de interfaces amigáveis para os usuários.
1.2.2 Sistemas de tempo real
Com a disseminação do uso de sistemas computacionais, as aplica-
ções com requisitos de tempo real tornaram-se cada vez mais comuns, 
variando em relação à complexidade e às necessidades de garantia no 
atendimento das restrições temporais. Assim, elas abrangem desde os 
sistemas mais simples, como os controladores inteligentes embarca-
dos em utilidades domésticas (por exemplo, as lavadoras de roupa e 
os DVD players), até os sistemas mais complexos, como os sistemas 
militares de defesa e os de controle de tráfego aéreo. Mesmo sendo 
caracterizadas como aplicações de tempo real, algumas delas apresen-
tam restrições de tempo mais rigorosas do que outras; entre elas, po-
demos destacar os sistemas responsáveis pela respiração artificial de 
pacientes, que estão internados em Unidades de Terapia Intensiva (UTI) 
de hospitais, e os sistemas embarcados em robôs e veículos (automó-
veis, aviões e sondas espaciais). Para exemplificar, o piloto automático 
de uma aeronave deve ajustar, constantemente, a velocidade, altitude 
e direção. Há, porém, aplicações que não apresentam restrições tão crí-
Introdução aos sistemas operacionais 23
ticas, como: os consoles de games, as teleconferências e as aplicações 
de multimídia. Todas essas aplicações, que apresentam a característica 
adicional de estarem sujeitas a restrições temporais, são agrupadas no 
que é usualmente identificado como sistemas de tempo real.
Ao desenvolver sistemas operacionais para sistemas de tempo real, é 
necessário assegurar que os processos respondam imediatamente aos 
eventos críticos. Os sistemas de tempo real não críticos devem garan-
tir a execução das tarefas de tempo real com alta prioridade, mas sem 
a garantia de que elas sejam concluídas a tempo ou que, até mesmo, 
sejam concluídas. Já os sistemas de tempo real críticos garantem que 
todas as tarefas serão concluídas a tempo. Muitas vezes, os sistemas de 
tempo real são usados em sistemas de missão crítica, um sistema es-
sencial para a sobrevivência de uma empresa ou organização – ou seja, 
quando esse tipo de sistema falha, as operações param e o negócio, por 
sua vez, é afetado.
1.2.3 Sistemas críticos em negócios
Um sistema é considerado um sistema crítico em negócios quan-
do falha e pode resultar em perdas econômicas significativas para a 
empresa que o utiliza. Podemos citar como exemplos os servidores 
web e os servidores de bancos de dados.
Os sistemas operacionais garantem aos sites de comércio eletrôni-
co (e-commerce) um tempo de resposta rápido ao usuários que estão 
comprando produtos pela internet; no uso corporativo, eles permitem 
o compartilhamento de informações entre funcionários.1.2.4 Máquinas virtuais
O conceito de máquina virtual (virtual machine – VM) permite a um 
programa agir como um computador completo, com um sistema opera-
cional funcional. Assim, temos um computador sendo executado dentro 
de outro computador. Para que isso aconteça, um programa cliente é uti-
lizado como uma camada de virtualização entre o sistema operacional do 
computador hospedeiro e o sistema operacional do computador virtual.
A virtualização não é semelhante à emulação, em que os recursos 
de um programa ou sistema são copiados e executados com o compu-
tador hospedeiro. Na virtualização, a VM consegue operar de maneira 
independente e isolada, conseguindo executar o sistema operacional, 
24 Sistemas Operacionais
mesmo que esse seja incompatível com a arquitetura utilizada no com-
putador hospedeiro.
Chamamos esse recurso de portabilidade – a capacidade de o 
software ser executado em várias plataformas. Os recursos da máqui-
na virtual são gerenciados pelo sistema operacional dela. Uma das faci-
lidades oferecidas pela virtualização é permitir que várias instâncias de 
sistemas operacionais diferentes possam ser executadas, simultanea-
mente, em um computador hospedeiro. Dessa forma, podemos ter um 
computador hospedeiro fazendo uso do sistema operacional Windows, 
que executa VMs com diferentes versões de Linux.
As VMs fazem interface, via sistema operacional, com o hardware 
do computador em que estão instaladas. Uma VM é capaz de criar 
componentes de software que representam dispositivos físicos – 
como processadores, memória, canais de comunicação, discos etc. 
–, o que permite o compartilhamento de hardware entre vários 
usuários (Figura 5).
A Java Virtual Machine (JVM) – máquina virtual java – é umas das VMs 
mais utilizadas, servindo como fundamentação da plataforma Java. Ela 
permite que as aplicações Java sejam executadas na versão correta de 
JVM, independentemente da plataforma em que esteja instalada.
Empresas como a VMWare Software e Oracle fornecem máquinas vir-
tuais, baseadas na arquitetura Intel, permitindo a execução de sistemas 
operacionais Linux e Windows, simultaneamente, em um só computador.
Aplicações
Aplicações
Aplicações
Máquina Virtual
Aplicações
Aplicações
Linux
Sistema operacional
Windows Unix Camada de 
hardware 
virtual
Camada de 
hardware 
físico
Software
Processador Memória Disco
Fonte: Deitel; Deitel; Choffnes, 2005.
Leia o livro Sistemas 
operacionais de tempo 
real e sua aplicação em 
sistemas embarcados 
para encontrar uma 
introdução teórica sobre 
sistemas de tempo real, 
além de exemplos de sua 
aplicação.
DENARDIN, G. W.; BARRIQUELLO, C. 
H. 1. ed. São Paulo: Blucher, 2019.
Livro
Figura 5
Diagrama de 
uma máquina 
virtual
Introdução aos sistemas operacionais 25
As VMs tendem a ser menos eficientes do que os computado-
res reais, pois não acessam o hardware diretamente ou simulam 
o hardware que não está conectado no computador hospedeiro, o 
que aumenta o número de instruções de software requeridas para 
cada ação de hardware.
1.3 Componentes e objetivos dos 
sistemas operacionais Vídeo
Nesta seção, apresentaremos os principais componentes de um 
sistema operacional, assim como os principais objetivos a serem al-
cançados por um sistema operacional, isto é, suas características con-
sideradas essenciais.
1.3.1 Componentes centrais do sistema operacional
A interação do usuário com o sistema operacional é feita pelas 
aplicações ativadas por ele ou por meio de uma aplicação especial 
chamada shell, que atua como um interpretador de comandos. A im-
plementação dos interpretadores de comandos é feita pelas interfaces 
de texto, que recebem os comandos dos usuários via teclado ou pela 
interface gráfica (GUI), em que o usuário interage com o mouse, requi-
sitando a execução de serviços para o sistema operacional, como abrir 
um aplicativo. Os sistemas operacionais modernos, que fazem uso de 
GUI, possuem alternativas nas quais o usuário pode abrir um terminal 
e digitar os seus comandos via teclado.
Segundo Deitel, Deitel e Choffnes (2005), o software que contém os 
componentes centrais do sistema operacional chama-se núcleo (kernel). 
Entre os componentes centrais do sistema operacional, estão:
Escalonador de processos
Sendo responsável pela decisão sobre o momento em que um pro-
cesso acessará a CPU, o escalonador de processos é um subsistema, 
do sistema operacional, que faz uso de algoritmos de escalonamento 
para estabelecer a lógica de sua execução. Ele pode variar de acordo 
com o tipo de utilização do sistema operacional.
É necessário que exista atenção, por parte do sistema operacional, 
para os processos que precisam de mais processamento, isto é, mais 
26 Sistemas Operacionais
atividade da CPU, ocupando-a por mais tempo e possuindo pouca, ou 
nenhuma, interação por parte do usuário. Como exemplo, temos a exe-
cução de um programa de cálculo científico, no qual os parâmetros são 
inseridos pelo usuário, o qual inicia a execução do programa, que de-
morará um certo tempo para exibir o resultado, período em que fará 
uso da CPU. O programa faz uso dos dispositivos de E/S somente na 
fase inicial, quando o usuário inseriu os dados, e no momento final, 
quando o sistema exibe o resultado do cálculo. Esse comportamento 
de processo é chamado de processo orientado à CPU (CPU bound).
Pode parecer simples, mas o ato de teclar e, depois disso, o que foi 
digitado aparecer na tela exige do sistema operacional um processo de 
entrada/saída pela CPU, várias vezes, dentro de um pequeno intervalo 
de tempo. Esse comportamento de processo é denominado processo 
orientado à E/S (In/Out bound).
Os casos representados na figura a seguir mostram os diferentes 
comportamentos de tais processos.
Surto longo de uso de CPU
Surto longo de uso de CPU
Espera pela E/S
Tempo
(a) Processo CPU-bound ou orientado a CPU
(b) Processo I/O-bound ou orientado a E/S
Figura 6
Comportamento de processos
Fonte: Novato, 2014.
Gerenciador de memória
Em sua grande maioria, os computadores fazem uso do conceito 
de hierarquia de memória. No topo dessa hierarquia, encontram-se os 
registradores, isto é, a memória que está dentro da CPU; eles são mais 
rápidos e mais caros, o que ocasiona a sua pequena quantidade. São 
seguidos, em uma quantidade maior, pela memória cache, que é mui-
to rápida, porém inferior à dos registradores. Depois dela, encontramos 
Introdução aos sistemas operacionais 27
a memória principal (Random Access Memory), também conhecida 
como memória RAM, em maior quantidade que a sua sucessora, porém 
mais lenta. Por último, temos a memória de armazenamento em dis-
co (Hard Disk – HD), em uma quantidade muito maior que as anterio-
res, mas considerada lenta quando comparada às demais.
Ao analisarmos o armazenamento de dados, em um sistema com-
putacional, podemos observar que ele ocorre em diversos níveis, ou 
seja, em diferentes tipos de dispositivos, sempre levando em conta os 
seguintes fatores:
a. o tempo de acesso ao dispositivo;
b. a velocidade com que a operação deverá ser realizada;
c. o custo da unidade de armazenamento;
d. a capacidade de armazenamento do dispositivo.
Tomando essa afirmação como base, ao realizar um projeto de siste-
ma operacional, devemos definir a quantidade de cada tipo de memó-
ria que será necessária utilizarmos para garantir que o futuro sistema 
seja, simultaneamente, eficiente e viável do ponto de vista financeiro. 
Isso porque a velocidade, o preço e a capacidade de armazenamento 
“andam de mãos dadas” quando falamos em memória. Quanto mais 
rápida ela for, mais cara será, e menor será a sua capacidade de arma-
zenamento. A figura a seguir apresenta uma representação da hierar-
quia de memória.
Velocidade: Altíssima
Custo: Altíssimo
Capacidade: Pouquíssimo
Tamanho: Muito pequeno
Energizado: Sim
Velocidade: Altíssima
Custo: Altíssimo
Capacidade: Muito pouco
Tamanho: Muito pequeno
Energizado: Sim
Velocidade: Alta
Custo: Médio
Capacidade: Alta
Tamanho:Razoável
Energizado: Sim
Velocidade: Baixa
Custo: Baixíssimo
Capacidade: Muito alta
Tamanho: Grande
Energizado: Não
Registradores
CPU cache
Dispositivos de 
armazenamento 
em massa
RAM
Fonte: Pendrive..., 2015.
Figura 7
Hierarquia de 
organização da 
memória
28 Sistemas Operacionais
Cabe ao gerenciador de memória comandar a hierarquia da me-
mória, isto é, controlar as partes da memória que estão em uso e as 
que não estão, de modo a:
alocar a 
memória aos 
processos, 
quando for 
necessário;
liberar a 
memória, 
quando um 
processo 
terminar;
tratar do 
problema de 
swapping, isto 
é, quando a 
memória é 
insuficiente.
Vyac
hes
lav
iku
s/
Sh
ut
te
rs
to
ck
Desse modo, existem dois tipos de memória principal. Quando um 
programa precisa alocar espaço em memória, ele faz uso da memó-
ria lógica, que é a memória visível e manipulada pelos programas. 
Essa memória, acessada pelos programas, existe na memória física, 
implementada por Circuitos Integrados (CI). Isso ocorre graças à ação 
de uma unidade de gerência de memória, que realiza a tradução dos 
endereços lógicos em endereços físicos, permitindo que um programa 
alocado na memória lógica possua um endereço de memória física cor-
respondente. Em geral, a memória lógica tem tamanho igual ou maior 
que a memória física.
1.3.1.1 Gerenciador de E/S
O sistema operacional encontra no Gerenciador de E/S um par-
ceiro para realizar uma das principais e mais complexas atividades 
no computador. Para isso, o gerenciamento de dispositivos de E/S é 
estruturado em camadas, nas quais os níveis mais baixos ocultam as 
caraterísticas de cada um dos dispositivos físicos das camadas superio-
res, permitindo que as aplicações executadas pelo usuário atuem sem 
conhecer a arquitetura do hardware utilizado pelas operações de E/S.
A existência de diferentes modelos de dispositivos de E/S, com ca-
racterísticas diferentes entre si, levou os projetistas de sistemas opera-
cionais a desenvolverem uma camada chamada de subsistema de E/S, 
que permite o isolamento desses dispositivos e sua ampla gama de 
variações. Com isso, o sistema operacional ganha flexibilidade, conse-
guindo realizar a comunicação entre as aplicações e qualquer tipo de 
dispositivo de E/S.
Introdução aos sistemas operacionais 29
A comunicação do dispositivo de E/S com a camada do subsistema 
de E/S é feita pela camada conhecida como device driver, que se respon-
sabiliza pelos aspectos técnicos dessa comunicação, como a velocidade 
da operação, a unidade de transferência, a representação dos dados e 
os tipos de operações a serem realizados.
Essas camadas são divididas em dois grupos: o primeiro grupo 
é responsável por permitir a visualização de todos os dispositivos 
de modo único, sem distinção; já o segundo grupo atua de manei-
ra específica para cada um dos dispositivos. Em sua maioria, as 
camadas atuam de modo independente dos dispositivos de E/S 
(Figura 8).
Figura 8
Camadas da gerência de dispositivos
Representação das camadas que realizam o gerenciamento dos dispositivos de E/S.
Processo
Independente 
do dispositivo 
(a)
Dependente 
do dispositivo 
(b) 
M
od
o 
ke
rn
el
M
od
o 
us
uá
rio
So
ftw
ar
e
H
ar
dw
ar
e
Operações de E/S
Subsistema de E/S
Device drivers
Controladores
Dispositivo de E/S
Sistema de 
arquivos
Fonte: Machado; Maia, 2013.
30 Sistemas Operacionais
O subsistema de E/S (system calls) desempenha 
um papel muito importante, pois busca simplificar 
a interação entre o usuário e as aplicações, isolan-
do a complexidade dos dispositivos de E/S de suas 
operações, que são diferentes entre cada um dos 
dispositivos, e sua relação com as demais camadas 
– por exemplo, sistemas de arquivos, banco de da-
dos e aplicações (Figura 9).
As rotinas de E/S são um conjunto de rotinas espe-
ciais que cuidam dos detalhes das operações de leitura 
e escrita a serem realizadas pelo sistema operacional, 
como o passo a passo que deve ser feito na gravação 
de um arquivo. Isso acontece sem que o usuário e a 
aplicação se preocupem com essa tarefa, que passa a 
ser de responsabilidade do subsistema de E/S.
A comunicação do subsistema de E/S com os dis-
positivos é feita por meio dos controladores de E/S, o 
device driver (ou somente driver). Cabe ao subsiste-
ma de E/S gerenciar as funcionalidades de todos os 
dispositivos de E/S ligados ao computador, enquan-
to o driver se responsabiliza pelas particularidades 
de cada um dos dispositivos (Figura 9).
Os dispositivos de E/S enviam comandos gerais 
de leitura e escrita para os seus device drivers, os 
quais traduzem esses comandos para comandos es-
pecíficos de leitura e escrita, que poderão ser execu-
tados pelo controlador de E/S do dispositivo.
Os controladores de E/S são os dispositivos de 
hardware responsáveis por interagir com os disposi-
tivos de E/S. Existe um controlador de E/S para cada 
tipo de dispositivo de E/S, por exemplo, disco rígido, 
impressora, webcam etc. A comunicação entre os 
dois é possibilitada pelo device driver, que faz a tra-
dução das instruções recebidas dos dispositivos e as 
converte para um padrão compreensível pelo con-
trolador. Os controladores podem estar acoplados à 
CPU por meio de uma placa ou implementados na 
própria placa do processador.
Figura 9
Subsistema (system calls) de E/S 
Comandos 
de E/S
Bibliotecas
Rotinas de E/S
Device drivers
Dispositivos de E/S
Aplicação
System calls de E/S
Fonte: Machado; Maia, 2013.
Driver de 
impressora
Controlador 
de impressora
Driver de 
disco
Controlador 
de disco
Driver de 
fita
Controlador 
de fita
Figura 10
Device driver
Subsistema de E/S
Processo
Fonte: Machado; Maia, 2013.
Introdução aos sistemas operacionais 31
No sistema operacional Windows, da Microsoft, os device drivers 
são desenvolvidos com base em um padrão chamado Windows Driver 
Model (WDM), responsável por definir um conjunto de características e 
funções a serem oferecidas por um driver. Esse padrão é homologado 
pela Microsoft, permitindo que o sistema operacional possa efetuar ta-
refas, como: suporte ao plug-and-play (ligar e usar), acesso a múltiplos 
processadores, gerência de energia dos dispositivos e interação com os 
objetos do sistema operacional (Figura 11).
Figura 11
Janela do Device Manager (gerenciador de dispositivos) do Windows
No sistema operacional Unix, o gerenciador de E/S foi desenvolvi-
do de modo integrado ao sistema de arquivos, permitindo acesso aos 
dispositivos de E/S por meio de arquivos especiais, que podem ser 
acessados como qualquer outro arquivo pelas system calls de leitura 
e gravação, enviando o mesmo dado para diferentes tipos de saída e 
garantindo às system calls de E/S a uniformidade na manipulação de 
32 Sistemas Operacionais
qualquer tipo de dispositivo de E/S. Esses arquivos especiais são arma-
zenados no diretório do sistema operacional Unix.
Em suas versões mais recentes, os sistemas operacionais Unix/
Linux passaram a permitir que os drivers dos dispositivos de E/S 
pudessem ser acoplados ao núcleo com o sistema operacional em fun-
cionamento, sem a necessidade de se compilar e gerar um novo kernel 
ou mesmo efetuar o reboot (reinicialização) do sistema operacional 
para reconhecê-lo.
A transferência dos dados, recebidos pelos dispositivos de E/S, para 
o sistema operacional é feita pelos controladores de E/S por meio de 
blocos de informação. Os dispositivos de E/S são responsáveis pela 
comunicação do computador com o mundo externo, sendo classifica-
dos como dispositivos de entrada de dados, saída de dados ou ambos 
(entrada e saída).
1.3.1.2 Gerenciador de comunicação interprocessos (IPC)
Para garantir a interdependência dos processos, os sistemas opera-
cionais implementaram alguns mecanismos, com os quais os processos 
são executados em cápsulas autônomas, de modo que sua execução 
não afete a dos demais. O hardware também faz sua parte, oferecendo 
proteção à memória e garantindo que um processo não ocupe o mes-
mo espaço endereçado ao outro.Os processos, entretanto, interagem e cooperam na execução de 
tarefas. Em muitos casos, os processos precisam trocar informação de 
maneira controlada para:
a. dividir tarefas e aumentar a velocidade de processamento;
b. aumentar a capacidade de transferência de dados (rede);
c. atender a requisições simultâneas.
Para atender a essa demanda, o sistema operacional fornece me-
canismos que permitem aos processos se comunicarem uns com os 
outros por meio do IPC (Inter-Process Communication), um conjunto 
de mecanismos de troca de informação entre múltiplas threads de um 
ou mais processos. Os mecanismos de IPC permitem ao sistema ope-
racional implementar canais de comunicação (implícitos ou explícitos) 
entre os processos.
Introdução aos sistemas operacionais 33
Para realizar sua tarefa com eficiência, o IPC precisa se preocupar 
com a coordenação da comunicação, realizando a sincronização do 
processo, na qual o processo emissor precisa informar que um dado 
foi transmitido e o processo receptor precisa saber que o dado en-
viado está disponível, informando aos dois quando podem realizar 
uma nova comunicação.
Os processos podem se comunicar das seguintes formas: inter-
namente, quando dois módulos de um mesmo processo se comuni-
cam; entre dois processos diferentes, em um mesmo computador; 
ou externamente, quando dois processos em computadores dife-
rentes se comunicam.
Para realizar sua tarefa, o IPC pode fazer uso dos seguintes mo-
delos de comunicação.
a. Difusão (broadcast): quando o receptor envia a mesma 
mensagem para um grupo de receptores, sem saber quem são 
eles.
b. Produtor-consumidor: quando existe somente um emissor e 
um receptor, com a comunicação unidirecional entre eles.
c. Cliente-servidor: quando o cliente, que pode ser um 
computador, programa ou processo, solicita uma requisição 
para um servidor, que também pode ser um computador, 
programa ou processo.
d. Peer-to-Peer (P2P): quando cada um dos nós (computadores, 
programas ou processos) que participam da comunicação 
atuam como servidores ou clientes.
e. Caixa de correio (mailbox): quando a comunicação entre 
o emissor e o receptor funciona como uma caixa de correio, 
na qual o receptor não escolhe o emissor que lhe escreveu 
a mensagem. Pode ser classificada em dois tipos: a escrita 
não bloqueante, quando a capacidade de armazenamento da 
caixa de correio é ilimitada; ou de leitura bloqueante, quando 
a caixa de correio está vazia.
f. Diálogo: quando há servidores exclusivos para cada cliente, 
unidos por um canal de comunicação dedicado somente a eles, 
que será desligado quando a comunicação entre eles acabar.
34 Sistemas Operacionais
1.3.1.3 Gerenciador de sistemas de arquivos
O gerenciador de sistemas de arquivos é responsável pelo geren-
ciamento dos arquivos e das operações que esses realizam, bem como 
pela segurança no seu acesso, garantindo que um usuário não consiga 
acessar um arquivo que pertence a outro usuário sem ter autorização 
para fazê-lo. Ele também é responsável por compartilhar arquivos en-
tre os processos e usuários.
O gerenciador de sistemas de arquivos acaba desempenhando o 
papel mais visível para o usuário do sistema operacional, pois está 
sempre manipulando os arquivos, criando ou editando os seus docu-
mentos ou executando os aplicativos, que, para o computador, tam-
bém são arquivos.
Podemos definir um arquivo como sendo um conjunto de infor-
mações, dados ou instruções relacionados logicamente. As visões são 
distintas, o usuário enxerga diferentes tipos de arquivos; mas, para o 
sistema operacional, um arquivo é um conjunto de registros definido 
pelo sistema de arquivos.
O conteúdo desse arquivo vai influenciar a forma como ele será pro-
cessado, por exemplo:
a. um arquivo executável é composto de instruções em linguagem 
de máquina, que faz com que ele seja executado pelo sistema 
operacional;
b. um arquivo de dados é constituído por dados estruturados ou 
não, que são lidos pelo sistema operacional;
c. um arquivo de multimídia pode possuir imagem, áudio, som, 
vídeo etc., que será disponibilizado pelo sistema operacional para 
o usuário.
O sistema operacional pode armazenar os arquivos em diferentes 
dispositivos físicos, como: fitas magnéticas, discos magnéticos, discos 
ópticos, entre outros. Para que isso aconteça, o sistema operacional 
dever criar um isolamento do tipo de dispositivo físico utilizado, per-
mitindo que o sistema operacional consiga realizar a manipulação dos 
arquivos em diferentes dispositivos de armazenamento.
Para que possa ser identificado pelo sistema operacional, um ar-
quivo precisa de nome. Para isso, o sistema operacional possui algu-
Introdução aos sistemas operacionais 35
mas regras particulares a serem seguidas na definição do nome do 
arquivo, por exemplo: o tamanho do nome, os caracteres a serem usa-
dos, a distinção ou não de caracteres maiúsculos ou minúsculos, entre 
outras. A extensão é utilizada por alguns sistemas operacionais com 
parte do nome do arquivo; seu papel é identificar o tipo de conteúdo 
do arquivo. Para exemplificar, se pensarmos no sistema operacional 
Windows, quando visualizamos um arquivo com extensão .docx, sabe-
mos que ele pertence ao Word. Por outro lado, se vemos um arquivo 
com extensão .xlsx, sabemos que ele pertence ao Excel.
Os diretórios surgem como uma forma de organizar os arquivos 
(Figura 12), e são criados pelo gerenciador de sistemas de arquivo. 
Eles são uma estrutura de dados, no formato de árvore, que conterão 
elementos associados aos arquivos. Esses elementos vão possuir infor-
mações, como a localização física do arquivo, seus nomes, a forma de 
organização do diretório etc. Uma regra é válida para todos os sistemas 
operacionais: você não pode armazenar dois arquivos com o mesmo 
nome em um mesmo diretório.
Figura 12
Representação visual de um sistema de arquivos, com diretórios e arquivos
Quando o usuário abre um arquivo no seu computador, o ge-
renciador de sistemas de arquivo busca os seus dados na estrutu-
ra de diretórios e efetua o armazenamento da sua localização e do 
seu nome em uma tabela da memória principal do computador, a 
qual mantém uma listagem de todos os arquivos abertos, trazendo 
performance à operação de acesso a esses arquivos. Esses registros 
permanecerão lá, enquanto os arquivos estiverem sendo utilizados 
36 Sistemas Operacionais
e não tiverem sido fechados; quando isso ocorre, os seus registros 
na tabela também são liberados.
A forma mais simples de se implementar uma estrutura de dire-
tórios é conhecida como nível único, em que não existem subdiretó-
rios, apenas o diretório raiz, contendo todos os arquivos. Apesar de 
simples, esse modelo é muito limitado e não é recomendado quan-
do precisamos implementar segurança no acesso aos arquivos.
Para controlar a criação de arquivos, o sistema operacional preci-
sa realizar o gerenciamento do espaço livre, isto é, identificar quais 
são os blocos e setores em disco que estão disponíveis para a cria-
ção dos arquivos. O sistema consegue essa informação fazendo uma 
consulta à estrutura de dados em memória – uma tabela em que o 
sistema operacional consegue identificar os blocos livres que pode-
rão ser alocados pelo novo arquivo. Ao fazer isso, esse espaço é re-
movido da tabela para evitar que seja alocado por um outro arquivo. 
De maneira análoga, quando o usuário apaga um arquivo, os blocos 
em que ele estava armazenado são liberados e incluídos novamente 
na tabela de blocos livres.
Outra preocupação do gerenciador de sistemas de arquivos é o 
gerenciamento do espaço alocado por esses arquivos, pois, com o 
decorrer do tempo, os arquivos mudam e a necessidade de espaço 
de armazenamento também. A importância dessa atividade se dá 
por estarmos falando de uma operação que pode sofrer influência 
direta da ação dos usuários, em um recurso com limitação de tama-
nho, como ocorre, por exemplo, com o disco rígido.
Além disso, faz parte das atividades do gerenciador de siste-
mas de arquivospermitir o compartilhamento desses arquivos 
entre usuários e processos, garantindo que somente usuários e 
processos devidamente autorizados tenham acesso aos arquivos 
compartilhados.
O sistema operacional implementa a proteção de acesso fazendo 
uso do controle de concessão de operações, isto é, leitura, gravação, 
execução e, em alguns momentos, exclusão. Os sistemas operacio-
nais Unix/Linux permitem a ampliação das concessões de direitos 
aos usuários que participam do mesmo grupo daquele que está con-
cedendo o direito ou, até mesmo, a outros usuários que não fazem 
parte do grupo do dono do arquivo.
Introdução aos sistemas operacionais 37
1.3.2 Objetivos do sistema operacional
De acordo com a evolução dos sistemas operacionais, os usuários 
passaram a considerar certas características como essenciais. Segundo 
Deitel, Deitel e Choffnes (2005), os objetivos a serem alcançados pelos 
sistemas operacionais são:
a. Eficiência: característica que mede a capacidade de um sistema 
operacional em oferecer o máximo de serviços a diferentes 
aplicações, no menor espaço de tempo.
b. Robustez: característica que permite ao sistema operacional ser 
tolerante a falhas e confiável; caso ocorra um erro de aplicação 
(de software ou hardware), o sistema operacional buscará 
minimizar a perda do trabalho realizado, tentando evitar danos 
ao hardware do computador.
c. Escalabilidade: característica que permite ao sistema operacional 
fazer uso de recursos à medida que eles vão sendo acrescentados 
ao computador, sendo muito útil quando falamos de sistemas 
multiprocessados.
d. Extensibilidade: essa característica garante que o sistema 
operacional se adapte bem ao uso de novas tecnologias, bem 
como que execute tarefas diferentes daquelas para as quais 
foi projetado. Dessa forma, a extensibilidade proporciona o 
aumento da flexibilidade do sistema operacional. Ao possibilitar 
que os usuários adaptem ou evitem o sistema operacional, os 
sistemas operacionais extensíveis possibilitam, em particular, 
que os usuários ajustem o comportamento do sistema para 
obterem um maior desempenho em casos específicos.
e. Portabilidade: a portabilidade garante que o sistema operacional 
opere em muitas configurações de hardware. A portabilidade de 
aplicações também é importante, pois o desenvolvimento das 
aplicações (software) custa caro; portanto, a mesma aplicação 
deve ser executada em uma variedade de configurações de 
hardware, reduzindo os custos de desenvolvimento.
f. Segurança: a segurança em um sistema operacional impede que 
os usuários e/ou softwares acessem os serviços ou recursos sem a 
devida autorização. Os mecanismos que implementam as políticas 
de segurança do sistema operacional são chamados de proteção.
38 Sistemas Operacionais
g. Interatividade: a interatividade permite que as aplicações 
(software) respondam, rapidamente, às solicitações dos usuários 
ou aos eventos do sistema operacional.
h. Usabilidade: a usabilidade concede ao sistema operacional o 
potencial de atender a uma base significativa de usuários. Esses 
sistemas operacionais, geralmente, apresentam uma interface 
gráfica (GUI) amigável, fácil de se utilizar. Sistemas operacionais, 
como Linux, Windows e MacOS, são caraterizados como 
utilizáveis, pois suportam muitas aplicações e fornecem uma 
interface-padrão para o usuário; isso não ocorre com sistemas 
operacionais acadêmicos ou experimentais, portanto, eles não 
são considerados utilizáveis.
1.4 Arquitetura de sistemas operacionais 
Vídeo As diferentes arquiteturas dos sistemas operacionais são resulta-
do da necessidade de os computadores atenderem a diversos serviços 
e interagirem com os mais variados recursos de hardware e software 
para a execução das suas atividades.
1.4.1 Arquitetura monolítica
Os primeiros sistemas operacionais, como OS/360, CP/M, MS-DOS 
e as versões inicias do Linux, faziam parte da arquitetura monolítica 
(Figura 13) – em que os componentes eram compilados em módulos 
separados e depois eram unidos (linkados) em um único programa 
executável, denominado núcleo (core) –, sendo, também, chamada de 
arquitetura de sistema operacional de núcleo monolítico. Os módulos do 
sistema operacional, os quais fazem uso desse tipo de arquitetura, eram 
carregados em memória e interagiam entre si por meio de funções.
Figura 13
 Arquitetura de 
sistema opera-
cional de núcleo 
monolítico
Aplicações
GM
E/S
EP
GR
CEP SA
Interface de chamada ao sistema
GM – EP – CEP – SA – E/S – GR - ...
GM= Gerenciador de memória
EP = Escalonador de processador
CEP = Comunicação entre processos
SA = Sistema de arquivos
E/S= Gerenciador de Entrada/Saída
GR = Gerenciador de rede
Espaço do usuário
Núcleo
...
Espaço do núcleo
Fonte: Deitel; Deitel; Choffnes, 2005, p. 20.
Introdução aos sistemas operacionais 39
A manutenção e a compreensão do código-fonte desse tipo de sis-
tema são complicadas, pois é difícil isolar a fonte de problemas e de 
outros erros. Além disso, como todo o código é executado com acesso 
irrestrito ao sistema, os sistemas de núcleo monolítico são particular-
mente suscetíveis a danos provocados por códigos sujeitos a erros ou 
mal-intencionados.
1.4.2 Arquitetura em camadas
Buscando atender à evolução e complexidade das atividades rea-
lizadas pelos sistemas operacionais, surgiu a arquitetura em cama-
das (Figura 14), na qual o sistema operacional é composto de níveis ou 
camadas que se comunicam entre si. As camadas inferiores prestam 
serviço às camadas de nível superior, fazendo uso de uma interface, o 
que oculta para a camada de cima a sua implementação.
O isolamento entre as camadas representa uma vantagem no uso 
desse tipo de arquitetura, garantindo segurança e proteção às camadas 
mais internas, onde está localizado o núcleo do sistema operacional. 
Porém, o desempenho do sistema é afetado negativamente pela troca 
de modo de acesso. Quando um serviço é solicitado para a camada do 
kernel, o sistema operacional precisará passar por várias camadas até 
chegar ao seu destino, realizando diversas trocas do modo de acesso du-
rante o trajeto, o que constitui uma desvantagem para essa arquitetura.
Aplicações do usuário
H
ardw
are
Gerenciamento de E/S
Interpretador de mensagem
Gerenciamento de memória
Alocação de processador e escalonamento de 
processo hardware
Camada 4 
Usuário
Espaço do usuário
Espaço do núcleo
Camada 3 
Camada 2 
Camada 1 
Camada 0 
Fonte: Deitel; Deitel; Choffnes, 2005, p. 20.
Figura 14
Camadas do sistema 
operacional
40 Sistemas Operacionais
1.4.3 Arquitetura de micronúcleo (MicroKernel)
A arquitetura de micronúcleo (MicroKernel) busca tornar o núcleo 
do sistema operacional o menor e mais simples possível (Figura 15). 
Nessa arquitetura, os componentes do sistema operacional são dispo-
nibilizados como serviços. Cada serviço oferece um conjunto de fun-
ções, como: gerência de arquivos, gerência de processos, gerência de 
memória etc.
Quando uma aplicação do usuário solicita um serviço, realiza-se 
uma requisição ao processo responsável pelo serviço. A aplicação que 
solicita o serviço é chamada de cliente, e o processo que responde à 
solicitação é denominado servidor. O núcleo do sistema se limita a exe-
cutar a comunicação entre cliente e servidor. Portanto, temos um nú-
cleo muito mais simples.
Figura 15
Arquitetura de sistema operacional de micronúcleo
Espaço do usuário
Espaço do núcleo
Núcleo
...
Aplicações
Interface de chamada ao sistema
Gerenciamento de memória Sincronização
Sistema de arquivos Escalonador de processos Gerenciador de dispositivos
CEP
Fonte: Deitel; Deitel; Choffnes, 2005.
A arquitetura de micronúcleo exibe um alto grau de modulari-
dade, o que a torna extensível, portável e escalável. Com micronú-
cleos, os processos executam suas funções em modo usuário, ou 
seja, não têm acesso a instruções privilegiadas e não têm acesso 
aos componentes do sistema. Apenas o núcleo executa em modo 
kernel. Isso garante que, caso ocorra algum erro em um processo,o sistema não ficará completamente comprometido, aumentando 
a sua disponibilidade.
Introdução aos sistemas operacionais 41
São exemplos de sistemas operacionais, que fazem uso desse tipo 
de arquitetura: o GNU Hurd, desenvolvido pelo Projeto GNU, Minix e 
QNX e utilizado em sistemas embarcados; e o L4, desenvolvido por Jo-
chen Liedtke, cientista alemão da computação, que atuou na pesquisa 
de microkernels.
1.4.4 Sistema Operacional de Redes (SOR)
Para complementar as funções básicas de um sistema operacional, 
permitindo que elas possam ser utilizadas em recursos compartilhados 
em rede, o sistema operacional faz uso do Sistema Operacional de 
Redes (SOR) (Figura 16). Isso ocorre por meio da interação do Sistema 
Operacional Local (SOL) com o SOR, que permite a utilização de recur-
sos do computador local e os recursos da rede. De maneira simples, o 
SOL faz uma requisição para a rede, e essa requisição é recebida pelo 
SOR, o qual a encaminha para um programa de comunicação, que vai 
buscar na rede quem poderá atendê-la.
O modelo utilizado pelo SOR é o cliente/servidor, em que o compu-
tador local atua como cliente, solicitando um serviço para a rede, na 
qual um outro computador ou dispositivo atuará como servidor, aten-
dendo à demanda solicitada.
Figura 16
Modelo de sistema operacional de rede cliente/servidor
Disco
Processador
Servidor Servidor
Cliente
Cliente Cliente
Cliente
Cliente
Servidor
Hub
Fonte: Deitel; Deitel; Choffnes, 2005.
42 Sistemas Operacionais
Entre os tipos de arquitetura SOR, podemos destacar: Peer-to-Peer 
(P2P), na qual as máquinas interligadas atuam como clientes e servido-
ras; cliente/servidor com servidor dedicado, em que há uma máquina 
que atua como servidora, mas executa atividades locais; e cliente/ser-
vidor com servidor não dedicado, na qual a máquina servidora atende 
às requisições dos clientes.
Os servidores podem ter diferentes atuações, como: servidores de 
arquivos, nos quais são armazenados arquivos de dados ou programas 
a serem compartilhados entre os usuários de uma rede; servidores de 
bancos de dados, em que são armazenados dados que serão cadas-
trados ou consultados pelos usuários da rede, fazendo uso de uma in-
terface ou via web; servidores de impressão, utilizados para gerenciar 
as impressoras conectadas na rede, facilitando o roteamento dos docu-
mentos a serem impressos ou controlando as cotas de impressão por 
usuário em um período de tempo; servidores de comunicação, res-
ponsáveis pela distribuição da informação na rede, como correio eletrô-
nico (e-mail), web, FTP (File Transfer Protocol) etc., podendo, também, 
ser utilizados para gerenciar o acesso remoto dos usuários da rede; 
ou servidores de gerenciamento, que atuam no controle de acesso 
dos usuários, no controle de tráfego da rede e, em alguns casos, atuam 
como firewall, isto é, um dispositivo de hardware ou software que aplica 
políticas de segurança a um determinado ponto da rede.
1.4.5 Sistema operacional distribuído
Ampliando o conceito de sistema operacional de rede, surge-se o 
conceito de sistemas distribuídos, em que encontramos um conjunto de 
computadores ligados a uma rede e independentes entre si, os quais 
atuam de modo que dão ao usuário a impressão de que são um siste-
ma único e integrado.
As tarefas nos sistemas distribuídos são divididas entre os compu-
tadores que os compõem, sem a interferência do usuário; tudo ocor-
re de maneira transparente. Isso os diferencia do sistema operacional 
de rede, em que as decisões de processamento e armazenamento são 
realizadas pelo usuário.
São consideradas características do sistema distribuído: a capaci-
dade de realizar tarefas simultaneamente (concorrência); a capacidade 
Introdução aos sistemas operacionais 43
de adicionar novos computadores, aumentando o processamento ou 
armazenamento (escalabilidade); o uso de mensagens para trocar in-
formações entre os programas e as estações de trabalho; e, por fim, 
caso uma estação de trabalho pare de funcionar, não haverá compro-
metimento do serviço, pois outra estação irá assumir as funções de-
sempenhadas pela máquina que parou de funcionar.
Com base nessas características, podemos concluir que os objetivos 
finais da utilização de um sistema operacional distribuído são o acesso 
aos recursos, a transparência, a abertura e a escalabilidade.
CONSIDERAÇÕES FINAIS
Iniciamos este capítulo mostrando que a criação e o desenvolvimen-
to dos sistemas operacionais estão intimamente ligados à evolução do 
computador, do desenvolvimento de software e da crescente demanda 
de performance e segurança. Os diferentes tipos de aplicações fizeram 
com que os sistemas operacionais tivessem de se adaptar a diferentes 
ambientes, atendendo a requisições específicas de hardware e software.
Vimos, também, que o núcleo (kernel) do sistema operacional faz uso 
de componentes (subsistemas) para realizar as tarefas mais importantes; 
tarefas essas que cumprem as características necessárias de um sistema 
operacional. Por fim, encerramos o capítulo apresentando as possíveis 
arquiteturas que um sistema operacional pode usar, bem como os exem-
plos de sistemas operacionais que as utilizam.
ATIVIDADES
1. Por que os computadores da primeira fase não usavam sistemas 
operacionais?
2. Quais tecnologias foram responsáveis pela segunda fase de computadores? 
Quais foram os ganhos obtidos com elas?
3. Quais são os diferenciais da série 360 da IBM?
4. Qual conceito foi incorporado aos sistemas operacionais TSS, Multics e 
CP/CMS? Qual foi o benefício que esse conceito trouxe?
5. O que é um sistema crítico em negócios?
44 Sistemas Operacionais
REFERÊNCIAS
DEITEL, H. M.; DEITEL, P.; CHOFFNES, D. Sistemas operacionais. 3. ed. Trad. de Arlete Simille 
Marques. São Paulo: Pearson, 2005.
LI, Q. Real-time Concepts for Embedded Systems. 1. ed. Routledge, 2003.
MACHADO, F. B.; MAIA, L. P. Arquitetura de Sistemas Operacionais. 5. ed. São Paulo: LTC, 
2013.
NOVATO, D. Sistemas Operacionais - O que é escalonamento de processos? Oficina da 
net, 22 maio 2014. Disponível em: https://www.oficinadanet.com.br/post/12781-sistemas-
operacionais-o-que-e-escalonamento-de-processos. Acesso em: 26 maio 2020.
PENDRIVE x HD x Nuvem: Como usar a hierarquia de memória para gerenciar seus 
arquivos. Por que não um “blog”, 2015. Disponível em: http://stonesjunior.blogspot.
com/2015/12/hierarquia-de-memoria-e-suas-aplicacoes.html. Acesso em: 26 maio 2020.
STALLINGS, W. Arquitetura e organização de computadores. 10. ed. São Paulo: Pearson 
Prentice-Hall, 2017.
Interação do sistema operacional com hardware e software 45
2
Interação do sistema 
operacional com 
hardware e software
Além de cumprir suas tarefas, o sistema operacional precisa 
se relacionar com várias outras partes. Ele atende às solicita-
ções do usuário recebendo e devolvendo dados. Ele converte 
tais solicitações em tarefas, que serão executadas pelo compu-
tador, respeitando os mais diferentes projetos de arquitetura. 
Ademais, o sistema operacional precisa estender esse relacio-
namento a uma infinidade de dispositivos e de diversos propósi-
tos, os quais são acoplados ao computador e auxiliam o usuário 
na realização das suas operações.
Neste capítulo, abordaremos a relação dos sistemas opera-
cionais com os arquivos e diretórios, que são as estruturas mais 
utilizadas pelos usuários no manuseio do computador; a evolu-
ção da programação, a qual passou de linguagem de máquina 
para as linguagens de alto nível e começou a fazer uso de com-
piladores e interpretadores para aumentar a produtividade dos 
desenvolvedores; o uso de firmwares e middlewares, facilitando 
a comunicação dos dispositivos e programas com o sistema ope-
racional e o computador. Estudaremos, também, os hardwares, 
as suas diferentes arquiteturas e como eles interagem entre si 
e com o sistema operacional; o processador, o seu projeto, o 
desempenho e o uso de multiprocessadores; a memória, a sua 
hierarquia e as diferenças de custo e desempenho;

Outros materiais