Você está na página 1de 31

SISTEMAS

OPERACIONAIS
Andréa Martins

E-book 3
Neste E-Book:
INTRODUÇÃO���������������������������������������������� 3
ENTENDENDO A MEMÓRIA�������������������� 4
Função da memória�������������������������������������������������4
Gerenciando a memória������������������������������������������9
Alocação contígua simples���������������������������������� 10
Overlay������������������������������������������������������������������� 11

CONSIDERAÇÕES FINAIS���������������������� 27
SÍNTESE�������������������������������������������������������28

2
INTRODUÇÃO
Continuamos na nossa jornada em busca do aprimo-
ramento profissional e acadêmico, e neste e-book
daremos mais um passo importante em direção às
nossas metas: aprenderemos sobre o gerenciamento
de memória e também sobre o gerenciamento de
arquivos.

Destacaremos pontos importantes sobre tópicos


ligados a esse assunto que são fundamentais para
a aprendizagem dos sistemas operacionais.

Vamos começar?

3
ENTENDENDO A MEMÓRIA
A memória que existe dentro dos sistemas opera-
cionais era conhecida por ser um recurso com valor
elevado e, por esse motivo, sua escassez era a con-
sequência. Essa realidade está mudando atualmente,
pois a memória principal teve evoluções significati-
vas que resultaram no aumento de performance e
diminuição dos custos. Hoje a otimização do uso
da memória é fundamental para quem quer ter um
sistema operacional eficiente. Vamos conhecer téc-
nicas para melhorar o desempenho dessa parte tão
importante?

Função da memória
De forma geral, podemos dizer que a função da me-
mória principal de um sistema operacional é alocar
os programas que estão em execução, pois foram
acionados pelo usuário e também os programas que
são necessários para o correto funcionamento do
sistema. Sendo assim, os processos computacionais
que estão ‘rodando’ dentro do sistema operacional
ficam alocados nessa memória. Essa alocação é
temporária. Algumas das características da memória
principal são:
● É relativamente cara e, por isso mesmo, escassa

4
● Todos os programas que executamos só conse-
guem funcionar se estiverem sendo executados pela
memória principal
● O compartilhamento do processador tende a
melhorar se tivermos mais processos na memória
principal
● Memórias necessitam de uso otimizado
● O uso do sistema operacional não pode ocupar
muito espaço na memória
● Fazer a gestão correta do uso da memória é um
item de extrema importância aos projetos relativos
a sistemas operacionais.

A figura abaixo mostra como os programas e o siste-


ma operacional precisam utilizar a memória principal
para funcionar:

Memória Principal
Endereço inicial
Sistema Operacional

Endereço final

Figura 1: Uso da memória Principal.

5
Dentro dos sistemas operacionais que conhecemos,
geralmente os programas têm seu armazenamento
realizado pela memória secundária. Essa maneira
de gerenciar a memória faz com que os programas
estejam sempre disponíveis, quando precisam ser
acessados pelo usuário. Como estudamos ante-
riormente, entendemos como memória secundária
equipamentos como pendrives, CDs e DVDs, discos
rígidos, entre vários outros equipamentos de entrada
e saída. Com a evolução da tecnologia, esses equi-
pamentos de entrada e saída têm sua capacidade
de armazenamento cada vez maior, e outra vanta-
gem é o preço bastante acessível, especialmente
se compararmos o valor desses equipamentos com
o preço da memória principal. Além disso, quando
usamos esses equipamentos para armazenar dados,
sabemos que eles não serão apagados quando o
computador for desligado.

Mas temos de destacar um ponto importante, quando


falamos sobre equipamentos de memória de entrada
e saída: os programas de um sistema operacional
só funcionam com as instruções que estiverem na
memória principal; por isso, não podemos esquecer
que, para que o computador seja capaz de ler os
arquivos dos dispositivos de entrada e saída, é ne-
cessário que esse dispositivo esteja conectado ao
computador ou que o usuário transfira os arquivos
para a máquina.

Some-se a essa condição o fato de que o tempo para


acesso nas memórias secundárias é significativa-
mente maior do que quando acessamos a memória

6
principal, pois o sistema sempre tenta fazer a redu-
ção do número de operações de dispositivos de E/S,
fazendo com que a maior parte dos programas fique
mesmo na memória principal, pois assim a memória
evita problemas de sistema.

Podcast 1

SAIBA MAIS
Vamos entender um pouco mais sobre memória
operacional? Assista ao vídeo:

