Escolar Documentos
Profissional Documentos
Cultura Documentos
OPERACIONAIS
Prof. Me. Cleber Jose Semensate Santos
AUTOR
INFORMAÇÕES RELEVANTES:
SEJA BEM-VINDO(A)!
O objetivo desta apostila não é ensinar como utilizar um SO, mas sim conhecer
os fundamentos que todos os SO’s devem seguir, não importando o fabrican-
te, tipo de licença ou onde ele é usado (em um notebook, celular ou desktop).
Logo na primeira unidade iremos aprender o que é um sistema operacional e
quais deles são mais utilizados.
Querido(a) aluno(a), se prepare para esta grande viagem por dentro de um dos
itens mais importantes do computador.
Vamos lá?
SUMÁRIO
UNIDADE I
04 | INTRODUÇÃO AO ESTUDO DE SISTEMAS OPERACIONAIS
UNIDADE II
22 | PROCESSOS
UNIDADE III
42 | GERENCIAMENTO DE MEMÓRIA E SISTEMA DE ARQUIVOS
UNIDADE IV
64 | GERENCIAMENTO DE ENTRADA E SAÍDA E SISTEMAS
DISTRIBUÍDOS
UNIDADE l
INTRODUÇÃO AO ESTUDO DE
SISTEMAS OPERACIONAIS
Professor Mestre Cleber Semensate
Plano de Estudo:
• Conceitos Básicos
• Estrutura de um Sistema Operacional
• Serviços de Sistemas Operacionais
Objetivos de Aprendizagem:
• Apresentar conceitos e tipos de sistemas operacionais.
• Apresentar os sistemas operacionais de maior uso e influência.
SISTEMAS OPERACIONAIS 5
5
INTRODUÇÃO
Hardware: parte física do computador. É tudo aquilo que pode ser tocado.
Exemplo: teclado, mouse, monitor, gabinete, processador, memória entre ou-
tros.
SISTEMAS OPERACIONAIS 6
1. Conceitos Básicos
É claro que nenhum programador são iria querer lidar com esse disco em nível
de hardware. Em vez disso, um software, chamado driver de disco, lida com
o hardware e fornece uma interface para ler e escrever blocos de dados, sem
entrar nos detalhes. Sistemas operacionais contêm muitos drivers para contro-
lar dispositivos de E/S. Mas mesmo esse nível é baixo demais para a maioria
dos aplicativos. Por essa razão, todos os sistemas operacionais fornecem mais
um nível de abstração para se utilizarem discos: arquivos. Usando essa abstra-
ção, os programas podem criar, escrever e ler arquivos, sem ter de lidar com
os detalhes complexos de como o hardware realmente funciona. TANENBAUM
(2016).
SISTEMAS OPERACIONAIS 7
Essa abstração é a chave para gerenciar toda essa complexidade. Boas abs-
trações transformam uma tarefa praticamente impossível em duas tarefas ge-
renciáveis. A primeira é definir e implementar as abstrações. A segunda é utili-
zá-las para solucionar o problema à mão. Uma abstração que quase todo usuá-
rio de computadores compreende é o arquivo, como mencionado anteriormen-
te. Trata-se de um fragmento de informação útil, como uma foto digital, uma
mensagem de e-mail, música ou página da web salvas. É muito mais fácil lidar
com fotos, e-mails, músicas e páginas da web do que com detalhes de discos
SATA (ou outros). A função dos sistemas operacionais é criar boas abstrações
e então implementar e gerenciar os objetos abstratos criados desse modo.
Neste material, falaremos muito sobre abstrações. Elas são uma das chaves
para compreendermos os sistemas operacionais. Processadores reais, memó-
rias, discos e outros dispositivos são muito complicados e apresentam inter-
faces difíceis, desajeitadas, idiossincráticas e inconsistentes para as pessoas
que têm de escrever softwares para elas utilizarem. Uma das principais tarefas
dos sistemas operacionais é esconder o hardware e em vez disso apresentar
programas (e seus programadores) com abstrações de qualidade, limpas, ele-
gantes e consistentes com as quais trabalhar. TANENBAUM (2016).
Deve ser observado que os clientes reais dos sistemas operacionais são os
programas aplicativos. São eles que lidam diretamente com as abstrações for-
necidas pela interface do usuário, seja uma linha de comandos (shell) ou uma
interface gráfica. Embora as abstrações na interface com o usuário possam ser
similares às abstrações fornecidas pelo sistema operacional, nem sempre esse
é o caso. Para esclarecer esse ponto, considere a área de trabalho normal do
Windows e o prompt de comando orientado a linhas. Ambos são programas
executados no sistema operacional Windows e usam as abstrações que o Win-
dows fornece, mas eles oferecem interfaces de usuário muito diferentes. De
modo similar, um usuário de Linux executando Gnome ou KDE vê uma interfa-
ce muito diferente daquela vista por um usuário Linux trabalhando diretamente
sobre o X Window System, mas as abstrações do sistema operacional subja-
cente são as mesmas em ambos os casos. TANENBAUM (2016).
SISTEMAS OPERACIONAIS 8
1.2. O Sistema operacional como uma gerenciador de recur-
sos
SISTEMAS OPERACIONAIS 9
a fazer uso da CPU, então outro, e finalmente o primeiro de novo. Determinar
como o recurso é multiplexado no tempo — quem vai em seguida e por quanto
tempo — é a tarefa do sistema operacional. Outro exemplo da multiplexação
no tempo é o compartilhamento da impressora. Quando múltiplas saídas de im-
pressão estão na fila para serem impressas em uma única impressora, uma
decisão tem de ser tomada sobre qual deve ser impressa em seguida.
Nas seções a seguir, examinaremos seis estruturas diferentes que foram tenta-
das, a fim de termos alguma ideia do espectro de possibilidades. Isso não quer
dizer que esgotaremos o assunto, mas elas dão uma ideia de alguns projetos
que foram tentados na prática. Os seis projetos apresentados por Tanenbaum
(2016) e que discutiremos aqui são: sistemas monolíticos, sistemas de cama-
das, micronúcleos, sistemas cliente-servidor, máquinas virtuais e exonúcleos.
SISTEMAS OPERACIONAIS 10
2.2. Sistemas de camadas
SISTEMAS OPERACIONAIS 11
2.3. Micronúcleos
De acordo com Tanenbaum (2016), a ideia básica por trás do projeto de micro-
núcleo é atingir uma alta confiabilidade através da divisão do sistema operacio-
nal em módulos pequenos e bem definidos, apenas um dos quais — o micro-
núcleo — é executado em modo núcleo e o resto é executado como proces-
sos de usuário comuns relativamente sem poder. Em particular, ao se executar
cada driver de dispositivo e sistema de arquivos como um processo de usuário
em separado, um erro em um deles pode derrubar esse componente, mas não
consegue derrubar o sistema inteiro. Desse modo, um erro no driver de áudio
fará que o som fique truncado ou pare, mas não derrubará o computador.
SISTEMAS OPERACIONAIS 12
são possíveis, mas conceitualmente, ainda estamos falando da troca de men-
sagens aqui. TANENBAUM (2016).
Uma generalização óbvia dessa ideia é ter os clientes e servidores sendo exe-
cutados em computadores diferentes, conectados por uma rede local ou de
grande área, como descrito na Figura 1.2. Tendo em vista que os clientes co-
municam-se com os servidores enviando mensagens, os clientes não precisam
saber se as mensagens são entregues localmente em suas próprias máquinas,
ou se são enviadas através de uma rede para servidores em uma máquina re-
mota. No que diz respeito ao cliente, a mesma coisa acontece em ambos os
casos: pedidos são enviados e as respostas retornadas. Desse modo, o mode-
lo cliente-servidor é uma abstração que pode ser usada para uma única máqui-
na ou para uma rede de máquinas. TANENBAUM (2016).
Cada vez mais, muitos sistemas envolvem usuários em seus PCs em casa
como clientes e grandes máquinas em outra parte operando como servidores.
Na realidade, grande parte da web opera dessa maneira. Um PC pede uma
página na web para um servidor e ele a entrega. Esse é o uso típico do modelo
cliente-servidor em uma rede. TANENBAUM (2016).
SISTEMAS OPERACIONAIS 13
porte da IBM, os zSeries, que são intensamente usados em grandes centros de
processamento de dados corporativos, por exemplo, como servidores de co-
mércio eletrônico que lidam com centenas ou milhares de transações por se-
gundo e usam bancos de dados cujos tamanhos chegam a milhões de gigaby-
tes. TANENBAUM (2016).
2.6. Exonúcleos
Como aponta Tanenbaum (2016), em vez de clonar a máquina real, como é fei-
to com as máquinas virtuais, outra estratégia é dividi-la, ou em outras palavras,
dar a cada usuário um subconjunto dos recursos. Desse modo, uma máquina
virtual pode obter os blocos de disco de 0 a 1.023, a próxima pode ficar com os
blocos 1.024 a 2.047 e assim por diante.
SISTEMAS OPERACIONAIS 14
3. Serviços de Sistemas Operacionais
SISTEMAS OPERACIONAIS 15
3.4. Detecção de erros
SISTEMAS OPERACIONAIS 16
SAIBA MAIS
REFLITA
Sem dúvida nenhuma seria um pouco mais demorado, tendo em vista que a
cada nova implementação, necessitaria de uma nova a programação e reconfi-
guração dos dispositivos/hardwares a serem utilizados.
SISTEMAS OPERACIONAIS 17
CONSIDERAÇÕES FINAIS
SISTEMAS OPERACIONAIS 18
MATERIAL COMPLEMENTAR
LIVRO
SISTEMAS OPERACIONAIS 19
MATERIAL COMPLEMENTAR
FILME/VÍDEO
SISTEMAS OPERACIONAIS 20
REFERÊNCIAS
ENGLER, D. R.; KAASHOEK, M. F.; O’TOOLE JR., J.; ENGLER, D. R.; KAAS-
HOEK, M. F.; O’TOOLE JR. Exokernel: an operating system architecture
for application-level resource management, Exokernel: an operating sys-
tem architecture for application-level resource management. ACM SIGOPS
Operating Systems Review, (3 de dezembro de 1995)
SISTEMAS OPERACIONAIS 21
UNIDADE ll
PROCESSOS
Professor Mestre Cleber Semensate
Plano de Estudo:
• Definição de processos e threads
• Comunicação entre processos
• Escalonamento de processos
• Impasse I Deadlock
Objetivos de Aprendizagem:
• Mostrar ao aluno definições de processos, bem como as técnicas que o sis-
tema operacional se faz uso para garantir rapidez e confiabilidade no que foi
requerido pelo usuário.
• Apontar as situações de conflitos possíveis entre processos e o comporta-
mento do sistema operacional com estes impasses.
22
INTRODUÇÃO
INTRODUÇÃO
• Gerência do processador/processos.
• Gerência de dispositivos.
• Gerência de memória.
• Gerência de proteção.
• Gerência de arquivos.
SISTEMAS OPERACIONAIS 23
PROCESSOS
1. Conceito de Processo
SISTEMAS OPERACIONAIS 24
Agora considere um PC de usuário. Quando o sistema é inicializado, muitos
processos são secretamente iniciados, quase sempre desconhecidos para
o usuário. Por exemplo, um processo pode ser inicializado para esperar pela
chegada de e-mails. Outro pode ser executado em prol do programa antivírus
para conferir periodicamente se há novas definições de vírus disponíveis. Além
disso, processos explícitos de usuários podem ser executados, imprimindo ar-
quivos e salvando as fotos do usuário em um pen- drive, tudo isso enquanto o
usuário está navegando na Web. Toda essa atividade tem de ser gerenciada, e
um sistema de multiprogramação que dê suporte a múltiplos processos é muito
útil nesse caso. TANENBAUM (2016).
2. Estados de um Processo
Tanenbaum (2016), afirma que embora cada processo seja uma entidade in-
dependente, com seu próprio contador de programa e estado interno, proces-
sos muitas vezes precisam interagir entre si. Um processo pode gerar alguma
saída que outro processo usa como entrada. No comando shell “cat chapter1
chapter2 chapter3.
| grep tree” o primeiro processo, executando cat, gera como saída a concatena-
ção dos três arquivos. O segundo processo, executando grep, seleciona todas
as linhas contendo a palavra “tree”. Dependendo das velocidades relativas dos
dois processos (que dependem tanto da complexidade relativa dos programas,
quanto do tempo de CPU que cada um teve), pode acontecer que grep esteja
pronto para ser executado, mas não haja entrada esperando por ele. Ele deve
então ser bloqueado até que alguma entrada esteja disponível. TANENBAUM
(2016).
SISTEMAS OPERACIONAIS 25
De acordo com Tanenbaum (2016), quando um processo bloqueia, ele o faz
porque logicamente não pode continuar, em geral porque está esperando pela
entrada que ainda não está disponível. Também é possível que um processo
que esteja conceitualmente pronto e capaz de executar seja bloqueado porque
o sistema operacional decidiu alocar a CPU para outro processo por um tempo.
Essas duas condições são completamente diferentes. No primeiro caso, a sus-
pensão é inerente ao problema (você não pode processar a linha de comando
do usuário até que ela tenha sido digitada). No segundo caso, trata-se de uma
tecnicalidade do sistema (não há CPUs suficientes para dar a cada processo
seu próprio processador privado). Na Figura 2.1 vemos um diagrama de estado
mostrando os três estados nos quais um processo pode se encontrar:
SISTEMAS OPERACIONAIS 26
As transições 2 e 3 são causadas pelo escalonador de processos, uma parte
do sistema operacional, sem o processo nem saber a respeito delas. A transi-
ção 2 ocorre quando o escalonador decide que o processo em andamento foi
executado por tempo suficiente, e é o momento de deixar outro processo ter
algum tempo de CPU. A transição 3 ocorre quando todos os outros processos
tiveram sua parcela justa e está na hora de o primeiro processo chegar à CPU
para ser executado novamente. O escalonamento, isto é, decidir qual processo
deve ser executado, quando e por quanto tempo, é um assunto importante que
será melhor abordados adiante. Muitos algoritmos foram desenvolvidos para
tentar equilibrar as demandas concorrentes de eficiência para o sistema como
um todo e justiça para os processos individuais. A transição 4 verifica quando o
evento externo pelo qual um processo estava esperando (como a chegada de
alguma entrada) acontece. Se nenhum outro processo estiver sendo executado
naquele instante, a transição 3 será desencadeada e o processo começará a
ser executado. Caso contrário, ele talvez tenha de esperar no estado de pronto
por um intervalo curto até que a CPU esteja disponível e chegue sua vez. TA-
NENBAUM (2016).
3. Escalonamento de Processos
Nos velhos tempos dos sistemas em lote com a entrada na forma de imagens
de cartões em uma fita magnética, o algoritmo de escalonamento era simples:
apenas execute o próximo trabalho na fita. Com os sistemas de multiprograma-
ção, ele tornou-se mais complexo porque geralmente havia múltiplos usuários
esperando pelo serviço. Como o tempo de CPU é um recurso escasso nessas
máquinas, um bom escalonador pode fazer uma grande diferença no desempe-
nho percebido e satisfação do usuário. Em consequência, uma grande quanti-
dade de trabalho foi dedicada ao desenvolvimento de algoritmos de escalona-
mento inteligentes e eficientes. TANENBAUM (2016).
SISTEMAS OPERACIONAIS 27
Com o advento dos computadores pessoais, a situação mudou de duas manei-
ras. Primeiro, na maior parte do tempo há apenas um processo ativo. É impro-
vável que um usuário preparando um documento em um processador de texto
esteja simultaneamente compilando um programa em segundo plano. Quando
o usuário digita um comando ao processador de texto, o escalonador não preci-
sa fazer muito esforço para descobrir qual processo executar — o processador
de texto é o único candidato. TANENBAUM (2016).
Segundo, computadores tornaram-se tão rápidos com o passar dos anos que
a CPU dificilmente ainda é um recurso escasso. A maioria dos programas para
computadores pessoais é limitada pela taxa na qual o usuário pode apresentar
a entrada (digitando ou clicando), não pela taxa na qual a CPU pode processá-
-la. Mesmo as compilações, um importante sorvedouro de ciclos
SISTEMAS OPERACIONAIS 28
a ser dinamicamente recarregado da memória principal duas vezes (ao entrar
no núcleo e ao deixá-lo). De modo geral, realizar muitas trocas de processos
por segundo pode consumir um montante substancial do tempo da CPU. TA-
NENBAUM (2016).
4. Comunicação de Processos
SISTEMAS OPERACIONAIS 29
A solução teórica para o problema do recurso crítico é simples: antes de entrar
na região crítica de código, aquela em que o recurso é manipulado, o recur-
so é tornado indisponível (“locked”). Indisponibilizando o recurso, nenhum outro
processo pode entrar na sua região crítica. Uma vez que o processo acabe de
ter sua região crítica executada, o mesmo disponibiliza (“unlocked”) o recurso,
de forma que outros processos possam ter acesso. Um processo desejando
acessar o recurso compartilhado necessita apenas verificar a disponibilidade
do mesmo antes de ter sua região crítica executada. TANENBAUM (2016).
1.2. Semáforos
SISTEMAS OPERACIONAIS 30
também.
1.3. Monitores
Os monitores têm uma propriedade importante que os torna úteis para realizar
a exclusão mútua: apenas um processo pode estar ativo em um monitor em
qualquer dado instante. Monitores são uma construção da linguagem de pro-
gramação, então o compilador sabe que eles são especiais e podem lidar com
chamadas para rotinas de monitor diferentemente de outras chamadas de roti-
na. Tipicamente, quando um processo chama uma rotina do monitor, as primei-
ras instruções conferirão para ver se qualquer outro processo está ativo no mo-
mento dentro do monitor. Se isso ocorrer, o processo que chamou será suspen-
so até que o outro processo tenha deixado o monitor. Se nenhum outro proces-
so está usando o monitor, o processo que chamou pode entrar. TANENBAUM
(2016).
SISTEMAS OPERACIONAIS 31
Cabe ao compilador implementar a exclusão mútua nas entradas do monitor,
mas uma maneira comum é usar um mutex ou um semáforo binário. Como o
compilador, não o programador, está arranjando a exclusão mútua, é muito me-
nos provável que algo dê errado. De qualquer maneira, a pessoa escrevendo
o monitor não precisa ter ciência de como o compilador arranja a exclusão mú-
tua. Basta saber que ao transformar todas as regiões críticas em rotinas de mo-
nitores, dois processos jamais executarão suas regiões críticas ao mesmo tem-
po. TANENBAUM (2016).
SISTEMAS OPERACIONAIS 32
Figura 2.2 Jantar dos filósofos.
Fonte: Adaptado de Tanenbaum (2016).
SISTEMAS OPERACIONAIS 33
Poderíamos facilmente modificar o programa de maneira que após pegar o
garfo esquerdo, o programa confere para ver se o garfo direito está disponível.
Se não estiver, o filósofo coloca de volta o esquerdo sobre a mesa, espera por
um tempo, e repete todo o processo. Essa proposta também fracassa, embora
por uma razão diferente. Com um pouco de azar, todos os filósofos poderiam
começar o algoritmo simultaneamente, pegando seus garfos esquerdos, ven-
do que seus garfos direitos não estavam disponíveis, colocando seus garfos
esquerdos de volta sobre a mesa, esperando, pegando seus garfos esquerdos
de novo ao mesmo tempo, assim por diante, para sempre. Uma situação como
essa, na qual todos os programas continuam a executar indefinidamente, mas
fracassam em realizar qualquer progresso, é chamada de inanição (starvation).
TANENBAUM (2016).
O problema do jantar dos filósofos é útil para modelar processos que estão
competindo pelo acesso exclusivo a um número limitado de recursos, como em
dispositivos de E/S. Outro problema famoso é o problema dos leitores e escri-
tores (COURTOIS et al., 1971), que modela o acesso a um banco de dados.
Imagine, por exemplo, um sistema de reservas de uma companhia aérea, com
muitos processos competindo entre si desejando ler e escrever. É aceitável ter
múltiplos processos lendo o banco de dados ao mesmo tempo, mas se um pro-
SISTEMAS OPERACIONAIS 34
cesso está atualizando (escrevendo) o banco de dados, nenhum outro pode ter
acesso, nem mesmo os leitores. TANENBAUM (2016).
Suponha que um escritor apareça. O escritor pode não ser admitido ao banco
de dados, já que escritores precisam ter acesso exclusivo, então ele é suspen-
so. Depois, leitores adicionais aparecem. Enquanto pelo menos um leitor ainda
estiver ativo, leitores subsequentes serão admitidos. Como consequência des-
sa estratégia, enquanto houver uma oferta uniforme de leitores, todos eles en-
trarão assim que chegarem. O escritor será mantido suspenso até que nenhum
leitor esteja presente. Se um novo leitor aparecer, digamos, a cada 2 segundos,
e cada leitor levar 5 segundos para realizar o seu trabalho, o escritor jamais en-
trará. TANENBAUM (2016).
Para evitar essa situação, o programa poderia ser escrito de maneira que
quando um leitor chega e um escritor está esperando, o leitor é suspenso atrás
do escritor em vez de ser admitido imediatamente. Dessa maneira, um escritor
precisa esperar por leitores que estavam ativos quando ele chegou, mas não
precisa esperar por leitores que chegaram depois dele. A desvantagem dessa
solução é que ela alcança uma concorrência menor e assim tem um desempe-
nho mais baixo. Courtois et al. (1971) apresentam uma solução que dá priorida-
de aos escritores. TANENBAUM (2016).
SISTEMAS OPERACIONAIS 35
1.5.1. Recursos
Na maioria dos casos, o evento que cada processo está esperando é a libera-
ção de algum recurso atualmente possuído por outro membro do conjunto. Em
outras palavras, cada membro do conjunto de processos em situação de im-
passe está esperando por um recurso que é de propriedade do processo em si-
tuação de impasse. Nenhum dos processos pode executar, nenhum deles pode
liberar quaisquer recursos e nenhum pode ser desperto. O número de proces-
SISTEMAS OPERACIONAIS 36
sos e o número e tipo de recursos possuídos e solicitados não têm importância.
Esse resultado é válido para qualquer tipo de recurso, incluindo hardwares e
softwares. Esse tipo de impasse é chamado de impasse de recurso, e é prova-
velmente o tipo mais comum. TANENBAUM (2016).
SAIBA MAIS
REFLITA
SISTEMAS OPERACIONAIS 37
CONSIDERAÇÕES FINAIS
Qual Sistema Operacional você está utilizando neste momento? Caso esteja
utilizando Windows ou Linux, este é um SO que consegue executar diversos
processos ao mesmo tempo. E cada um destes processos irão possuir pelo
menos um thread e cabe aos algoritmos escalonar e gerenciar a utilização de
forma ordenada os processos dentro da CPU.
Esta estratégia de ordenação entre processos serve para evitar uma condição
de disputa entre os recursos. Dentre estas estratégias vale a pena citar os se-
máforos. Caso estas estratégias ou escalonamento falhem, iremos ter sérios
problemas causando os famosos travamentos nos programas e consecutiva-
mente os travamentos do sistema operacional. Se for no Windows, a famosa
“tela azul”.
Os assuntos trazidos nesta unidade são de vital importância para que você
consiga garantir rapidez, confiabilidade e disponibilidade em sistemas operacio-
nais.
SISTEMAS OPERACIONAIS 38
MATERIAL COMPLEMENTAR
LIVRO
SISTEMAS OPERACIONAIS 39
FILME/VÍDEO
• Título: Revolution_OS
• Ano: 2001
• Sinopse: O Documentário “Revolution OS” trata da história do Software
Livre, de como surgiu, a filosofia por trás do projeto, a história de Richard
Stallman, o surgimento do Linux, entrevistas com Linux Torvalds, a criação
da GPL e a carta malcriada feita por Bill Gates à FOSS e outras figuras im-
portantes do Software Livre. Sem dúvida, um excelente documentário para
aqueles que gostam de Software Livre mas não conhecem sua história e
mesmo para aqueles que não gostam de SL, mas têm curiosidade em saber
como surgiu.
• Link: < https://www.youtube.com/watch?v=plMxWpXhqig>
SISTEMAS OPERACIONAIS 40
REFERÊNCIAS
SISTEMAS OPERACIONAIS 41
UNIDADE lll
GERENCIAMENTO DE MEMÓRIA
E SISTEMA DE ARQUIVOS
Professor Mestre Cleber Semensate
Plano de Estudo:
A seguir, apresentam-se os tópicos que você estudará nesta unidade:
• Organização de Memória
• Swapping
• Paginação
• Segmentação
• Memória virtual
• Conceito de Arquivo
• Métodos de Acesso
• Atributos de arquivos
• Operações com arquivos
• Diretórios
42
Objetivos de Aprendizagem:
• Apresentar definições de memória e as técnicas que o sistema operacional
utiliza para garantir o armazenamento dos dados utilizados pelos proces-
sos.
• Diferenciar endereços lógicos dos endereços físicos, quem os cria e como
são utilizados pela memória.
• Explicar como as informações são armazenadas/alocadas na memória e
como elas podem se fragmentar.
• Identificar quais estratégias de alocação são utilizadas pelos principais
sistemas operacionais.
• Apresentar o uso da técnica de memória virtual.
• Apresentar conceitos de arquivos.
• Apresentar e diferenciar os sistemas de arquivos utilizados pelos principais
sistemas operacionais.
SISTEMAS OPERACIONAIS 43
INTRODUÇÃO
Outra questão a ser discutida, está relacionada à memória e que está no con-
texto da gerência de memória é a de permitir a execução de programas que
sejam maiores do que a memória física disponível, utilizando técnicas como a
memória virtual e o overlay.
Veremos também nesta Unidade III os sistemas de arquivos dos sistemas ope-
racionais. Os arquivos são gerenciados pelo sistema operacional de forma a
auxiliar a utilização pelos usuários. O sistema de arquivos caracteriza-se como
a parte mais visível de um sistema operacional, uma vez que os usuários ma-
nipulam arquivos a todo o momento. Abordaremos nesta Unidade as principais
formas para organização de arquivos, métodos de acesso, assim como, as
principais técnicas de alocação.
SISTEMAS OPERACIONAIS 44
1. GERENCIAMENTO DE MEMÓRIA
A memória principal (RAM) é um recurso importante que deve ser cuidadosa-
mente gerenciado. Apesar de o computador pessoal médio hoje em dia ter
10.000 vezes mais memória do que o IBM 7094, o maior computador no mundo
no início da década de 1960, os programas estão ficando maiores mais rápido
do que as memórias. A parte do sistema operacional que gerencia (parte da)
hierarquia de memórias é chamada de gerenciador de memória. Sua função
é gerenciar eficientemente a memória: controlar quais partes estão sendo us-
adas, alocar memória para processos quando eles precisam dela e liberá-la
quando tiverem terminado.
Cada célula deve ficar num local certo e sabido, ou seja, a cada célula asso-
cia-se um número chamado de seu endereço. Só assim torna-se possível a
busca na memória exatamente do que se estiver querendo a cada momen-
to(acesso aleatório). Sendo assim, célula pode ser definida como a menor par-
te de memória endereçável. TANENBAUM (2016).
SISTEMAS OPERACIONAIS 45
dian. Ambas representações são boas mas quando uma máquina de um tipo
tenta enviar dados para outra, problemas de posicionamento podem surgir. A
falta de um padrão para ordenar os bytes é um grande problema na troca de
dados entre máquinas diferentes.
1.2. Swapping
Duas abordagens gerais para lidar com a sobrecarga de memória foram desen-
volvidas ao longo dos anos. A estratégia mais simples, chamada de swapping
(troca de processos), consiste em trazer cada processo em sua totalidade,
executá-lo por um tempo e então colocá-lo de volta no disco. Processos ocio-
sos estão armazenados em disco em sua maior parte, portanto não ocupam
qualquer memória quando não estão sendo executados (embora alguns “des-
pertem” periodicamente para fazer seu trabalho, e então voltam a “dormir”).
A outra estratégia, chamada de memória virtual, estudaremos mais adiante.
TANENBAUM (2016).
SISTEMAS OPERACIONAIS 46
Quando as trocas de processos criam múltiplos espaços na memória, é pos-
sível combiná-los em um grande espaço movendo todos os processos para
baixo, o máximo possível. Essa técnica é conhecida como compactação de
memória. Em geral ela não é feita porque exige muito tempo da CPU. TANEN-
BAUM (2016).
Um ponto que vale a pena considerar diz respeito a quanta memória deve ser
alocada para um processo quando ele é criado ou trocado. Se os processos
são criados com um tamanho fixo que nunca muda, então a alocação é sim-
ples: o sistema operacional aloca exatamente o que é necessário, nem mais
nem menos. TANENBAUM (2016).
1.3. Paginação
SISTEMAS OPERACIONAIS 47
1.4. Segmentação
SISTEMAS OPERACIONAIS 48
1.5. Memória virtual
SISTEMAS OPERACIONAIS 49
O método encontrado (FOTHERINGHAM, 1961) ficou conhecido como
memória virtual. A ideia básica é que cada programa tem seu próprio espaço
de endereçamento, o qual é dividido em blocos chamados de páginas. Cada
página é uma série contígua de endereços. Elas são mapeadas na memória
física, mas nem todas precisam estar na memória física ao mesmo tempo para
executar o programa. Quando o programa referência uma parte do espaço de
endereçamento que está na memória física, o hardware realiza o mapeamento
necessário rapidamente. Quando o programa referência uma parte de seu es-
paço de endereçamento que não está na memória física, o sistema operacional
é alertado para ir buscar a parte que falta e reexecuta a instrução que falhou.
SISTEMAS OPERACIONAIS 50
1. SISTEMA DE ARQUIVOS
SISTEMAS OPERACIONAIS 51
Conceito de Arquivo
SISTEMAS OPERACIONAIS 52
em um determinado voo, o programa de reservas deve ser capaz de acessar
o registro para aquele voo sem ter de ler primeiro os registros para milhares de
outros voos. Dois métodos podem ser usados para especificar onde começar
a leitura. No primeiro, cada operação read fornece a posição no arquivo onde
começar a leitura. No segundo, uma operação simples, seek, é fornecida para
estabelecer a posição atual. Após um seek, o arquivo pode ser lido sequencial-
mente da posição agora atual. O segundo método é usado no UNIX e no Win-
dows. TANENBAUM (2016).
SISTEMAS OPERACIONAIS 53
Os vários registros de tempo controlam quando o arquivo foi criado, acessa-
do e modificado pela última vez, os quais são úteis para uma série de finali-
dades. Por exemplo, um arquivo-fonte que foi modificado após a criação do ar-
quivo-objeto correspondente precisa ser recompilado. Esses campos fornecem
as informações necessárias. TANENBAUM (2016).
Atributo Significado
Proteção Quem tem acesso ao arquivo e de que modo
SISTEMAS OPERACIONAIS 54
O tamanho atual nos informa o tamanho que o arquivo tem no momento. Al-
guns sistemas operacionais de antigos computadores de grande porte exigiam
que o tamanho máximo fosse especificado quando o arquivo fosse criado, a
fim de deixar que o sistema operacional reservasse a quantidade máxima de
memória antecipadamente. Sistemas operacionais de computadores pessoais
e de estações de trabalho são inteligentes o suficiente para não precisarem
desse atributo. TANENBAUM (2016).
2. Delete: quando o arquivo não é mais necessário, ele tem de ser removido
para liberar espaço para o disco. Há sempre uma chamada de sistema para
essa finalidade.
5. Read: dados são lidos do arquivo. Em geral, os bytes vêm da posição atual.
Quem fez a chamada deve especificar a quantidade de dados necessária e
também fornecer um buffer para colocá-los.
7. Append: essa chamada é uma forma restrita de write. Ela pode acrescentar
SISTEMAS OPERACIONAIS 55
dados somente para o final do arquivo. Sistemas que fornecem um conjunto
mínimo de chamadas do sistema raramente têm append, mas muitos siste-
mas fornecem múltiplas maneiras de fazer a mesma coisa, e esses às vez-
es têm append.
10. Set attributes: alguns dos atributos podem ser alterados pelo usuário e mod-
ificados após o arquivo ter sido criado. Essa chamada de sistema torna isso
possível. A informação sobre o modo de proteção é um exemplo óbvio. A
maioria das sinalizações também cai nessa categoria.
1.4 Diretórios
SISTEMAS OPERACIONAIS 56
1.4.1 Sistemas de diretório em nível único
SISTEMAS OPERACIONAIS 57
Figura 4.2 Um sistema hierárquico de diretórios.
Fonte: Adaptado de Tanenbaum (2016).
Faz-se necessária uma hierarquia (isto é, uma árvore de diretórios). Com essa
abordagem, o usuário pode ter tantos diretórios quantos forem necessários
para agrupar seus arquivos de maneira natural. Além disso, se múltiplos usuári-
os compartilham um servidor de arquivos comum, como é o caso em muitas
redes de empresas, cada usuário pode ter um diretório-raiz privado para sua
própria hierarquia. Essa abordagem é mostrada na Figura 4.2. Aqui, cada di-
retório A, B e C contido no diretório- -raiz pertence a um usuário diferente, e
dois deles criaram subdiretórios para projetos nos quais estão trabalhando.
TANENBAUM (2016).
SISTEMAS OPERACIONAIS 58
SAIBA MAIS
Você conhece a memória cache? Aprenda mais sobre ela neste vídeo.
<https://www.youtube.com/watch?v=Yucz5VVxcuE&feature=youtu.be>.
REFLITA
SISTEMAS OPERACIONAIS 59
CONSIDERAÇÕES FINAIS
SISTEMAS OPERACIONAIS 60
MATERIAL COMPLEMENTAR
LIVRO
SISTEMAS OPERACIONAIS 61
MATERIAL COMPLEMENTAR
FILME/VÍDEO
SISTEMAS OPERACIONAIS 62
REFERÊNCIAS
SISTEMAS OPERACIONAIS 63
UNIDADE lV
GERENCIAMENTO DE
ENTRADA E SAÍDA E
SISTEMAS DISTRIBUÍDOS
Professor Mestre Cleber Semensate
Plano de Estudo:
• Princípios do Hardware de Entrada e Saída
• Princípios do Software de Entrada e Saída
• Atributos de Sistemas Distribuídos
• Sistemas Operacionais de Rede
• Comunicação em Sistemas Distribuídos
SISTEMAS OPERACIONAIS 64
64
Objetivos de Aprendizagem:
• Diferenciar hardware de entrada/saída do software de entrada/saída.
• Apresentar como o sistema operacional se comunica com os dispositivos de
entrada/saída.
• Entender como uma coleção de nós computacionais independentes, sepa-
rados fisicamente, entretanto conectados.
• Perceber como usuários com um único dispositivo provendo serviços ou re-
solvendo algum problema.
SISTEMAS OPERACIONAIS 65
INTRODUÇÃO
SISTEMAS OPERACIONAIS 66
1. GERENCIAMENTO DE ENTRADA E SAÍDA
Para Tanenbaum (2016), dispositivos de E/S podem ser divididos de modo ge-
ral em duas categorias: dispositivos de blocos e dispositivos de caractere. O
primeiro armazena informações em blocos de tamanho fixo, cada um com seu
próprio endereço. Tamanhos de blocos comuns variam de 512 a 65.536 bytes.
Todas as transferências são em unidades de um ou mais blocos inteiros (con-
secutivos). A propriedade essencial de um dispositivo de bloco é que cada blo-
co pode ser lido ou escrito independentemente de todos os outros. Discos rígi-
dos, discos blu-ray e pen drives são dispositivos de bloco comuns.
O limite entre dispositivos que são endereçáveis por blocos e aqueles que não
são não é bem definido. Um disco é um dispositivo endereçável por bloco, pois
não importa a posição em que se encontra o braço no momento, é sempre pos-
sível buscar em outro cilindro e então esperar que o bloco solicitado gire sob a
cabeça. Agora considere um velho dispositivo de fita magnética ainda usado,
às vezes, para realizar backups de disco (porque fitas são baratas). Fitas con-
têm uma sequência de blocos. Se o dispositivo de fita receber um comando
para ler o bloco “N”, ele sempre pode rebobiná-la e ir direto até chegar ao bloco
“N”. Essa operação é análoga a um disco realizando uma busca, exceto por le-
var muito mais tempo. Também pode ou não ser possível reescrever um bloco
no meio de uma fita. Mesmo que fosse possível usar as fitas como dispositivos
de bloco com acesso aleatório, isso seria forçar o ponto de algum modo: em
geral elas não são usadas dessa maneira. TANENBAUM (2016).
SISTEMAS OPERACIONAIS 67
O outro dispositivo de E/S é o de caractere. Um dispositivo de caractere envia
ou aceita um fluxo de caracteres, desconsiderando qualquer estrutura de bloco.
Ele não é endereçável e não tem qualquer operação de busca. Impressoras, in-
terfaces de rede, mouses (para apontar), ratos (para experimentos de psicolo-
gia em laboratórios) e a maioria dos outros dispositivos que não são parecidos
com discos podem ser vistos como dispositivos de caracteres. TANENBAUM
(2016).
SISTEMAS OPERACIONAIS 68
disco compatíveis com as interfaces SATA, SCSI, USB, Thunderbolt ou FireWi-
re (IEEE 1394). TANENBAUM (2016).
Tanenbaum (2016), afirma que cada controlador tem alguns registradores que
são usados para comunicar-se com a CPU. Ao escrever nesses registradores,
o sistema operacional pode comandar o dispositivo a fornecer e aceitar dados,
ligar-se e desligar-se, ou de outra maneira realizar alguma ação. Ao ler a partir
desses registradores, o sistema operacional pode descobrir qual é o estado do
dispositivo, se ele está preparado para aceitar um novo comando e assim por
diante.
SISTEMAS OPERACIONAIS 69
Além dos registradores de controle, muitos dispositivos têm um buffer de dados
a partir do qual o sistema operacional pode ler e escrever. Por exemplo, uma
maneira comum para os computadores exibirem pixels na tela é ter uma RAM
de vídeo, que é basicamente apenas um buffer de dados, disponível para ser
escrita pelos programas ou sistema operacional. TANENBAUM (2016).
Em todos os casos, quando a CPU quer ler uma palavra, seja da memória ou
de uma porta de E/S, ela coloca o endereço de que precisa nas linhas de en-
dereçamento do barramento e então emite um sinal READ sobre uma linha de
controle do barramento. Uma segunda linha de sinal é usada para dizer se o
espaço de E/S ou o espaço de memória é necessário. Se for o espaço de me-
mória, a memória responde ao pedido. Se for o espaço de E/S, o dispositivo de
E/S responde ao pedido. Se houver apenas espaço de memória, cada módulo
de memória e cada dispositivo de E/S comparam as linhas de endereços com
a faixa de endereços que elas servem. Se o endereço cair na sua faixa, ela
responde ao pedido. Tendo em vista que nenhum endereço jamais é designado
tanto à memória quanto a um dispositivo de E/S, não há ambiguidade ou confli-
to. TANENBAUM (2016).
SISTEMAS OPERACIONAIS 70
1.1.4 Objetivos do software de E/S
Similarmente, deveria ser possível digitar um comando como “sort <input >ou-
tput” que trabalhe com uma entrada vinda de qualquer tipo de disco ou teclado
e a saída indo para qualquer tipo de disco ou tela. Fica a cargo do sistema
operacional cuidar dos problemas causados pelo fato de que esses dispositivos
são realmente diferentes e exigem sequências de comando muito diferentes
para ler ou escrever. TANENBAUM (2016).
SISTEMAS OPERACIONAIS 71
Ainda outra questão importante é a das transferências síncronas (bloqueantes)
versus assíncronas (orientadas à interrupção). A maioria das E/S físicas são
assíncronas - a CPU inicializa a transferência e vai fazer outra coisa até a che-
gada da interrupção. Programas do usuário são muito mais fáceis de escrever
se as operações de E/S forem bloqueantes — após uma chamada de sistema
read, o programa é automaticamente suspenso até que os dados estejam dis-
poníveis no buffer. Fica a cargo do sistema operacional fazer operações que
são realmente orientadas à interrupção parecerem bloqueantes para os pro-
gramas do usuário. No entanto, algumas aplicações de muito alto desempenho
precisam controlar todos os detalhes da E/S, então alguns sistemas operacio-
nais disponibilizam a E/S assíncrona para si. TANENBAUM (2016).
Tanenbaum (2016), afirma que a forma mais simples de E/S é ter a CPU rea-
lizando todo o trabalho. Esse método é chamado de E/S programada. É mais
simples ilustrar como a E/S programada funciona mediante um exemplo. Con-
sidere um processo de usuário que quer imprimir a cadeia de oito caracteres
“ABCDEFGH” na impressora por meio de uma interface serial. Telas em peque-
nos sistemas embutidos funcionam assim às vezes. O software primeiro monta
a cadeia de caracteres em um buffer no espaço do usuário.
SISTEMAS OPERACIONAIS 72
O sistema operacional então copia o buffer com a cadeia de caracteres para
um vetor no espaço do núcleo, onde ele é mais facilmente acessado (pois o nú-
cleo talvez tenha de mudar o mapa da memória para acessar o espaço do usu-
ário). Ele então confere para ver se a impressora está disponível no momento.
Se não estiver, ele espera até que ela esteja. TANENBAUM (2016).
SISTEMAS OPERACIONAIS 73
Quanto as ações seguidas pelo sistema operacional, primeiro os dados são co-
piados para o núcleo. Então o sistema operacional entra em um laço fechado,
enviando um caractere de cada vez para a saída. O aspecto essencial da E/S
programada, claramente ilustrado nessa figura, é que, após a saída de um ca-
ractere, a CPU continuamente verifica o dispositivo para ver se ele está pron-
to para aceitar outro. Esse comportamento é muitas vezes chamado de espe-
ra ocupada (busy waiting) ou polling. A E/S programada é simples, mas tem a
desvantagem de segurar a CPU o tempo todo até que toda a E/S tenha sido
feita. Se o tempo para “imprimir” um caractere for muito curto (pois tudo o que
a impressora está fazendo é copiar o novo caractere para um buffer interno),
então a espera ocupada estará bem. No entanto, em sistemas mais complexos,
em que a CPU tem outros trabalhos a fazer, a espera ocupada será ineficiente,
e será necessário um método de E/S melhor. TANENBAUM (2016).
Agora vamos considerar o caso da impressão em uma impressora que não ar-
mazena caracteres, mas imprime cada um à medida que ele chega. Se a im-
pressora puder imprimir, digamos, 100 caracteres/segundo, cada caractere le-
vará 10 ms para imprimir. Isso significa que após cada caractere ter sido escri-
to no registrador de dados da impressora, a CPU vai permanecer em um laço
ocioso por 10 ms esperando a permissão para a saída do próximo caractere.
Isso é mais tempo do que o necessário para realizar um chaveamento de con-
texto e executar algum outro processo durante os 10ms que de outra maneira
seriam desperdiçados. TANENBAUM (2016).
A maneira de permitir que a CPU faça outra coisa enquanto espera que a im-
pressora fique pronta é usar interrupções. Quando a chamada de sistema para
imprimir a cadeia é feita, o buffer é copiado para o espaço do núcleo, como já
mostramos, e o primeiro caractere é copiado para a impressora tão logo ela
esteja disposta a aceitar um caractere. Nesse ponto, a CPU chama o esca-
lonador e algum outro processo é executado. O processo que solicitou que a
cadeia seja impressa é bloqueado até que a cadeia inteira seja impressa. TA-
NENBAUM (2016).
SISTEMAS OPERACIONAIS 74
1.1.7 E/S usando DMA
SISTEMAS OPERACIONAIS 75
2. SISTEMAS DISTRIBUÍDOS
SISTEMAS OPERACIONAIS 76
Sistemas distribuídos podem ser suscetíveis a ataques de usuários mal- inten-
cionados se dependerem de meios de comunicação inseguros (por exemplo,
uma rede pública). Para melhorar a segurança, sistemas distribuídos devem
permitir que apenas usuários autorizados acessem recursos e garantir que a
informação transmitida pela rede somente possa ser lida pelos recipientes pre-
tendidos. E, também, pelo fato de muitos usuários ou objetos poderem requisi-
tar recursos, o sistema deverá fornecer mecanismos para protegê-los contra-a-
taques. TANENBAUM (2016).
SISTEMAS OPERACIONAIS 77
2.1.4 Transparência
O ISO Open Distributed Processing Reference Model define oito tipos de trans-
parência que sistemas distribuídos podem fornecer:
• transparência de acesso
• transparência de localização
• transparência de falha
• transparência de replicação
• transparência de persistência
• transparência de migração
• transparência de relocação
• transparência de transação
SISTEMAS OPERACIONAIS 78
Transparência de replicação oculta o fato de que há várias cópias de um recur-
so disponíveis no sistema; todos os acessos a um grupo de recursos replicados
ocorrem como se houvesse um só desses recursos disponível. Transparência
de persistência oculta a informação sobre o lugar onde esse recurso está arma-
zenado na memória ou em disco. TANENBAUM (2016).
2.2.1 Ethernet
SISTEMAS OPERACIONAIS 79
via estar cheio com algum elemento etéreo no qual a radiação estava se propa-
gando.
SISTEMAS OPERACIONAIS 80
Para evitar o problema de colisões, Ethernets modernas usam comutadores.
Cada comutador tem algum número de portas, às quais podem ser ligados
computadores, uma Ethernet, ou outro comutador. Quando um pacote evita
com sucesso todas as colisões e chega ao comutador, ele é armazenado em
um buffer e enviado pela porta que acessa a máquina destinatária. Ao dar a
cada computador a sua própria porta, todas as colisões podem ser eliminadas,
ao custo de comutadores maiores. Um meio-termo, com apenas alguns compu-
tadores por porta, também é possível. TANENBAUM (2016).
2.2.2 Internet
SISTEMAS OPERACIONAIS 81
Todo tráfego na internet é enviado na forma de pacotes. Cada pacote carrega
dentro de si seu endereço de destino, e esse endereço é usado para o rote-
amento. Quando um pacote chega a um roteador, este extrai o endereço de
destino e o compara (parte dele) em uma tabela para encontrar para qual linha
de saída enviar o pacote e assim para qual roteador. Esse procedimento é re-
petido até o pacote chegar ao hospedeiro de destino. TANENBAUM (2016).
SISTEMAS OPERACIONAIS 82
2.3.1 Middleware
SISTEMAS OPERACIONAIS 83
2.3.2 Chamada a procedimento remoto (RPC)
SISTEMAS OPERACIONAIS 84
cada implementação de RPC pode oferecer um nível diferente de segurança.
TANENBAUM (2016).
Como aponta Tanenbaum (2016), o protocolo RPC Java, conhecido como invo-
cação a método remoto (Remote Method Invocation — RMI), habilita um pro-
cesso Java que está executando em um computador a invocar um método de
um objeto em um computador remoto usando a mesma sintaxe de uma chama-
da a método local.
SISTEMAS OPERACIONAIS 85
Uma vez serializados pelo stub, parâmetros são enviados ao componente da
RRL do sistema RMI do lado cliente. A RRL usa a camada de transporte para
enviar a mensagem montada entre o cliente e o servidor. Quando o componen-
te da RRL do lado servidor recebe os parâmetros montados, ele os dirige ao
esqueleto, que desmonta os parâmetros, identifica o objeto sobre o qual o mé-
todo deve ser invocado e chama o método. Ao concluir o método, o esqueleto
monta o resultado e o devolve ao cliente via RRL e stub. TANENBAUM (2016).
SISTEMAS OPERACIONAIS 86
em computação de objeto distribuído. O DCOM é a extensão distribuída do mo-
delo de objeto componente (Component Object Model — COM) da Microsoft,
introduzido em 1993 para facilitar o desenvolvimento baseado em componen-
tes no ambiente Windows. A especificação COM foi elaborada para permitir que
componentes de software que residem em um único espaço de endereçamento
ou em diferentes espaços de endereçamento dentro de um computador isolado
interagem uns com os outros. OGLETREE (2002).
Como na CORBA, objetos DCOM são acessados via interfaces, o que permite
que objetos DCOM sejam escritos em várias linguagens de programação e em
diversas plataformas. Quando um cliente requisita um objeto DCOM de um ser-
vidor, também deve requisitar uma interface específica do objeto. A requisição
do cliente é enviada primeiramente ao stub do cliente (denominado proxy). O
stub do cliente se comunica através de uma rede com o stub do servidor que
repassa a requisição ao objeto DCOM específico. Quando o objeto DCOM con-
clui a requisição, envia o valor de retomo de volta ao stub do servidor. O stub
do servidor envia esse valor de volta pela rede ao proxy, que por fim retoma o
valor ao processo que chamou. TANENBAUM (2016).
SAIBA MAIS
< https://olhardigital.com.br/dicas_e_tutoriais/noticia/saiba-como-reduzir-o-con-
sumo-de-energia-do-seu-pc/66607 >.
REFLITA
Hora do planeta.
<https://www.youtube.com/watch?v=-WTJmkcUHvI&feature=youtu.be>.
Fonte: <http://www.tecmundo.com.br/energia/2145-mito-ou-verdade-o-compu-
tador-consome-muita-energia-e-aumenta-a-conta-de-luz-.htm>. Acesso em: 13
Jul. 2019.
SISTEMAS OPERACIONAIS 87
CONSIDERAÇÕES FINAIS
Desta forma, outra razão para adotar sistemas distribuídos é atender a uma
grande base de usuários. Sistemas de arquivos distribuídos utilizam arquivos
em máquinas separadas e proporciona a visualização de um único sistema de
arquivo. Sistemas de arquivos distribuídos permitem que grandes números de
usuários acessem o mesmo conjunto de arquivos de modo confiável e eficien-
te.
SISTEMAS OPERACIONAIS 88
MATERIAL COMPLEMENTAR
LIVRO
SISTEMAS OPERACIONAIS 89
MATERIAL COMPLEMENTAR
FILME/VÍDEO
• Título: Her
• Ano: 2013
• Sinopse: Em Los Angeles, o escritor solitário Theodore desenvolve uma re-
lação de amor especial com o novo sistema operacional do seu computa-
dor. Surpreendentemente, ele acaba se apaixonando pela voz deste progra-
ma, uma entidade intuitiva e sensível, chamada Samantha.
• Link: < https://www.youtube.com/watch?v=2N6H9jFvMXY>
SISTEMAS OPERACIONAIS 90
REFERÊNCIAS
SISTEMAS OPERACIONAIS 91
CONCLUSÃO
Mas esta apostila não é tudo. Desafio você, aluno(a), a continuar a caminhada
nos estudos referentes a sistemas operacionais. Quem sabe você queira
especializar-se em sistemas operacionais de servidores ou de algum outro tipo.
Ou quem sabe se aprofundar em sistemas operacionais Linux e obter até quem
sabe uma certificação.
SISTEMAS OPERACIONAIS 92