Buscar

SISTEMAS OPERACIONAIS_CAP 3-4

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

SiStemaS OperaciOnaiS
Andreo Costa
Ramiro Córdova Júnior
OBJETIVOS DO CAPÍTULO
• Identificar como funciona o gerenciamento de processos;
• Descrever o gerenciamento de memória;
• Definir o conceito de gerenciamento de arquivos;
• Identificar os sistemas de arquivos dos principais sistemas operacionais;
• Instalar o Linux em uma máquina virtual – VirtualBox;
• Resolver lista de comandos no Linux.
1
TÓPICOS DE ESTUDO
Componentes de um sistema 
operacional
• Gerência de processos.
• Gerência de memória.
• Modelo de memória de processo.
• Gerenciamento de arquivo.
CAPÍTULO 3
Sistema operacional
Ramiro Córdova Júnior
2 Sistemas de arquivos em sistemas 
operacionais
• Sistemas de arquivos dos principais
sistemas operacionais.
• Sistemas de arquivos para Windows.
• Sistemas de arquivos para Linux.
• Instalação de máquinas virtuais Linux.
• Comandos do sistema operacional
Linux.
55Sistemas Operacionais
3.1. Componentes de um sistema operacional
Para que os usuários possam utilizar um computador, é necessário que ele possua um 
sistema operacional instalado e que esse sistema operacional seja constituído de vários 
componentes, como o sistema de arquivos, sistema de gerenciamento de memória, siste-
ma que cuida da alocação do processador, sistema que cuida dos periféricos de entrada e 
saída, entre outros.
Todos esses componentes devem funcionar de maneira organizada para que o sistema 
operacional possa desempenhar as tarefas que se propõe. Caso isso não ocorra, o usuário 
poderá ter problemas na utilização do computador.
Neste capítulo, você vai estudar os principais componentes de um sistema operacional.
3.1.1. Gerência de processos
Um sistema operacional é o que gerencia todos os processos e recursos do computa-
dor em um sistema. É ele o responsável por organizar absolutamente tudo, evitando que 
existam conflitos entre os recursos. A gerência de processos é responsável pelas seguintes 
áreas do sistema operacional, entre outras:
• Algoritmos e estruturas de dados para implementar processos e abstrações de 
recursos.
• Escalonamento e sincronização de processos.
• Estratégia para tratamento de bloqueios perpétuos (deadlocks).
• Parte dos mecanismos de proteção e segurança.
Processos
Ao acessar o gerenciador de tarefas do Windows, você já deve ter se deparado com a 
aba Processos. Ali, aparecem diversos processos que estão sendo executados neste momen-
to no sistema operacional, podendo ali mesmo encerrar o processo. Alguns processos não se-
rão permitidos, pois são fundamentais para o funcionamento do sistema operacional.
Sistemas Operacionais56
Figura 1. Gerenciador de tarefas do Windows
Esclarecimento
Processo é diferente de programa, visto que um programa pode ser repetida­
mente executado, gerando vários processos.
Os processos podem ser classificados em:
• I/O bound: delimitados pelo tempo de I/O. Gasta mais tempo fazendo I/O do que 
computações, muitas vezes pequenas rajadas (bursts) de CPU.
• CPU bound: delimitados pelo tempo e CPU. Gasta a maior parte do tempo fazen-
do computações. Realiza poucas rajadas longas de CPU.
O bloco de controle de processo (em inglês: Proccess control block ou PCB) é uma es-
trutura de dados no núcleo do sistema operacional que serve para armazenar a informação 
necessária para tratar um determinado processo.
57Sistemas Operacionais
Figura 2. Bloco de controle
Como o PCB contém informações críticas do processo, ele deve ficar armazenado em 
uma área da memória protegida do acesso de usuários. Em alguns sistemas operacionais, 
o PCB é alocado no início da pilha do núcleo do processo, já que é uma localização conve-
nientemente protegida. Nele, estão contidas as seguintes informações:
• Estado do processo.
• Valor do PC (apontador de instruções).
• Área para guardar valor dos registradores.
• Informação para escalonamento do processo.
• Informação para gerenciamento de memória.
• Informação para contabilidade do processo.
• Status das operações de I/O (ex.: arquivos usados).
3.1.2. Gerência de memória
Quando o sistema operacional gerencia a memória do computador, duas grandes ta-
refas precisam ser cumpridas. Cada processo deve ter memória suficiente para ser execu-
tado. Ele não pode utilizar a memória de outro processo e outro processo também não 
pode utilizar a sua memória.
Os diferentes tipos de memória no sistema devem ser bem utilizados para que cada 
processo seja executado de forma eficaz.
Para realizar a primeira tarefa, o sistema operacional tem de definir os limites de me-
mória para cada tipo de software e aplicativo.
Sistemas Operacionais58
A maioria dos computadores trabalha com o conceito de hierarquia de memória, pos-
suindo uma pequena quantidade de memória cache, muito rápida, uma quantidade de me-
mória principal (RAM) e uma quantidade muito grande de memória de armazenamento em 
disco (HD), considerada lenta. O problema para o gerenciamento de memória é que os pro-
gramas atuais são muito grandes para rodarem completamente na memória cache. O ge-
renciador de memória deve ser capaz de controlar parte da memória que está em uso e 
quais não estão, alocar memória para processos quando eles necessitam e retirar quando 
eles terminam, mas, principalmente, gerenciar a troca entre a memória principal e o disco 
quando a memória principal é muito pequena para armazenar todos os processos.
Existem dois tipos de memória principal: a memória lógica e a memória física. A 
memória lógica é aquela manipulada pelos programas: ela é visível para os programas. 
Sempre que um programa necessita alocar um espaço na memória esse espaço é alocado 
em memória lógica. A memória física é a memória implementada pelos circuitos integra-
dos. É nela que os espaços alocados em memória lógica vão realmente residir, portanto, a 
memória física geralmente tem tamanho menor do que a memória lógica. Para isso, é ne-
cessário realizar uma tradução de endereços lógicos para endereços físicos, pois, assim, um 
programa que aloca uma memória lógica pode ter de fato uma memória física alocada para 
si. Esse processo de tradução de endereços lógicos em endereços físicos é realizado por 
uma unidade de gerência de memória chamada Memory Management Unit (MMU).
3.1.3. Modelo de memória de processo
Para que um programa seja executado, ele precisa ser transformado em processo(s). 
Assim, é necessário alocar o descritor de processos, alocar espaço na memória para o códi-
go, os dados, que é área onde as variáveis são alocadas – globais, locais estáticas, buffers 
internos e a pilha que possui o HEAP, área onde se localizam as variáveis dinâmicas e o 
STACK, endereços de retorno de chamadas e parâmetros de funções.
A atribuição de endereço físico para as áreas de código e áreas de dados pode ser fei-
ta de três formas: em tempo de compilação, em tempo de carga e em tempo de execução. 
Em tempo de compilação, o programador já faz a conversão de endereço lógico em ende-
reço físico, pois ele tem conhecimento de qual área da memória irá utilizar. Em tempo de 
carga, o código precisa ser realocável, de forma que todas as referências a memória sejam 
corrigidas para que o endereço de carga corresponda. Em tempo de execução, tem-se o có-
digo absoluto, e é realizada uma relocação dinâmica usando a MMU, não sendo necessário 
corrigir os endereços no momento da carga do programa em memória.
59Sistemas Operacionais
3.1.4. Gerenciamento de arquivo
O que é arquivo?
Todos os dados armazenados em um computador precisam ser armazenados em fi-
cheiros fechados, denominados de arquivos.
Assim como em um arquivo físico, que tem pastas de documentos em uma empresa, 
no computador, o armazenamento também se dá por meio de arquivos, porém de um jeito 
diferente dos materiais físicos: no material físico, encontramos, dentro do arquivo, várias 
pastas, e, dentro dessas pastas, vários documentos.
Virtualmente, podemos dizer que o nosso arquivo é um móvel para guardar pastas:seria nossa mídia de armazenamento digital.
Existem diversos tipos de arquivos, como documentos de texto, planilhas de cálculos, 
imagens, entre outros. Todos esses são arquivos e são gravados em algum tipo de mídia, 
para posteriormente acessá-los. Sem uma mídia para gravação, o documento permanece 
residente em memória RAM, e, ao desligar o computador, tudo é apagado. Por isso é im-
portante salvar os arquivos.
Os arquivos comumente são salvos em discos rígidos no computador, mas podem ser 
salvos em outras mídias.
Figura 3. Discos rígidos
Os arquivos excluídos do sistema operacional, na realidade, não são excluídos da mí-
dia em que foram gravados, apenas são removidos do índice. No pen-drive, para sobrescre-
ver sobre alguma área, apaga em blocos, portanto, se o pen-drive está formatado em um 
sistema de arquivos com unidades de alocações menores que os blocos, ele salva o conteú-
do na controladora, formata a área, e grava com as devidas modificações.
Sistemas Operacionais60
Cada bloco pode variar conforme o tamanho do pen-drive, e por isto, quanto maior 
sua capacidade, maior será também sua taxa de transferência, porque os blocos serão 
maiores, e as controladoras serão mais eficazes para criar e reconstruir os blocos.
Partição
Assim como cada sistema operacional pode funcionar apenas com sua estrutura, e 
faz isso melhor com sua própria estrutura, também se encarrega de ter o sistema de arqui-
vos aprimorados para trabalhar com discos que estejam preparados para o próprio sistema. 
Ou seja, particionar o disco é como “dizer ao disco rígido” que ele está trabalhando com um 
determinado tipo de sistema operacional.
Atualmente, versões do Linux incorporam, em seu ambiente, a funcionalidade de ler 
e gravar em vários tipos de partições comerciais existentes, porém, não restam dúvidas de 
que as melhores partições para o Linux trabalhar são as dele próprias, devido sua estrutura 
familiar para trabalhar com os discos e com o gerenciamento geral do sistema operacional.
Partições primárias são partições próprias para instalar o sistema operacional e po-
dem ser carregadas com a inicialização do sistema. Já as partições estendidas oferecem su-
porte para dividir o disco em várias unidades lógicas de armazenamento, podendo ocupar 
espaços em disco perdidos para novas unidades de armazenamento de dados.
Gravação de arquivos
Os arquivos, ao serem gravados no disco, não são gravados sequencialmente, apenas 
quando possível. Dessa forma, não são organizados por nome, por data, ou qualquer que 
seja um atributo, isto faria com que seu sistema tivesse que reconstruir todos os dados de 
seu disco rígido.
Supondo que seu disco tenha 500 Gb, com taxa de transferência de 80 Mb/s e a orga-
nização dos arquivos fosse definida pelo nome, e você criou um arquivo do Word iniciando 
com a letra “A”, todos os nomes de arquivos depois deste “A” teriam que ser movidos para 
seu arquivo ser gravado. Supondo que após este “A”, haja 300 Gb em dados gravados, leva-
ria cerca de 64 minutos para salvar seu arquivo.
61Sistemas Operacionais
Indexação
Quando os arquivos são salvos, existem formas de encontrá-los rapidamente. Desde 
o Windows XP, foi adicionada a função de indexação dos arquivos, que foi aprimorada ape-
nas no Windows Vista, em que o usuário tem rapidamente o que está procurando somente 
a partir do menu iniciar, não sendo mais necessária a ferramenta de busca dos sistemas an-
teriores, que buscavam em toda a estrutura do disco procurando arquivos.
Na indexação, ponteiros são salvos em um arquivo que, por sua vez, é pequeno. Cada 
alteração nesse arquivo move os ponteiros anteriores, e o arquivo de indexação é constan-
temente atualizado e totalmente organizado, tornando fácil encontrar outros tipos de ar-
quivo pelo sistema de arquivos.
Toda vez que um novo arquivo ou dado é salvo pelo usuário e esse arquivo ainda não 
foi alocado em disco, o sistema operacional procura na hierarquia de arquivos, se há algu-
ma entrada de unidade de alocação vazia para conseguir gravá-lo. Quando um computa-
dor é novo, normalmente o disco não está fragmentado e não tem “buracos”. Ao começar a 
gravar e apagar arquivos, e dependendo da quantidade de arquivos, a situação vai se agra-
vando dia após dia. 
O sistema de arquivos HPFS tenta encontrar unidades de alocação, ao máximo se-
quenciais, ou seja, a fragmentação, neste tipo de partição, é algo que nem é possível de 
perceber. Mesmo o disco estando fragmentado, ao encontrar setores utilizados que são pe-
quenos demais, que estão no meio do caminho, ele copia para outras unidades de alocação 
e aloca o novo arquivo no novo espaço.
O NTFS faz um processo similar: ele até encontra as unidades de alocação, mas não 
fica buscando muito, então, encontrando as primeiras uni- dades de alocação entre 5 e 10 
buscas, dependendo da velocidade do disco e sua fragmentação, grava a partir dessa que 
é a maior. Entretanto, se o disco está muito fragmentado e o arquivo for dividido, ele não 
realiza a busca para gravar o restante do arquivo, tornando-o sequenciais entre “buracos” 
encontrados no disco.
Sistemas Operacionais62
3.2. Sistemas de arquivos em sistemas operacionais
Você sabia que todas as informações que são armazenadas definitivamente em um 
computador, ou seja, que não se perdem com o desligamento, precisam estar armazenadas 
dentro de uma estrutura para posteriormente ser possível recuperá-las? Isso ocorre com 
todas as mídias de armazenamento, pois necessitam dessa estrutura lógica de organização 
dos arquivos e diretórios. Essa estrutura é chamada de sistemas de arquivos e varia confor-
me o tipo de mídia e sistema operacional utilizado.
Neste capítulo, você vai conhecer detalhadamente alguns sistemas de arquivos, bem 
como a instalaçao do Linux e alguns comandos de manipulação de arquivos.
3.2.1. Sistemas de arquivos dos principais sistemas operacionais
Um sistema de arquivos é um conjunto de estruturas lógicas e de rotinas, que per-
mitem ao sistema operacional controlar o acesso aos dados armazenados em dispostivos 
de memória de massa (discos). Diferentes sistemas operacionais usam diferentes sistemas 
de arquivos. Conforme cresce a capacidade dos discos e aumenta o volume de arquivos e 
acessos, essa tarefa torna-se mais e mais complicada, exigindo o uso de sistemas de arqui-
vos cada vez mais complexos e robustos, ou seja, o sistema de arquivos varia conforme o 
sistema operacional utilizado e conforme a tecnologia dos discos.
3.2.2. Sistemas de arquivos para Windows
O sistema operacional Windows é compatível com alguns sistemas de arquivos dife-
rentes. O suporte aos tipos de sistemas de arquivos varia conforme a versão do sistema 
operacional Windows. Os sistemas de arquivos utilizados nas diferentes do Windows são: 
FAT (FAT 16 e FAT 32), NTFS e HPFS.
Sistema de arquivos FAT
Os sistemas de arquivo FAT foram os primeiros a serem criados e estão divididos em 
FAT (ou FAT 16) e FAT 32. A sigla FAT significa File Allocation Table ou tabela de alocação 
ele arquivos. A primeira versão do FAT foi criada para funcionar como sistema de arquivos 
oficial do MS-DOS no início da década de 1980 e foi usada como padrão até o lançamento 
do windows 95.
63Sistemas Operacionais
O sistema FAT é um sistema de 16 bits que permite identificar um arquivo com um 
nome de até 8 caracteres e três extensões de caracteres. Por utilizar 16 bits, o sistema de 
arquivos FAT é um sistema 16 pode endereçar 65536 clusters, pois um cluser se compõe de 
um número fixo (4, 8, 16, 32, etc.) de setores de 512 bytes contíguos. Sendo assim, o tama-
nho máximo de uma partição FAT pode ser determinado multiplicando o número de grupos 
pelo tamanho de um cluster. Com grupos de 32 KB, o tamanho máximo de uma partição 
FAT é, então, de 2 G B.
A tabela de alocação de arquivos é uma lista de valores digitais que descrevem a alo-
cação dos grupos de uma partição, ou seja, o estado de cada clusterda partição em que se 
encontra. Na verdade, a tabela de alocação corresponde a um cluster, em que cada célula con-
tém um número que indica se um arquivo está utilizando o cluster e, se for caso disso, isso in-
dicará a localização do próximo cluster no arquivo. Dessa forma, obtém-se uma cadeia FAT, 
ou seja, uma lista encadeada de referencias que apontam para os clusters sucessivos, até o fi-
nal do arquivo. Cada entrada do FAT tem um comprimento de 16 ou 32 bits (dependendo, se 
for um FAT16 ou um FAT32). As duas primeiras entradas armazenam informações na própria 
tabela, enquanto as entradas seguintes fazem referência aos grupos. Certas entradas podem 
conter valores que indiquem o estado do cluster específico. Assim, o valor 0000 indica que 
você não está usando o cluster, FFF7 indica o grupo como defeituoso, por isso não será usado, 
e os valores compreendidos entre FFF8 e FFFF especificam que o duster contém o final de um 
arquivo. Na verdade, cada partição contém duas cópias da tabela, armazenadas de maneira 
contígua no disco, para poder recuperá-la se, por acaso, a primeira cópia estiver corrompida.
O FAT32, sucessor da FAT 16, é um sistema que começou a ser utilizado por volta de 
1994 no primeiro sistema operacional gráfico da Microsoft, o Windows 95. Depois, foi uti-
liza do também pelos seus sucessores Windows 98 (1997) e Windows Millenium Edition 
(1999). Após essas versões, começou a ser substituído pelo sistema de arquivos NTFS (New 
Technology File System), mas ainda assim possui compatibilidade com o Windows 2000 
(2000) e Windows XP (2002).
O FAT32 é um tipo de sistema de arquivos bem antigo e bastante usado até hoje na 
formatação de pen-drives e flash drives. Por ser usado há tanto tempo, ele tem a vantagem 
de ser compatível com praticamente todos os tipos de sistemas operacionais e aparelhos 
eletrônicos. É compatível com partições de até 8 TB (mais do que suficiente para pen- 
drives), mas não consegue suportar arquivos individuais maiores do que 4 GB, o que é uma 
grande desvantagem hoje em dia.
Uma diferença visível entre as duas versões é que o FAT32 suporta nomes de arquivos 
longos (até 256 caracteres), enquanto o FAT16 suporta apenas nomes de arquivos curtos 
(até 8 caracteres + extensão). Um dos maiores problemas do FAT diz respeito à segurança, 
pois nesse sistema os arquivos podem ser lidos ou escritos por qualquer usuário do sistema.
Sistemas Operacionais64
O sistema de arquivos FAT não trabalha diretamente com cada setor, mas sim com 
um grupo de setores. Esse grupo é chamado de cluster (ou unidade de alocação). Se, por 
exemplo, um disco com setor de 512 bytes, tiver 5 KB de tamanho, ele terá 10 setores e 
5 clusters, se cada cluster ocupar dois setores. Sendo assim, quando o FAT precisar aces-
sar um determinado setor, primeiro ele descobre em qual cluster se encontra. É importante 
ressaltar que tanto o FAT quanto o FAT32 trabalham de acordo com esse princípio.
Sistema de arquivos NTFS
O sistema de arquivos NTFS é o sistema pelo qual os arquivos são armazenados e re-
cuperados a partir de um sistema operacional baseado em Windows NT. Ele fornece aces-
so a arquivos e controle, define permissões de usuário, mantém logs de transação em caso 
de falha no disco e suporta volumes que abrangem para aplicações maiores. O NTFS subs-
titui o sistema de arquivos FAT no Windows 2000, Windows Server 2003, Windows XP e 
Windows Vista e seus sucessores.
Algumas características de armazenamento do padrão NTFS são:
• Tamanho da Unidade Básica de Informação: 4 KB.
• Tamanho máximo do nome do arquivo: 255 letras (Unicode).
• Maior data dos arquivos: 28/05/60056 (60 mil anos).
No NTFS todo o conteúdo do arquivo, incluindo nome, data de criação e permissões 
de acesso, é armazenado como sendo um metadado. Os arquivos são armazenados em 
uma estrutura denominada tabela mestre de arquivos, e a estrutura de dados que o NTFS 
utiliza para organizar os arquivos é a árvore B+, que mesmo sendo muito complexa para ser 
desenvolvida, fornece um ótimo desempenho nas operações de busca dos arquivos.
Sistema de arquivos HPFS
O sistema de arquivos HPFS mantém a organização de diretório do FAT, mas adiciona 
classificação automática do diretório baseado em nomes de arquivo. Os nomes de arquivo 
são estendidos para até 254 caracteres de byte duplo. O HPFS também permite que um ar-
quivo seja composto de "dados" e atributos especiais para permitir uma maior flexibilidade 
em termos de suporte a outras convenções de nomeação e segurança. Além disso, a unida-
de de alocação é alterada de clusters para setores físicos (512 bytes), o que reduz o espaço 
em disco perdido.
65Sistemas Operacionais
No HPFS, as entradas de diretório mantêm mais informações do que o FAT. Assim 
como o arquivo de atributo, isso inclui informações sobre as datas e horas de modificação, 
criação e acesso. Em vez de apontarem para o primeiro cluster de arquivos, as entradas de 
diretório no HPFS apontam para o FNODE. O FNODE pode conter os dados do arquivo ou 
ponteiros que podem apontar para os dados de arquivo ou outras estruturas que apontarão 
eventualmente para os dados de arquivos.
O HPFS organiza uma unidade em uma série de bandas de 8 MB e, sempre que possí-
vel, um arquivo é contido dentro de uma dessas bandas. Entre cada uma dessas bandas, es-
tão 2K bitmaps de alocação, que mantêm um registro de quais setores dentro de uma banda 
foram ou não alocados. A banda aumenta o desempenho, pois o cabeçalho da unidade não 
precisa retornar para o topo lógico (geralmente o cilindro 0) do disco, mas sim para o bitmap 
de alocação de banda mais próximo para determinar onde um arquivo será armazenado.
3.2.3. Sistemas de arquivos para Linux
O Linux é um sistema operacional que dá suporte a diversos sistemas de arquivos. 
A família de sistemas de arquivos ext tem sido nativa para o Linux desde os seus primeiros 
dias e tem sido a mais utilizada. Atualmente o sistema de arquivos mais utilizado é o ext4, 
mas existem suas versões antecessoras.
Sistema de arquivos EXT
Os arquivos EXT foram criados para o UNIX e acabaram por ser a base de criação dos 
sistemas operacionais do Linux. O Sistema de arquivos EXT2 foi projetado e implementa-
do para corrigir as falhas do Ext e prover um sistema que respeitasse a semântica UNIX. A 
influência do UNIX pode ser vista, por exemplo, na utilização de grupos de blocos, que são 
análogos aos grupos de cilindros utilizados pelo FFS. O bloco, que consiste em um conjunto 
de setores (cada setor tem 512 bytes), é a menor unidade de alocação para o Ext2. O tama-
nho pode ser de 1024, 2048 ou 4096 bytes e é definido na formatação. O ext2, assim como 
todos os sistemas de arquivos derivados do UNIX, utiliza o conceito básico de que os arqui-
vos são mapeados por inodes e os diretórios são simplesmente arquivos que contém uma 
lista de entradas e de dispositivos que poderão ser acessados.
O Ext3 (third extended filesystem) é um sistema de arquivos desenvolvido para o 
UNIX, que tira alguns recursos do Ext2, dos quais o mais visível é o journaling. O sistema 
de arquivos Ext3 é um sistema de arquivos que é comumente usada pelo kernel Linux. Sua 
principal vantagem sobre ext2 é a melhora na confiabilidade e o fato de eliminar a necessi-
dade de verificar o sistema de arquivos após um desligamento abrupto.
Sistemas Operacionais66
Embora o seu desempenho (velocidade) seja menos atrativo do que o de outros sis-
temas de arquivos (como ReiserFS e XFS), ele tem a importante vantagem de permitir 
que seja feita a atualização direta a partir de um sistema com ext2, sem a necessidade de 
realizar um backup e restaurar posteriormente os dados, bem como o menor consumo de 
processa mento.
Já o sistema de arquivos Ext4 é considerado a evolução do sistema de arquivos mais 
usados no Linux, o Ext3. De muitas maneiras, Ext4 apresenta melhoria em relação ao 
Ext13, sendo o Ext3, muitas melhorias em relação aoExt2. No Ext3 foi principalmente a 
adição de journaling sobre o Ext2, mas Ext4 teve mudanças importantes na estrutura do 
sistema de arquivos destinado ao armazenamento de dados. O resultado é um sistema de 
arquivos com um design aperfeiçoado, melhor performance, confiável e com muitos recur-
sos. É atualmente o sistema de arquivos mais utilizado em sistemas operacionais Linux.
3.2.4. Instalação de máquinas virtuais Linux
Para realizar a instalação de uma máquina virtual Linux, é necessário utilizar um 
software hospedeiro de máquina virtual. Existem dois softwares hospedeiros bastante co-
muns e gratuitos que são o VirtualBox e o VMware. Para exemplificar a instalação será uti-
lizado o software hospedeiro VirtualBox e com o entendimento do processo no VirtualBox 
é possível realizar a instalação também do VMware.
Para realizar a instalação do VirtualBox, inicialmente é necessário a realização do 
download do arquivo de instalação no site oficial do VirtualBox. Uma vez que foi efetua-
do o download do instalador do VirtualBox, basta executá-lo no computador. Assim que o 
software hospedeiro está instalado, é possível realizar a instalação dos sistemas operacio-
nais convidados. Para a instalação da máquina virtual Linux, é importante também ter o ar-
quivo de instalação do sistema operacional (.lSO) salvo no computador.
Dica
Você pode fazer download do arquivo de instalação 
diretamente no site do VirtualBox: acesse o link ou o código a seguir:
goo.gl/B7uV
67Sistemas Operacionais
Na interface do VirtualBox, clique no botão Novo para abrir o assistente de criação de 
máquinas virtuais. Digite um nome para a máquina virtual no campo Nome, selecione o sis-
tema operacional a ser instalado (Linux) em Tipo, escolha Linux no campo versão e clique 
em Avançar. Deixe o tamanho da memória reservado recomendado pelo VirtualBox para 
a máquina virtual e clique em Avançar. Clique em Criar para criar um disco rígido virtual, 
mantenha a opção padrão marcada e clique em Avançar. Escolha se o novo arquivo da uni-
dade do disco rígido virtual crescerá de acordo com o uso (reserva dinâmica) ou se deve-
rá ser criado com um tamanho máximo (tamanho fixo) e clique em Avançar. Deixe o nome 
que o VirtualBox sugere para o disco rígido virtual, bem como o seu tamanho e clique em 
Criar. Sua máquina virtual aparecerá na interface do VirtualBox.
O próximo passo é definir a sequência de inicialização da máquina virtual, com o ob-
jetivo de executar o instalador do Linux. Para isso é necessário selecionar a máquina virtual 
e ir em Configurações > Armazenamento. Deve ser configurada a sequência de inicialização 
indicando a leiltura do arquivo de instalação do sistema operacional Linux. Após essa eta-
pa, é necessário iniciar a máquina virtual e deverá ser carregado o software de instalação 
do sistema operacional Linux. O assistente de instalação é bem simples, mas merece aten-
ção especial na etapa de configuração do disco para instalação do sistema. Nesta etapa, é 
necessário realizar o particionamento do disco, que pode ser realizado automaticamente 
pelo sistema operacional. Feito isso, basta ir avançando até a conclusão da instalação do 
sistema operacional.
3.2.5. Comandos do sistema operacional Linux
O sistema operacional Linux possui uma vasta lista de comandos. Porém, existem al-
guns que são essenciais para um usuário do sistema operacional Linux. Esses comandos 
são indicados para aqueles que não conseguem suprir suas necessidades por meio da inter-
face gráfica ou que estejam usando o sistema em modo texto. Os Quadros 1 a 9 apresen-
tam as listas resumidas de comandos Linux, separadas por categorias.
Quadro 1. Comandos dos sistema de arquivos.
Sistemas Operacionais68
Quadro 2. Comandos de manipulação de arquivos e diretórios
Quadro 3. Comandos de edição e visualização de arquivos
Quadro 4. Comandos para compressão de arquivos, backup e restauração
Quadro 5. Comandos para gerenciamento de processos e aplicativos
69Sistemas Operacionais
Quadro 6. Comandos de rede
Quadro 7. Comandos que alteram o modo de execução do sistema
Quadro 8. Comandos que apresentam informações sobre o sistema
Sistemas Operacionais70
Quadro 9. Comandos para o gerenciamento dos usuários
73Sistemas Operacionais
OBJETIVOS DO CAPÍTULO
• Compreender a função de um processo na dinâmica de funcionamento do sistema
operacional;
• Entender os tipos de algoritmos utilizados para escalonamento de processos;
• Compreender a função das threads;
• Definir a Hierarquia de armazenamento de um computador;
• Identificar os modos de gerenciamento de memória e suas características;
• Identificar as atividades e responsabilidades da administração da produção.
1
TÓPICOS DE ESTUDO
Gerência de processos, identificando 
seus aspectos em sistemas 
operacionais
• Processo.
• Gerência de Processos.
CAPÍTULO 4
Gerência
Ramiro Córdova Júnior
2 Gerência de Memória
• Hierarquia de armazenamento.
• Gerenciamento de memória.
75Sistemas Operacionais
4.1. Introdução
Os computadores modernos têm como característica a capacidade de realizar várias 
tarefas ao mesmo tempo, ou seja, é capaz de executar um programa utilitário e realizar 
uma leitura no disco e apresentar um texto na tela ao mesmo tempo. Estes tipos de siste-
mas são chamados de sistema multiprogramados.
A multiprogramação nos sistemas é capaz de permitir que o processador execute 
mais de um programa ao mesmo tempo, pois realiza saltos dezenas ou centenas de vezes 
em milissegundos. Para o usuário final esse tempo deixa a sensação que a execução é no 
mesmo instante de tempo. Porém, em cada um desses pequenos intervalos de tempo são 
executados processos, que são os responsáveis por essa sensação de paralelismo por parte 
do usuário.
A gerência dos vários processos a serem executados é uma tarefa um tanto quanto 
complexa para o sistema operacional. Além da gerência dos processos que estão em execu-
ção o sistema operacional gerencia o acesso aos recursos necessários para execução ade-
quada de cada processo. 
Este controle é realizado por um módulo do sistema operacional que supervisio-
na a execução dos programas e a alocação dos recursos necessários, além de controlar a 
interação da CPU com os diversos processos. Este capítulo apresentará uma visão ge-
ral sobre o gerenciamento de processos e sua relação com o funcionamento dos sistemas 
operacionais.
4.1.1. Processo
Um processo pode ser definido como a abstração de um programa que está sendo 
executado. Os programas executados por um usuário reúnem diversas instruções e coman-
dos, porém, são os processos que efetivamente executam esses comandos. Por exemplo, o 
editor o navegador WEB Mozila Firefox, que executa uma nova tarefa a cada aba aberta no 
navegador. Essa medida permite que cada aba seja gerenciada individualmente e, mesmo 
que uma trave, as outras continuam trabalhando normalmente.
Os processos representam tarefas em execução, mas nem todas têm relação direta 
com algum programa utilizado pelo usuário. Muitas delas são executadas em pano de fun-
do, também chamada de execução em background, e mantêm o os serviços de gerencia-
mento de redes, memória, disco, checagem antivírus, etc. Analisando assim, pode-se dizer 
que processos são programas que executam alguma ação e que possuem um controle que 
pode ser do usuário, do programa em execução ou do sistema operacional.
Sistemas Operacionais76
Um processo é composto por três partes chamadas de contexto de hardware, con-
texto de software e espaço de endereçamento. Juntas, essas três partes contém as infor-
mações necessárias para que um programa possa ser rodado pelo sistema operacional. A 
figura 1 ilustra essa divisão interna de um processo.
Figura 1. Três componentes de um processo
Programa
Espaço de 
endereçamento
Contexto de
So�ware
Contexto de
Hardware
Em sistemas operacionais, uma troca de contexto é o processo computacional de ar-
mazenar e restauraro estado (contexto) de uma CPU de forma que múltiplos processos 
possam compartilhar uma única instância de CPU. É garantido que quando o contexto an-
terior armazenado seja restaurado, o ponto de execução volte ao mesmo estado que foi 
deixado durante o armazenamento.
O contexto de hardware é composto por registradores que carregam as informações 
necessárias com relação ao hardware utilizado pelo processo. No momento em que ocorre 
a troca de processo, o sistema operacional salva as informações do contexto de hardware 
do processo.
No contexto de software são definidas as características e limites dos recursos que 
podem ser alocados pelo processo. Essas informações são número máximo de arquivos 
abertos simultaneamente, prioridade de execução e o tamanho do buffer.
77Sistemas Operacionais
4.1.2. Gerência de Processos
Para que o sistema operacional consiga gerenciar os processo a serem executados é 
utilizado pelo sistema um descritor de processo, também conhecido como bloco de contro-
le de processo (PCB). O descritor permite o monitoramento e controle da execução de um 
processo. Os sistemas operacionais criam identificadores de processos que fazem referên-
cia a um descritor de processo.
Uma estrutura PCB contém as seguintes informações:
• Estado do processo;
• Valor do apontador de instruções;
• Espaço de armazenamento dos valores de registradores;
• Informações para escalonamento do processo;
• Informações para o gerenciamento de memória;
• Informações para contabilidade do processo; 
• Status das operações de Entrada e Saída.
Endereçamento de processos
Na gerência de processos existe uma área chamada de espaço de endereçamento, 
que é um conjunto de posições de memória que um processo pode endereçar. Ou seja, o 
espaço de endereçamento é a área de memória do processo onde o programa será execu-
tado, além do espaço para os dados que são utilizados pelo programa.
Estados dos processos
Os processos podem assumir basicamente três estados:
• Execução: este estado ocorre quando o processo está sendo executado.
• Pronto: este estado ocorre quanto o processo aguarda uma oportunidade para en-
trar em execução.
• Espera ou bloqueado: este estado ocorre quando o processo aguarda algum evento 
externo ou por algum recurso para prosseguir com o processamento.
Para que um processo possa ser escalado para execução é necessário que ele esteja 
no estado de pronto. Um processo que está em execução pode perder o controle da CPU 
de forma voluntária quando ele realiza uma operação de entrada/saída. Também pode 
perder o controle de forma involuntária quando por algum critério de gerência o sistema 
Sistemas Operacionais78
operacional retoma o controle da CPU. Os processos em estado de espera permanecem 
nessa situação até que retornem ao estado de pronto. A figura 2 apresenta um diagrama 
de estados de um processo.
Figura 2. Diagrama de estados de um processo
interrompido
admito
escalado
concluido
suspenso
atendido
terminado
execução
pronto espera
novo
Threads
Um thread é um pequeno programa que trabalha como um “subprograma” indepen-
dente de um programa maior, executando alguma tarefa específica. Um programa dividido 
em vários threads pode rodar mais rápido pois várias tarefas podem ser executadas simul-
taneamente. Os vários threads de um programa podem trocar dados entre si e comparti-
lhar o mesmo espaço de memória e os mesmos recursos do sistema.
Existem diferenças na arquitetura dos sistemas operacionais que refletem na execu-
ção de processos e threads. Por exemplo, o Windows têm mais facilidade para gerenciar 
programas com apenas um processo e vários threads, do que com vários processos e pou-
cos threads, pois no Windows o tempo para criar um processo e alternar entre eles é mui-
to grande. O Linux e outros sistemas baseados no Unix por sua vez é capaz de criar novos 
processos rapidamente, o que explica o fato de alguns aplicativos, como por exemplo o 
Apache, rodarem muito mais rápido no Linux do que no Windows, ao serem portados para 
ele. Porém, ao serem alterados, os mesmos programas podem apresentar um desempenho 
semelhante nos dois sistemas.
Escalonamento de Processos
O escalonamento de processos tem como objetivo manter a CPU ocupada a maior 
parte do tempo, aumentando assim a capacidade de atendimento a processos por parte do 
sistema. Além disso, o escalonamento de processos se reflete diretamente nos tempos de 
resposta dos programas para os usuários.
79Sistemas Operacionais
Estes objetivos acabam por vezes sendo conflitantes e os sistemas operacionais pre-
cisam levar em consideração as características dos processos em execução, a disponibi-
lidade de recursos e as características da instalação, para tentar atender os objetivos do 
escalonamento.
Existe um módulo dos sistemas operacionais chamado de scheduler, que é responsá-
vel pelo escalonamento dos processos. Existem diferentes tipos de algoritmos utilizados 
para o escalonamento. Estes algoritmos apresentam características próprias variando o 
critério de escolha do próximo processo a receber o controle da CPU. Existem basicamente 
dois tipos de algoritmos para escalonamento de processos, os do tipo preemptivo e os não 
preemptivo.
Algoritmos não preemptivos
A característica deste tipo de escalonamento é que quando um processo ganha o 
acesso a CPU nenhum outro processo (nem o sistema operacional) pode lhe tirar esse acesso. 
O processo acessa a CPU até que voluntariamente deixe de acessar.
• Escalonamento FIFO:
É fácil de implementar e operar, necessita apenas de uma manutenção de fila fazen-
do com que os processos que passam para o estado de pronto entrar no final da fila e são 
escalados quando atingem o topo. As restrições em relação a essa técnica são a incapaci-
dade de previsão do instante inicial de execução de um processo e a possibilidade de ocor-
rência de processos de menor importância prejudicar o processamento de processos mais 
prioritários.
Esta técnica de escalonamento não é eficaz para os sistemas de tempo compartilha-
do e sistemas em tempo real.
• Escalonamento Shortest_Job_First
Esta técnica de escalonamento associa a cada processo uma estimativa do tempo de 
execução e favorece os processo com tempos menores. O grande desafio desse algoritmo 
é a estimativa do tempo adequado para execução de um determinado processo.
Algoritmos Preemptivos
Os algoritmos de escalonamento que são considerados preemptivos podem inter-
romper um processo em execução e tirar do processo o acesso a CPU, repassando a outro 
processo que esteja na fila. Esta técnica permite que o processo dê atenção imediata aos 
processos mais prioritários. 
Sistemas Operacionais80
• Escalonamento Round Robin ou Circular
Nesta técnica de escalonamento cada processo ganha um tempo limite para sua exe-
cução e após esse tempo o processo é interrompido e colocado numa fila de prontos. A 
esse tempo é atribuído o nome de time-slice ou quantum. O desempenho do algoritmo é 
diretamente relacionado ao quantum.
• Escalonamento por prazos
O escalonamento define que os processos serão completados até certa data, hora ou 
prazo definido. É uma técnica utilizada para processos onde é alta a importância da execu-
ção ser realizada dentro do prazo previsto. Devido a essa característica essa técnica é con-
siderada muito complexa.
Deadlock
O deadlock de processos ocorre um processo pertencente ao conjunto estiver espe-
rando por um recurso que somente um outro processo possui, e esse outro processo esti-
ver esperando por um recurso do processo anterior. A figura 3 exemplifica essa situação.
Figura 3. Exemplo de deadlock
Detém recurso Y
e espera pelo recurso X
Detém recurso X
e espera pelo recurso Y
Processo BProcesso A
Simplificando, pode-se dizer que deadlock é um termo empregado para traduzir um 
problema ocorrido quando um grupo de processos competem entre si. A ocorrência do 
deadlock depende das características de doisou mais programas diferentes e dos respecti-
vos processos a serem executados pelos diferentes programas ao mesmo tempo. Pode ser, 
que esses processos possam ser executados de forma repetitiva usando diferentes proces-
sos sem que ocorra deadlock, todavia, basta um único processo padrão complicado para 
entrar em situação de deadlock.
Existem quatro condições para a ocorrência de deadlock:
• Condição de exclusão mútua: um processo só pode estar alocado para um processo 
em um determinado momento.
81Sistemas Operacionais
• Condição de posse e espera: processos que, em um determinado instante, retêm 
recursos concedidos anteriormente podem requisitar novos recursos.
• Condição de não preempção: recursos concedidos previamente a um processo não 
podem ser tomados a força desse processo, eles devem ser explicitamente libera-
dos pelo processo que os retém.
• Condição de espera circular: deve existir um encadeamento circular de dois ou mais 
processos, onde cada um deles encontra-se à espera de um recurso que está sendo 
usado pelo membro seguinte dessa cadeia.
Neste exemplo, a lista de segmentos é mantida ordenada por endereços. A vantagem 
desse método é que quando o processo termina ou é movido para o disco, a atualização da 
lista é direta. Na finalização de um processo, ao seu lado teremos processos ou espaços li-
vres. Quatro situações podem ocorrer como mostradas na figura X.
Sistemas Operacionais82
4.2. Gerência de Memória
A memória de um computador é um recurso que deve ser gerenciado pelo sistema ope-
racional com eficácia, pois os problemas relacionados a memória impactam diretamente 
na performance das aplicações utilizadas pelos usuários. Diante deste contexto, caracterís-
ticas como quantidade de memória disponível, tempo de acesso e custo, são fundamentais 
para o funcionamento adequado do sistema operacional.
O desejo é que se tenha sempre uma grande quantidade de memória para evitar 
problemas na performance, porém o custo da memória é elevado. Um grande desafio na 
relação custo benefício para compra de memória é tentar equilibrar o custo por bit armaze-
nado, a velocidade de acesso da memória, e a capacidade. Deve ser levado em considera-
ção que quanto maior a capacidade da memória mais lenta ela será.
Em função do custo das memórias, existe o que é chamado de hierarquia de memó-
rias em um computador, que é composto por:
• Uma pequena quantidade de memória cache, que é volátil, muito rápida e de custo 
elevado; 
• Grande quantidade de memória principal (RAM), que é volátil e com velocidade e 
custo médio;
• Uma memória não volátil em disco, com alta capacidade de armazenamento, velo-
cidade e custo baixo.
É uma atribuição do sistema operacional gerenciar a utilização dessas memórias. O 
gerenciador de memória do sistema operacional tem como função manter o controle de 
quais partes da memória estão em uso e quais não estão, alocando memória aos processos 
quando necessário e liberando a memória quando os processos forem encerrados. Além 
disso, o gerenciador de memória coordena a troca de processos entre a memória e o disco 
(quando a memória principal não é suficiente). Neste capítulo serão apresentados diferen-
tes modos de gerenciar as atividades da memória
4.2.1. Hierarquia de Armazenamento
A estrutura de memória de um computador pode ser subdividida em seis níveis que 
operam de forma integrada e ordenada conforme a capacidade de armazenamento e a ve-
locidade de acesso. A figura 1 apresenta os níveis hierárquicos de armazenamento. Quanto 
mais elevado o nível na pirâmide, mais rápida, de menor capacidade e de maior custo por 
bit é o tipo de memória. A troca de dados entre os tipos de memória deve ser gerenciada 
pelo sistema operacional de maneira transparente e segura.
83Sistemas Operacionais
Figura 1. Hierarquia de armazenamento
Registradores
Os registradores ficam fisicamente localizados dentro da CPU. Essas estruturas servem 
para armazenar informações do processo que está sendo executado. As atividades do pro-
cessador são realizadas nas suas unidades funcionais: na unidade aritmética e lógica – ULA 
(Aritmetic and Logic Unit), na unidade de ponto flutuante – UFP (Float Point Unit – FPU) ou 
talvez em uma unidade de processamento vetorial. No entanto, antes que a instrução seja in-
terpretada e as unidades da CPU sejam acionadas, o processador necessita buscar a instrução 
de onde ela estiver armazenada (memória cache ou principal) e armazená-la em seu próprio 
interior, em um dispositivo de memória denominado registrador de instrução.
Por serem construídos com a mesma tecnologia da CPU, estes dispositivos possuem 
o menor tempo de acesso/ciclo de memória do sistema (poucos nanossegundos). Os regis-
tradores são fabricados com capacidade de armazenar um único dado, uma única instrução 
ou até mesmo um único endereço. Desta forma, a quantidade de bits de cada um é de uns 
poucos bits (de 8 a 64).
Memória Cache
A memória cache é uma memória RAM com velocidade de acesso elevada, mas com ta-
manho bem reduzido. Esta memória tem como objetivo acelerar a execução dos programas 
e processos trabalhando em conjunto com o processador. A memória cache possibilita que o 
processador trabalhe com toda capacidade e tenha o mínimo de tempo ocioso possível.
A memória cache é dividida em alguns níveis, conhecidos como L1, L2 e L3 (L signifi-
ca Level, em inglês). Eles dizem respeito à proximidade da memória cache das unidades de 
execução do processador. Quanto mais próxima ela estiver da unidade de execução do pro-
cessador, menor será o seu número.
Sistemas Operacionais84
A localização da memória cache é dentro da CPU entre os registradores e a memó-
ria principal. Todas operações de leitura e escrita na memória, primeiramente passam pela 
memória cache. A figura 2 exemplifica essa situação.
Figura 2. Esquema de acesso a memória cache
Memória Principal
A memória principal é constituída por um determinado número de células, cada uma 
podendo armazenar uma quantidade fixa de informação e sendo individualizada por um 
endereço único. A célula representa a unidade de acesso à memória, isto é, a menor quanti-
dade de bits que pode ser acessada. O tamanho (quantidade de bits) de cada célula depen-
de da arquitetura física do computador. A célula de memória muitas vezes é referenciada 
como byte por geralmente coincidir com o tamanho deste.
Memória Virtual
A Memória Virtual é um espaço variável e reservado no disco rígido. Este espaço é 
reservado no momento em que é feito a instalação do Sistema Operacional. Quando o 
Sistema Operacional notar que a Memória RAM não tem mais espaço de execução, o siste-
ma vai passar a executar os seus programas na Memória Virtual. Pode-se dizer que, a me-
mória virtual é como se fosse uma reserva da Memória RAM, ou seja, se a Memória RAM 
estiver cheia, é utilizado a memória Virtual.
Quando a Memória Virtual é utilizada, o sistema fica extremamente lento (isto por-
que o HD é considerado um tipo de memória lenta – utiliza componentes mecânicos). A 
memória virtual também é conhecida como memória de paginação ou de swap.
Memória Secundária
A memória secundária é a memória de armazenamento permanente, que armazena 
os dados permanentemente no sistema, sem a necessidade de energia elétrica e, por esse 
motivo, conhecida como memória não volátil. Ela funciona como complemento da memó-
ria principal para guardar dados. Como exemplo pode-se citar o disco rígido ou HD.
85Sistemas Operacionais
4.2.2. Gerenciamento de memória 
Os sistemas de gerenciamento de memória podem ser divididos em duas categorias: 
sistemas que, durante a execução levam e trazem processos entre a memória principal e o 
disco (troca de processos e paginação), e sistemas mais simples, que não o fazem.
Monoprogramação
É o esquema de gerenciamento de memória mais simples de todos. Consiste em ter 
somente um processo na memória durante toda sua execução. O usuário carregaum pro-
grama do disco para a memória e este programa fará uso de toda a memória disponível. 
Caso a memória seja insuficiente o programa não irá ser executado.
Quando o sistema utiliza monoprogramação, apenas um processo pode estar em exe-
cução por vez. Quando o processo termina, o sistema operacional reassume a CPU e fica 
aguardando por um novo comando para carregar um outro programa na memória.
Multiprogramação
Devido a necessidade de execução de múltiplos processos, hoje em dia, a monopro-
gramação é pouco utilizada. A multiprogramação tem essa característica de execução de 
múltiplos processos aumentando a utilização da CPU. Um bom exemplo são os servidores 
de rede, que necessitam executar processos para diferentes clientes.
Uma razão para ter-se a multiprogramação, é que muitos processos gastam uma pe-
quena fração do seu tempo para realizar operação de leitura e escrita em disco. Se for ne-
cessário gastar 40 milissegundos para ler um bloco e a computação demanda apenas 10 
milissegundos, sem a multiprogramação a CPU estará desocupada esperando pelo acesso 
ao disco durante 80% do tempo.
Multiprogramação com partições fixas
Esta técnica consiste em dividir a memória em n partições. A definição destas par-
tições cabe ao sistema operacional, através das suas configurações. Quando um processo 
inicia, este pode ser colocado em uma fila de entrada para ocupar a menor partição de ta-
manho suficiente para acomodá-lo. A figura 3 apresenta o gerenciamento com partições 
fixas, tanto com filas de entradas separadas para cada processo (a), quanto com uma fila 
simples de entrada (b).
Sistemas Operacionais86
Figura 3. Gerenciamento de memória com partições fixas
Multiprogramação com partições variáveis
Na prática, partições fixas são pouco atrativas quando a área de memória é escassa, 
pois muita memória é perdida por programas muito menores que o tamanho da partição. 
Assim sendo, um novo sistema de gerenciamento de memória foi desenvolvido, chamado 
gerenciamento com partições variáveis.
Com a utilização desta técnica de gerenciamento de memória o número e o tama-
nho de processos na memória varia de forma dinâmica. A principal diferença entre o geren-
ciamento com partições fixas e o gerenciamento de memória com partições variáveis é a 
quantidade, a localização e o tamanho das partições que variam de forma dinâmica em re-
lação ao tempo. As partições variáveis permitem um aumento da utilização da memória, 
mas cria o desafios em relação a alocação e liberação de memória.
Gerenciamento de memória com mapa de bits
Esta técnica de gerenciamento de memória consiste na divisão da memória em uni-
dades de alocação. Cada unidade de alocação possui um bit que indica se a unidade está 
livre ou alocada. Quando o bit é 0 (zero) a unidade de alocação está livre, e quando a unida-
de de alocação está ocupada o bit é 1 (um). A figura x apresenta como funciona o esquema 
de gerenciamento de memória baseado no mapa de bits. 
87Sistemas Operacionais
Figura 4. Esquema de alocação baseado no mapa de bits
Notem na figura X que a parte “a” da imagem apresenta parte da memória com 5 
processos e 3 espaços livres. A região sombreada representa os processos livres e as mar-
cas representam as unidades de alocação. A parte “b” da figura X mostra o mapa de bits. A 
parte “c” da figura apresenta as mesmas informações em uma lista encadeada. O projeto 
do sistema operacional é que vai definir o tamanho de cada unidade de alocação. Quando o 
tamanho das unidades de alocação é pequeno, o mapa de bits é maior. Se a unidade de alo-
cação for grande, o mapa de bits será pequeno, porém uma quantidade de memória con-
siderável pode ser desperdiçada se o tamanho do processo não for um múltiplo exato da 
unidade de alocação.
Gerenciamento de memória com lista encadeada
Outra maneira de gerenciar o uso de memória é manter uma lista encadeada de seg-
mentos de memória alocados e de segmentos de memória disponíveis. Um segmento é uma 
área de memória alocada a um processo ou uma área de memória livre situada entre as áreas 
de memória de dois processos. A memória da Figura X(a) é representada na Figura X(c) como 
uma lista encadeada de segmentos. Cada elemento dessa lista encadeada especifica um seg-
mento de memória disponível (H) ou um segmento de memória alocado a um processo (P), o 
endereço onde se inicia esse segmento e um ponteiro para o próximo elemento da lista. 
Neste exemplo, a lista de segmentos é mantida ordenada por endereços. A vantagem 
desse método é que quando o processo termina ou é movido para o disco, a atualização da 
lista é direta. Na finalização de um processo, ao seu lado teremos processos ou espaços li-
vres. Quatro situações podem ocorrer como mostradas na figura X.
Sistemas Operacionais88
Figura 5. Quatro combinações de memória quando um processo termina

Continue navegando