Link do vídeo.

A realidade dentro dos sistemas de informação nem


sempre é fácil: muitas vezes, o sistema não tem es-
paço para executar mais tarefas, mas, mesmo assim,
o sistema tem que prover a necessidade do usuá-
rio, executando os sistemas normalmente. Você faz
ideia de como isso é possível? Muito simples. Isso
acontece porque o sistema operacional é capaz de
realizar a transferência dos programas da memória
principal para a memória secundária, criando assim
espaço para a execução de todas as atividades que
o usuário precisa executar para a realização das ta-
refas diárias. Isso é chamado de swapping.

A figura a seguir nos mostra o processo de swapping:

7
Memória Principal Memória Principal
Sistema Sistema
Operacional Operacional

Programa A Programa A

Programa B B Swapping out Programa H


Programa E Programa E
Programa G Área Livre
Swapping

Figura 2: Swapping na memória principal. Fonte: Blog Fundamentos


Sistemas Operacionais.

Mas a memória também pode apresentar outros ti-


pos de problemas para sua correta administração: a
memória permite que o sistema operacional execute
programas maiores do que a memória que esteja
disponível e para solucionar esse problema usa o
overlay e a memória virtual.

FIQUE ATENTO
Overlay significa sobreposição e, quando dizemos
overlay em memória, queremos dizer que pode-
mos permitir que programas maiores que a me-
mória principal sejam utilizados, pois faremos um
overlay (sobreposição) com a memória virtual.

Vamos analisar o processo de overlay de memória,


na figura abaixo? Observe os programas que estão

8
sendo executados e que precisam utilizar o overlay
para conseguir rodar o programa:

Técnica de Overlay
Memória Principal Cadastramento
Sistema
2 Kb
Operacional
4 Kb
3 Kb Módulo principal

4 Kb Área de overlay Impressão

2 Kb
1 Kb Área Livre
Área não 2 Kb
utilizada

Figura 3: Técnica de overlay na memória principal.

Gerenciando a memória
O gerenciamento efetivo da memória é fundamental
para que o sistema operacional consiga ser eficiente.
E esse gerenciamento é essencial em ambientes
multiprogramáveis, pois a partir dele serão sanadas
todas as necessidades do usuário, dentro do tempo
previsto e tudo isso sem o comprometimento do
desempenho desejado, garantindo a segurança do
sistema e permitindo que o sistema execute o corre-
to compartilhamento de recursos. E, para que esse
gerenciamento seja eficiente, foram desenvolvidas
algumas técnicas específicas para o gerenciamento
da memória. Vamos conhecê-las?

9
Alocação contígua simples
A alocação contígua simples foi muito usada nos
primórdios dos sistemas operacionais, mas esse
tipo de alocação ainda pode ser encontrada nos dias
e hoje em sistemas monoprogramáveis. A técnica é
simples: ela particiona a memória principal em duas
áreas: a área do sistema operacional e a área do usu-
ário. Quando usamos essa técnica de gerenciamento,
o usuário do sistema não consegue usar uma área
de memória maior do que a que está disponível.

Essa técnica também apresenta alguns problemas,


como o fato de o sistema operacional do usuário
conseguir acesso à área do sistema operacional,
e isso causa uma série de problemas, pois o usu-
ário do sistema consegue controlar a memória;
e isso faz com que ele possa ter acesso a todas
as posições dentro do sistema operacional. Esse
problema consegue ser solucionado com o uso de
registradores, que conseguem limitar as áreas que
o usuário pode acessar.

A figura abaixo nos exemplifica essa técnica, mos-


trando a alocação contígua simples que usa regis-
tradores para controle de acesso:

10
Memória Principal Memória Principal
Sistema
Registrador Operacional
Sistema
Operacional

Programa do
usuário

Área para
Área Livre
programa

Figura 4: Alocação contígua simples com o uso de registradores.

SAIBA MAIS
Vamos entender um pouco mais sobre o geren-
ciamento de memória? O vídeo abaixo traz dicas
importantes sobre o assunto. Acesse e confira:

Link do vídeo.

Overlay
A técnica que denominamos overlay tem como obje-
tivo a resolução da maior parte (não totalmente) do
grande problema ocasionado pela perda de espaço
de memória que a técnica de alocação contígua cau-
sa. Para conseguir driblar essa situação, a técnica
de sobreposição – overlay – executa o comparti-

