Você está na página 1de 3

Exerccios Processos e Threads

1 Na teoria, com trs estados para o processo (pronto, executando e bloqueado),


poderia haver seis transies, duas para cada estado. Contudo, apenas quatro transies
so normalmente comentadas. H alguma circunstncia na qual uma dela ou ambas as
transies no ilustradas podem ocorrer? Defina cada uma das quatro transies
ilustradas.
Resposta: Uma das transies que poderia haver, mas no comentada e no tem como
haver de um estado para outro a do estado pronto para bloqueado, ela no acontece
porque no tem como um processo em estado de pronto saber que precisa de uma
entrada/sada. Outra transio que no comentada a de bloqueado para executando,
isto porque no vivel o custo benefcio desta transio. A transio 1 acontece
quando o SO descobre que um processo no pode prosseguir, em alguns sistemas
operacionais necessrio que o processo execute uma chamada de sistema, como pause
para ficar no estado bloqueado, em outros sistemas, quando o processo faz uma leitura
de um pipe ou um arquivo especial e no tem entrada disponvel, automaticamente o
processo bloqueado. O escalonador de processos causa as transies 2 e 3 sem que o
processo saiba disso. A transio 2 acontece quando o escalonador decide que o
processo em execuo j teve tempo suficiente da CPU hora de outro processo ocupar
o tempo da CPU. A transio 3 acontece quando todos os processos j compartilharam a
CPU, de uma maneira igual, e esta na hora do primeiro processo utilizar a CPU. A
transio 4 acontece quando o processo aguarda um evento externo, como a chegada de
uma entrada.
2 Assinale a alternativa correta em relao multiprogramao:
I) Na multiprogramao, os processos executam ao mesmo tempo.
II) Para a implementao de multiprogramao, necessrio que o sistema seja
multiprocessado.
III) A multiprogramao no exige que os processos estejam carregados inteiramente na
memria.
IV) No existe a necessidade de haver 4 contadores de programa para a execuo de 4
processos na multiprogramao.
a) I e II b) I e III c) I e IV d) II e III e) III e IV
3 Assinale a alternativa correta em relao aos eventos que podem causar a criao
e/ou terminao de processos.
I) A inicializao do sistema operacional pode causar a terminao de um processo.
II) A execuo de uma chamada ao sistema pode causar a criao de um processo.
III) Uma requisio de usurio pode causar a criao de um processo.
IV) A execuo de um comando pode causar terminao de um processo.
V) Um erro de execuo pode causar a criao de um processo.
a) I, II e III b) I, II e IV c) II, III e IV d) II, III e V e) III, IV e V
4 Assinale a alternativa correta em relao aos itens que podem ser alocados por
thread em relao aos itens que so alocados por processo
I) Um processo com vrias threads no permite o compartilhamento de variveis globais
entre as threads.
II) Cada thread em um nico processo tem seu prprio conjunto de valores para os
registradores.
III) Cada thread em um nico processo tem seu prprio espao de endereamento.

IV) As threads compartilham os arquivos abertos pelo processo.


V) Todas as threads em um mesmo processo esto em um mesmo estado.
a) I, II e IV b) I e IV c) II e III d) II e IV e) III e V
5 Defina:
a) Thread:
Resposta: um fluxo de execuo, uma das maneiras utilizadas por um processo para
dividir a si mesmo em duas ou mais tarefas que podem ser executadas simultaneamente,
em geral, em arquiteturas multiprocessadas.
b) Tabela de processos:
Resposta: um arranjo de estruturas que o sistema operacional mantm para
implementar o modelo de processos, com uma entrada para cada processo. Essas
entradas so chamadas por alguns autores de blocos de controle de processo (process
control blocks). Essas entrada contem as informaes sobre o estado do processo, seu
contador de programa, o ponteiro da pilha, a alocao de memria, os estados de seus
arquivos abertos, sua informao sobre a contabilidade e escalonamento e tudo o mais
sobre o processo que deva ser salvo quando o processo passar do estado em execuo
para o estado pronto ou bloqueado, para que ele possa ser reiniciado depois, como se
nunca tivesse sido bloqueado.
c) Pseudoparalelismo:
Resposta: Termo empregado no contexto no qual uma CPU compartilhada por
diversas aplicaes. o chaveamento que a CPU faz de programa para programa,
executando cada um deles por dezenas ou centenas de milissegundos. Contraste com o
verdadeiro paralelismo de hardware dos sistemas multiprocessadores.
6- Enumere na ordem de 1 a 8 os passos que o nvel mais baixo do SO faz quando
ocorre uma interrupo.
(7) O procedimento em C retorna para o cdigo em linguagem de montagem.
(2) O hardware carrega o novo contador de programa a partir do vetor de interrupes.
(8) O procedimento em linguagem de montagem inicia o novo processo atual.
(1) O hardware empilha o contador de programa, etc.
(5) O servio de interrupo em C executa (em geral l e armazena temporariamente a
entrada).
(3) O procedimento em linguagem de montagem salva os registradores.
(6) O escalonador decide qual o processo o prximo a executar.
(4) O procedimento em linguagem de montagem configura uma nova pilha.
7- Diferencie threads e processos.
Resposta: A diferena fundamental entre um processo e uma thread que, as threads
compartilham seu espao de endereamento com outras threads, mas tem fluxo de
controle prprio, j os processos possui um espao de endereamento e fluxo de
controle nicos e portanto, no compartilham recursos com outros processos. Os
processos tem os programas completamente separados com suas prprias variveis,
pilha e alocao de memria, j as threads compartilhas o mesmo espao de memoria e
variveis globais nas rotinas. As threads so criadas e terminadas mais rpidas do que os

processos. A comunicao entre as threads so mais rpidas do que a comunicao dos


processos.
8- Explique o que thread de usurio e o que thread de ncleo, fazendo comparaes
entre eles.
Resposta: Thread de usurio a insero do pacote de threads totalmente dentro do
espao do usurio, o ncleo no informado sobre eles. Um pacote de threads de
usurio pode ser implementado em um sistema operacional que no suporte threads.
Executam no topo de um sistema denominado sistema de tempo de execuo (runtime),
que uma coleo de rotinas que gerenciam threads. Quando os threads so gerenciados
no espao do usurio, cada processo precisa de sua prpria tabela de threads para
manter o controle dos threads naquele processo. Esta tabela e gerenciada pelo runtime.
A tabela de threads de usurio semelhante a tabela de processos do ncleo, exceto por
manter o controle apenas das propriedades do thread, como o contador de programa, o
ponteiro de pilha, os registradores, o estado e assim por diante. A thread de ncleo faz o
gerenciamento comum de processos monothread, no necessrio um runtime na thread
de ncleo, no h tambm, nenhuma tabela de threads em cada processo, ao contrario
disso, o ncleo tem uma tabela de threads que acompanha todos os threads no sistema.
A tabela de threads no ncleo contem os registradores, o estado e outras informaes de
cada thread, as informaes so as mesmas dos threads de usurio, mas esto no ncleo,
e no no espao do usurio (runtime).