Você está na página 1de 24

Lista de exercícios de S.

O
Unip – Ciência da Computação
Matutino – CC5A42E
Luciano Ferreira Araújo – N320CF8

Exercícios da Aula 01
Aluno (s):
Professor: Jair Alarcón Disciplina: Sistemas Operacionais
Questão 1. 2018 - CEPS-UFPA - UNIFESSPA - Técnico de Laboratório - TI
Sistema operacional é:
(A) um programa de computador que gera ferramentas de desenho para uma
interface gráfica de usuário.
(B) um programa de computador que atualiza o hardware de forma automática
enquanto suportado pelo fabricante.
(C) um dispositivo que virtualiza programas e hardwares de forma transparente
para o usuário no cenário de nuvem.
(D) um dispositivo que se conecta no computador para instalação de programas e
gerenciamento automático de dados e da memória virtual.
(E) um programa para gerenciar recursos do computador, provendo uma interface
simplificada para o usuário manipular o hardware.

Questão 2. 2017 - UPENET/IAUPE - Técnico em Informática


O software responsável pelo gerenciamento dos recursos do hardware para o
usuário, a fim de que os softwares aplicativos não tenham que interagir
diretamente com os dispositivos periféricos, é definido como:
(A) compilador.
(B) driver.
(C) sistema operacional.
(D) drive.
(E) controlador.

Questão 3. 2016 - UFES - Técnico de Tecnologia da Informação


Um Sistema Operacional funciona como uma interface entre um programa de
usuário e o hardware e oferece uma variedade de serviços e funções de supervisão.
NÃO é uma das tarefas clássicas de um Sistema Operacional:
(A) o controle da frequência de clock para permitir execuções mais rápidas usando
overclocking.
(B) o tratamento das operações básicas de entrada e saída das aplicações.
(C) a proteção dos recursos compartilhados entre as múltiplas aplicações em
execução numa máquina.
(D) a alocação de memória para as aplicações.
(E) a criação e destruição de processos associados às aplicações.

Questão 4. 2017 - NC-UFPR - ITAIPU BINACIONAL - Profissional de Nível Superior Jr -


Computação ou Informática – Suporte
Troca de contexto é uma tarefa efetuada pelo Sistema Operacional na
gerência de tarefas. A troca de contexto consiste em:
(A) trocar o usuário logado no Sistema Operacional, para que outro usuário possa
utilizá-lo sem interferência nas informações do usuário anterior.
(B) interromper a execução de aplicativos críticos.
(C) salvar informações de uma tarefa para que o processador possa ser entregue a
outra, carregando seu contexto.
(D) recarregar o contexto do usuário para restaurar o estado da máquina.
(E) trocar a tarefa que gerencia as impressoras instaladas na máquina.

Questão 5. 2012 - COPEVE-UFAL - MPE-AL - Analista do Ministério Público -


Administração de Redes
O kernel do Linux é:
(A) gráfico. (B) micronúcleo. (C) GNU. (D) monolítico. (E) Minix.

Questão 6. 2017 - COSEAC - UFF - Técnico de Tecnologia da Informação


O conceito utilizado pelo sistema operacional, quando o tempo de CPU é
compartilhado para atender a muitos processos, é:
(A) memória virtual.
(B) pipelining.
(C) time-sharing.
(D) multiprocessamento.
(E) clustering.

Questão 7. 2015 - NUCEPE - SEDUC-PI - Professor - Informática


Os sistemas operacionais possuem várias funções para permitir o funcionamento do
sistema computacional. Dentre as alternativas abaixo, qual NÃO é função do
sistema operacional:
(A) Gerenciar operações de entrada e saída.
(B) Controlar interrupção de hardware.
(C) Gerenciar processos.
(D) Gerenciar memória.
(E) Realizar bloqueio de vírus no sistema.

Questão 8. 2014 - CEFET-MG - Técnico de Laboratório - Informática


São componentes internos ao Sistema Operacional, os princípios de:
(A) sistema de interpretação de comandos, barramento, memória, discos e sistema
de processamento.
(B) gerência de processos, shell, gerenciamento de diretórios, memória virtual e
linguagem de programação.
(C) sistema cliente-servidor, máquinas virtuais, linguagem de máquina, sistema
multitarefa e multiprocessamento.
(D) gerência de memória, controle de processos, controle de E/S, sistema de
arquivos e sistema de segurança.
(E) ambiente operacional, sistema de aplicativos, browser, controle de
leitura/gravação e sistema de armazenamento.

Questão 9. O que representa um sistema operacional, por mais complexo que


possa parecer?

É um conjunto de rotinas que são executadas pelo processador. Ele é como um


gerenciador de funções.

Questão 10. Descreva os serviços “oferecidos” pelo microkernel e kernel.

Kernel: É responsável pelo gerenciamento de memória e processos, subsistemas


de arquivos, rede, suporte aos dispositivos conectados ao computador.

Microjernel: é uma arquitetura de núcleo (kernel) de um sistema operativo cujas


funcionalidades são quase todas executadas fora do núcleo, em oposição a
um núcleo monolítico. Os processos se comunicam com um núcleo mínimo, usando
o mínimo possível o "espaço do sistema"

Questão 11. O que representa uma chamada de sistema e qual sua função?

É o kernel que faz a chamadas de sistemas, para que outras tarefas também sejam
executadas.

Questão 12. Explique o conceito de interrupção e dê um exemplo.

É quando um evento externo ao programa ocorre.