11
lhamento das áreas da memória que se encontram
livres, e isso é feito por meio do uso de programas
independentes, que fazem com que só fique na me-
mória principal o módulo principal do programa que
está sendo executado pelo usuário.

Vamos imaginar a seguinte situação: um programa


qualquer que tem sua composição com três módulos,
sendo eles: o módulo principal, o módulo de cadas-
tramento de cobrança de clientes, e o modo de im-
pressão. Nesse exemplo, os módulos referentes aos
clientes (cadastramento de cobrança e impressão)
são totalmente independentes entre si. Se observar-
mos essa situação, iremos concluir que, enquanto o
módulo de cadastramento de cobrança de clientes
está sendo executado, o módulo de impressão não
precisa estar em plena execução também, pois, como
falamos anteriormente, trata-se de módulos inde-
pendentes; então, esses dois módulos não precisam
ficar o tempo todo alocados na memória principal.
Isso já não ocorre com o módulo principal, que, por
fazer parte da composição dos dois outros módulos,
precisa ficar constantemente alocado na memória
principal. Se utilizarmos a sobreposição ou overlay
nesse cenário, poderemos utilizar a mesma parte
da memória para rodar os dois programas e isso
otimizará o funcionamento da memória principal. A
figura abaixo demonstra essa situação:

12
Memória Principal Cadastramento
Sistema
2 Kb
Operacional
4 Kb
3 Kb Módulo principal

4 Kb Área de overlay Impressão

2 Kb
1 Kb Área Livre
Área não 2 Kb
utilizada

Figura 5: Técnica de overlay.

Alocação Particionada

Ao longo do tempo, a modernização dos sistemas


operacionais – que passaram de monoprogramáveis
para multiprogramáveis – criou uma necessidade: a
de que pudéssemos fazer o aproveitamento de todos
os recursos disponíveis no sistema de forma mais
otimizada. Dois desses desafios tinham destaque:
fazer com que o processador trabalhasse de forma
mais eficiente e permitir que a maior quantidade
possível de programas pudesse estar na memória.
Esses problemas eram grandes desafios para os
programadores e desenvolvedores de sistema, pois
como estudamos, a memória é um recurso caro e
escasso – e a necessidade de utilizar o máximo pos-
sível dessa tecnologia era uma necessidade urgente.

13
A partir desse cenário, algumas técnicas foram cria-
das com sucesso. Vamos conhecê-las?
● Alocação Particionada Estática: essa técnica foi
desenvolvida para permitir a divisão da memória em
partes menores; essas partes têm partes fixas (está-
ticas) e são comumente chamadas de partições. O
tamanho de cada uma dessas partes que foi criada
por essa técnica era determinado no momento de
inicialização dos sistemas operacionais, e a porção
de cada parte da memória que seria designada para
cada programa era determinada tendo como base
os programas que seriam executados no ambiente
computacional. Toda vez que alguma mudança no
tamanho dessas partes fosse imprescindível para
o correto funcionamento do sistema, um novo pro-
cesso de inicialização era executado, gerando assim
uma configuração nova e mais adequada às necessi-
dades do usuário naquele momento. A figura abaixo
torna a visualização mais fácil, pois conseguimos
verificar todo o processo que a alocação particionada
estática realiza dentro da memória:

14
Memória de partições Memória Principal
Partição Tamanho Sistema
Operacional
1 2 Kb
2 5 Kb Partição 1 2 Kb

3 8 Kb
Partição 2 5 Kb

Programas a serem executados:


Partição 3 8 Kb
E D C B A

3 Kb 6 Kb 1 Kb 4 Kb 2 Kb

Figura 6: Exemplo de alocação particionada estática.

Esse processo possui ainda outra variação, que é


denominada de alocação particionada estática ab-
soluta. O nome dessa técnica advém do fato de que
nela os programas só poderiam ser carregados e
ter sua execução posterior realizada em uma única
partição específica, isso sem levar em consideração
o fato de outras partes da memória estarem, eventu-
almente, livre. Quando um código absoluto é gerado,
as referências dos endereçamentos dos programas
mostram posições físicas dentro da memória prin-
cipal, e a consequência desse apontamento é que
o programa só consegue ser executado na posição
que lhe foi designada anteriormente.

Por apresentar algumas desvantagens, esse modo


de particionamento teve uma evolução que foi cha-
mada de alocação particionada estática relocável.
Como podemos perceber só pelo nome, nesse tipo
de alocação as partes das referências dos endereça-

