Prévia do material em texto
Sistemas Operacionais
Marcio Quirino - 1
Exercícios
1. Convenciona-se que uma das inovações trazidas a partir da segunda geração de computadores
(1955-1965) foi:
Sistema em lote (batch)
Na segunda geração de computadores, compreendida entre aproximadamente 1955 a 1965, dentre as
várias inovações que surgiram, temos a aplicação de sistemas de computação em lote.
2. O sistema operacional é um componente lógico de um sistema computacional que irá controlar
as partes do hardware através da execução de instruções, execução de programas e gerência
dos dispositivos de E/S, dentre outras funções. Pode-se afirmar que o SO abstrai o hardware,
criando uma maneira de representar o real funcionamento do computador. Logo, dentro da
separação hardware/software, o software é a parte do sistema computacional que pode ser
considerada como:
Virtual
O uso de softwares possibilita oferecer ao usuário uma visão daquilo que interessa a ele, ou seja, o
software modulariza aquilo que o usuário vê e usa. A abstração do hardware pode ser chamada de
máquina virtual.
3. Uma linha de montagem de carros que possui, como pré-requisito, o tempo como um parâmetro
fundamental e crítico, aceita a utilização nos processos de fabricação de que tipo de sistema
operacional que, fundamentalmente, atende a esse pré-requisito?
Sistema de Tempo Real
Os serviços de sistemas de tempo real possuem o tempo como parâmetro fundamental, como a linha
de montagem de um carro.
4. A ilustração gráfica a seguir representa um sistema que utiliza uma técnica na qual as solicitações
de entrada ou saída de dados, e as execuções de tarefas, devem ser executadas pela CPU em
alternância de tempo:
Essa técnica é conhecida como:
Monoprogramação
Nos sistemas monoprogramáveis, também chamados sistemas monotarefa, os principais módulos
computacionais (processador, memória e periféricos) ficam alocados exclusivamente para a execução
de um único programa, sendo que qualquer outra aplicação deveria esperar para poder ser processada.
Sistemas Operacionais
Marcio Quirino - 2
5. Dentre as opções a seguir, qual é o modo de acesso permitido somente para as instruções
privilegiadas?
Kernel
Uma aplicação possui o modo de acesso kernel, ou supervisor, quando é constituída de instruções
privilegiadas. A aplicação pode executar o conjunto total de instruções. Além disso, o modo kernel
protege a área do SO localizada na memória.
6. Uma determinada aplicação faz uso da system call mostrada a seguir, para esperar pela
conclusão de um processo filho:
num_proc = waitpid(pid, &statloc, options)
Dentre as opções a seguir, marque aquela que faz o melhor enquadramento ao tipo da chamada
de sistema mostrada.
Gerenciamento de processos
A figura 18 mostra alguns exemplos desses tipos de chamadas. Essa chamada ao sistema é do tipo
destinado ao gerenciamento de processos.
7. Um usuário está usando o terminal do Linux, sem ter a intenção de realizar qualquer tipo de
comando ou procedimento específico, quando percebe a linha de comandos escrita da seguinte
maneira:
root@sistema-servidor:/#
Assinale a alternativa correta quanto ao significado dos elementos mostrados:
Está em modo de super usuário.
Quando o usuário usa o comando su poderá acessar o modo super usuário e perceberá a presença do
nome de usuário root e do símbolo tralha ‘#’ na linha de comandos do terminal.
8. Suponha que você está usando o terminal do Linux com o nome de usuário "gestor".
Partindo da verificação do seu diretório de login, você deseja acessar o diretório "setor", dentro
do seu diretório de login, e mover o arquivo "planilha" para o diretório "Documentos", que se
encontra dentro do diretório de login. Marque a alternativa que contém a sequência de comandos
a serem realizados:
$ pwd
$ cd ./setor
$ mv /home/gestor/setor/planilha /home/gestor/Documentos
O comando pwd mostra em qual diretório o usuário se encontra. O comando cd permite acessar
diretórios, veja que o ponto em "./setor" significa "este diretório". O comando mv move arquivos, note
que foram digitados todos os caminhos completos.
Sistemas Operacionais
Marcio Quirino - 3
9. (FAEPESUL/2019 - Adaptada) Sistemas operacionais são programas de software que gerenciam
o hardware e os recursos de um computador, proporcionando uma interface para que outros
programas possam acessar e utilizar esses recursos. Quando falamos de um sistema operacional
multitarefas, é correto afirmar que:
Permite a execução de mais de um programa ao mesmo tempo.
O sistema operacional multitarefas é capaz de gerenciar o acesso de múltiplos programas aos recursos
do computador, permitindo que mais de um programa seja executado ao mesmo tempo. Assim, o
sistema alterna rapidamente entre as tarefas, dando a ilusão de que todas estão sendo executadas ao
mesmo tempo.
10. O Linux é um sistema operacional de código aberto amplamente utilizado por engenheiros de
redes, e que preza pela eficiência e robustez. Ao longo dos anos a comunidade desenvolveu e
disponibilizou diferentes versões para utilização como, por exemplo, o Ubuntu uma distribuição
popular baseada no Debian. Essas versões são conhecidas como:
Distribuições.
Uma distribuição Linux é constituída por diversas coleções compiladas de aplicativos e o kernel (núcleo)
do sistema operacional.
11. Durante as aulas de Sistemas Operacionais, a aluna Ana Carolina manifestou interesse em
aprofundar seus conhecimentos sobre os diferentes comandos de terminal Linux. Em um de seus
questionamentos, ela perguntou qual seria o comando do terminal que removeria um diretório
apenas se ele estivesse vazio? Analise as alternativas e marque aquela que responda
corretamente a indagação.
rmdir.
rmdir: responsável por remover um diretório vazio.
rstp: Protocolo de rede da camada de enlace.
sudo: Comando Unix que permite ao usuário obter privilégios.
mkdir: responsável por criar um novo diretório.
12. (Unoesc/2022 - Adaptada) Os sistemas operacionais avançaram muito desde o seu modesto
surgimento na década de 1970. Assinale a alternativa que apresenta apenas sistemas
operacionais.
Linux, Windows, UNIX, Android e macOS.
Sistemas operacionais são fundamentais para a funcionalidade de qualquer computador e permitem
que as pessoas e os programas interajam com o hardware. Eles são responsáveis por tarefas como o
gerenciamento de processos, memória, entrada e saída de dispositivos, armazenamento de arquivos e
muito mais.
13. (SELECON/2021 - Adaptada) Sistema operacional é definido com um conjunto de programas que
faz a comunicação entre os componentes do hardware, gerenciando e distribuindo os recursos
e os demais softwares, criando uma plataforma comum a todos os programas utilizados. No que
diz respeito à terminologia e aos fundamentos utilizados, o núcleo de um sistema operacional é
conhecido por:
kernel
O núcleo, também conhecido como kernel, é o componente central de um sistema operacional que faz
a ligação entre o hardware e os aplicativos, gerenciando os recursos do sistema, incluindo a CPU,
memória, entrada e saída de dados, entre outros.
Sistemas Operacionais
Marcio Quirino - 4
14. (FADENOR/2022 - Adaptada) Um sistema computacional moderno consiste de um ou mais
processadores, memória principal, discos, impressoras, teclado, monitor, interfaces de rede e
outros dispositivos de entrada e saída; além de programas de aplicação e programas do sistema.
O sistema operacional é um tipo de programa (software) cuja função é:
gerenciar os componentes de hardware e fornecer aos programas do usuário uma interface com
o hardware mais simples, através de um conjunto de instruções mais conveniente.
O sistema operacional é responsável por gerenciar os recursos do hardware, como CPU, memória,
entrada e saída de dados, para que os programas do usuário possam funcionar corretamente. Ele
tambémfornece uma interface para que os programas possam se comunicar com o hardware de uma
forma mais simples e abstrata, tornando mais fácil para os desenvolvedores escrever programas e para
os usuários interagirem com o sistema.
15. (IDIB/2021 - Adaptada) O Kernel, ou “núcleo” de um sistema operacional, é responsável pela
ligação entre os aplicativos e o processamento realizado a nível de dados. O Kernel tem como
responsabilidade realizar o gerenciamento dos recursos do SO. Além desse gerenciamento de
recursos, outras funções são exercidas pelo Kernel. Assinale a alternativa que indica
corretamente mais uma função do Kernel de um sistema operacional.
sincronização e comunicação entre processos e threads.
O Kernel é responsável por controlar e gerenciar a alocação de recursos, como CPU, memória, entrada
e saída de dados, entre outros, entre diferentes processos e threads que estão sendo executados no
sistema operacional. Portanto, a sincronização e comunicação entre processos e threads é uma
importante função do Kernel.
16. Suponha que um usuário esteja com o Terminal do Linux aberto e o prompt acuse que ele está
localizado no seu diretório de login (ou home). Caso ele queira copiar um arquivo localizado em
um diretório diferente do atual, para outro diretório também diferente do atual, deverá usar o
comando:
cp /dir/arquivo1 /dir/arquivo2.
Para escrever um caminho de diretórios no linux, o usuário deve utilizar o separador "/".
Comando: cp arquivo1 arquivo2 -> Origem e destino no mesmo diretório.
Comando: cp arquivo1 /dir/arquivo2 -> Destino em diretório diferente.
Comando: cp /dir/arquivo1 /dir/arquivo2 -> Origem e destino em diretórios diferentes.
As outras opções de resposta não são comandos aceitos.
17. O sistema operacional Linux é extremamente importante por várias razões, incluindo sua
confiabilidade, segurança, flexibilidade, escalabilidade e custo-benefício. Uma das principais
vantagens do Linux é sua confiabilidade. Ele é projetado para ser executado continuamente por
longos períodos de tempo sem falhas, o que é especialmente importante em servidores de missão
crítica e em outros ambientes empresariais. Além disso, o Linux tem um histórico comprovado
de segurança, com uma grande comunidade de desenvolvedores trabalhando constantemente
para identificar e corrigir vulnerabilidades. No contexto de distribuições Linux, qual o significado
do termo LST?
Long-Term Support
No contexto de distribuições Linux, o termo LST significa Long-Term Support, que se refere a uma
versão do sistema operacional que recebe suporte de longo prazo. Isso significa que a distribuição é
mantida com atualizações de segurança e correções de bugs por um período de tempo mais longo do
que as versões padrão. Isso é especialmente importante para empresas e organizações que precisam
de estabilidade e previsibilidade em seu ambiente de TI.
Sistemas Operacionais
Marcio Quirino - 5
18. (AMAUC/2018 - Adaptada) Linux é um sistema operacional de código aberto, baseado no Unix,
que foi criado por Linus Torvalds em 1991. Com relação as distribuições disponíveis do Linux, o
Kernel destas:
Pode ser de versões diferentes de acordo com a distribuição.
Cada distribuição do Linux pode ter uma versão diferente do kernel, e a escolha da versão é feita de
acordo com as necessidades e objetivos da distribuição. Algumas distribuições do Linux escolhem
utilizar versões mais recentes e estáveis do kernel, enquanto outras preferem versões mais antigas e
comprovadas, para garantir a compatibilidade com outros softwares e hardware.
19. Uma das formas de criação de subprocessos no Linux ocorre por meio da chamada de sistema
fork(). Assinale a alternativa verdadeira em relação à chamada de sistema fork().
Cria um subprocesso que é uma cópia do processo pai, mas que possui seu próprio espaço de
endereçamento.
A chamada de sistema fork() cria um subprocesso que é cópia exata do processo pai, mas que
compartilha com ele apenas os arquivos abertos. Portanto, não há compartilhamento do espaço de
endereçamento com o processo pai. Para executar o código de outro programa, é necessário utilizar a
chamada de sistema execve() após a chamada de sistema fork().
20. É comum um processo transitar por vários estados durante sua vida em um sistema operacional.
Sobre os estados de um processo, é correto afirmar que:
Processos que saem do estado bloqueado devem ir para o estado pronto antes de entrarem em
execução.
Um processo no estado bloqueado está aguardando a ocorrência de um evento que fará com que ele
possa prosseguir sua execução. Quando ocorrer este evento, o processo deverá ir obrigatoriamente
para a fila de processos prontos, onde aguardará a liberação de uma UCP antes de poder entrar em
execução.
21. Threads podem ser gerenciados pelo núcleo ou no espaço do usuário. A vantagem dos threads
gerenciados no espaço do usuário é:
A comutação de threads é mais rápida.
Threads no espaço do usuário são totalmente gerenciados pelas funções de biblioteca do sistema, não
havendo necessidade de uma chamada ao núcleo (kernel). Isso fará com que este tipo de thread tenha
uma comutação mais rápida do que os threads gerenciados pelo núcleo.
22. Processos e threads são conceitos fundamentais para o desenvolvimento de sistemas
concorrentes. Sobre processos e threads no Linux, indique a alternativa correta.
O Linux não diferencia processos de threads, tratando tudo como uma tarefa.
O Linux trata threads e processos como uma entidade em execução, denominada tarefa. Nele, tarefas
podem compartilhar recursos, como acesso ao sistema de arquivos, variáveis, espaço de
endereçamento etc. Para que as tarefas se comportem como threads de um mesmo processo, basta
que sejam concedidos acessos aos recursos de ambas as tarefas.
23. Dos mecanismos de sincronização/comunicação entre processos listados, selecione aquele que
não é implementado diretamente pelo sistema operacional Linux:
Monitores.
Monitores são estruturas definidas por linguagens de programação. Portanto, cabe aos compiladores
das linguagens implementar tais mecanismos, e não ao sistema operacional.
Sistemas Operacionais
Marcio Quirino - 6
24. A condição de corrida é um problema que deve ser evitado, pois pode levar à inconsistência nos
dados do sistema. A condição de corrida ocorre quando:
Tarefas concorrentes podem alterar o mesmo dado.
A condição de corrida ocorre quando duas ou mais tarefas concorrentes podem alterar o mesmo dado.
Assim, se duas tarefas A e B fazem a leitura de um dado e a tarefa A o atualiza e grava a informação,
a tarefa B estará com o dado desatualizado. Desta forma, se B fizer nova alteração em um dado já
desatualizado e fizer a gravação dele, poderão ocorrer inconsistências no sistema.
25. Para selecionar a próxima tarefa a entrar em execução, o Linux utiliza o algoritmo de
escalonamento:
Múltiplas filas.
O algoritmo de escalonamento do Linux divide as tarefas em três classes distintas (FIFO em tempo real,
escalonamento circular em tempo real e tempo compartilhado) e utiliza um algoritmo de escalonamento
com múltiplas filas, em que cada uma dessas classes é associada a uma das filas do algoritmo de
escalonamento.
26. Indique a principal característica de um algoritmo de escalonamento cooperativo:
O processo em execução libera a UCP voluntariamente.
O algoritmo de escalonamento cooperativo caracteriza-se pelo fato de caber ao processo em execução
decidir quando já executou o suficiente e liberar a UCP para que outro processo possa ser executado.
27. Conceitualmente, cada processo tem sua própria CPU (Central Processing Unit) virtual. É claro
que, na realidade, a CPU troca a execução, a todo momento, de um processo para outro, mas,
para entender esse sistema, é muito mais fácil pensar em um conjunto de processos sendo
executados (pseudo) paralelamente do que tentar controlar o modocomo a CPU faz esses
chaveamentos. TANENBAUM, A. S. Sistemas operacionais modernos. 3. ed. São Paulo: Pcarson,
2010 (adaptado).
De acordo com o exposto, o conceito descrito denomina-se:
Multiprogramação
28. Um subprocesso é uma instância separada de execução criada por um processo existente. Ele
herda muitas propriedades do processo pai, mas opera de forma independente. A habilidade de
criar e gerenciar subprocessos é fundamental para muitos sistemas e aplicações modernas,
permitindo paralelismo e modularidade.
É quando um processo (processo pai) cria um outro processo.
Um subprocesso é quando um processo é criado gerando um vínculo hierárquico entre o processo
criador (pai) e o processo criado (filho). Nesse contexto, o processo filho é considerado um subprocesso
do processo pai.
Sistemas Operacionais
Marcio Quirino - 7
29. Semáforos são primitivas de sincronização utilizadas em programação concorrente para
controlar o acesso a recursos compartilhados por múltiplas threads ou processos.
O que são Semáforos no contexto de programação concorrente?
Variáveis inteiras que contam sinais enviados a elas.
Um semáforo é uma variável inteira que conta sinais enviados a ela. Esse valor pode ser usado de
diversas formas, mas em sua forma mais básica, um semáforo suporta duas operações atômicas
principais: wait que significa “tentar/aguardar” e signal que significa “incrementar”.
30. O processo "Systemd" ou "init" é uma peça central do sistema operacional Linux, garantindo que
os serviços sejam iniciados na ordem correta, limpando processos órfãos e zumbis, e
gerenciando o estado geral do sistema.
Qual é a relação entre o processo "systemd" (ou "init") no Linux e outros processos do sistema
operacional?
Systemd (ou init) é o primeiro processo a ser executado e inicia a execução dos demais
processos.
O processo systemd (ou init) está presente na imagem de inicialização do sistema e é o primeiro
processo a ser executado sendo responsável por iniciar a execução dos demais processos do sistema
operacional.
31. O Bloco de Controle de Processo (BCP) é uma estrutura vital em sistemas operacionais que
permite a multitarefa, garantindo que todos os processos sejam gerenciados de maneira justa e
eficiente.
Qual é o propósito do Bloco de Controle de Processo (BCP) no Linux?
Contém todas as informações do processo.
O BCP é uma estrutura de dados que contém todas as informações necessárias para o gerenciamento
do processo.
32. Existem diversos algoritmos de escalonamento, e a escolha de um em particular depende dos
requisitos e do tipo de sistema.
No escalonamento por múltiplas filas, o que determina a ordem de execução dos processos?
A prioridade associada a cada fila.
Cada fila possui uma prioridade associada, que estabelece quais são prioritárias em relação às outras.
O sistema só pode escalonar processos de uma fila se todas as outras filas de prioridade maior
estiverem vazias.
33. A compreensão dos conceitos de gerenciamento de memória e alocação de processos em um
sistema operacional é fundamental para a formação de um profissional de TI. Dentro desse
contexto, analise as afirmativas a seguir e marque a alternativa correta sobre Threads.
São linhas de execução concorrentes dentro de um processo.
Os threads são linhas de execução concorrentes dentro de um processo, fornecendo ao desenvolvedor
de software a flexibilidade e os mecanismos necessários para permitir a concorrência dentro de um
processo.
Sistemas Operacionais
Marcio Quirino - 8
34. Uma alternativa para o aumento de desempenho de sistemas computacionais é o uso de
processadores com múltiplos núcleos, chamados multicores. Nesses sistemas, cada núcleo,
normalmente, tem as funcionalidades completas de um processador, já sendo comuns,
atualmente, configurações com 2,4 ou mais núcleos. Com relação ao uso de processadores
multicores, e sabendo que threads são estruturas de execução associadas a um processo, que
compartilham suas áreas de código e dados, mas mantêm contextos independentes, analise as
seguintes asserções. Ao dividirem suas atividades em múltiplas threads que podem ser
executadas paralelamente, aplicações podem se beneficiar mais efetivamente dos diversos
núcleos dos processadores multicores porque o sistema operacional nos processadores
multicores pode alocar os núcleos existentes para executar simultaneamente diversas
sequências de código, sobrepondo suas execuções e, normalmente, reduzindo o tempo de
resposta das aplicações às quais estão associadas.
Acerca dessas asserções, assinale a opção correta.
As duas asserções são proposições verdadeiras, e a segunda é uma justificativa correta da
primeira.
35. Considere o programa abaixo escrito em linguagem C. No instante da execução da linha 5, ter-
se-á uma hierarquia composta de quantos processos e threads, respectivamente?
1 main(){
2 int i;
3 for(i=0;i<3;i++)
4 fork();
5 while(l);
6 }
8 e 8
36. Um processo pode definido como um programa em execução mais um conjunto necessário de
informações para que o sistema operacional implemente a concorrência de programas. Entre
estas informações necessárias para a concorrência destacam-se o contexto de software, o
contexto de hardware e o espaço de endereçamento do processo.
Sobre o contexto de hardware, ele é importante para um processo porque:
armazena o conteúdo de registrados e status da UCP para a troca de processos.
37. Um aspecto muito importante da gerência de memória é realizar a proteção contra o acesso ilegal
à área de memória de um processo por outro.
Sistemas Operacionais
Marcio Quirino - 9
38. Considere que um processo possui no seu registrador base o valor 4000 e no limite 2000.
Baseando-se nas técnicas de proteção de memória, podemos afirmar que:
I – Se o endereço lógico for igual a 3800, ocorrerá o acesso à memória física.
II – Se o endereço lógico for 6200, o acesso será bloqueado e ocorrerá uma exceção.
III – Se o endereço lógico for 5200, o acesso será permitido.
É correto o que se afirmar:
Apenas em II e III.
A técnica de proteção de memória exige que o endereço lógico seja maior ou igual ao base e menor
que a soma do base com o limite. Portanto, os valores de acesso válidos devem estar entre 4000 e
6000.
Na afirmativa I o endereço é 3800, ou seja, menor que o base. Dessa forma, o acesso será bloqueado,
ao contrário do que diz a afirmação, o que a torna falsa. Na afirmativa II o endereço é 6200, maior que
a soma do base com o limite. Assim, o acesso será bloqueado, conforme consta na afirmativa. Portanto,
ela é correta. Na afirmativa III o endereço é 5200, que está na faixa de acesso legal. Consequentemente,
ele será permitido, exatamente como consta na opção. Portanto, ela está correta. Dessa forma, estão
corretas as afirmativas II e III.
39. O mecanismo de relocação visa permitir que um processo seja carregado em posições diferentes
na memória. Considere que em uma primeira carga o processo foi alocado a partir do endereço
4500 com limite 2000 e, ao acessar uma variável A, fez isso no endereço lógico 5700. Depois de
um tempo, ele bloqueou e foi retirado da memória. Ao ser liberado para uma nova execução, ele
foi carregado a partir do endereço 8000, continuando com limite 2000.
Para acessar novamente a Variável A, o endereço lógico será:
9200
No caso da relocação, os endereços lógicos correspondem a um deslocamento a partir do ponto de
carga do programa. Como na primeira execução ele foi carregado no endereço 4500 e a variável foi
acessada na posição 5700, podemos ver que o deslocamento é de 1200 (5700 – 4500). Como na
segunda carga ele inicia na posição 8000, a variável estará na posição 9200 (8000 + 1200).
40. (Prefeitura de Porciúncula – RJ ‒ Gualimp – Técnico de Informática – Suporte – 2019) O sistema
operacional possui uma estrutura dedados que armazena informações que possibilitam ao
sistema de arquivos gerenciar as áreas ou blocos livres. A alocação contígua consiste em
armazenar um arquivo em blocos sequencialmente dispostos, permitindo ao sistema localizar um
arquivo através do endereço do primeiro bloco e da sua extensão em blocos. A alocação em um
novo segmento livre consiste em técnicas para escolha, onde a técnica Best-Fit:
Seleciona o menor segmento livre disponível com o tamanho suficiente para armazenar o arquivo
e é necessária a busca em toda a lista, caso esta não esteja ordenada por tamanho.
Dentre as políticas de alocação de partições, a Best-Fit busca alocar o processo na partição que tenha
o mesmo tamanho do processo dele ou o mais próximo possível. Isso exige uma pesquisa exaustiva na
lista, passando por todas os espaços livres para determinar o que mais se aproxima do tamanho
procurado.
Sistemas Operacionais
Marcio Quirino - 10
41. O gerenciamento do espaço livre é uma tarefa importante realizada pelo sistema operacional.
Duas técnicas básicas podem ser utilizadas para essa atividade: o mapa de bits e a lista
encadeada. Considere a seguinte lista encadeada:
Qual seria o mapa de bits correspondente?
11100011
Ao analisarmos a lista podemos notar que o primeiro elemento corresponde a um processo que ocupa
três unidades, portanto, em bits seria 111. O segundo elemento corresponde a 3 lacunas, portanto, 000.
Finalmente, o terceiro elemento é novamente um processo de duas unidades, portanto, 11. Dessa
forma, para termos o mapa basta concatenarmos os três na ordem correta, o que daria 11100011.
42. (INB‒Fundep–2018– INB – Engenheiro da Computação)
A unidade de gerenciamento de memória de processadores modernos traduz endereços virtuais
utilizados por processos em endereços físicos. Uma forma de fazer o mapeamento de endereços
virtuais para endereços físicos é usando uma tabela de páginas.
Considere um processador hipotético em que processos possuem endereços virtuais com um
identificador de página de 4 bits e 10 bits de deslocamento, como mostrado na tabela a seguir:
Endereço
Pagina Deslocamento
4 bits 10 bits
Considere ainda que o processador hipotético endereça bytes e que 1KB = 210 B.
Assinale a alternativa que corresponde à quantidade de memória que pode ser endereçada por
um processo.
16KB.
Como a parte do deslocamento do endereço possui 10 bits, isso mostra que cada uma das páginas
possui 210 bytes, o que corresponde a 1KB. Como parte de identificação da página possui 4 bits, isso
mostra que podemos ter 24 páginas que correspondem a 16. Portanto, podemos endereçar 16 páginas
cada uma de 1KB, o que gera um espaço total de endereçamento de 16KB.
Sistemas Operacionais
Marcio Quirino - 11
43. (Prefeitura de Vila Velha – ES ‒ IBADE – 2020 – Analista de Infraestrutura ‒ adaptada).
Seja uma memória virtual com 3 blocos e que use o algoritmo LRU (least-recently-used) como
seu algoritmo de substituição de páginas.
Admitindo-se que ocorra a seguinte sequência de referência às páginas de memórias: 1, 2, 3, 4,
2, 3, 4, 2.
Assumindo que, inicialmente, todos os blocos estão vazios, quantas interrupções de páginas
ausentes (page faults) ocorrerão?
4
Como temos 3 quadros disponíveis no início, eles estão vazios.
Quadro 1 Quadro 2 Quadro 3
Ao ser referenciada a página 1, como ela não está na memória, será gerado um page fault e a página
será carregada no quadro 1.
Quadro 1 Quadro 2 Quadro 3
Página 1
A seguir, é referenciada a página 2, que, como não está na memória, gera o segundo page fault, então
ela é carregada no quadro 2.
Quadro 1 Quadro 2 Quadro 3
Página 1 Página 2
Posteriormente, é referenciada a página 3, que, como não está na memória, gera o terceiro page fault,
sendo carregada no quadro 3.
Quadro 1 Quadro 2 Quadro 3
Página 1 Página 2 Página 3
Depois disso, é referenciada a página 4, que, como não está na memória, gera o quarto page fault.
Como não existem mais quadros livres para que a página 4 possa ser carregada, uma das que estão
na memória deve ser retirada. Uma vez que a política utilizada é a LRU, será retirada a página que foi
referenciada há mais tempo, ou seja, a página 1, sendo a página 4 carregada em seu lugar.
Quadro 1 Quadro 2 Quadro 3
Página 4 Página 2 Página 3
Por fim, são referenciadas as páginas 2, 3, 4 e 2. Como todas já estão na memória, não é gerado page
fault, portanto, no total temos 4 interrupções por falha de página.
44. O Linux, dependendo da arquitetura da máquina, divide sua memória em zonas. Na arquitetura
Intel x86 de 32 bits são quatro zonas. Qual delas foi mantida na arquitetura x86 de 64 bits para
permitir o acesso de dispositivos legados à memória??
ZONE_DMA
Na arquitetura Intel x86 de 32 bits existem as quatro zonas das opções, já na Intel x86 de 64 bits há
somente a ZONE_DMA e a ZONE_NORMAL, sendo que a primeira foi mantida para permitir que
dispositivos legados tenham acesso direto à memória.
45. No Linux, podemos obter informação a respeito da memória utilizando aplicativos ou comando
de linha no terminal. Uma das informações que podemos obter é a quantidade de memória
disponível no sistema. Para obtermos essa informação, devemos digitar no terminal:
free
O comando que mostra a memória disponível é o free. Ele pode receber como argumentos -b para exibir
os dados em bytes, -m para megabytes ou -g para gigabytes.
Sistemas Operacionais
Marcio Quirino - 12
46. Para que um disco rígido possa ser utilizado para armazenar as informações, ele deve ser dividido
em estruturas lógicas chamadas partições. Uma partição em disco costuma conter o chamado
superbloco. O que é o superbloco de uma partição?
Local que contém parâmetros a respeito do sistema de arquivos.
O superbloco armazena parâmetros e informações que protegem a integridade do sistema de arquivo,
podendo conter:
• Identificador de sistema de arquivo;
• Quantidade de blocos do sistema de arquivo;
• Localização dos blocos livres;
• Localização do diretório-raiz;
• Data e o horário em que o sistema foi modificado pela última vez;
• Informações indicando se o sistema de arquivo precisa ser verificado.
47. Sobre a implementação da memória cache para sistemas de arquivos, são feitas as seguintes
afirmações:
I- Cache tem a função de aumentar a confiabilidade do sistema de arquivos.
II- Caches do tipo write-through gravam alterações no disco imediatamente.
III- Caches do tipo write-back pode diminuir a quantidade de operações de E/S.
Somente as afirmações II e III estão corretas.
48. O Linux tem suporte a diversos tipos de sistemas de arquivos, sendo o sistema ext um dos mais
utilizados e que, ao longo dos anos, adquiriu suporte a novas funcionalidades. Uma das
melhorias implementadas pelo ext3 em relação a seu antecessor foi a introdução do journaling.
Com ele:
O desempenho da gravação de informações no disco é melhorado.
Com o journaling, uma transação é escrita em uma área reservada, com pouca movimentação da
cabeça do disco. Desse modo, a escrita é mais rápida e o desempenho da gravação de informações no
disco é superior.
49. Para que seja possível utilizar um disco rígido, é necessário que sejam executadas diversas
etapas até estar pronto para uso. O processo de criação das estruturas do sistema de arquivos,
dentro de uma partição, para que seja possível a gravação de dados no sistema de arquivos é
conhecido como:
Formatação
50. No Linux, o comando que deve ser utilizado no shell (terminal) para listar o conteúdo do diretório
corrente é:
ls
51. O comando “ln” é utilizado para a criação de links no sistema de arquivos. Quando utilizamos o
comando “ln” para a criação de um hardlink (link duro), ocorre:
A criação de uma entrada de diretório que aponta para o i-node de um arquivo existe.
Ao criar um hardlink, é gerada uma nova entrada de diretóriono sistema de arquivos para um
arquivo/diretório que já existe no sistema. Assim, as entradas de diretório, tanto antiga quanto nova,
apontarão para o mesmo i-node (o i-node que identifica o arquivo).
Sistemas Operacionais
Marcio Quirino - 13
52. O editor de texto puro, padrão em sistemas Linux, e que trabalha com dois modos de operação
(comando e edição), é o:
Vim
Para a edição de arquivos de configuração dos sistemas UNIX antigos, foi desenvolvido um pequeno
editor modal de nome vi (editor visual). O Linux adota, por padrão, uma versão melhorada deste editor
conhecida como vim (vi Improved).
53. O gedit é um editor de textos puro que acompanha o ambiente GNOME. Sua principal
característica é:
Editar textos fazendo uso de interface gráfica.
O gedit é um editor de textos que faz parte do ambiente gráfico GNOME, portanto seu funcionamento
requer que este ambiente gráfico esteja instalado no sistema, e faz uso de suas primitivas gráficas para
funcionar como um editor de texto puro por interface gráfica.
54. Sobre o tema fragmentação, são feitas as seguintes afirmações:
I - Desde que haja blocos livres suficientes em uma partição com alocação indexada (i-nodes),
um arquivo sempre poderá ser gravado na partição, independentemente desta estar fragmentada
ou não.
II - Um arquivo fragmentado é um arquivo cujos blocos de informação foram espalhados por
diferentes sistemas de arquivos.
III - É interessante manter os arquivos em um disco rígido com baixa fragmentação, pois isso
melhora o tempo médio de leitura dos arquivos.
São verdadeiras:
Apenas a I e a III.
55. O sistema de arquivos do Linux é realizado de forma virtual sendo realizado pelo Virtual File
System – VFS. Sobre os tipos de objetos, que o Linux é capaz de manipular, analise as afirmativas
abaixo.
I - O I-NODE corresponde a um arquivo individual.
II -O Superbloco corresponde a um sistema de arquivos inteiro.
III – O Dentry corresponde a um sistema de arquivos partidos.
Marque a alternativa que apresenta a(s) afirmativa(s) correta(s).
Apenas as afirmativas I e II estão corretas
Sistemas Operacionais
Marcio Quirino - 14
56. (Quadrix/ 2019 - adaptada) O Linux é um sistema operacional que possui uma ampla variedade
de comandos utilizados para diversas funções. Um exemplo é a manipulação de arquivos e
diretórios. Sobre a manipulação de arquivos e diretórios analise as asserções I e II.
I - Os comandos cd, ls, pwd, mkdir e rmdir são exemplos de comandos que servem para manipular
diretórios no sistema operacional Linux.
PORQUE
II - Os comandos mkdir e rmdir criam e removem diretórios respectivamente.
Marque a alternativa que apresenta a relação correta entre as asserções I e II.
Ambas as asserções são verdadeiras, mas a asserção II não é uma justificativa para a asserção
I
57. O nano é um editor de texto para linha de comando que está presente na grande maioria das
distribuições Linux. Qual comando é responsável por salvar um arquivo?
<CTRL>+O
58. O sistema operacional Linux possui uma estrutura de diretórios padrão seguida pela grande
maioria de suas distribuições. Dentro desta estrutura de diretórios, em qual diretório encontram-
se os arquivos que representam os dispositivos do sistema?
/dev
59. O Linux é um sistema operacional de código aberto que desempenha um papel fundamental na
computação moderna. O Linux é baseado em código aberto, o que significa que seu código-fonte
é acessível e pode ser modificado e distribuído livremente. Acerca de sua manipulação, qual
comando do Linux é utilizado para listar o conteúdo de um diretório?
LS
60. Os computadores atuais têm uma capacidade muito maior de armazenamento do que os
primeiros computadores que foram desenvolvidos. Essa capacidade foi ampliada tanto para os
discos rígidos quanto para os discos removíveis/outras mídias, desta forma esse sistema
organiza e estrutura as informações. O sistema de gerenciamento que organiza e estrutura as
informações nos discos rígidos, discos removíveis e outras mídias é chamado de
Sistema de arquivos.
61. Em um sistema de arquivos, os arquivos podem ser estruturados de diferentes formas, o que
pode levar a restrições na forma como as aplicações podem manipular tais arquivos. No que se
refere a estrutura de arquivos, marque a alternativa correta.
A sequência desestruturada de bytes é a estrutura adotada pelo Linux e pelo MS Windows®.
62. Para o armazenamento de dados em partições Linux, um disco precisa ser particionado. Depois,
as partições precisam ser formatadas e, posteriormente, montadas. Somente após a conclusão
destes 3 processos, o sistema de arquivos poderá ser acessado pelos processos do sistema.
Os comandos do Linux que podem ser utilizados, respectivamente, para particionamento,
formatação e montagem de sistema de arquivos são:
fdisk, mkfs e mount.
Sistemas Operacionais
Marcio Quirino - 15
63. Um dos comandos mais utilizados quando se está trabalhando em um shell do Linux é o comando
para listar o conteúdo do diretório corrente. Para listar o conteúdo do diretório corrente,
mostrando os arquivos ocultos e o tamanho dos arquivos, deve-se utilizar o comando:
ls -al
64. Hoje é segunda-feira, dia 1º de março, e o relógio marca 14h30. No CRONTAB do usuário ‘root’
há uma entrada, exibida abaixo.
20 10 * * 0 /opt/relatorio
É possível afirmar que a próxima execução do comando ‘/opt/relatorio’ será:
No próximo domingo, dia 7, às 10h20
A configuração da tarefa no CRONTAB define que ela deverá ser executada às 10h20, todos os
domingos. A primeira coluna indica o minuto: 20. A segunda coluna indica a hora: 10. As terceira e
quarta colunas indicam o dia do mês e o mês: o caractere ‘*’ significa ‘todos os valores possíveis’. A
quinta coluna indica o dia da semana: O valor ‘0’ se refere ao domingo.
65. O usuário ‘luiz’ configurou seu CRONTAB para executar um SCRIPT, porém verificou que ele não
está sendo executado como esperado. A linha configurada no CRONTAB é:
0 15 1 * * sudo /root/apagar_arquivos_antigos
Pela análise da linha acima, é possível identificar que:
O comando ‘sudo’ não deve ser usado no CRONTAB. No lugar dele, a tarefa deve ser configurada
no CRONTAB do usuário ‘root’.
Por se tratar de um comando interativo, o ‘sudo’ não deve ser usado no CRON. Quando o ‘sudo’ é
executado pela primeira vez, ele solicita que o usuário digite a sua senha, o que não vai acontecer
quando estiver sendo executado a partir do CRON. Portanto, o SCRIPT ficará aguardando
indefinidamente por uma informação que não poderá ser fornecida.
66. Considere o SCRIPT abaixo:
#!/bin/bash
#echo “Codigo 1”
#show “Codigo 2”
exit 0
Ao executar o SCRIPT acima, podemos afirmar que:
Ao término da execução do SCRIPT, nenhuma informação terá sido enviada para o terminal.
A primeira linha é a declaração do interpretador SHELL de comandos que executará o SCRIPT. Apesar
de importante, essa linha não gera saída de conteúdo para o terminal. As linhas seguintes são iniciadas
com o caractere ‘#’ e, portanto, são ignoradas pelo interpretador durante a execução do SCRIPT. A
quarta linha encerra a execução do SCRIPT definindo um valor de retorno ‘zero’. Portanto, nenhuma
das linhas efetivamente gera respostas ao terminal.
Sistemas Operacionais
Marcio Quirino - 16
67. Considere um SCRIPT cujas primeiras linhas são mostradas a seguir:
#!/bin/bash
clear
read
cd /tmp
...
Os pontos ‘...’ no fim do trecho acima simbolizam a continuação do SCRIPT.
Analisando as linhas acima, é possível afirmar que, ao executar o SCRIPT:
A execução é suspensa até que o usuário digite a tecla ENTER.
O comando ‘read’, executado como no SCRIPT acima, interrompe a execução até que o usuário digite
a tecla ENTER. O comando ‘clear’ apaga as informações que eram exibidas no terminal, deixando a
tela “limpa”. O comando ‘cd /tmp’ mudao diretório atual.
68. Considere o SCRIPT abaixo, cujo nome do arquivo é ‘resposta’:
#!/bin/bash
if [[ $1 -eq 0 ]]
then
echo "Resposta: $3"
else
echo "Resposta: $2"
fi
exit 0
Ao executar o SCRIPT com o comando abaixo, a saída será:
$ resposta 5 6 7
Resposta: 6
As variáveis $1, $2 e $3 contêm os parâmetros passados na execução, respectivamente, 5, 6 e 7.
No início do SCRIPT há um operador ‘if’ comparando o valor de $1 com ‘0’ (zero). Como $1 não atende
a essa comparação (pois $1 é 5), o trecho abaixo do ‘else’ será executado. O comando ‘echo “Resposta:
$2”’ faz com que seja exibida a palavra “Resposta: “ e o $2 é substituído pelo segundo parâmetro
recebido pelo SCRIPT, neste exemplo, o ‘6’. Portanto, a saída do SCRIPT será: “Resposta: 6”.
69. Considere o SCRIPT abaixo que, ao ser executado, pede ao usuário que digite dois valores, A e
B.
#!/bin/bash
echo -n "Digite o valor de A: "
read A
echo -n "Digite o valor de B: "
read B
if [[ $A -gt $B ]]
then
echo $((A+B))
fi
exit 0
Sobre o funcionamento do SCRIPT, é correto afirmar que:
Se o valor de A for maior que o valor de B, o SCRIPT retorna a soma dos dois.
O comparador ‘-gt’ usado no ‘if’ retorna verdadeiro se o valor de A for maior que o valor de B. Nesse
caso, serão executados os comandos abaixo do ‘then’.
O comando ‘echo’ retornará o resultado da soma A+B.
Sistemas Operacionais
Marcio Quirino - 17
70. Analise o SCRIPT abaixo e escolha a opção que descreve corretamente o seu funcionamento.
#!/bin/bash
i=0
while [[ $i -ne 10 ]]
do
read X
if [[ $X -eq 1 ]]
then
break
fi
(( i++ ))
done
exit 0
O SCRIPT pede, repetidamente, que o usuário digite um valor. O LOOP se encerra se o valor for
igual a ‘1’ ou após 10 valores digitados.
O ‘while’ estabelece um LOOP que não se encerrará até que a variável $i tenha o valor 10. Dentro do
LOOP, vemos que a variável $i é incrementada em uma unidade a cada iteração. Portanto, o LOOP
executará 10 vezes, se não for interrompido antes.
Dentro do LOOP, o comando ‘read’ recebe um valor, que será comparado, pelo ‘if’, com o valor ‘1’. Se
for igual, o LOOP é imediatamente encerrado. Portanto, ao executar o SCRIPT, ele inicia um LOOP e a
cada iteração receberá um valor digitado pelo usuário. Se esse valor for ‘1’, o LOOP se encerra
imediatamente. Após pedir a digitação pela 10ª vez, o SCRIPT se encerra independentemente dos
valores digitados.
71. Considere a variável A, definida em um SCRIPT:
A="1 2 3 4 5"
A estrutura de repetição que executa uma iteração de LOOP para cada valor na variável A é:
for valor in $A
O operador ‘for’ percorrerá o conteúdo da variável $A, obtendo um valor por vez e o atribuindo a uma
variável temporária. Para o comando ‘for valor in $A’, essa variável temporária será $valor.
72. Dentre as opções abaixo, indique qual representa uma configuração de agendamento no
CRONTAB para executar um determinado comando a cada 30 minutos, somente às segundas-
feiras.
*/30 * * * 1 comando
73. Em uma empresa de tecnologia, o administrador de sistemas precisa automatizar a geração de
relatórios diários de uso dos servidores. Para isso, ele decide usar o CRON, configurando um
script que executa essa tarefa todos os dias às 3 da manhã.
Qual comando o administrador deve inserir no CRON para realizar a tarefa descrita acima?
0 3 * * * /caminho/para/script.sh
74. Dos comandos abaixo, qual pode ser usado para limpar o terminal, apagando todo o conteúdo
previamente existente?
clear
Sistemas Operacionais
Marcio Quirino - 18
75. Dos comandos abaixo, qual permite alterar a configuração de CRONTAB do usuário?
crontab -e
76. Ao desenvolver um SCRIPT, seu responsável utilizou o comando abaixo:
$ chmod u+x script
Sobre esse comando, é correto afirmar que:
Concede ao arquivo a permissão para poder ser executado como SCRIPT pelo proprietário.
77. Na elaboração de um curso introdutório sobre sistemas operacionais, um educador planeja
incluir uma seção dedicada ao entendimento de como os sistemas operacionais gerenciam
processos e threads. Este tópico é vital para compreender como os sistemas operacionais
otimizam o uso do processador, permitindo a execução concorrente de múltiplas tarefas.
Considerando o texto, analise as afirmativas abaixo:
I. O gerenciamento de processos envolve a distribuição eficiente do tempo de CPU entre os
processos ativos.
II. Threads dentro de um mesmo processo compartilham o mesmo espaço de memória,
facilitando a comunicação entre eles.
III. A execução concorrente de threads não impacta o desempenho do sistema operacional.
Assinale a opção que apresenta somente as afirmativas corretas.
I e II estão corretas.
78. Sistemas operacionais multitarefa permitem que vários programas sejam executados
simultaneamente. Esta capacidade melhora a eficiência e a usabilidade do computador,
permitindo uma melhor gestão do tempo de processamento.
Qual característica define um sistema operacional multitarefa?
Executar múltiplos programas usando um único processador.
79. Durante uma aula sobre a evolução dos sistemas operacionais, um professor destaca a
importância dos avanços tecnológicos que permitiram a transição de sistemas operacionais
monotarefa para multitarefa, enfatizando a capacidade de executar várias aplicações
simultaneamente. Este marco representa um salto significativo na eficiência e na funcionalidade
dos computadores modernos.
Considerando o texto, analise as afirmativas abaixo:
I. Sistemas operacionais multitarefa podem executar várias aplicações ao mesmo tempo,
aumentando a produtividade.
II. A transição para sistemas operacionais multitarefa não teve impacto significativo na
utilização dos recursos do sistema.
III. Sistemas operacionais monotarefa limitavam os usuários a executar uma única aplicação
por vez.
Assinale a opção que apresenta somente as afirmativas corretas.
I e III estão corretas.
Sistemas Operacionais
Marcio Quirino - 19
80. Na arquitetura de sistemas operacionais, o kernel é a camada mais fundamental, oferecendo uma
base sobre a qual os programas podem ser executados de maneira segura e eficiente.
O que é o kernel em um sistema operacional?
A camada fundamental que atua diretamente sobre o hardware.
81. Em um seminário sobre arquiteturas de sistemas operacionais, um palestrante discute a
diferença entre o modelo de kernel monolítico e microkernel. Ele explica como essas estruturas
influenciam a comunicação entre o sistema operacional e o hardware, bem como a estabilidade
e a segurança do sistema.
Considerando o texto, analise as afirmativas abaixo:
I. O modelo de kernel monolítico caracteriza-se por ter todos os serviços do sistema
operacional executando em espaço de kernel.
II. Microkernels favorecem a modularidade, executando serviços básicos do sistema
operacional em espaços de usuário.
III. Kernels monolíticos são inerentemente mais seguros devido à sua estrutura simplificada.
Assinale a opção que apresenta somente as afirmativas corretas.
I e II estão corretas.
82. Um analista de sistemas está investigando um problema de desempenho em um servidor que
executa múltiplas instâncias de aplicativos web. Ele suspeita que o escalonamento de processos
não está sendo eficiente, levando a altos tempos de espera e resposta.
Considerando o texto, analise as afirmativas abaixo:
I. O escalonamento de processos é irrelevante para o desempenho do sistema.
II. Algoritmos de escalonamento visam distribuir o tempo de processador de forma justa entre
todos os processos.
III. Processos em estado de espera não consomem recursos do processador.
Assinale a opção que apresenta somente as alternativas corretas.
II e III, apenas.
83. Gerenciar eficientemente o tempo de CPUentre múltiplos processos é crucial para o desempenho
do sistema. O escalonador de processos utiliza diferentes critérios para otimizar o uso do
processador, melhorando a resposta do sistema a diversas cargas de trabalho.
Qual tipo de escalonamento utiliza fatias de tempo para alternar a execução entre os processos,
buscando equilibrar o uso do CPU?
Round Robin.
84. A criação de processos é um passo essencial na execução de programas. Sistemas operacionais
como o Linux fornecem chamadas de sistema específicas para essa finalidade, facilitando a
gestão de múltiplas tarefas.
Qual chamada de sistema no Linux é utilizada para criar um novo processo?
fork()
Sistemas Operacionais
Marcio Quirino - 20
85. Em um sistema operacional moderno, a gestão eficaz do processador é crucial para o
desempenho. Uma estratégia chave é o uso de algoritmos de escalonamento para decidir qual
processo executará em seguida, maximizando a utilização da CPU.
Qual algoritmo de escalonamento prioriza os processos com o menor tempo restante primeiro?
Menor Tempo Primeiro (Shortest Remaining Time First – SRTF).
86. O Bloco de Controle de Processo (BCP) é uma estrutura vital em sistemas operacionais que
permite a multitarefa, garantindo que todos os processos sejam gerenciados de maneira justa e
eficiente.
Qual é o propósito do Bloco de Controle de Processo (BCP) no Linux?
Contém todas as informações do processo.
87. No desenvolvimento de software concorrente, a sincronização de processos é fundamental para
evitar condições de corrida. Utilizar mecanismos adequados garante que os recursos sejam
acessados de maneira segura e ordenada.
Qual mecanismo é utilizado para evitar o acesso simultâneo a um recurso compartilhado?
Semáforos.
88. Em uma startup de tecnologia, o time de desenvolvimento está projetando um novo aplicativo
que otimiza o uso de recursos do processador em smartphones. Eles precisam entender como
os processos são criados, gerenciados e finalizados para melhorar a eficiência do app.
Considerando o texto, analise as afirmativas abaixo:
I. Todos os processos são independentes e não compartilham recursos do sistema
operacional.
II. Um processo pode criar outros processos durante sua execução, que são conhecidos como
processos filho.
III. A finalização de um processo libera os recursos alocados pelo sistema operacional para
serem reutilizados.
Assinale a opção que apresenta somente as alternativas corretas.
II e III, apenas.
89. (SELECON/2022 - Adaptada) Nos computadores atuais, é utilizado um mecanismo para melhorar
o desempenho dos equipamentos, conhecido como memória virtual e implementado por meio de
um arquivo de troca "swap file" armazenado no disco rígido. Esse mecanismo emprega
basicamente dois recursos, descritos a seguir:
I. Técnica de gerência de memória, na qual um programa é espalhado por áreas não contíguas de
memória, em que o espaço de endereçamento lógico de um processo é dividido em unidades
lógicas de tamanho fixo.
II. Técnica de gerência de memória, na qual programas são divididos em unidades de tamanhos
variados, cada um com seu próprio espaço de endereçamento.
Os recursos descritos em I e II são conhecidos, respectivamente, como:
paginação e segmentação
Sistemas Operacionais
Marcio Quirino - 21
90. (FAPESC/2017 - Adaptada) Gerenciamento é o processo de planejar, organizar, dirigir e controlar
recursos. Assinale a alternativa correta com relação ao gerenciamento da memória em Sistemas
Operacionais.
Além de desacoplar os endereços lógicos dos endereços físicos e realizar a tradução entre
ambos, a noção de memória virtual também permite implementar a proteção de memória do
núcleo e dos processos entre si, fundamentais para a segurança e estabilidade do sistema.
91. Monitorar o ambiente de execuções do Linux é uma atividade corriqueira para o administrador do
Sistema. Nessa tarefa, vários comandos e aplicativos podem ser utilizados, inclusive aqueles
para análise da utilização da memória. Sobre o gerenciamento da memória do sistema Linux, qual
o aplicativo chamado a partir do terminal possui em sua parte superior um resumo da utilização
dos principais recursos em que as cores possuem significado?
htop
92. (Instituto Consulplan/2022 - Adaptada) Sistemas operacionais são tipos de software que têm a
função primordial de ser a base para o funcionamento de computadores e, consequentemente, a
manipulação por parte dos usuários. A memória RAM é um item de hardware que possui tamanho
limitado, enquanto os processos executados, muitas vezes, ultrapassam o limite de tamanho
proporcionado por esse componente. Para que o computador consiga lidar com esse cenário, é
necessário que os processos permaneçam em disco, sendo carregados dinamicamente para a
memória, possibilitando que sejam executados somente quando necessário. Um dos métodos
utilizados para realizar o processo de gerenciamento de memória é:
Swapping.
93. Concurso: INMETRO - 2010 - Edital 01-2010 | Prova: CESPE - 2010 - INMETRO - Pesquisador -
Ciência da Computação. Em um sistema operacional que implementa a gerência de memória, por
meio de um sistema de paginação por demanda, observou-se que, durante a execução de um
processo, a utilização da CPU é 20%, do disco de paginação 75% e dos demais dispositivos de
E/S 5%. Assinale a opção que otimiza a utilização da CPU.
Aumento do tamanho da página.
94. Concurso: UFPE - 2010 | Prova: COVEST-COPSET - 2010 - UFPE - Analista de Tecnologia da
Informação. Um dos tipos de gerenciamento de memória utilizados por sistemas operacionais é
a memória virtual. Este tipo de memória pode ser gerenciada por segmentação. Assinale a
alternativa que descreve o funcionamento do gerenciamento de memória virtual por
segmentação:
Divide o espaço do endereçamento virtual em blocos de tamanhos diferentes chamados
segmentos.
95. Concurso: TRF - 2ª REGIÃO - 2011 - Técnico e Analista | Prova: FCC - 2012 - TRF - 2 REGIÃO -
Analista Judiciário ¿ Informática. Quando segmentos de memória alocados a processos e
segmentos de memória livres são mantidos em uma lista ordenada por endereço, é possível
utilizar diversos algoritmos para alocar memória a um processo recém-criado. Presumindo que o
gerenciador de memória saiba o tamanho de memória que deve ser alocada ao processo, ele
procurará ao longo da lista de segmentos de memória por um segmento livre que seja
suficientemente grande para esse processo. O segmento é quebrado em duas partes, se for o
caso, sendo uma parte alocada ao processo e a sobra transforma-se em um segmento de
memória livre. O texto trata do algoritmo
first fit
Sistemas Operacionais
Marcio Quirino - 22
96. (OBJETIVA/2019 - Adaptada) Quando ocorre uma falta de página, o sistema operacional tem de
escolher uma página para remover da memória a fim de abrir espaço para a que está chegando.
Assinale a alternativa que apresenta uma desvantagem do algoritmo primeiro a entrar, primeiro
a sair (first in, first out).
A página mais antiga a ser removida ainda pode ser intensamente usada.
97. Compreender as técnicas de gerência de memória empregadas pelos sistemas operacionais é
uma qualidade fundamental para o profissional de TI moderno. Nesse sentido, qual a política de
liberação de páginas que prioriza a retirada da página que esteja carregada há mais tempo?
FIFO.
98. (FAPESC/2022 - Adaptada) Os processadores são componentes de hardware de um computador
que executam instruções de programas e realizam cálculos. Quase todos os processadores
suportam um mecanismo de memória virtual. Assinale a alternativa correta com relação a esse
mecanismo.
A memória virtual é uma facilidade que permite que os programas enderecem a memória a partir
de um ponto de vista lógico, sem considerar a quantidade de memória principal disponível
fisicamente.
99. Empregare compreender as ferramentas para o gerenciamento e manipulação dos arquivos é
uma habilidade fundamental para o profissional de TI. Sobre o Sistema Operacional Linux, qual o
comando responsável por apagar um diretório de nome "provas" que contém arquivos em seu
interior?
rm -rf provas.
100. Define-se um sistema operacional multitarefa como sendo aquele que possui a capacidade
de:
manter vários programas na memória simultaneamente.
101. Para melhor análise do desempenho dos processos com os diferentes tipos de
escalonamento existentes, os processos são classificados em dois tipos: CPU-bound e I/O-
bound. Com esse conceito definido podemos afirmar que:
Os processos CPU-bound levam vantagem em escalonamentos feitos com o mecanismo de
preempção por tempo, enquanto os processos 1/0-bound se beneficiam através de mecanismos
de prioridade dinâmica.
102. O projeto de um escalonador adequado deve levar em conta uma série de diferentes
necessidades, devendo contemplar os seguintes objetivos, EXCETO:
Minimizar o número usuários interativos do sistema.
103. Várias foram as técnicas propostas para otimizar a alocação de memória. Entretanto,
independentemente da técnica utilizada, pode acontecer de não haver memória disponível para
todos os processos. Para solucionar este problema foi proposta a técnica de swapping. Em
relação ao funcionamento desta técnica, marque a alternativa INCORRETA.
A técnica de swapping pode ser usada tanto em sistemas monotarefa quanto multitarefa.
Sistemas Operacionais
Marcio Quirino - 23
104. O gerenciamento dos sistemas de entrada/saída de dados é normalmente implementado em
duas camadas: uma responsável pelo controle do dispositivo e outra, pelo gerenciamento de
entrada/saída. Por que isso representa um projeto eficiente?
Escolha a alternativa correta.
Porque permite separar características de hardware de características funcionais do dispositivo
de entrada/saída.
105. O nome de um arquivo no padrão FAT16 pode possuir, além da extensão, no máximo,
8 caracteres.
106. Analise as quatro sentenças abaixo sobre sistema de arquivos e, em seguida, assinale a única
alternativa correta:
I. Na alocação contígua a tabela de alocação contém uma entrada .com bloco inicial e tamanho
em blocos) para cada arquivo;
II. Para controle de espaços livres temos pelo menos três formas: mapa de bit, lista encadeada e
tabela de blocos livres;
III. Na alocação indexada, para se ter acesso a um determinado bloco é necessário percorrer a
lista até o bloco desejado;
IV. Na alocação encadeada a tabela de alocação contém um índice para cada arquivo.
Somente as sentenças I e II estão corretas
107. Sabemos que existem vários tipos de servidores. Como se dá o fluxo entre o cliente e o
servidor de banco de dados. Assinale a resposta INCORRETA.
As aplicações baseadas no acesso a banco de dados recebem a resposta direta do servidor
SGBD.
108. Relacione os comandos básicos de redes do Windows, e suas funções.
1 GETMAC
2 NSLOOKUP
3 NETSH
4 PING
( ) Procura pelo endereço MAC (Media Access Control), e faz a listagem das redes associadas na
máquina local ou em toda rede;
( ) Dentro deste comando é possível modificar configurações de uma rede local ou em uma
máquina remota;
( ) Retorna informações sobre o DNS (Domain Name System) de um determinado número IP, ou
número do host;
( ) Envia pacotes ICMP para um determinado endereço IP e verifica os níveis de conectividade e
o tempo de resposta;
1; 3; 2; 4
109. Qual das alternativas apresenta um sistema de arquivos nativamente utilizado no Linux?
extfs.
Sistemas Operacionais
Marcio Quirino - 24
110. Você está desenvolvendo um SCRIPT em que pede ao usuário para digitar uma palavra,
utilizando o comando ‘read PALAVRA’. Porém, antes de prosseguir, você deseja colocar um teste
para certificar-se de que o usuário efetivamente digitou alguma coisa.
Qual dos comparadores abaixo podemos utilizar?
if [[ -n "$PALAVRA" ]]
111. Você está analisando um SCRIPT desenvolvido por outra pessoa e não sabe qual a sua
finalidade.
#!/bin/bash
echo -n "Digite A: "
read A
echo -n "Digite B: "
read B
if [[ $A -eq $B ]]
then
echo "X"
fi
if [[ $A -gt $B ]]
then
echo "A"
fi
if [[ $A -lt $B ]]
then
echo "B"
fi
exit 0
Ao iniciar a análise, percebemos que ele solicita ao usuário a digitação de dois valores, chamados
de A e B. Pela análise do restante do SCRIPT podemos afirmar que:
Indica qual dos dois valores é maior, A ou B, e retorna um X se forem iguais.
112. (Instituto Access/2022 - Adaptada) Linux representa uma família de sistemas operacionais de
código aberto, baseados no Linux kernel, o que inclui Ubuntu, Fedora e Debian. Essas
distribuições possibilitam a execução de diversos comandos na modalidade ¿prompt¿, como os
caracterizados a seguir:
l. Permite encontrar o caminho para o diretório atual, em que o usuário está. O comando vai
retornar um caminho completo, que começa basicamente com uma barra inclinada (I). Um
exemplo de um caminho completo é /home/username.
II. Permite visualizar arquivos armazenados em um diretório. Por padrão, esse comando vai
mostrar os conteúdos apenas do diretório atual em que o usuário se encontra.
Os comandos caracterizados em I e II são, respectivamente:
pwd e Is.
113. A técnica de dividir a memória principal em várias partes, com uma tarefa diferente em cada
partição de memória, cujas tarefas são trocadas a todo instante pela CPU implicando em um falso
paralelismo em suas execuções, é conhecida como:
Multiprogramação
Sistemas Operacionais
Marcio Quirino - 25
114. (UFPE/2017) Um cache de imagens para um site foi implementado de forma que as imagens
que são solicitadas mais vezes ficam armazenadas no cache, independentemente de quando
foram solicitadas. Quando o cache estiver cheio e precisar liberar memória, a imagem com menor
quantidade de solicitações é removida. O algoritmo de cache que melhor se encaixa nesta
descrição é:
LFU
115. (IBADE/2022 - Adaptada) O Gerente de Memória é um componente do sistema operacional,
contido inteira ou parcialmente no kernel. Pode-se afirmar que são tarefas de um gerenciador de
memória:
l. manter o mapeamento de memória virtual para memória física.
II. fazer o swapping transparente entre memória principal e disco.
III. garantir isolamento mútuo entre processos.
IV. alocar memória rom para novos processos.
Marque a alternativa correta.
l, II e III, apenas.
116. Algoritmos de escalonamento devem decidir qual o próximo processo a entrar em execução
quando uma UCP estiver disponível. Alguns algoritmos de escalonamento preemptivos definem
um valor chamado quantum, que é o tempo que o processo terá para fazer uso da UCP.
Dentre as alternativas abaixo, marque aquela que representa o que ocorre quando um processo
é escalonado para uso da UCP e não consegue terminar sua execução dentro do quantum
recebido.
O processo será interrompido e, em uma nova oportunidade, voltará ao ponto em que estava
executando.
117. Quando existe mais de um processo acessando uma memória compartilhada, corre-se o risco
da ocorrência da condição de corrida, que é extremamente prejudicial ao resultado do
processamento.
Dentre as opções abaixo, determine qual representa uma solução para a condição de corrida.
A definição de uma região crítica, na qual pode haver somente um processo em execução.
118. Orlando possui em seu diretório pessoal em um sistema de arquivos ext4 um arquivo
chamado "web.cfg" e cria um hardlink(link duro) para o arquivo "web.cfg", denominado
"teia.config". Após, Orlando apaga acidentalmente o arquivo "web.cfg". O que acontece com
"teia.config"
Continua existindo e seu conteúdo continua idêntico ao que estava em "web.cfg".
119. É um comando que permite interromper um LOOP imediatamente:break
Sistemas Operacionais
Marcio Quirino - 26
120. O acesso a disco é muito lento quando comparado com a capacidade de processamento de
dados dos componentes eletrônicos de um computador. Por essa razão foram desenvolvidos
trabalhos no sentido de buscar uma solução, ou pelo menos um paliativo, visando diminuir o
tempo que o sistema leva aguardando a finalização da escrita de dados em disco.
Uma das técnicas desenvolvidas com essa finalidade procura antecipar as escritas em um diário
no disco para liberar mais rapidamente o sistema, e somente mais tarde efetivar as gravações
nos blocos definitivos em disco. Essa técnica é conhecida como:
journaling
121. O Windows é um sistema operacional no qual o código-fonte total ou parcial não é
disponibilizado para modificação por qualquer pessoa. Somente a fabricante possui o acesso a
ele. Logo, quanto ao licenciamento do software, pode-se dizer que o Windows possui o código:
Proprietário
122. O sistema operacional pode gerenciar e alocar as partes de todo um sistema complexo. A
esse recurso dá-se o nome de:
Gerenciador de recursos
123. Quando um processo chega para ocupar uma partição de memória, ou ele é colocado em uma
fila de entrada da menor partição capaz de armazená-lo ou ele é colocado em uma fila de entrada
única para todas as partições.
No contexto de gerenciamento de memória trata-se de uma afirmativa típica da:
Multiprogramação com partições fixas.
124. Concurso: TCE-GO - 2009 | Prova: FCC - 2009 - TCE-GO - Analista de Controle Externo -
Tecnologia da Informação.
No contexto do algoritmo de substituição de página não usada recentemente (NUR), considere:
l. A maioria dos computadores com memória virtual tem dois bits de status: o bit referenciada (R)
e o bit modificada
II. Os bits de status devem ser atualizados em todas as referências à memória, sendo essencial
que tal atualização ocorra via hardware.
III. Uma vez que o bit de status é colocado em 1, via hardware, este permanece com tal valor até
o sistema operacional colocá-lo em 0, via software.
Está correto o que se afirmar em:
l, II e III
Sistemas Operacionais
Marcio Quirino - 27
125. Sistemas Operacionais (SOs) têm, dentre as suas responsabilidades, a incumbência de
gerenciar processos e efetuar o seu escalonamento no processador. O SO mantém uma fila de
processos prontos para serem executados, e o escalonamento está relacionado à forma com que
um SO faz a escolha de qual dos processos da fila ocupará o processador a cada instante. Há
diversas técnicas para o escalonamento.
Em uma dessas técnicas, conhecida como Round Robin (RR), o processo a ser executado será
o:
primeiro da fila, que será executado por um determinado intervalo (chamado de quantum) após
o qual voltará ao final da fila.
126. No algoritmo de escalonamento por prioridades, quando o escalonador necessita escolher
qual o próximo processo a entrar em execução, ele faz uma avaliação das prioridades dos
processos que estão no estado pronto e seleciona para execução aquele de maior prioridade.
Sobre o escalonamento por prioridades é correto o que se afirmar em:
Processos que realizam muitas operações de E/S costumam receber aumento de prioridade.
127. Em um ambiente Linux, os scripts desempenham um papel fundamental na automação e
execução eficiente de tarefas. Utilizando o interpretador de shell, como o Bash, podemos criar
scripts poderosos e flexíveis, capazes de realizar desde tarefas simples até operações
complexas, incluindo manipulação de datas, pausas, interações com o usuário e controle de
saída.
Qual a finalidade da "palavra mágica" no início de um script em um ambiente Linux?
Especifica o interpretador de Shell a ser usado.
128. (IBADE/2022 - Adaptada) Linux oferece uma ampla gama de recursos, incluindo suporte a
muitos softwares e programas, alta segurança e flexibilidade, e é conhecido por ser um sistema
operacional estável e confiável_ No sistema operacional Linux o usuário de maior poder que já
vem configurado de fábrica é o:
Root
129. (IUDS/2021 - Adaptada) "Este tipo de sistema operacional não interage, diretamente, com o
computador. Existe um operador que pega trabalhos semelhantes com o mesmo requisito e os
agrupa. E responsabilidade do operador classificar os trabalhos com necessidades
semelhantes". Este tipo de sistema operacional é conhecido como:
Sistema operacional "em lote" (Batch Operating System).
130. (CORE-SP/INAZ do Pará - 2019) “Um processo tem uma ou mais linhas de execução (threads).
Existem processos com maior e menor prioridade. Na hierarquia de processos, dizemos que o
processo que chama o outro é o processo pai, enquanto o novo, é o processo filho”
Qual comando LINUX apresenta uma lista dos processos ativos e dos recursos utilizados no
sistema, incluindo memória, em um determinado momento?
top
Sistemas Operacionais
Marcio Quirino - 28
131. Concurso: TRT – 14a Região (RO e AC) - 2011 -Analista e Técnico I Prova: FCC - 2011 - TRT –
14a Região (RO e AC) – Técnico Judiciário - Tecnologia da Informação – Adaptada.
A memória é um recurso limitado em um dispositivo computacional e realizar a sua gerência é
fundamental para a maximização da eficiência e execução dos processos. Acerca da gerência de
memória, a Memory Management Unit (MMU) tem como função principal.
Mapear os endereços virtuais para endereços físicos de memória
132. As condições de corrida podem causar uma série de problemas, incluindo resultados
imprevisíveis, corrupção de dados e falhas no sistema.
O que define a "Condição de Corrida"?
O fenômeno quando dois ou mais processos estão acessando dados compartilhados e o
resultado depende de quem executa primeiro e quando.