Ex: O usuário aperta uma tecla no teclado, assim o programa é interrompido e após
receber o comando do teclado o programa continua de tinha parado.

Questão 13. As interrupções são decorrentes de eventos síncronos ou assíncronos


(explique)?

Assíncrono, um evento externo ocorre, e tudo flui como deveria

Questão 14. Uma exceção é diferente a uma interrupção em que(quais)


aspecto(s)? (Fale sobre todos os aspectos da execução).
Escrita pelo programador no software para que o programa não seja interrompido,
ou seja o programador faz essa exceção

Exercícios da Aula 02
Aluno (s):
Professor: Jair Alarcón Disciplina: Sistemas Operacionais

Questão 1. 2010 - FGV - BADESC - Analista de Sistemas - Desenvolvimento de


Sistemas
Um sistema informatizado opera 24 horas por dia, por meio de uma conexão
direta ao computador central, realizando todas as solicitações no momento em que
as transações ocorrem, com destaque pelo menor tempo de resposta, requisito de
suma importância para a sua eficiência e performance. Duas aplicações para
emprego desse sistema são exemplificadas pelo controle de passagens de grandes
companhias aéreas ou rodoviárias e pela monitoração do lançamento de um
foguete. Por suas características, esse sistema opera na modalidade de
processamento conhecida como:
(A) batch e real time.
(B) on-line e real time.
(C) off-line e real time.
(D) on-line e time sharing.
(E) off-line e time sharing.

Questão 2. 2012 - CEPERJ - PROCON-RJ - Técnico em Informática


O PROCON mantém um sistema automatizado de controle das ocorrências
diárias, que possui duas características, descritas a seguir.
(1) Todas as transações são inseridas no sistema, no momento em que ocorrem, a
partir do instante em que o atendente toma conhecimento do fato gerador.
(2) O tempo de resposta do sistema é fator primordial para o desempenho do
sistema e das atividades executadas pelo PROCON.
Pelas características descritas, o sistema automatizado é enquadrado na
seguinte categoria:
(A) Off Line / Time Sharing
(B) Off Line / Real Time
(C) On Line / Batch
(D) On Line / Real Time
(E) On Line / Time Sharing

Questão 3. 2011 - CESGRANRIO - Petrobras - Analista de Sistemas Júnior -


Engenharia de Software
Sobre os sistemas operacionais, considere as afirmações a seguir.
I - Sistemas operacionais do tipo batch não exigem interação com o usuário.
II - Sistemas operacionais monoprogramáveis permitem a execução de vários
processos concorrentemente.
III - Sistemas operacionais multitarefa, com suporte a múltiplos processadores,
permitem a execução concorrente ou paralela de vários processos.
IV - Sistemas de tempo compartilhado devem ser utilizados em aplicações de tempo
real.
Está correto APENAS o que se afirma em
(A) I e II (B) I e III (C) III e IV (D) I, II e III (E) I, III e IV

Questão 4. 2015 - IDECAN - INMETRO - Análise e Desenvolvimento de Sistemas


O sistema operacional de um SMP (multiprocessador simétrico), que faz o
agendamento de processos ou threads por meio de todos os processadores, possui
algumas vantagens potenciais em relação a uma organização de uniprocessador.
Assinale, a seguir, duas dessas vantagens.
(A) Flexibilidade e disponibilidade.
(B) Confiabilidade e sincronização.
(C) Escalabilidade e disponibilidade.
(D) Disponibilidade e endereçamento.
(E) Crescimento incremental e simplicidade.

Questão 5. 2012 - CESGRANRIO - LIQUIGÁS - Análise de Infraestrutura


Sistemas MIMD (Multiple Instruction Multiple Data) podem ser subdivididos
de acordo com a forma de comunicação entre os processadores e o grau de
compartilhamento da memória. No SMP (Symetric Multiprocessors), em um sistema
fortemente acoplado, constata-se que:
(A) cada processador utiliza uma única memória ou um conjunto de memórias por
meio de um barramento compartilhado no mesmo hardware, e que o tempo de
acesso a qualquer região da memória é aproximadamente o mesmo para cada
processador.
(B) cada processador utiliza uma única memória ou um conjunto de memórias por
meio de um barramento compartilhado no mesmo hardware, mas que o tempo de
acesso a diferentes regiões da memória é diferente para cada processador.
(C) vários processadores compartilham uma única memória ou um conjunto de
memórias por meio de um barramento compartilhado no mesmo hardware, e que o
tempo de acesso a qualquer região da memória é aproximadamente o mesmo para
cada processador.
(D) vários processadores compartilham uma única memória ou um conjunto de
memórias por meio de um barramento compartilhado no mesmo hardware, mas
que o tempo de acesso a diferentes regiões da memória é diferente para cada
processador.
(E) vários sistemas de computação compartilham dados de suas memórias por
meio de uma rede de comunicação de dados externa ao hardware, e que o tempo
de acesso a qualquer região da memória, em cada sistema de computação, pode ou
não ser o mesmo para cada processador.

Questão 6. Qual a grande diferença entre sistemas monoprogramáveis e


multiprogramáveis?

Monoprogramáveis: permitem a execução de apenas uma tarefa/aplicação, como


exemplo pode-se citar o MS-DOS, que permitia que apenas uma aplicação
executasse por vez.

Multiprogramáveis: permitem que sejam executados varias tarefas/aplicações de