15
mentos do programa têm ligação com a inicialização
do código – e não mais a endereços físicos da me-
mória – e, com isso, os programas conseguem ter
sua execução feita em qualquer partição da memória
e não mais em um lugar fixo e estático.
● Alocação Particionada Dinâmica: A técnica de
partição estática apresentava, como principal en-
trave para sua utilização, o fato de apresentar frag-
mentação interna e essa fragmentação acontecida
porque a alocação do espaço era estática. Por isso,
os programadores começaram a estudar formas de
corrigir esse problema e surgiu, então, a alocação
particionada dinâmica, que tinha como princípio di-
zimar a alocação estática na memória. A técnica da
alocação dinâmica tem o princípio de fazer com que
cada programa possa utilizar livremente seu espaço
na memória, criando assim sua própria partição na
memória. Simples, não é? A figura abaixo nos mos-
tra claramente esse processo da forma como ele é
executado pelo sistema operacional; a seta do meio
indica a relocação do programa:

16
Memória Principal Memória Principal

Sistema Sistema
Operacional Operacional

4 Kb
8 Kb

Programa C

3 Kb
Programa A
Programa A

5 Kb 8 Kb

Figura 7: Alocação particionada dinâmica.

Entretanto, esse tipo de alocação também apresenta


desafios, que não são tão preocupantes como o da
alocação estática, mas que preocupam os progra-
madores e desenvolvedores, que é o fato de causar
fragmentação externa. Isso ocorre porque quando
os programas são executados na memória principal
terminam sua execução deixando espaços vagos na
memória e esses espaços são menores do que seria
preciso para que fossem carregados. Isso faz com
que mesmo que existam espaços vagos na memó-
ria o sistema operacional não tem como fornecer
espaços para a execução de novos processos; esse
problema causa perda de memória também, embora
em grau menor do que nos outros tipos estudados
anteriormente. A imagem a baixo demonstra essa
situação, em que o processo não consegue ser exe-
cutado por falta de espaço, devido à fragmentação:

17
SO

Criação Processo 1 320 K

Processo 120k
Processo 4 128 K

96 K

Processo 3 288 K

64 K

Figura 8: Fragmentação externa.

Para tentar resolver o problema da fragmentação


externa, foram desenvolvidas duas alternativas: a
primeira cria a solução de contorno, que faz com
que, na medida em que os programas vão sendo
encerrados, os espaços adjacentes que estão entre
eles possam ser novamente uma unidade. A outra
solução disponível é a compactação dos programas
que estão sendo executados lado a lado, juntando,
dessa forma, os espaços que porventura estejam
vagos na memória; essa técnica é chamada de re-
locação dinâmica. O problema dessa técnica é que
necessita de um algoritmo bastante complexo para
sua correta execução, e isso faz com que o siste-
ma precise demandar vários recursos, por exemplo,
uso maior de processador e área de disco rígido – o
que, em muitos casos, ocasiona a inviabilidade do
processo.

18
Estratégias de alocação e partição
Foram desenvolvidas basicamente três técnicas ou
estratégias para que o sistema operacional consiga
realizar o gerenciamento da memória principal de
forma mais otimizada possível. O propósito dessas
estratégias é eliminar ou mitigar a fragmentação
externa, que, como estudamos há pouco, pode fa-
zer com que certas partes da memória não sejam
usadas. Para que essa técnica tenha êxito, é preciso
levar em consideração o tamanho do programa a
ser executado. Vamos conhecer essas estratégias?
● Best Fit: Essa estratégia ficou conhecida por ser a
forma que promove a melhor alocação, procurando
pedir da memória principal o menor espaço disponí-
vel e que tenha somente o tamanho do programa que
irá executar. Assim promove a melhoria da memória
e elimina a perda de espaços desnecessários. Isso
é feito por meio da criação de um algoritmo que faz
com que as áreas da memória sejam classificadas
de acordo com o tamanho disponível e isso diminui,
consideravelmente, o tempo de resposta do sistema
para encontrar uma área de memória disponível.
A desvantagem é que esse algoritmo, apesar de
eficiente, também ocasiona fragmentação. Vamos
observar essa técnica na figura abaixo que mostra
a fragmentação causada por essa técnica:

19
Sistema
Memória Principal Operacional

Sistema
Operacional
Programa C
4 Kb

it
t-f
es
)B
Programa C