uma vez, dividindo recursos conforme necessitam e de acordo com as prioridades
de cada aplicação.

Questão 7. Quais as vantagens dos sistemas multiprogramáveis?


Sua principal vantagem são é obviamente a capacidade de o usuário interagir com
várias aplicações sem ter de fechar as aplicações abertas anteriormente (como
criar um documento, enquanto pesquisa artigos no navegador, e escuta uma
música).

Questão 8. Quais são os tipos de sistemas multiprogramáveis?

Sistemas batch, tempo compartilhados, tempo real

Questão 9. O que caracteriza um sistema batch? Quais aplicações podem ser


processadas neste tipo de ambiente?
Não exigir a interação do usuário com a aplicação. Todas as entradas e
saídas de dados são implementadas por algum tipo de memória secundária,
geralmente arquivos em disco.
Questão 10. Como os processos são executados em um sistema time-sharing?
Quais as vantagens em utilizá-los?

Os processos não mais monopolizavam o uso do processador, mas sim


compartilhavam o mesmo. Dessa forma, o tempo de processamento passou
a ser igualmente dividido entre os processos existente.

Questão 11. Qual a grande diferença entre sistemas de tempo compartilhado e


tempo real?
Quais aplicações são indicadas para sistemas de tempo real?

A principal diferença é no tempo de resposta para executar as informações.


Ex: Sistema de injeção eletrônica de carro, monitoramento de sistema de vigilância
via satélite, e etc.

Questão 12. O que são sistemas com múltiplos processadores e quais as


vantagens em utilizá-los?

Trabalham com um ou mais unidades de processamento funcionando juntos. A


vantagem é que eles dividem a tarefa e assim ficam mais rápidos.

Questão 13. Qual a grande diferença entre sistemas fortemente e fracamente


acoplados?

Fortemente acoplado: ultilizam vários processadores e são gerenciados por um


único sistema operacional.
Fracamente acoplado: São caracterizado pelo uso de 2 sistemas operacionais,
que são conectados por um linha de comunicação.

Exercícios da Aula 03
Aluno (s):
Professor: Jair Alarcón Disciplina: Sistemas Operacionais

Entre no link do Google Colab para responder as questões:


colab.research.google.com

Questão 1. Responda com base no código abaixo:


a) Qual é a saída do programa?

Quadrado: 100
Cubo: 1000
Pronto

b) Qual linha de código importa o módulo de multiprocessamento?

A primeira: import multiprocessing
c) Qual linha de código cria processos? Quantos processos são criados?

p1 = multiprocessing.Process(target = exibe_quadrado, args=(10,))
p2 = multiprocessing.Process(target = exibe_cubo, args=(10,))

d) Qual linha de código inicia os processos?

p1.start()
p2.start()

e) Para que serve o método join?

Pra chamar o processo

Questão 2. Responda com base no código abaixo:


a) Qual é a saída do programa?

ID do processo principal: 127


ID do processo exectundo trabalhdor1: 397
ID do processo executando trabalhador2: 398
ID do processo p1: 397
ID do processo p2: 398
Ambos processos terminaram a execução!
Processo p1 está vivo: False
Processo p2 está vivo: False

b) Para que serve o método getpid?

Ele pega o ID do processo

c) para que serve o método is_alive?

Ele verifica se o processo está vivo, e retorna um valor booleano

d) Pode haver repetição de pid? Justifique.

Não, pois são identificações e então não podem ter dois processos com o
mesmo ID. Se isso ocorrer pode causar grandes problemas.

Abra o Terminal do Linux para responder as questões:

Questão 3. Descubra para que serve o comando abaixo:


ps
Dica: use o comando:
whatis ps

Permite obter informações sobre o estado dos processos que estão sendo executados
no momento.

Questão 4. Descubra o significado das opções aux do comando abaixo:


ps aux
Dica: utilize algum dos comandos abaixo
ps -help
ps --help
ps --ajuda
ps --ajuda todos

a - mostra todos os processos existentes;


u - exibe o nome do usuário que iniciou determinado processo e a hora em que isso
ocorreu;
x - exibe os processos que não estão associados a terminais;

Questão 5. Descubra a diferença entre o comando ps e top


Dica: use também os comandos:
man ps
man top

O comando top serve para listar os processos do Linux. A diferença entre o top e


o ps é que o top atualiza as informações de tempos em tempos.
No seu cabeçalho, o top mostra algumas informações sobre o sistema, como a
quantidade de memória disponível e em uso, informações sobre o uso do processador,
etc.
Na lista dos procesos também temos informações sobre a utilização do processador
e da memoria. Os procesos são ordenados, por padrão, pelo uso do processador.

Questão 6. Abra o Firefox e em seguida mostre o processo dele:


ps aux | grep Firefox

Questão 7. Termine o processo do Firefox:


kill -9 [número]
Dica: O número do processo obtido pelo comando ps

Questão 8. Abra novamente o Firefox e em seguida termine o processo utilizando


o nome:
killall -9 firefox

Questão 9. Verifique qual é o PID do processo que está utilizando mais memória
com o comando top, e em seguida verifique utilizando o comando abaixo qual é o
processo:
ps aux | grep [pid]

Questões Estilo Concurso:

Questão 10. CESGRANRIO - 2012 - Casa da Moeda - Assistente Técnico


Administrativo
Para encerrar um processo em execução utilizando-se o comando kill, é
necessário informar o pid do processo que se quer encerrar, que é obtido por meio
do comando:
(A) cal (B) lpq (C) pwd (D) ps (E) Su

Questão 11. O processo sendo executado em plano de fundo (background) sem


controle direto de um usuário interativo, normalmente com nome terminado em d,
como por exemplo syslogd, é denominado processo:
(A) Deamon (B) Zumbi (C) Órfão (D) Init (E) Bloqueado

Questão 12 O processo que completou sua vida de execução, mas ainda existe na
tabela de processos é denominado processo:
(A) Deamon (B) Zumbi (C) Órfão (D) Init (E) Bloqueado
Questão 13. No Windows um processo Daemon é denominado de processo:
(A) Serviço (B) Zumbi (C) Órfão (D) Init (E) Bloqueado

Questão 14. O processo pai terminou ou morreu e o processo atual (filho) agora é
órfão. No entanto todo processo precisa de um pai, por isso o Linux vai
automaticamente fazer com que o processo init adote o processo órfão. Essa
operação é chamada de:
(A) Reparenting
(B) Escalonamento
(C) Troca de Contexto
(D) Chaveamento
(E) Starvation

Questão 15. 2018 - FGV - MPE-AL - Administrador de Rede


Sobre gerenciamento de serviços e processos no sistema operacional Linux,
analise as afirmativas a seguir.
I. Processo órfão é todo processo que já finalizou a execução, mas ainda possui uma
entrada na tabela de processos.
II. O PID usado por um processo fica indisponível para reutilização enquanto o
processo está presente na tabela de processos.
III. Daemons são processos zombies que rodam em background e não possuem um
PPID associado.
Está correto o que se afirma em:
(A) I, apenas. (B) II, apenas. (C) III, apenas. (D) II e III, apenas. (E) I, II e III.

Questão 16. 2016 - FCC - CREMESP - Analista de Suporte


O Superusuário de um servidor com sistema operacional Linux deseja listar os
processos em execução e os respectivos usos de CPU. Para isso, ele deve utilizar o
comando:
(A) jobs. (B) load. (C) strace. (D) top. (E) uptime.

Questão 17. 2018 - UFLA - Analista de Tecnologia da Informação


As alternativas representam uma operação que pode ser realizada com processos,
EXCETO:
(A) Criação, acesso direto à memória de outro processo, finalização.
(B) Criação, listagem e execução.
(C) Execução, troca de prioridade e acesso à memória local.
(D) Execução, finalização e interrupção.

Questão 18. 2017 - FGV - IBGE - Analista Censitário - Análise de Sistemas


Em ambiente Linux, o comando ps -axl permite visualizar informações sobre
todos os processos existentes no sistema, em especial, os estados dos processos.
Se o estado informado é Z, isto indica que o processo:
(A) é recém-criado e está pronto para executar;
(B) está no estado bloqueado, aguardando por um recurso;
(C) está morto, aguardando que o processo pai providencie sua extinção;
(D) está órfão, aguardando reparentização;
(E) sofreu preempção.

Questão 19. 2014 - Quadrix - SERPRO - Técnico - Suporte


Na gerência de processos da maioria dos sistemas UNIX, a system call denominada
fork:
(A) envia um sinal para um processo.
(B) define a ação a ser tomada ao receber um determinado sinal.
(C) termina o processo corrente
(D) cria um processo-filho idêntico ao processo-pai.
(E) aguarda até o término do processo-filho.
Questão 20. Por que a multiprogramação torna mais eficiente o aproveitamento
dos recursos do computador?

É quando mais de um programa é executado na memória. Ou seja, várias tarefas


podem ser feitas

Questão 21. Qual a diferença entre um processo e um programa?

Programa é um grupo de instruções para executar uma tarefa especificada,


enquanto o processo é um programa em execução

Exercícios da Aula 04

Aluno (s):
Professor: Jair Alarcón Disciplina: Sistemas Operacionais

Questão 1. 2018 - FCC - DPE-AM - Assistente Técnico de Defensoria - Assistente


Técnico de Suporte
Em um sistema operacional típico, os estados de um processo são:
(A) Ativo, Desocupado, Finalizado e Executando.
(B) Bloqueado, Desbloqueado, Ativo e Suspenso.
(C) Executando, Bloqueado e Pronto.
(D) Parado, Ocupado, em Execução e Finalizado.
(E) Pronto, Terminado, Ativo e Processando.

Questão 2. 2018 - CEPS-UFPA - UNIFESSPA - Técnico de Laboratório - Tecnologia da


Informação
Considerando o modelo de execução de processos em sistemas
operacionais, indique quais são os possíveis estados que um processo pode assumir
são:
(A) em execução, satisfeito e em espera.
(B) gerado, pronto e em processamento.
(C) gerado, satisfeito e bloqueado.
(D) em execução, pronto e bloqueado.
(E) em execução, em processamento e satisfeito.

Questão 3. 2017 - CESPE - TRE-TO - Técnico - Programação de Sistemas


Considerando o contexto de gerenciamento de processos dos sistemas
operacionais, assinale a opção que apresenta a estrutura de dados responsável por
habilitar o sistema operacional a localizar e acessar rapidamente o bloco de
controle de processo (PCB) de um processo:
(A) árvore de processos
(B) lista de bloqueados
(C) tabela de processo
(D) região de pilha
(E) lista de prontos

Questão 4. 2012 - COPEVE-UFAL - MPE-AL - Analista do Ministério Público -