(a
Programa A
F
5 Kb Programa F
1 Kb
Programa A Área Livre 2 Kb

3 Kb

Figura 9: Técnica Best Fit.

● Worst Fit: Nessa técnica é selecionado o maior


espaço na memória principal que esteja disponível
no momento. Essa estratégia faz com que espaços
maiores na memória fiquem livres para que possam
ser utilizados para a execução de outros progra-
mas, diminuindo consideravelmente, a fragmentação.
Observe na figura abaixo como as áreas de fragmen-
tação são menores nessa técnica:

20
Memória Principal

Sistema Sistema
Operacional Operacional

4 Kb

Programa C Programa C
(b) Worst-fit
Programa F
F
5 Kb
1 Kb Área livre 4 Kb
Programa A
Programa A
3 Kb

Figura 10: Técnica Worst Fit.

● First Fit: Como podemos entender fazendo uma


simples tradução, nessa estratégia é selecionado o
primeiro espaço na memória que esteja livre. Claro
que a técnica leva em consideração o tamanho ne-
cessário para a correta execução do programa. Com
essa estratégia, temos a utilização de recursos do
sistema menor, pois seu algoritmo classifica as áreas
da memória disponível, de acordo com o tamanho
de cada uma, isso gera rapidez no sistema quando
procura uma área para alocação de um programa.
Podemos visualizar a forma de funcionamento dessa
técnica na figura a seguir:

21
Memória Principal

Sistema Sistema
Operacional Operacional

Programa F
4 Kb
Área livre 3 Kb

(c)
Programa C

Fir
Programa C

st-
F

fi
t
5 Kb
1 Kb
Programa A
Programa A
3 Kb

Figura 11: Técnica First Fit.

SAIBA MAIS
Vamos entender como é feito o particionamento
de memória na prática? O vídeo abaixo mostra o
passo a passo:

Link Techmundo.

Swapping

Pensando em uma forma de solucionar os entra-


ves que as técnicas de partição de memória não
conseguiram – como o fato de o gerenciamento de
memória que os sistemas multiprogramáveis apre-
sentam não conseguiam executar alguns programas
por falta de memória, embora esses sistemas tives-
sem memória disponível, ou seja, o problema era o

22
gerenciamento ruim – surgiu o swapping. Observe
a área de swapping na figura abaixo:

Memória Principal

Processo A
Processo B

Processo
Processo C
F

Sw
Processo D

pa
ou
t
Processo E

in
ap

Processo B
Sw

Processo A Arquivo de
Processo F swapping

Processo C

Processo D

Processo B

Figura 12: Processo de swapping. Fonte: Blog Memória Virtual.

O swapping tem como meta a utilização do espaço


no disco rígido, como se fosse memória virtual. Para
que essa técnica consiga ser executada, o sistema
designa o processo residente (que é um programa
que faz parte da memória principal), que é deslo-
cado para ser executado na memória secundária
(memória virtual/disco rígido). Esse processo de tro-
ca de lugares onde os processos serão executados
é denominado swap-out. Logo após a execução, o
processo faz o caminho contrário, ou seja, do disco
rígido para a memória principal. Esse processo é

23
chamado de swap-in. Para conseguir realizar essa
tarefa de realocação de processos com êxito, o sis-
tema consegue saber quais são os programas que
são menos utilizados, dessa forma, são evitados
swappings que não sejam necessários.

Assim, fica claro que a técnica swapping consegue


realizar um compartilhamento de memória principal
(RAM) superior e a otimização dos recursos dispo-
níveis no sistema computacional. Vamos entender
o swap-in e swap-out na figura a seguir:

Visão Esquemática de Swapping

operating
system

process
swap P1
1
out
process
swap P2
2
in

user space

main memory backing store

Figura 13: Técnica de swapping com enfoque no swap-in e swap-out.

24
Entretanto, tal qual acontece nas outras técnicas, o
swapping também apresenta problemas, como o fato
de executar muitas operações de entrada e saída.
Essas operações apresentam velocidades de acesso
de leitura bastante distintas entre si (isso tendo como
parâmetro o uso da memória principal e secundária).
Nesse cenário, precisamos levar em consideração
que, quanto mais usamos a memória virtual, maior
será o abalo que o sistema operacional irá sofrer e
isso prejudicará o desempenho do sistema. Essa
situação pode fazer com que o sistema operacio-
nal não realize algumas tarefas. Esse problema é
chamado de trashing. Podemos observar na figura
abaixo a taxa de utilização do processador, quando
ocorre o trashing:

Taxa de utilização do processador

Thrashing

Número de processos ativos

Figura 14: Trashing. Fonte: https://www.inf.pucrs.br/~emoreno/un-


dergraduate/SI/orgarq/class_files/Aula15.pdf.

25
SAIBA MAIS
Vamos entender melhor a técnica swapping? Leia
o artigo abaixo para aumentar, ainda mais, seus
conhecimentos sobre essa técnica de gerencia-
mento de memória:

https://www.inf.pucrs.br/~emoreno/undergradua-
te/SI/orgarq/class_files/Aula15.pdf

Podcast 2

26
CONSIDERAÇÕES FINAIS
Neste capítulo, conseguimos aprofundar nossos
conhecimentos sobre gerenciamento de memória
e pudemos perceber que escolher a técnica certa
para fazer a gestão da memória pode ser vital para
o sucesso e desempenho do sistema operacional,
pois, a memória é um recurso com valor bastante
alto e, por isso mesmo, torna-se um recurso escas-
so na imensa maioria dos sistemas operacionais.
Também pudemos conhecer as principais técnicas
para fazer a gestão da memória; conseguimos enten-
der as vantagens e desvantagens de cada técnica e,
dessa forma, aumentamos nossa probabilidade de
sucesso na escolha da técnica mais apropriada para
gerenciar o nosso sistema operacional.

27
SÍNTESE

SISTEMAS
OPERACIONAIS

Nesse terceiro e-book falamos sobre algo muito importante


dentro dos sistemas operacionais: o gerenciamento de
memória� Um recurso de alto custo e, por isso mesmo,
extremamente importante dentro de um sistema
computacional� Abordamos nesse e-book:

O conceito de memória dentro de um computador,


conhecendo as principais funções da memória

Diferenças entre memória principal e memória


secundária

Estudamos o conceito de swapping e saber


para que serve

Estudamos a técnica de overlay

Aprendemos sobre o gerenciamento de memória

Alocação contígua simples

Alocação particionada e suas derivações como


alocação particionada estática, alocação
particionada dinâmica, conceitos de
fragmentação

Estratégias de alocação e partição e suas


variações: best fit, worst fit e first fit
Referências Bibliográficas
& Consultadas
BITTENCOURT, P. H. M. Ambientes operacionais.
São Paulo: Pearson Education do Brasil, 2014.
[Minha Biblioteca]

BONIATI, B.; PREUSS, E.; FRANCISCATTO, R.


Introdução à informática. Santa Maria, RS:
Colégio Agrícola de Frederico Westphalen, 2014.
Disponível em https://www.ufsm.br/unidades-
-universitarias/ctism/cte/wp-content/uploads/
sites/413/2018/12/02_introducao_informatica.pdf.
Acesso em: 23 out. 2019.

CÓRDOVA JUNIOR, R. S.; LEDUR, C. L.; MORAIS, I.


S.; Sistemas operacionais. Porto Alegre: SAGAH,
2018. [Minha Biblioteca]

COULOURIS, G.; DOLLIMORE, J.; KINDBERG, T.;


BLAIR, G.; Sistemas distribuídos conceitos e pro-
jetos. 5. ed. Porto Alegre: Bookman, 2013. [Minha
Biblioteca]

MACHADO, F. B.; MAIA, L. P. Arquitetura de siste-


mas operacionais. 5. ed. Rio de Janeiro: LTC, 2017.
[Minha Biblioteca]
MACHADO, F. B.; MAIA, L. P. Fundamentos de
sistemas operacionais. Rio de Janeiro: LTC, 2011.
[Minha Biblioteca]

OLIVEIRA, R. S.; CARISSIMI, A. da S.; TOSCANI,


S. S. Sistemas operacionais. 4. ed. Porto Alegre:
Bookman: Instituto de Informática da UFRGS,
2010. [Minha Biblioteca]

SILBERSCHATZ, A.; GALVIN, P. B.; GAGNE, G.


Fundamentos de sistemas operacionais: princí-
pios básicos. Rio de Janeiro: LTC, 2013. [Minha
Biblioteca]

TANEMBAUM, A. S.; BOS, H. Sistemas


Operacionais Modernos. 4. ed. São Paulo: Pearson
Education do Brasil, 2016. [Biblioteca Virtual]

VELLOSO, F. C. Informática: conceitos básicos. 8.


ed. Rio de Janeiro: Elsevier, 2011.

Você também pode gostar