Administração de Redes
Quanto a processos, é incorreto afirmar:
(A) processos que ficam em segundo plano com a finalidade de tratar alguma
atividade como mensagem eletrônica, páginas Web, notícias, impressão, entre
outros, são chamados de daemons.
(B) Process Control Block (PCB) é uma estrutura de dados utilizada para monitorar
e controlar as regiões críticas de um processo.
(C) um processo no estado bloqueado não pode executar, mesmo que a CPU não
tenha nada pra fazer.
(D) como os threads têm algumas das propriedades dos processos, eles são, por
vezes, chamados de lightweight process.
(E) uma das razões pela qual um processo pode terminar se dá quando um
processo executa uma chamada ao sistema dizendo ao sistema operacional para
cancelar algum outro processo.

Questão 5. 2016 - CESGRANRIO - IBGE - Supervisor de Pesquisas - TIC


Processos de sistemas operacionais podem se encontrar em um dentre três
estados. O estado que caracteriza que um processo está adormecido, aguardando a
ocorrência de um evento externo, caracterizando a entrega voluntária do uso do
processador ao sistema operacional é chamado de:
(A) bloqueado (B) despacho (C) em execução (D) preemptivo (E) pronto

Questão 6. 2014 - FUNDEP - IF-SP - Técnico de Tecnologia da Informação


Assinale a alternativa que apresenta CORRETAMENTE a situação onde um processo
aguarda para ser chamado a continuar o seu processamento, aguardando para ser
escalonado.
(A) Pronto. (B) Em execução. (C) Bloqueado. (D) Terminado.

Questão 7. 2016 - FUNRIO - IF-BA - Analista de TI – Infraestrutura


Um processo é um programa em execução. Enquanto um processo é executado, ele
muda de estado. O estado “Pronto” (“Ready”) é o estado em que o processo:
(A) está sendo criado.
(B) está sendo executado.
(C) está esperando algum evento.
(D) está esperando para ser atribuído a um processador.
(E) terminou a sua execução.

Questão 8. 2017 - FUNDEP - UFVJM-MG - Analista de TI


Assinale a alternativa que apresenta a transição de estado entre processos que não
é permitida.
(A) Pronto para execução
(B) Execução para bloqueado
(C) Execução para pronto
(D) Bloqueado para execução

Questão 9. Ciência da Computação - MPE - RS - 2015 - Técnico em Informática


Quando um processo está aguardando para ser selecionado pelo escalonador de
curto prazo para receber o processador e poder executar, ele se encontra no estado
(A) apto (ready).
(B) bloqueado (blocked).
(C) despacho (dispatcher).
(D) espera (waiting).
(E) suspenso (suspended).

Questão 10. CESGRANRIO - 2012 - Liquigás Distribuidora SA - Profissional Júnior


A gerência do processador estabelece critérios, com base em uma política de
escalonamento, para determinar qual processo deve ser escolhido para usar o
processador. Os processos escalonados deverão ser os que se encontram:
(A) nos estados de pronto, espera e bloqueado
(B) nos estados de pronto e espera
(C) nos estados de espera e bloqueado
(D) apenas no estado de pronto
(E) apenas no estado de espera

Questão 11. FCC - 2013 - DPE/SP - Agente de Defensoria Pública


Em sistemas com multiprogramação, inicialmente um novo processo é
inserido na fila de prontos. Este processo aguarda até ser selecionado para
execução ou ser despachado. Uma vez que o processo seja alocado à CPU, eventos
podem ocorrer. Analise as afirmativas sobre o processo.
I. pode emitir uma solicitação de I/O e então ser inserido em uma fila de I/O.
II. pode criar um novo subprocesso e esperá-lo terminar.
III. pode ser removido forçosamente da CPU, como resultado de uma interrupção, e
ser devolvido à fila de prontos.
Está correto o que se afirma em
(A) I, apenas.
(B) II, apenas.
(C) III, apenas.
(D) I e II, apenas.
(E) I, II e III.
Questão 12. Do que é constituído um processo? Descreva a função de cada item.

Contexto de hardware: Armazena o conteúdo dos registradores gerais da CPU,


além dos registradores de uso específico
Contexto de software: Especifica as características do processo que vão influir na
execução de um programa.
Espaço de endereçamento: É parte da memoria que fica o processo com a
instruções do programa que são armazenados para executar.

Questão 13. Em um sistema multiprogramável, um processo não deve alocar a


CPU com exclusividade, de formas que possa existir um compartilhamento no uso
do processador. Os processos passam por diferentes estados ao longo do seu
processamento, em função de eventos gerados pelo Sistema Operacional ou pelo
próprio processo. Sendo assim, descreva sobre os três estados diferentes de um
processo ativo: Rodando, Pronto, Bloqueado. Descreva todas as possíveis transições
entre os processos, explicando o responsável por cada transição e o que ocorre.

Rodando (Execução ou running): nesse estado, o processo está sendo processado


pela CPU.
Pronto (ready): um processo está no estado de pronto quando aguarda apenas
para ser executado.
Bloqueado (Espera ou waiting): nesse estado, um processo aguarda por algum
evento externo ou por algum recurso para prosseguir seu processamento.

1) Rodando – Bloqueado: essa transição ocorre por eventos gerados pelo próprio
processo, como uma operação de E/S.
2) Rodando – Pronto: um processo em execução passa para o estado de pronto
por eventos gerados pelo sistema, como o término da fatia de tempo que o
processo possui para sua execução. Nesse caso, o processo volta para a fila de
pronto, onde aguarda por uma nova oportunidade para continuar seu
processamento.
3) Pronto – Rodando: o Sistema Operacional seleciona um processo da fila de
prontos para executar.
4) Bloqueado – Pronto: um processo passa de bloqueado para pronto quando a
operação solicitada é atendida ou o recurso esperado é concedido.
O responsável pela transição dos estados é o escalonador.

Questão 14. Descreva o que cada linha no código Python abaixo faz:
1ª linha: importa a bibliota psutil
2º linha: print(‘informações de hardware)
3ª linha: print( motrando a quantidade de nuclueo do processador)
4ª linha: guarda a memoria numa variável
5ª linha: print que mostra a memoria
6º linha: que motra a porcentagem da memoria
7º linha: print(‘Informações de software’)
8ª linha: Um for é criado
17ª linha: Mostra todas as informações: pid,cpu, sta, ppid, ctx, reads, fds.

Exercícios da Aula 05
Aluno (s):
Professor: Jair Alarcón Disciplina: Sistemas Operacionais

Questão 1. CONSULPLAN - 2012 - Prefeitura de Porto Velho - RO - Analista de


Tecnologia da Informação
Qual a grande diferença entre subprocessos e threads?
(A) Quando o processo origem de um thread morre, os threads também morrem,
diferente dos subprocessos.
(B) Subprocessos não compartilham de áreas de endereçamento como os threads.
(C) Os threads gastam mais tempo e recursos de uma CPU que os subprocessos.
(D) Quando o processo origem de um subprocesso morre, os subprocessos também
morrem, diferente dos threads.
(E) Threads não compartilham de áreas de endereçamento como os subprocessos.

Questão 2. Fundação para o Vestibular da Universidade Estadual Paulista


(VUNESP) - 2012 - CREFITO 3ª Região/SP - Analista de Suporte
Com relação ao conceito de escalonadores, em teoria de sistemas
operacionais, é correto afirmar que seu principal objetivo é:
(A) minimizar o tempo de execução de processos, minimizar a utilização do
processador e minimizar o tempo de resposta a requisições.
(B) minimizar o tempo de execução de processos, minimizar a utilização do
processador e maximizar o tempo de resposta a requisições.
(C) minimizar o tempo de execução de processos, maximizar a utilização do
processador e minimizar o tempo de resposta a requisições.
(D) maximizar o tempo de execução de processos, minimizar a utilização do
processador e maximizar o tempo de resposta a requisições.
(E) maximizar o tempo de execução de processos, maximizar a utilização do
processador e maximizar o tempo de resposta a requisições.

Questão 3. 2018 - FAURGS - TJ-RS - Administrador de Banco de Dados


Para que seja possível executar um processo com várias threads
(multithreaded process), o gerenciador de threads deve prever áreas específicas de
memória para armazenar, separadamente por thread, as seguintes informações:
(A) pilha e área de código.
(B) registros do processador e pilha.
(C) pilha e área de dados.
(D) área de código e área de dados.
(E) descritores dos arquivos abertos e área de código.

Questão 4. VUNESP - 2012 - TJSP/SP - Analista de Sistemas Judiciário


Considere as seguintes afirmações sobre Threads.
I. É uma forma de um processo se dividir em tarefas que podem ser executadas
concorrentemente.
II. Os sistemas que suportam múltiplas threads são chamados de multithread.
III. Em hardwares com múltiplas CPUs (multi-core), as threads podem ser
processadas de forma simultânea.
Sobre as afirmações, está correto o contido em
(A) I, apenas.
(B) I e II, apenas.
(C) I e III, apenas.
(D) II e III, apenas.
(E) I, II e III.
Questão 5. FUNDEP / UFMG - 2017 - CRM/MG - Administrador de Redes
Sobre processos e threads, pode-se afirmar:
(A) Processos são executados mais rapidamente.
(B) Apenas threads podem ser executados em paralelo.
(C) Threads possuem contexto simplificado.
(D) O custo do escalonamento de threads é muito maior que o de processos.

Questão 6. Fundação Carlos Chagas (FCC) - 2012 - TRE SP - Técnico Judiciário


Nos conceitos de ciência da computação, um processo é um módulo executável que
pode conter threads. Um conceito importante sobre threads que estão contidas no
mesmo processo é que:
(A) podem compartilhar a memória do processo.
(B) evitam que processos concorrentes acessem recursos do processo principal.
(C) acessam a memória estática ao contrário de processos convencionais.
(D) controlam o acesso da memória dinâmica (heap) dos processos externos.
(E) possuem proteção contra problemas comuns de processos, como vazamento e
acessos inválidos da memória.

Questão 7. Fundação Getúlio Vargas (FGV) - 2013 - MPE/MS - Analista


Com relação a processos e threads em sistemas operacionais de computadores,
assinale a afirmativa correta:
(A) Threads geradas por outra thread compartilham o mesmo espaço de
endereçamento de dados e instruções que a thread pai. Processos gerados por
outros processos não compartilham o mesmo espaço de endereçamento que o
processo pai.
(B) Threads geradas por outra thread compartilham o mesmo espaço de
endereçamento de dados e instruções que a thread pai. Processos gerados por
outros processos compartilham o mesmo espaço de endereçamento que o processo
pai.
(C) Threads geradas por outra thread não compartilham o mesmo espaço de
endereçamento de dados e instruções que a thread pai. Processos gerados por
outros processos não compartilham o mesmo espaço de endereçamento que o
processo pai.
(D) Threads geradas por outra thread não compartilham o mesmo espaço de
endereçamento de dados e instruções que a thread pai. Processos gerados por
outros processos compartilham o mesmo espaço de endereçamento que o processo
pai.
(E) Threads não podem ser geradas por outras threads, apenas por processos. Um
processo não pode gerar outro processo.

Questão 8. COPEVE/ UFAL - 2012 - MPE/AL - Analista do Ministério Público


Quanto a processos, é incorreto afirmar:
(A) processos que ficam em segundo plano com a finalidade de tratar alguma
atividade como mensagem eletrônica, páginas Web, notícias, impressão, entre
outros, são chamados de daemons.
(B) Process Control Block (PCB) é uma estrutura de dados utilizada para monitorar
e controlar as regiões críticas de um processo.
(C) um processo no estado bloqueado não pode executar, mesmo que a CPU não
tenha nada pra fazer.
(D) como os threads têm algumas das propriedades dos processos, eles são, por
vezes, chamados de lightweight process.
(E) uma das razões pela qual um processo pode terminar se dá quando um
processo executa uma chamada ao sistema dizendo ao sistema operacional para
cancelar algum outro processo.

Questão 9. 2018 - CEPS-UFPA - UNIFESSPA - Técnico de Laboratório - TI


O conceito corretamente associado à multithread em sistemas operacionais
é:
(A) existência de múltiplas threads no mesmo processo, sendo executadas em
paralelo.
(B) existência de múltiplas threads em processos diferentes, executadas
sequencialmente.
(C) existência de múltiplos processos utilizando a mesma thread em paralelo.
(D) existência de múltiplos processos utilizando a mesma thread sequencialmente.
(E) existência de múltiplas threads no mesmo processo, executadas
sequencialmente.

Questão 10. 2018 - COMPERVE - UFRN - Engenheiro - Engenharia da Computação


Sistemas operacionais modernos têm uma gerência de processos e de threads bem
definida. Nesse contexto, é correto afirmar:
(A) threads de um mesmo processo compartilham a mesma seção de código na
memória.
(B) threads de um mesmo processo compartilham a mesma seção da pilha na
memória.
(C) todas as variáveis de uma thread são compartilhadas com as outras threads do
mesmo processo.
(D) todos os contextos de uma thread são compartilhados com as outras threads do
mesmo processo.

Questão 11. VUNESP - 2013 - MPE-ES - Agente Especializado - Analista de Sistemas


Alguns sistemas operacionais fornecem suporte a threads. Estas, quando
comparadas aos processos:
(A) consomem um menor tempo para a sua criação e escalonamento.
(B) não podem criar outra thread.
(C) não podem se replicar.
(D) não podem voluntariamente desistir do uso da UCP (Unidade Central de
Processamento).
(E) são mais difíceis de serem criadas.

Questão 12. NUCEPE - 2012 - PC-PI - Perito Criminal - Informática


Considere as afirmativas sobre os conceitos de processo e thread.
1) Diferente dos processos, os threads possuem: um contador de programa, uma
pilha de execução e registradores.
2) Além de compartilhar o mesmo espaço de endereçamento, os threads
compartilham o mesmo conjunto de arquivos abertos, processos filhos, discos,
impressoras e outros recursos.
3) Há dois modos principais de implementar um pacote de threads: Nível de Usuário
e Nível de Núcleo.
4) Uma vantagem da implementa a nível de usuário é que podemos utilizar o
recurso de threads, mesmo se o SO não suportar.
Estão corretas:
(A) 1, 2 e 3, apenas.
(B) 1, 2 e 4, apenas.
(C) 1, 3 e 4, apenas.
(D) 2, 3 e 4 apenas.
(E) 1, 2, 3 e 4.

Questão 13. O conceito de thread foi introduzido por qual motivo?

Reduzir o tempo gasto na criação, eliminação e troca de contexto de processos nas aplicações
concorrentes

Questão 14. Defina programa seqüencial e concorrente.

Sequencial: estrutura de desvio do fluxo de controle presente em linguagens de


programação que realiza um conjunto predeterminado de comandos de
forma sequencial
Concorrente:  é um paradigma de programação para a construção
de programas de computador que fazem uso da
execução concorrente (simultânea) de várias tarefas computacionais interativas

Questão 15. Qual o principal objetivo da multiprogramação. Explique.


Poder utilizar o máximo do processador.

Questão 16. Como podemos definir fila de dispositivo?


É um meio de organizar o uso do processador quando um termina manda um sinal
que terminou para outro ser utilizado.

Questão 17. Como podemos definir escalonador?

É um programa responsável pelo trabalho de escolher processos e de escalar processos para


execução.
Questão 18. Como podemos definir processo limitado por CPU e por E/S?

Um processo é definido como limitado por CPU quando passa a maior parte do tempo no
estado de execução, ou seja, utilizando o processador
Um processo é limitado por E/S quando passa a maior parte do tempo no estado bloqueado,
pois realiza um elevado número de operações de E/S.

Questão 19. Faça o programa abaixo e responda as perguntas:

a) Qual é a saída do programa?

Resultado(no processo p1): [1, 4, 9, 16]


Resultado (no processo principal): []

b) Por quê teve essa saída?

Foi passado quatro números de um lista e foram multiplicados por ele mesmo

c) Qual é a função das linhas 12, 13 e 14?

12: Recebe a função

13: inicia a função

14: Chama a função

Questão 20. Faça o programa abaixo e responda as perguntas:


a) Qual é a saída do programa?

Resultado(no processo p1): [1, 4, 9, 16]


Resultado (no processo principal): [1, 4, 9, 16]

b) Por quê a saída do programa foi diferente da questão anterior?

São bibliotecas diferentes, sendo que nessa ela mostra o resulta nas duas linhas

Questão 21. Faça o programa abaixo e responda as perguntas:

a) Qual é a saída do programa?

03:14:04: Main  : antes de criar a thread


03:14:04: Main  : antes de executar a thread
03:14:04: Thread 1: iniciando
03:14:04: Main  : esperar a thread terminar
03:14:06: Thread 1: terminando
03:14:06: Main  : tudo terminado
b) Faça uma versão deste programa com 3 threads.

import logging

import threading

import time

def thread_function(name):

logging.info("Thread %s: iniciando", name)

time.sleep(2)

logging.info("Thread %s: terminando", name)

format = "%(asctime)s: %(message)s"

logging.basicConfig(format=format, level=logging.INFO, datefmt="%H:%M:%S")

logging.info("Main : antes de criar a thread")

print("--------------------------------------")

t1 = threading.Thread(target=thread_function, args=(1,))

logging.info("Main : antes de executar a thread")

t1.start()

logging.info("Main : esperar a thread terminar")

t1.join()

logging.info("Main : tudo terminado")

print("--------------------------------------")

logging.info("Main : antes de criar a thread")

t2 = threading.Thread(target=thread_function, args=(1,))

logging.info("Main : antes de executar a thread")

t2.start()

logging.info("Main : esperar a thread terminar")

t2.join()

logging.info("Main : tudo terminado")

print("--------------------------------------")
logging.info("Main : antes de criar a thread")

t3 = threading.Thread(target=thread_function, args=(1,))

logging.info("Main : antes de executar a thread")

t3.start()

logging.info("Main : esperar a thread terminar")

t3.join()

logging.info("Main : tudo terminado")

Exercícios da Aula 06
Aluno (s):
Professor: Jair Alarcón Disciplina: Sistemas Operacionais

Questão 1. Responda com base no código abaixo:

a) Qual é a saída do programa?

Valor da conta final = 56


Valor da conta final = -52
Valor da conta final = 149
Valor da conta final = 234
Valor da conta final = -24
Valor da conta final = 267
Valor da conta final = 272
Valor da conta final = -571
Valor da conta final = -143
Valor da conta final = 108

b) O que o programa faz?

Ele coloca e tira dinheiro d conta utilizando cálculos


c) Onde ocorre o race condition?

conta.value = conta.value – 1
conta.value = conta.value + 1

d) Qual é o erro do programa?

Na hora que pega o valores

e) Por que ocorre esse erro?

Faltam linhas de código onde sera implementada no próximo exercicio

f) Em qual linha é criada a variável compartilhada entre os processos?

Questão 2. Responda com base no código abaixo:

Na linha 15

a) Qual é a saída do programa?

Valor da conta final = 100


Valor da conta final = 100
Valor da conta final = 100
Valor da conta final = 100
Valor da conta final = 100
Valor da conta final = 100
Valor da conta final = 100
Valor da conta final = 100
Valor da conta final = 100
Valor da conta final = 100

b) Qual é a diferença com o programa da questão anterior?


O outro estava perdendo o valor, pois estava sendo utilizado por duas variáveis ao
mesmo tempo

c) Para que serve a variável lock?


Para trancar o valor, e não se utilizado por outra variável ao mesmo tempo

d) O que é um semáforo? Qual a diferença entre um semárofo e um lock/mutex?

Implementação de exclusão mutua

e) Para que serve o método acquire e release?

É um metado que funciona como um semáforo

f) Qual a vantagem de utilizar semáforo ao invés de algoritmos de exclusão mútua?

É mais prático, o algoritmo já organiza pra voce

Questão 3. Responda com base no código abaixo:

a) Qual é a saída do programa?

Resultado (no processo p1): [1, 4, 9, 16]


Resultado (no processo principal): [1, 4, 9, 16]

b) Qual é a diferença com o programa da Questão 3?

Ele é programa que recebe valores multiplica por ele mesmo e mostra o resulta

c) Houve erro no programa? Justifique.

Não houve erros


import threading

resultado = []
def lista_quadrada(lista):
global resultado
for num in lista:
resultado.append(num * num)
print("Resultado (no processo p1): {}".format(resultado))

entrada = [1,2,3,4]
p1 = threading.Thread(target = lista_quadrada, args = (entrada,))
p1.start()
p1.join()
print("Resultado (no processo principal): {}".format(resultado))

Questão 4. Responda com base na figura abaixo.

O conceito que garante que dois processos não entrem em uma região crítica ao
mesmo tempo como pode ser visto na figura acima é denominado:
(A) Threads
(B) Processos
(C) Exclusão Mútua
(D) Condição de Corrida
(E) Escalonamento

Questão 5. O que são regiões críticas?


Local onde ocorre as condições de corridas

Questão 6. Defina condições de corrida. Como evitar a ocorrência delas?

É uma falha num sistema ou processo em que o resultado do processo é inesperadamente


dependente da sequência ou sincronia doutros eventos.

Questão 7. Uma variável global está compartilhada entre as threads? E uma


variável global está compartilhada entre processos? Justifique.