Você está na página 1de 51

Sistemas Operacionais: Conceitos e Mecanismos

Caderno de Exerccios
Prof. Carlos A. Maziero, Dr.
DAINF UTFPR
25 de junho de 2013

Sistemas Operacionais: Conceitos e Mecanismos


c Carlos Alberto Maziero, 2013

Sobre o autor: Carlos Alberto Maziero professor adjunto do Departamento Acadmico
de Informtica da Universidade Tecnolgica Federal do Paran (UTFPR) desde julho
de 2011. Anteriormente, foi professor titular do Programa de Ps-Graduao em
Informtica da Pontifcia Universidade Catlica do Paran (PUCPR), entre 1998 e 2011, e
professor adjunto do Departamento de Automao e Sistemas da Universidade Federal
de Santa Catarina (UFSC), de 1996 a 1998. Formado em Engenharia Eltrica (UFSC,
1988), tem Mestrado em Engenharia Eltrica (UFSC, 1990), Doutorado em Informtica
(Universit de Rennes I - Frana, 1994) e Ps-Doutorado em Segurana da Informao
(Universit degli Studi di Milano Italia, 2009). Tem atuao em pesquisa nas reas de
sistemas operacionais, segurana de sistemas e sistemas distribudos.

Este texto est licenciado sob a Licena AttributionNonCommercial-ShareAlike 3.0 Unported da Creative Commons
(CC). Em resumo, voc deve creditar a obra da forma especificada pelo autor ou licenciante (mas no de maneira
que sugira que estes concedem qualquer aval a voc ou ao seu uso da obra). Voc
no pode usar esta obra para fins comerciais. Se voc alterar, transformar ou criar
com base nesta obra, voc poder distribuir a obra resultante apenas sob a mesma
licena, ou sob uma licena similar presente. Para ver uma cpia desta licena, visite
http://creativecommons.org/licenses/by-nc-sa/3.0/.
Este texto foi produzido usando exclusivamente software livre: Sistema Operacional
GNU/Linux (distribuies Fedora e Ubuntu), compilador de texto LATEX 2 , gerenciador
de referncias BibTeX, editor grfico Inkscape, criadores de grficos GNUPlot e GraphViz
e processador PS/PDF GhostScript, entre outros.

Sumrio
1

Conceitos bsicos

Gerncia de atividades

Comunicao entre tarefas

12

Coordenao entre tarefas

16

Gerncia de memria

24

Gerncia de arquivos

31

Gerncia de entrada/sada

37

Segurana de sistemas

38

Captulo 1
Conceitos bsicos
1. Quais os dois principais objetivos dos sistemas operacionais?
2. Por que a abstrao de recursos importante para os desenvolvedores de aplicaes? Ela tem utilidade para os desenvolvedores do prprio sistema operacional?
3. A gerncia de atividades permite compartilhar o processador, executando mais de
uma aplicao ao mesmo tempo. Identifique as principais vantagens trazidas por
essa funcionalidade e os desafios a resolver para implement-la.
4. O que caracteriza um sistema operacional de tempo real? Quais as duas classificaes de sistemas operacionais de tempo real e suas diferenas?
5. O que diferencia o ncleo do restante do sistema operacional?
6. Seria possvel construir um sistema operacional seguro usando um processador
que no tenha nveis de privilgio? Por qu?
7. O processador Pentium possui dois bits para definir o nvel de privilgio, resultando
em 4 nveis distintos. A maioria dos sistemas operacionais para esse processador
usa somente os nveis extremos (0 e 3, ou 002 e 112). Haveria alguma utilidade
para os nveis intermedirios?
8. Quais as diferenas entre interrupes, excees e traps?
9. Quais as implicaes de mascarar interrupes? O que pode ocorrer se o processador ignorar interrupes por muito tempo? O que poderia ser feito para evitar o
mascaramento de interrupes?
10. O comando em linguagem C fopen uma chamada de sistema ou uma funo de
biblioteca? Por qu?
11. Monte uma tabela com os benefcios e deficincias mais significativos das principais
arquiteturas de sistemas operacionais.
12. Relacione as afirmaes aos respectivos tipos de sistemas operacionais: distribudo
(D), multi-usurio (M), desktop (K), servidor (S), embarcado (E) ou de tempo-real
(T):
3

c Carlos Maziero

1: Conceitos bsicos

] Deve ter um comportamento temporal previsvel, com prazos de resposta


claramente definidos.

] Sistema operacional usado por uma empresa para executar seu banco de
dados corporativo.

] So tipicamente usados em telefones celulares e sistemas eletrnicos dedicados.

] Neste tipo de sistema, a localizao fsica dos recursos do sistema computacional transparente para os usurios.

] Todos os recursos do sistema tm proprietrios e existem regras controlando


o acesso aos mesmos pelos usurios.

] A gerncia de energia muito importante neste tipo de sistema.

] Sistema que prioriza a gerncia da interface grfica e a interao com o


usurio.

] Construdo para gerenciar de forma eficiente grandes volumes de recursos.

] O MacOS X um exemplo tpico deste tipo de sistema.

] So sistemas operacionais compactos, construdos para executar aplicaes


especficas sobre plataformas com poucos recursos.

13. A operao em modo usurio permite ao processador executar somente parte


das instrues disponveis em seu conjunto de instrues. Quais das seguintes
operaes no deveriam ser permitidas em nvel usurio? Por qu?
(a) Ler uma porta de entrada/sada
(b) Efetuar uma diviso inteira
(c) Escrever um valor em uma posio de memria
(d) Ajustar o valor do relgio do hardware
(e) Ler o valor dos registradores do processador
(f) Mascarar uma ou mais interrupes
14. Considerando um processo em um sistema operacional com proteo de memria
entre o ncleo e as aplicaes, indique quais das seguintes aes do processo teriam
de ser realizadas atravs de chamadas de sistema, justificando suas respostas:
(a) Ler o relgio de tempo real do hardware.
(b) Enviar um pacote atravs da rede.
(c) Calcular uma exponenciao.
(d) Preencher uma rea de memria do processo com zeros.
(e) Remover um arquivo do disco.

c Carlos Maziero

1: Conceitos bsicos

15. Coloque na ordem correta as aes abaixo, que ocorrem durante a execuo da
funo printf("Hello world") por um processo (observe que nem todas as aes
indicadas fazem parte da seqncia).
[

] A rotina de tratamento da interrupo de software ativada dentro do ncleo.

] A funo printf finaliza sua execuo e devolve o controle ao cdigo do


processo.

] A funo de biblioteca printf recebe e processa os parmetros de entrada (a


string Hello world).

] A funo de biblioteca printf prepara os registradores para solicitar a


chamada de sistema write()

] O disco rgido gera uma interrupo indicando a concluso da operao.

] O escalonador escolhe o processo mais prioritrio para execuo.

] Uma interrupo de software acionada.

] O processo chama a funo printf da biblioteca C.

] A operao de escrita no terminal efetuada ou agendada pela rotina de


tratamento da interrupo.

] O controle volta para a funo printf em modo usurio.

16. Considere as afirmaes a seguir, relativas aos diversos tipos de sistemas operacionais:
I. Em um sistema operacional de tempo real, a rapidez de resposta menos
importante que a previsibilidade do tempo de resposta.
II. Um sistema operacional multi-usurios associa um proprietrio a cada
recurso do sistema e gerencia as permisses de acesso a esses recursos.
III. Nos sistemas operacionais de rede a localizao dos recursos transparente
para os usurios.
IV. Um sistema operacional de tempo real deve priorizar as tarefas que interagem
com o usurio.
V. Um sistema operacional embarcado projetado para operar em hardware
com poucos recursos.
Indique a alternativa correta:
(a) As afirmaes II e III esto corretas.
(b) Apenas a afirmao V est correta.
(c) As afirmaes III e IV esto erradas.
(d) As afirmaes III, IV e V esto erradas.
(e) Todas as afirmaes esto erradas.
5

c Carlos Maziero

1: Conceitos bsicos

Justifique as afirmaes julgadas erradas (Assim: VII est errada porque ...):
17. Considere as afirmaes a seguir, relativas s diversas arquiteturas de sistemas
operacionais:
I. Uma mquina virtual de sistema contruda para suportar uma aplicao
escrita em uma linguagem de programao especfica, como Java.
II. Um hipervisor convidado executa sobre um sistema operacional hospedeiro.
III. Em um sistema operacional micro-ncleo, os diversos componentes do
sistema so construdos como mdulos interconectados executando dentro
do ncleo.
IV. Ncleos monolticos so muito utilizados devido sua robustez e facilidade
de manuteno.
V. Em um sistema operacional micro-ncleo, as chamadas de sistema so
implementadas atravs de trocas de mensagens.
Indique a alternativa correta:
(a) Todas as afirmaes esto erradas.
(b) As afirmaes II e III esto corretas.
(c) As afirmaes II e IV esto erradas.
(d) Apenas a afirmao V est correta.
(e) As afirmaes II e V esto corretas.
Justifique as afirmaes julgadas erradas (Assim: VII est errada porque ...):
18. O utilitrio strace do UNIX permite observar a sequncia de chamadas de sistema
efetuadas por uma aplicao. Em um terminal UNIX, execute strace date para
descobrir quais os arquivos abertos pela execuo do utilitrio date (que indica a
data e hora correntes). Por que o utilitrio date precisa fazer chamadas de sistema?
19. O utilitrio ltrace do UNIX permite observar a sequncia de chamadas de biblioteca efetuadas por uma aplicao. Em um terminal UNIX, execute ltrace date
para descobrir as funes de biblioteca chamadas pela execuo do utilitrio date
(que indica a data e hora correntes). Pode ser observada alguma relao entre as
chamadas de biblioteca e as chamadas de sistema observadas no tem anterior?

Captulo 2
Gerncia de atividades
1. Explique o que , para que serve e o que contm um PCB - Process Control Block.
2. O que significa time sharing e qual a sua importncia em um sistema operacional?
3. Como e com base em que critrios escolhida a durao de um quantum de
processamento?
4. Considerando o diagrama de estados dos processos apresentado na figura a seguir,
complete o diagrama com a transio de estado que est faltando (t6 ) e apresente
o significado de cada um dos estados e transies.
e1
t5

e3

t1

t4

e2

t2

e4

t3

e5

5. Indique se cada uma das transies de estado de tarefas a seguir definidas


possvel ou no. Se a transio for possvel, d um exemplo de situao na qual
ela ocorre (N: Nova, P: pronta, E: executando, S: suspensa, T: terminada).
EP
ES
SE
PN
ST
ET
NS
PS
7

c Carlos Maziero

2: Gerncia de atividades

6. Relacione as afirmaes abaixo aos respectivos estados no ciclo de vida das tarefas
(N: Nova, P: Pronta, E: Executando, S: Suspensa, T: Terminada):
[

] O cdigo da tarefa est sendo carregado.

] A tarefas so ordenadas por prioridades.

] A tarefa sai deste estado ao solicitar uma operao de entrada/sada.

] Os recursos usados pela tarefa so devolvidos ao sistema.

] A tarefa vai a este estado ao terminar seu quantum.

] A tarefa s precisa do processador para poder executar.

] O acesso a um semforo em uso pode levar a tarefa a este estado.

] A tarefa pode criar novas tarefas.

] H uma tarefa neste estado para cada processador do sistema.

] A tarefa aguarda a ocorrncia de um evento externo.

7. Desenhe o diagrama de tempo da execuo do cdigo a seguir, informe qual a


sada do programa na tela (com os valores de x) e calcule a durao aproximada
de sua execuo.
1
2
3

int main()
{
int x = 0 ;

fork () ;
x++ ;
sleep (5) ;
wait (0) ;
fork () ;
wait (0) ;
sleep (5) ;
x++ ;
printf ("Valor de x: %d\n", x) ;

5
6
7
8
9
10
11
12
13
14

8. Indique quantas letras X sero impressas na tela pelo programa abaixo quando
for executado com a seguinte linha de comando:
a.out 4 3 2 1
Observaes:
a.out o arquivo executvel resultante da compilao do programa.
A chamada de sistema fork cria um processo filho, clone do processo que a
executou, retornando o valor zero no processo filho e um valor diferente de
zero no processo pai.

c Carlos Maziero

#include
#include
#include
#include

1
2
3
4

2: Gerncia de atividades

<stdio.h>
<sys/types.h>
<unistd.h>
<stdlib.h>

int main(int argc, char *argv[])


{
pid_t pid[10];
int i;

6
7
8
9
10

int N = atoi(argv[argc-2]);

11
12

for (i=0; i<N; i++)


pid[i] = fork();
if (pid[0] != 0 && pid[N-1] != 0)
pid[N] = fork();
printf("X");
return 0;

13
14
15
16
17
18

19

9. O que so threads e para que servem?


10. Quais as principais vantagens e desvantagens de threads em relao a processos?
11. Fornea dois exemplos de problemas cuja implementao multi-thread no tem
desempenho melhor que a respectiva implementao sequencial.
12. Associe as afirmaes a seguir aos seguintes modelos de threads: a) many-to-one
(N:1); b) one-to-one (1:1); c) many-to-many (N:M):
[

] Tem a implementao mais simples, leve e eficiente.

] Multiplexa os threads de usurio em um pool de threads de ncleo.

] Pode impor uma carga muito pesada ao ncleo.

] No permite explorar a presena de vrias CPUs pelo mesmo processo.

] Permite uma maior concorrncia sem impor muita carga ao ncleo.

] Geralmente implementado por bibliotecas.

] o modelo implementado no Windows NT e seus sucessores.

] Se um thread bloquear, todos os demais tm de esperar por ele.

] Cada thread no nvel do usurio tem sua correspondente dentro do ncleo.

] o modelo com implementao mais complexa.

13. Considerando as implementaes de threads N:1 e 1:1 para o trecho de cdigo a


seguir, a) desenhe os diagramas de execuo, b) informe as duraes aproximadas
de execuo e c) indique a sada do programa na tela. Considere a operao
sleep() como uma chamada de sistema (syscall).
Significado das operaes:
9

c Carlos Maziero

2: Gerncia de atividades

thread_create: cria uma nova thread, pronta para executar.


thread_join: espera o encerramento da thread informada como parmetro.
thread_exit: encerra a thread corrente.
1

int y = 0 ;

2
3
4
5
6
7
8
9

void threadBody
{
int x = 0 ;
sleep (10) ;
printf ("x: %d, y:%d\n", ++x, ++y) ;
thread_exit();
}

10
11
12
13
14
15
16
17
18
19
20
21

main ()
{
thread_create (&tA, threadBody, ...) ;
thread_create (&tB, threadBody, ...) ;
sleep (1) ;
thread_join (&tA) ;
thread_join (&tB) ;
sleep (1) ;
thread_create (&tC, threadBody, ...) ;
thread_join (&tC) ;
}

14. Explique o que escalonamento round-robin, dando um exemplo.


15. Considere um sistema de tempo compartilhado com valor de quantum tq e durao
da troca de contexto ttc . Considere tarefas de entrada/sada que usam em mdia
p% de seu quantum de tempo cada vez que recebem o processador. Defina a
eficincia E do sistema como uma funo dos parmetros tq , ttc e p.
16. Explique o que , para que serve e como funciona a tcnica de aging.
17. A tabela a seguir representa um conjunto de tarefas prontas para utilizar um
processador:
Tarefa
ingresso
durao
prioridade

t1
0
5
2

t2
0
4
3

t3
3
5
5

t4
5
6
9

t5
7
4
6

Indique a seqncia de execuo das tarefas, o tempo mdio de vida (tournaround


time) e o tempo mdio de espera (waiting time), para as polticas de escalonamento
a seguir:
(a) FCFS cooperativa
10

c Carlos Maziero

(b)
(c)
(d)
(e)
(f)

2: Gerncia de atividades

SJF cooperativa
SJF preemptiva (SRTF)
PRIO cooperativa
PRIO preemptiva
RR com tq = 2, sem envelhecimento

Consideraes: todas as tarefas so orientadas a processamento; as trocas de


contexto tm durao nula; em eventuais empates (idade, prioridade, durao,
etc), a tarefa ti com menor i prevalece; valores maiores de prioridade indicam
maior prioridade.
Para representar a sequncia de execuo das tarefas use o diagrama a seguir. Use
para indicar uma tarefa usando o processador, para uma tarefa em espera
na fila de prontos e para uma tarefa que ainda no iniciou ou j concluiu sua
execuo.
t5
t4
t3
t2
t1
t
0

15

10

20

18. Idem, para as tarefas da tabela a seguir:


Tarefa
ingresso
durao
prioridade

t1
0
5
2

t2
0
6
3

t3
1
2
4

t4
7
6
7

t5
11
4
9

19. Explique os conceitos de inverso e herana de prioridade.


20. Voc deve analisar o software da sonda Mars Pathfinder discutido no livro-texto. O
sistema usa escalonamento por prioridades preemptivo, sem envelhecimento e
sem compartilhamento de tempo. Suponha que as tarefas t g e tm detm a rea de
transferncia de dados durante todo o perodo em que executam. Os dados de um
trecho de execuo das tarefas so indicados na tabela a seguir (observe que t g
executa mais de uma vez).
Tarefa
tg
ingresso
0, 5, 10
durao
1
prioridade
alta

tm
tc
2
3
2
10
baixa mdia

Desenhe o diagrama de tempo da execuo sem e com o protocolo de herana de


prioridades e discuta sobre as diferenas observadas entre as duas execues.
11

Captulo 3
Comunicao entre tarefas
1. Quais so as vantagens e desvantagens das abordagens a seguir, sob as ticas do
sistema operacional e do programador de aplicativos?
(a) comunicao bloqueante ou no-bloqueante
(b) canais com buffering ou sem buffering
(c) comunicao por mensagens ou por fluxo
(d) mensagens de tamanho fixo ou varivel
(e) comunicao 1:1 ou M:N
2. Explique como processos que comunicam por troca de mensagens se comportam
em relao capacidade do canal de comunicao, considerando as semnticas de
chamada sncrona e assncrona.
3. Em relao sincronizao na comunicao entre processos, podemos afirmar que:
I. Na comunicao semi-bloqueante, o emissor espera indefinidamente pela
possibilidade de enviar os dados.
II. Na comunicao sncrona ou bloqueante, o receptor espera at receber a
mensagem.
III. Um mecanismo de comunicao semi-bloqueante com prazo t = equivale
a um mecanismo bloqueante.
IV. Na comunicao sncrona ou bloqueante, o emissor retorna uma mensagem
de erro caso o receptor no esteja pronto para receber a mensagem.
V. A comunicao com semntica bloqueante usando canais sem buffer chamada
Rendez-Vous.
As asseres corretas so:
(a) I, III
(b) II, III, V
12

c Carlos Maziero

3: Comunicao entre tarefas

(c) I, II, IV
(d) II, III
(e) III, IV, V
Justifique as afirmaes julgadas erradas (Assim: VII est errada porque ...):
4. Em relao sincronizao na comunicao entre processos, podemos afirmar que:
I. Na comunicao semi-bloqueante, o emissor espera pelo envio dos dados,
mas o receptor no.
II. Se o canal de comunicao tiver capacidade nula, emissor e receptor devem
usar mecanismos no-bloqueantes.
III. A comunicao no-bloqueante em ambos os participantes s vivel usando
canais de comunicao com buffer no-nulo.
IV. Os pipes do UNIX so um bom exemplo de comunicao bloqueante.
V. Um mecanismo de comunicao semi-bloqueante com prazo t = 0 equivale a
um mecanismo bloqueante.
As asseres corretas so:
(a) I, II, IV
(b) II, III
(c) III, IV, V
(d) I, IV
(e) III, IV
Justifique as afirmaes julgadas erradas (Assim: VII est errada porque ...):
5. Dadas as seguintes caractersticas dos mecanismos de comunicao:
I. A comunicao indireta (por canais) mais adequada para sistemas distribudos.
II. Canais com capacidade finita somente so usados na definio de algoritmos,
no sendo implementveis na prtica.
III. Na comunicao direta, o emissor envia os dados diretamente a um canal de
comunicao.
IV. Na comunicao por fluxo, a ordem dos dados enviados pelo emissor
mantida do lado receptor.
V. Na comunicao por troca de mensagens, o ncleo transfere pacotes de dados
do processo emissor para o processo receptor.
As asseres erradas so:
13

c Carlos Maziero

3: Comunicao entre tarefas

(a) II, III


(b) I, III
(c) II, IV
(d) III, V
(e) I, IV
Justifique as afirmaes julgadas erradas (Assim: VII est errada porque ...):
6. Dadas as seguintes caractersticas dos mecanismos de comunicao:
I. Na comunicao por troca de mensagens, o processo emissor copia o contedo
da mensagem no buffer do processo receptor.
II. O buffer do canal de comunicao entre dois processos distintos geralmente
mantido pelo ncleo do sistema operacional.
III. Se a capacidade do buffer do canal de comunicao for considerada infinita,
somente o receptor pode se bloquear.
IV. As filas de mensagens POSIX so um exemplo de canal de comunicao com
capacidade nula.
V. O protocolo de rede TCP um exemplo de comunicao por fluxo de dados.
As asseres erradas so:
(a) I, III
(b) II, III
(c) I, IV
(d) II, IV
(e) II, V
Justifique as afirmaes julgadas erradas (Assim: VII est errada porque ...):
7. Dadas as seguintes caractersticas dos mecanismos de comunicao:
I. A memria compartilhada prov mecanismos de sincronizao para facilitar
a comunicao entre os processos.
II. A troca de dados atravs de memria compartilhada mais adequada para a
comunicao em rede.
III. Processos que se comunicam por memria compartilhada podem acessar a
mesma rea da RAM.
IV. Os pipes Unix so um bom exemplo de comunicao M:N.
V. A comunicao atravs de memria compartilhada particularmente indicada
para compartilhar grandes volumes de dados entre dois ou mais processos.
14

c Carlos Maziero

3: Comunicao entre tarefas

As asseres corretas so:


(a) I, III, V
(b) I, II
(c) III, IV
(d) II, IV
(e) III, V
Justifique as afirmaes julgadas erradas (Assim: VII est errada porque ...):
8. Dadas as seguintes caractersticas dos mecanismos de comunicao:
I. Em um mecanismo de mailbox, cada mensagem enviada replicada a todos
os receptores.
II. Em um canal de eventos, as mensagens enviadas so distribudas alternadamente entre os receptores.
III. As filas de mensagens POSIX so um bom exemplo de canal de eventos.
IV. Nas filas de mensagens POSIX, as mensagens transitam atravs de arquivos
em disco criados especialmente para essa finalidade.
V. Em UNIX, um pipe um canal de comunicao unidirecional que liga a sada
padro de um processo entrada padro de outro.
As asseres corretas so:
(a) I, III
(b) II
(c) III, IV
(d) V
(e) nenhuma delas
Justifique as afirmaes julgadas erradas (Assim: VII est errada porque ...):

15

Captulo 4
Coordenao entre tarefas
1. Explique o que so condies de disputa, mostrando um exemplo real.
2. Em relao aos mecanismos de coordenao:
I. A estratgia de inibir interrupes para evitar condies de disputa funciona
em sistemas multi-processados.
II. Os mecanismos de controle de entrada nas regies crticas provem excluso
mtua no acesso s mesmas.
III. Os algoritmos de busy-wait se baseiam no teste contnuo de uma condio.
IV. Condies de disputa ocorrem devido s diferenas de velocidade na execuo
dos processos.
V. Condies de disputa ocorrem quando dois processos tentam executar o
mesmo cdigo ao mesmo tempo.
As asseres corretas so:
(a) I, III
(b) II, V
(c) II, III
(d) I, IV
(e) IV, V
Justifique as afirmaes julgadas erradas (Assim: VII est errada porque ...):
3. Explique o que espera ocupada e por que os mecanismos que empregam essa
tcnica so considerados ineficientes.
4. Em que circunstncias o uso de espera ocupada inevitvel?
5. Em relao aos mecanismos de coordenao:
I. Instrues do tipo Test&Set Lock devem ser implementadas pelo ncleo do
SO.
16

c Carlos Maziero

4: Coordenao entre tarefas

II. O algoritmo de Peterson garante justia no acesso regio crtica.


III. Os algoritmos com estratgia busy-wait otimizam o uso da CPU do sistema.
IV. Uma forma eficiente de resolver os problemas de condio de disputa
introduzir pequenos atrasos nos processos envolvidos.
V. Um semforo composto por um contador inteiro e uma fila de processos
suspensos.
As asseres corretas so:
(a) I, III
(b) I, V
(c) II, V
(d) I, IV
(e) III, IV
Justifique as afirmaes julgadas erradas (Assim: VII est errada porque ...):
6. Considere ocupado uma varivel inteira compartilhada entre dois processos A
e B (inicialmente, ocupado = 0). Sendo que ambos os processos executam o
trecho de programa abaixo, explique em que situao A e B poderiam entrar
simultaneamente nas suas respectivas regies crticas.
1
2
3
4
5
6
7

while (true) {
regiao_nao_critica();
while (ocupado) {};
ocupado = 1;
regiao_critica();
ocupado = 0;
}

7. Em que situaes um semforo deve ser inicializado em 0, 1 ou n > 1?


8. Por que no existem operaes read(s) e write(s) para ler ou ajustar o valor corrente
de um semforo?
9. Mostre como pode ocorrer violao da condio de excluso mtua se as operaes
down(s) e up(s) sobre semforos no forem implementadas de forma atmica.
10. A implementao das operaes down(s) e up(s) sobre semforos deve ser atmica,
para evitar condies de disputa sobre as variveis internas do semforo. Escreva,
em pseudo-cdigo, a implementao dessas duas operaes, usando instrues
TSL para evitar as condies de disputa. A estrutura interna do semforo
indicada a seguir. No necessrio detalhar as operaes de ponteiros envolvendo
a fila task_queue.

17

c Carlos Maziero

1
2
3
4
5
6

4: Coordenao entre tarefas

struct semaphore
{
int lock = false ;
int count ;
task_t *queue ;
}

11. Usando semforos, escreva o pseudo-cdigo de um sistema produtor/consumidor


com dois buffers limitados organizado na forma X B1 Y B2 Z, onde X,
Y e Z so tipos de processos e B1 e B2 so buffers independentes com capacidades N1
e N2 , respectivamente, inicialmente vazios. Os buffers so acessados unicamente
atravs das operaes insere(Bi , item) e retira(Bi , item) (que no precisam ser
detalhadas). O nmero de processos X, Y e Z desconhecido.
Devem ser definidos os cdigos dos processos X, Y e Z e os semforos necessrios,
com seus significados e valores iniciais.
12. O trecho de cdigo a seguir apresenta uma soluo para o problema do jantar
dos filsofos, mas ele contm um erro. Explique o cdigo e explique onde est
o erro e porque ele ocorre. A seguir, modifique o cdigo para que ele funcione
corretamente.
1

#define N 5

2
3

sem_t garfo[5] ; // 5 semforos iniciados em 1

4
5
6
7
8
9
10
11
12
13
14
15
16

void filosofo (int i)


{
while (1)
{
medita ();
sem_down (garfo [i]) ;
sem_down (garfo [(i+1) % N]) ;
come ();
sem_up (garfo [i]) ;
sem_up (garfo [(i+1) % N]) ;
}
}

13. Suponha trs robs (Bart, Lisa, Maggie), cada um controlado por sua prpria
thread. Voc deve escrever o cdigo das threads de controle, usando semforos para
garantir que os robs se movam sempre na sequncia Bart Lisa Maggie
Lisa Bart Lisa Maggie , um rob de cada vez. Use a chamada move()
para indicar um movimento do rob. No esquea de definir os valores iniciais
das variveis e/ou dos semforos utilizados. Solues envolvendo espera ocupada
(busy wait) no devem ser usadas.
14. O Rendez-Vous um operador de sincronizao forte entre dois processos ou
threads, no qual um deles espera at que ambos cheguem ao ponto de encontro
(rendez-vous, em francs). O exemplo a seguir ilustra seu uso:
18

c Carlos Maziero

4: Coordenao entre tarefas

Processo A
A1 () ;
rv_wait (rv) ;
A2 () ;
rv_wait (rv) ;
A3 () ;

Processo B
B1 () ;
rv_wait (rv) ;
B2 () ;
rv_wait (rv) ;
B3 () ;

Considerando a relao a b como a ocorre antes de b e a relao a k b


como a e b ocorrem sem uma ordem definida, temos as seguintes restries de
sincronizao:
(i, j), Ai B j>i e Bi A j>i (imposto pelo Rendez-Vous)
(i, j), Ai A j>i e Bi B j>i (imposto pela execuo sequencial)
(i, j), Ai k B j=i (possibilidade de execuo concorrente)
Escreva o pseudo-cdigo necessrio para implementar Rendez-Vous, usando semforos ou mutexes. No esquea de inicializar as variveis e semforos utilizados.
Solues que incorram em espera ocupada (busy wait) no sero aceitas.
1
2
3
4
5

// estrutura que representa um RV


typedef struct rv_t
{
... // completar
} rv_t ;

6
7
8
9
10
11

// operador de espera no RV
void rv_wait (rv_t *rv)
{
... // completar
}

12
13
14
15
16
17

// inicializao do RV
void rv_init (rv_t *rv)
{
... // completar
}

15. Uma Barreira um operador de sincronizao forte entre N processos ou threads,


no qual eles esperam at que todos cheguem barreira. O exemplo a seguir ilustra
seu uso:

19

c Carlos Maziero

4: Coordenao entre tarefas

Processo A
A1 () ;
barrier_wait (b) ;
A2 () ;
barrier_wait (b) ;
A3 () ;

Processo C
C1 () ;
barrier_wait (b) ;
C2 () ;
barrier_wait (b) ;
C3 () ;

Processo B
B1 () ;
barrier_wait (b) ;
B2 () ;
barrier_wait (b) ;
B3 () ;

Processo D
D1 () ;
barrier_wait (b) ;
D2 () ;
barrier_wait (b) ;
D3 () ;

Considerando a relao a b como a ocorre antes de b e a relao a k b


como a e b ocorrem sem uma ordem definida, temos as seguintes restries de
sincronizao:
(i, j), X , Y, Xi Y j>i (imposto pela barreira)
(i, j), Xi X j>i (imposto pela execuo sequencial)
(i, j), X , Y, Xi k Y j=i (possibilidade de execuo concorrente)
Escreva o pseudo-cdigo necessrio para implementar barreiras para N processos,
usando semforos ou mutexes. No esquea de inicializar as variveis e semforos
utilizados. Solues que incorram em espera ocupada (busy wait) no sero aceitas.
1
2
3
4
5

// estrutura que representa uma barreira


typedef struct barrier_t
{
... // completar
} barrier_t ;

6
7
8
9
10
11

// operador de espera no RV
void barrier_wait (barrier_t *barrier)
{
... // completar
}

12
13
14
15
16
17

// inicializao de barreira para N processos


void barrier_init (barrier_t *barrier, int N)
{
... // completar
}

16. Implemente uma soluo em C para o problema do produtor/consumidor, usando


threads e semforos no padro POSIX.
17. Implemente uma soluo em C para o problema do produtor/consumidor, usando
threads e variveis de condio no padro POSIX.
20

c Carlos Maziero

4: Coordenao entre tarefas

18. Implemente uma soluo em C para o problema dos leitores/escritores com


priorizao para escritores, usando threads e semforos POSIX.
19. Implemente uma soluo em C para o problema dos leitores/escritores com
priorizao para escritores, usando threads e rwlocks POSIX.
20. Explique cada uma das quatro condies necessrias para a ocorrncia de impasses.
21. Na preveno de impasses:
(a) Como pode ser feita a quebra da condio de posse e espera?
(b) Como pode ser feita a quebra da condio de excluso mtua?
(c) Como pode ser feita a quebra da condio de espera circular?
(d) Como pode ser feita a quebra da condio de no-preempo?
22. Como pode ser detectada a ocorrncia de impasses, considerando disponvel
apenas um recurso de cada tipo?
23. Uma vez detectado um impasse, quais as abordagens possveis para resolv-lo?
Explique-as e comente sua viabilidade.
24. Em relao aos impasses:
I. As condies necessrias para a ocorrncia de impasses so: excluso mtua,
posse e espera, no-preempo e espera circular.
II. A condio de no-preempo indica que os processos envolvidos no impasse
devem ser escalonados de forma no-preemptiva.
III. A condio de no-preempo pode ser detectada graficamente, no grafo de
alocao de recursos.
IV. A deteco e recuperao de impasses bastante usada, pois as tcnicas de
recuperao so facilmente aplicveis.
V. A condio de excluso mtua pode ser quebrada atravs do uso de processos
gerenciadores de recursos ou de reas de spool.
As asseres corretas so:
(a) II
(b) I, V
(c) I, III
(d) III, IV
(e) II, V
Justifique as afirmaes julgadas erradas (Assim: VII est errada porque ...):
25. Em relao aos impasses:
21

c Carlos Maziero

4: Coordenao entre tarefas

I. A quebra da condio de no-preempo s pode ser aplicada a recursos


simples como arquivos e semforos.
II. A quebra da condio de posse e espera consiste em forar todos os processos
a solicitar seus recursos em uma ordem global nica e pr-fixada.
III. As condies necessrias para a ocorrncia de impasses so tambm suficientes se houver somente um recurso de cada tipo no conjunto de processos
considerado.
IV. A resoluo de impasses atravs de rollback s pode ser implementada em
processos que executem I/O ou interao com o usurio.
V. Uma vez detectado um impasse, ele pode ser facilmente resolvido atravs da
preempo dos recursos envolvidos.
As asseres corretas so:
(a) III, V
(b) I
(c) I, V
(d) III
(e) II, IV
Justifique as afirmaes julgadas erradas (Assim: VII est errada porque ...):
26. Em relao aos impasses:
I. Impasses ocorrem porque vrios processos tentam usar o processador ao
mesmo tempo.
II. O algoritmo de deteco de impasses deve ser executado com a maior
freqncia possvel, a fim de evitar que um impasse j formado se alastre.
III. O principal problema com a quebra da condio de posse e espera que a
taxa de uso dos recursos pode se tornar bastante baixa.
IV. Os sistemas operacionais atuais provem vrios recursos de baixo nvel para
o tratamento de impasses.
V. Podemos encontrar impasses em sistemas de processos que interagem unicamente por mensagens.
As asseres corretas so:
(a) I, II
(b) II
(c) III, V
(d) V
22

c Carlos Maziero

4: Coordenao entre tarefas

(e) III, IV
Justifique as afirmaes julgadas erradas (Assim: VII est errada porque ...):
27. Nos grafos de alocao de recursos da figura a seguir, indique o(s) ciclo(s) onde
existe um impasse:
r1

r1

r2

t1

t2

r4
t3

t1

r3

t4

r2
t2

r3
(a)

(b)

28. A figura a seguir representa uma situao de impasse em um cruzamento de


trnsito. Todas as ruas tm largura para um carro e sentido nico. Mostre que as
quatro condies necessrias para a ocorrncia de impasses esto presentes nessa
situao. Em seguida, defina uma regra simples a ser seguida por cada carro para
evitar essa situao; regras envolvendo algum tipo de informao centralizada
no devem ser usadas.

23

Captulo 5
Gerncia de memria
1. Explique a diferena entre endereos lgicos e endereos fsicos e as razes que
justificam seu uso.
2. Explique em que consiste a resoluo de endereos nos seguintes momentos:
codificao, compilao, ligao, carga e execuo.
3. Como organizado o espao de memria de um processo?
4. O que uma MMU Memory Management Unit?
5. Seria possvel e/ou vivel implementar as converses de endereos realizadas pela
MMU em software, ao invs de usar um hardware dedicado? Por que?
6. Analise as seguintes afirmaes relativas ao uso da memria RAM pelos processos:
I. Os endereos fsicos gerados pelo processador so convertidos em endereos
lgicos atravs da MMU - Memory Management Unit.
II. O acesso a endereos de memria invlidos notificado ao processador
atravs de interrupes geradas pela MMU.
III. A rea de memria TEXT contm o cdigo-fonte a ser compilado e executado
pelo processo.
IV. A rea de memria DATA usada para armazenar todas as variveis e
constantes usadas pelo processo.
V. A rea de memria HEAP usada para as alocaes dinmicas de memria,
sendo usada atravs de funes como malloc e free.
VI. A rea de memria STACK contm as pilhas do programa principal e das
demais threads do processo.
Indique a alternativa correta:
(a) As afirmaes II e III esto corretas.
(b) As afirmaes I e V esto corretas.
(c) Apenas a afirmao III est correta.
24

c Carlos Maziero

5: Gerncia de memria

(d) As afirmaes II e V esto corretas.


(e) As afirmaes IV e VI esto corretas.
Justifique as afirmaes julgadas erradas (Assim: XIV est errada porque ...):
7. Explique as principais formas de alocao de memria.
8. Explique como feita a translao entre endereos lgicos e fsicos e o mecanismo
de tratamento de falta de pgina em um sistema de memria virtual paginada.
9. Por que os tamanhos de pginas e quadros so sempre potncias de 2?
10. Analise as seguintes afirmaes relativas s tcnicas de alocao de memria:
I. Na alocao em parties fixas, a MMU composta basicamente de um
registrador e um somador.
II. Na alocao contgua, a rea de memria acessvel a cada processo definida
por um registrador base e um registrador limite.
III. A tcnica de alocao contgua imune a problemas de fragmentao externa.
IV. A alocao por segmentos resolve o problema da fragmentao externa.
V. Na alocao por segmentos, cada endereo de memria composto de duas
partes: segmento e deslocamento.
VI. A alocao por pginas resolve o problema da fragmentao externa.
Indique a alternativa correta:
(a) As afirmaes II, III e VI esto corretas.
(b) As afirmaes I, II, V e VI esto corretas.
(c) Apenas a afirmao V est correta.
(d) As afirmaes IV e VI esto corretas.
(e) Todas as afirmaes esto corretas.
Justifique as afirmaes julgadas erradas (Assim: XIV est errada porque ...):
11. Considerando a tabela de segmentos abaixo (com valores em decimal), calcule os
endereos fsicos correspondentes aos endereos lgicos 0:45, 1:100, 2:90, 3:1.900 e
4:200.
Segmento 0
Base
44
Limite
810

1
2
3
4
200
0
2.000 1.200
200 1.000 1.000 410

25

c Carlos Maziero

5: Gerncia de memria

12. Considerando a tabela de pginas abaixo, com pginas de 500 bytes1 , informe os
endereos fsicos correspondentes aos endereos lgicos 414, 741, 1.995, 4.000 e
6.633, indicados em decimal.
pgina 0
quadro 3

1 2
12 6

4 5
9

6
2

8 9
0 5

10

11 12 13

14 15

13. Considere um sistema com endereos fsicos e lgicos de 32 bits, que usa tabelas
de pginas com trs nveis. Cada nvel de tabela de pginas usa 7 bits do endereo
lgico, sendo os restantes usados para o offset. Cada entrada das tabelas de pginas
ocupa 32 bits. Calcule, indicando seu raciocnio:
(a) O tamanho das pginas e quadros, em bytes.
(b) O tamanho mximo de memria que um processo pode ter, em bytes e
pginas.
(c) O espao ocupado pela tabela de pginas para um processo com apenas uma
pgina de cdigo, uma pgina de dados e uma pgina de pilha. As pginas
de cdigo e de dados se encontram no inicio do espao de endereamento
lgico, enquanto a pilha se encontra no final do mesmo.
(d) Idem, caso todas as pginas do processo estejam mapeadas na memria.
14. Analise as seguintes afirmaes relativas alocao paginada:
I. Um endereo lgico com N bits dividido em P bits para o nmero de pgina
e N P bits para o deslocamento em cada pgina.
II. As tabelas de pginas multinveis permitem mais rapidez na converso de
endereos lgicos em fsicos.
III. O bit de referncia R associado a cada pgina ligado pela MMU sempre
que a pgina acessada.
IV. O cache TLB usado para manter pginas frequentemente usadas na memria.
V. O bit de modificao M associado a cada pgina ligado pelo ncleo
sempre que um processo modificar o contedo da mesma.
VI. O cache TLB deve ser esvaziado a cada troca de contexto entre processos.
Indique a alternativa correta:
(a) As afirmaes I, III e IV esto corretas.
(b) As afirmaes II, V e VI esto corretas.
(c) Apenas a afirmao III est correta.
1

Um tamanho de pgina de 500 bytes permite fazer os clculos mentalmente, sem a necessidade de
converter os endereos para binrio e vice-versa, bastando usar divises inteiras (com resto) entre os
endereos e o tamanho de pgina.

26

c Carlos Maziero

5: Gerncia de memria

(d) As afirmaes I, III e VI esto corretas.


(e) Todas as afirmaes esto corretas.
Justifique as afirmaes julgadas erradas (Assim: XIV est errada porque ...):
15. Explique o que TLB, qual a sua finalidade e como seu funcionamento.
16. Por que necessrio limpar o cache TLB aps cada troca de contexto entre
processos? Por que isso no necessrio nas trocas de contexto entre threads?
17. Um sistema de memria virtual paginada possui tabelas de pgina com trs nveis
e tempo de acesso memria RAM de 100 ns. O sistema usa um cache TLB
de 64 entradas, com taxa estimada de acerto de 98%, custo de acerto de 10 ns e
penalidade de erro de 50 ns. Qual o tempo mdio estimado de acesso memria
pelo processador? Apresente e explique seu raciocnio.
18. Explique o que fragmentao externa. Quais formas de alocao de memria esto
livres desse problema?
19. Explique o que fragmentao interna. Quais formas de alocao de memria esto
livres desse problema?
20. Em que consistem as estratgias de alocao first-fit, best-fit, worst-fit e next-fit?
21. Considere um sistema com processos alocados de forma contgua na memria.
Em um dado instante, a memria RAM possui os seguintes buracos, em
seqncia e isolados entre si: 5K, 4K, 20K, 18K, 7K, 9K, 12K e 15K. Indique a
situao final de cada buraco de memria aps a seguinte seqncia de alocaes:
12K 10K 5K 8K 10K. Considere as estratgias de alocao first-fit,
best-fit, worst-fit e next-fit.
22. Considere um banco de memria com os seguintes buracos no-contguos:
B1
10MB

B2
B3
B4
4MB 7MB 30MB

B5
B6
12MB 20MB

Nesse banco de memria devem ser alocadas reas de 5MB, 10MB e 2MB, nesta
ordem, usando os algoritmos de alocao First-fit, Best-fit ou Worst-fit. Indique a
alternativa correta:
(a) Se usarmos Best-fit, o tamanho final do buraco B4 ser de 6 Mbytes.
(b) Se usarmos Worst-fit, o tamanho final do buraco B4 ser de 15 Mbytes.
(c) Se usarmos First-fit, o tamanho final do buraco B4 ser de 24 Mbytes.
(d) Se usarmos Best-fit, o tamanho final do buraco B5 ser de 7 Mbytes.
(e) Se usarmos Worst-fit, o tamanho final do buraco B4 ser de 9 Mbytes.

27

c Carlos Maziero

5: Gerncia de memria

23. Considerando um sistema de 32 bits com pginas de 4 KBytes e um TLB com 64


entradas, calcule quantos erros de cache TLB so gerados pela execuo de cada
um dos laos a seguir. Considere somente os acessos matriz buffer (linhas 5 e
9), ignorando pginas de cdigo, heap e stack. Indique seu raciocnio.
1

unsigned char buffer[4096][4096] ;

2
3
4
5

for (int i=0; i<4096; i++) // lao 1


for (int j=0; j<4096; j++)
buffer[i][j] = 0 ;

6
7
8
9

for (int j=0; j<4096; j++) // lao 2


for (int i=0; i<4096; i++)
buffer[i][j] = 0 ;

24. Considerando um sistema com tempo de acesso RAM de 50 ns, tempo de acesso
a disco de 5 ms, calcule quanto tempo seria necessrio para efetuar os acessos
matriz do exerccio anterior nos dois casos (lao 1 e lao 2). Considere que existem
256 quadros de 4.096 bytes (inicialmente vazios) para alocar a matriz e despreze
os efeitos do cache TLB.
25. O que uma falta de pgina? Quais so suas causa possveis e como o sistema
operacional deve trat-las?
26. Calcule o tempo mdio efetivo de acesso memria se o tempo de acesso RAM
de 5 ns, o de acesso ao disco de 5 ms e em mdia ocorre uma falta de pgina a
cada 1.000.000 (106 ) de acessos memria. Considere que a memria RAM sempre
tem espao livre para carregar novas pginas. Apresente e explique seu raciocnio.
27. Repita o exerccio anterior, considerando que a memria RAM est saturada: para
carregar uma nova pgina na memria necessrio antes abrir espao, retirando
outra pgina.
28. Considere um sistema de memria com quatro quadros de RAM e oito pginas a
alocar. Os quadros contm inicialmente as pginas 7, 4 e 1, carregadas em memria
nessa seqncia. Determine quantas faltas de pgina ocorrem na seqncia de
acesso {0, 1, 7, 2, 3, 2, 7, 1, 0, 3}, para os algoritmos de escalonamento de memria
FIFO, OPT e LRU.
29. Repita o exerccio anterior considerando um sistema de memria com trs quadros
de RAM.
30. Um computador tem 8 quadros de memria fsica; os parmetros usados pelo
mecanismo de memria virtual so indicados na tabela a seguir:

28

c Carlos Maziero

5: Gerncia de memria

pgina carga na memria ltimo acesso bit R bit M


p0
14
58
1
1
p1
97
97
1
0
p2
124
142
1
1
p3
47
90
0
1
p4
29
36
1
0
p5
103
110
0
0
p6
131
136
1
1
p7
72
89
0
0
Qual ser a prxima pgina a ser substituda, considerando os algoritmos LRU,
FIFO, segunda chance e NRU? Indique seu raciocnio.
31. Considere um sistema com 4 quadros de memria. Os seguintes valores so
obtidos em dez leituras consecutivas dos bits de referncia desses quadros: 0101,
0011, 1110, 1100, 1001, 1011, 1010, 0111, 0110 e 0111. Considerando o algoritmo de
envelhecimento, determine o valor final do contador associado a cada pgina e
indique que quadro ser substitudo.
32. Em um sistema que usa o algoritmo WSClock, o contedo da fila circular de
referncias de pgina em tc = 220 indicado pela tabela a seguir. Considerando
que o ponteiro est em p0 e que = 50, qual ser a prxima pgina a substituir? E
no caso de = 100?
pgina ltimo acesso bit R bit M
p0
142
1
0
p1
197
0
0
p2
184
0
1
p3
46
0
1
p4
110
0
0
p5
167
0
1
p6
97
0
1
p7
129
1
0
33. Considere as seguintes afirmaes sobre memria virtual:
I. Por Localidade de referncias entende-se o percentual de pginas de um
processo que se encontram na memria RAM.
II. De acordo com a anomalia de Belady, o aumento de memria de um sistema
pode implicar em pior desempenho.
III. A localidade de referncia influencia significativamente a velocidade de
execuo de um processo.
IV. O algoritmo LRU implementado na maioria dos sistemas operacionais,
devido sua eficincia e baixo custo computacional.

29

c Carlos Maziero

5: Gerncia de memria

V. O compartilhamento de pginas implementado copiando-se as pginas a


compartilhar no espao de endereamento de cada processo.
VI. O algoritmo timo define o melhor comportamento possvel em teoria, mas
no implementvel.
As afirmaes corretas so:
(a) II, III e VI
(b) I, II e IV
(c) II, IV e V
(d) I, IV e V
(e) IV, V e VI
Justifique as afirmaes julgadas erradas (Assim: XIV est errada porque ...):
34. Construa um simulador de algoritmos de substituio de pgina. O simulador
deve receber como entrada a sequncia de referncias a pginas de memria e
gerar como sada o nmero de faltas de pgina geradas, para os algoritmos OPT,
FIFO e LRU.
35. Construa um simulador de algoritmos de alocao de memria contgua. O
simulador deve produzir aleatoriamente uma sequncia de blocos de memria
de tamanhos diferentes, simular sua alocao e gerar como sada o nmero de
fragmentos livres de memria, os tamanhos do menor e do maior fragmentos
e o tamanho mdio dos fragmentos. Devem ser comparadas as estratgias de
alocao first-fit, next-fit, best-fit e worst-fit.

30

Captulo 6
Gerncia de arquivos
1. Enumere os principais atributos de um arquivo.
2. Enumere as principais operaes sobre arquivos.
3. Apresente e comente as principais formas de atribuio de tipos aos arquivos.
Quais so as vantagens e desvantagens de cada uma?
4. Analise as seguintes afirmaes relativas a formatos de arquivos:
I. Um magic number consiste de um atributo numrico separado que identifica
o tipo de arquivo.
II. A forma mais comum de identificao de tipo de arquivo o uso de extenses
ao seu nome.
III. Arquivos de texto em sistemas DOS e UNIX diferem nos caracteres de controle
usados para identificar o fim de arquivo.
IV. Para a maioria dos ncleos de sistema operacional, arquivos so quase sempre
vistos como meras sequncias de bytes.
V. ELF e PE so dois formatos tpicos de arquivos de configurao.
VI. O padro MIME usado no Linux para identificao de tipos de arquivos
pelo sistema operacional.
As alternativas corretas so:
(a) II e IV
(b) II e V
(c) I e III
(d) IV e V
(e) III e VI
Justifique as afirmaes julgadas erradas (Assim: XIV est errada porque ...):
5. O que um ponteiro de arquivo? Para que ele serve?
31

c Carlos Maziero

6: Gerncia de arquivos

6. Comente as principais formas de acesso a arquivos. Qual o uso mais apropriado


para cada uma delas?
7. Quais as principais estruturas de diretrios empregadas em sistemas operacionais?
8. Do ponto de vista lgico, quais as principais diferenas entre a estrutura de
diretrios Unix e Windows?
9. Explique os tipos de referncias possveis a arquivos em uma estrutura de diretrios.
10. Explique as formas de referncia a arquivos direta, absoluta e relativa.
11. Analise as seguintes afirmaes relativas ao uso de arquivos:
I. No acesso sequencial, o ponteiro de posio corrente do arquivo reiniciado
a cada operao.
II. O acesso direto pode ser implementado usando o acesso sequencial e operaes de posicionamento do ponteiro do arquivo.
III. No acesso mapeado em memria, o contedo do arquivo copiado para a
memria RAM durante a sua abertura.
IV. O acesso indexado raramente implementado pelo ncleo em sistemas
operacionais desktop, sendo mais frequente em ambientes mainframe.
V. Travas de uso exclusivo e compartilhado implementam um modelo de
sincronizao de tipo produtor/consumidor no acesso ao arquivo.
VI. Segundo a semntica de compartilhamento UNIX, o contedo de um arquivo
considerado imutvel durante um compartilhamento.
As alternativas corretas so:
(a) II e IV
(b) II e V
(c) III e V
(d) I e IV
(e) III e VI
Justifique as afirmaes julgadas erradas (Assim: XIV est errada porque ...):
12. Um conjunto de processos p1 , p2 , p3 e p4 abrem em leitura/escrita um arquivo
compartilhado contendo um nmero inteiro, cujo valor inicial 34. As operaes
realizadas pelos processos so indicadas na tabela a seguir no formato [t, op], onde
t o instante da operao e op a operao realizada:

32

c Carlos Maziero

6: Gerncia de arquivos

p1
p2
p3
[0, open]
[3, open]
[7, open]
[2, write 41] [6, write 27] [8, read X]
[6, close]
[8, close]
[9, write 4]
[10, close]

p4
[9, open]
[11, read Y]
[12, close]

Considerando a semntica de sesso para o compartilhamento de arquivos,


determine os valores de X e Y, explicando seu raciocnio. Cada operao de
escrita no arquivo substitui o valor anterior.
13. Enumere principais problemas a resolver na implementao de um sistema de
arquivos.
14. Apresente a arquitetura de gerncia de arquivos presente em um sistema operacional tpico, explicando seus principais elementos constituintes.
15. Explique o que alocao contgua de arquivos, apresentando suas vantagens e
desvantagens.
16. No contexto de alocao de arquivos, o que significa o termo best-fit?
17. Explique a alocao de arquivos em listas encadeadas, apresentando suas principais
vantagens e desvantagens.
18. Explique a estrutura do sistema de arquivos conhecido como FAT, comentando
sobre suas qualidades e deficincias.
19. Por que a alocao de arquivos em listas encadeadas considerada pouco robusta?
O que pode ser feito para melhorar essa caracterstica?
20. Explique o esquema de alocao indexada de arquivos usando ndices multi-nveis.
21. O que fragmentao interna e fragmentao externa? Por que elas ocorrem?
22. Analise o impacto das fragmentaes interna e externa nos sistemas de alocao
contgua, indexada e por lista encadeadas.
23. Considere um sistema operacional hipottico que suporte simultaneamente as
estratgias de alocao contgua, encadeada e indexada para armazenamento de
arquivos em disco. Que critrios devem ser considerados para decidir a estratgia
a usar para cada arquivo em particular?
24. Avalie as seguintes afirmaes sobre as tcnicas de alocao de arquivos:
I. A alocao contgua muito utilizada em sistemas desktop, por sua flexibilidade.
II. A alocao FAT uma alocao encadeada na qual os ponteiros de blocos
foram transferidos para um vetor de ponteiros.

33

c Carlos Maziero

6: Gerncia de arquivos

III. Na alocao indexada os custos de acesso seqencial e aleatrio a blocos so


similares.
IV. Na alocao contgua, blocos defeituosos podem impedir o acesso aos demais
blocos do arquivo.
V. Na alocao contgua, o custo de acesso a blocos aleatrios alto.
VI. Apesar de complexa, a alocao indexada muito usada em desktops e
servidores.
As afirmaes corretas so:
(a) II, III e VI
(b) I, III e IV
(c) I, IV e V
(d) II, IV e V
(e) IV, V e VI
Justifique as afirmaes julgadas erradas (Assim: XIV est errada porque ...):
25. Considerando um arquivo com 500 blocos em disco, calcule quantas leituras e
quantas escritas em disco so necessrias para (a) inserir um novo bloco no incio
do arquivo ou (b) inserir um novo bloco no final do arquivo, usando as formas de
alocao de blocos contgua, encadeada e indexada.
Alocao
Contgua
Encadeada
Indexada
Operaes
leituras escritas leituras escritas leituras escritas
Inserir um novo
bloco no incio
do arquivo
Inserir um novo
bloco no final do
arquivo
Observaes:
(a) Considere somente as operaes de leitura e escrita nos blocos do prprio
arquivo e no i-node; a tabela de diretrio sempre est em memria;
(b) Para a alocao contgua, assuma que no h espao livre depois do arquivo,
somente antes dele;
(c) Para a alocao encadeada, assuma que a tabela de diretrio contm apenas
um ponteiro para o incio do arquivo no disco. Os ponteiros dos blocos esto
contidos nos prprios blocos;
(d) Para a alocao indexada, considere i-nodes com somente um nvel, contendo
somente os ponteiros para os blocos de dados. O i-node est no disco.
34

c Carlos Maziero

6: Gerncia de arquivos

26. Considere um disco rgido com capacidade total de 1 Mbyte, dividido em 1.024
blocos de 1.024 bytes cada. Os dez primeiros blocos do disco so reservados para
a tabela de parties, o cdigo de inicializao (boot) e o diretrio raiz do sistema
de arquivos. Calcule o tamanho mximo de arquivo (em bytes) que pode ser
criado nesse disco para cada uma das formas de alocao a seguir, explicando seu
raciocnio:
(a) Alocao contgua.
(b) Alocao encadeada, com ponteiros de 64 bits contidos nos prprios blocos.
(c) Alocao indexada, com i-nodes contendo somente ponteiros diretos de 64
bits; considere que o i-node no contm meta-dados, somente ponteiros, e que
ele ocupa exatamente um bloco do disco.
27. Considerando a tabela FAT (File Allocation Table) a seguir, indique:
(a) o nmero de blocos ocupados pelo arquivo relat.pdf;
(b) o tamanho (em blocos) do maior arquivo que ainda pode ser criado nesse
disco;
(c) quais arquivos esto ntegros e quais esto corrompidos por blocos defeituosos
(bad blocks);
(d) quantos blocos do disco esto perdidos, ou seja, no so usados por arquivos
nem esto marcados como livres ou defeituosos.
Na tabela, a letra R indica bloco reservado (Reserved), F indica bloco livre (Free), L
indica o ltimo bloco de um arquivo (Last) e B indica bloco defeituoso (Bad).

arquivo
readme.txt
icone.gif
retrato.jpg
relat.pdf
format.exe
carta.doc
programa.c

incio
76
14
29
6
31
67
73

18

19

F 17 F 15 68 13 53 F

L 63 L

F 26 F

20

21

22

23

24

25

33

34

35

36

37

38

39

F 11 55 F 36 F 35 43 B

B 20 F

44

45

46

47

54

55

56

57

58

59

21 32 F 50 B

F 40 F

L 45 F 58 F

F 72 F

64

65

66

67

69

70

71

75

76

77

78

79

F 51 F

F 60 24 F

F 10 27 F

F 41 F

33 L
40

60

41

61

44 F

F 38 L
42

62

43

63

26

27

28

48

68

29

49

10

30

50

11

31

51

12

32

52

72

13

53

73

14

74

15

16

17

28. O sistema de arquivos indexado do sistema Minix possui os seguintes campos em


cada i-node:
meta-dados (tipo, dono, grupo, permisses, datas e tamanho)
7 ponteiros diretos
1 ponteiro indireto
1 ponteiro duplamente indireto
35

c Carlos Maziero

6: Gerncia de arquivos

A implementao bsica desse sistema de arquivos considera blocos de 1.024 bytes


e ponteiros de 32 bits. Desenhe o diagrama do sistema de arquivos e calcule o
tamanho mximo de arquivo que ele suporta, indicando seu raciocnio.
29. O sistema de arquivos indexado ext2fs, usado no Linux, possui os seguintes
campos em cada i-node:
meta-dados (tipo, dono, grupo, permisses, datas e tamanho)
12 ponteiros diretos
1 ponteiro indireto
1 ponteiro duplamente indireto
1 ponteiro triplamente indireto
A implementao bsica do ext2fs considera blocos de 1.024 bytes e ponteiros
de 64 bits. Desenhe o diagrama do sistema de arquivos e determine o tamanho
mximo de arquivo que ele suporta, indicando seu raciocnio.
30. Explique como efetuada a gerncia de espao livre atravs de bitmaps.

36

Captulo 7
Gerncia de entrada/sada
1. Considere um escalonador de disco com os seguintes pedidos de leitura de
blocos em sua fila, nessa ordem: 95, 164, 36, 68, 17 e 115. Determine todos os
deslocamentos da cabea de leitura do disco para atender esses pedidos e o nmero
total de blocos percorridos, para as polticas FCFS, SSTF, SCAN, C-SCAN, LOOK
e C-LOOK. O disco tem 200 setores, numerados de 0 a 199, e a cabea de leitura
acabou de percorrer os blocos 76 e 50, nessa ordem.

37

Captulo 8
Segurana de sistemas
1. Analise as seguintes afirmaes relativas s propriedades da segurana:
I. A Confidencialidade consiste em garantir que as informaes do sistema estaro
criptografadas.
II. A Integridade consiste em garantir que as informaes do sistema s podero
ser modificadas por usurios autorizados.
III. A Disponibilidade implica em assegurar que os recursos do sistema estaro
disponveis para consulta por qualquer usurio.
IV. A Autenticidade implica em assegurar que os dados das entidades atuantes
no sistema sejam verdadeiros e correspondam s informaes do mundo real
que elas representam.
V. A Irretratabilidade implica em garantir que nenhuma ao possa ser desfeita
no sistema.
As alternativas corretas so:
(a) II e IV
(b) II e V
(c) I e III
(d) I e IV
(e) III e V
Justifique as afirmaes julgadas erradas (Assim: XIV est errada porque ...):
2. Analise as seguintes afirmaes relativas aos princpios de segurana:
I. Princpio do Privilgio Mnimo: os processos devem receber o mnimo possvel
de privilgios, para minimizar os riscos em caso de bugs ou erros.
II. Princpio do Default Seguro: os acessos permitidos devem ser explicitados;
caso um acesso no seja explicitamente permitido, ele deve ser negado.
38

c Carlos Maziero

8: Segurana de sistemas

III. Princpio da Separao de Privilgios: os privilgios dos usurios comuns


devem ser separados dos privilgios do administrador do sistema.
IV. Princpio do Projeto Aberto: a robustez do mecanismo de proteo no deve
depender de segredos de programao.
V. Princpio da Facilidade de Uso: o uso dos mecanismos de segurana deve ser
fcil e intuitivo para os usurios.
As alternativas corretas so:
(a) I, II, III e IV
(b) I, II, IV e V
(c) II, III, IV e V
(d) I, III, IV e V.
(e) Todas
Justifique as afirmaes julgadas erradas (Assim: XIV est errada porque ...):
3. Relacione as situaes abaixo a ataques diretos (C)onfidencialidade, (I)ntegridade,
(D)isponibilidade ou (A)utenticidade, justificando suas escolhas.
[

] Um programa que permite injetar pacotes falsos na rede.

] Um ataque de negao de servios atravs da rede.

] Um processo spyware que vasculha os arquivos do sistema em busca de


senhas.

] int main { while (1) fork(); }

] Um site malicioso que imita um site bancrio.

] Um programa quebrador de senhas.

] Um processo que modifica o arquivo de sistema /etc/hosts para redirecionar


acessos de rede.

] Um programa baixado da Internet que instala um malware oculto no sistema


operacional.

] Uma pgina Web cheia de arquivos Flash para sobrecarregar o processador.

] Um programa de captura de pacotes de rede.

4. O cdigo a seguir apresenta uma vulnerabilidade de segurana. Indique qual


essa vulnerabilidade e explique como ela pode ser usada por um atacante.

39

c Carlos Maziero

8: Segurana de sistemas

#include <stdio.h>
#include <string.h>
#include <ctype.h>

1
2
3
4

int confirma (char * pergunta)


{
char resp[20] ;

5
6
7
8

printf ("%s (sim/nao): ", pergunta) ;


scanf ("%s", &resp[0]) ;
if (! strcmp (resp, "sim")) return (1) ;
return (0) ;

9
10
11
12

13
14

int main ()
{
...

15
16
17
18

if (confirma ("Devo apagar os valores?"))


{
...
}
...

19
20
21
22
23

24

5. Relacione os tipos de malwares s suas respectivas descries:


(V)rus, (W)orm, (T)rojan, (R)ootkit, (B)ackdoor, (E)xploit
[

] Pode operar no nvel dos comandos, das bibliotecas, do ncleo do sistema


operacional ou mesmo abaixo dele.

] Tcnicas de engenharia social geralmente so empregadas para induzir o


usurio a executar esse tipo de programa.

] um programa que se propaga entre sistemas usando vulnerabilidades em


seus servios.

] um trecho de cdigo que se infiltra em programas executveis, usando-os


como suporte para sua execuo e propagao.

] um programa construdo para demonstrar ou explorar uma vulnerabilidade


de um sistema.

] Pode usar sistemas de e-mail ou de mensagens instantneas para sua propagao.

] um programa que facilita a entrada do intruso em um sistema j invadido,


ou que permite seu comando remotamente.

] Programa usado para esconder a presena de um intruso no sistema.

] Sua execuo depende da execuo do programa hospedeiro.

] um programa usado para enganar o usurio e faz-lo instalar outros


malwares.
40

c Carlos Maziero

8: Segurana de sistemas

] Pode usar suportes de execuo internos (macros) de editores de texto para


sua propagao.

] Costuma infectar pendrives plugados em portas USB.

6. Na srie de TV Futurama (escrita por Matt Groening, o mesmo autor dos Simpsons)
usada uma escrita cifrada denominada Alien Language. Essa codificao pode ser
decifrada atravs da tabela a seguir:

Explique qual o tipo de criptografia empregado na Alien Language e indique qual


o tamanho do espao de chaves da mesma.
7. O texto em portugus a seguir foi cifrado usando o cifrador de Csar. Encontre o
texto original e a chave usada para cifr-lo; explique seu procedimento.

Kjqne fvzjqj vzj ywfsxkjwj t vzj


xfgj j fuwjsij t vzj jsxnsf.
Htwf Htwfqnsf.
Para facilitar seu trabalho, a tabela a seguir traz a frequncia de caracteres tpica
de textos na lngua portuguesa:
letra freq% letra freq% letra freq% letra freq% letra freq%
A
14,63
B
1,04
C
3,88
D
4,99
E
12,57
F
1,02
G
1,30
H
1,28
I
6,18
J
0,40
K
0,02
L
2,78
M
4,74
N
5,05
O
10,73
P
2,52
Q
1,20
R
6,53
S
7,81
T
4,34
U
4,63
V
1,67
W
0,01
X
0,21
Y
0,01
Z
0,47

41

c Carlos Maziero

8: Segurana de sistemas

8. O cifrador de Vigenre um mtodo de cifragem que combina vrios cifradores


de Csar em sequncia. Ele constitui um exemplo simples de cifrador polialfabtico.
Para as operaes de cifragem/decifragem usada uma tabela denominada tabula
rasa:

Para cifrar uma mensagem, primeiro se escolhe uma palavra-chave qualquer, que
repetida at ter o mesmo comprimento da mensagem. Em seguida, cada caractere
da mensagem original codificado usando uma cifra de substituio (cifrador
de Csar). A cifra a usar para um caractere definida pela linha da tabula rasa
indicada pela letra correspondente da palavra-chave. Um exemplo de cifragem
usando a palavra-chave bicicleta indicado a seguir:
Mensagem aberta Atacare m os ao amanhecer de sexta-feira
Palavra-chave bicicle t ab ic icletabic ic letab icicl
Mensagem cifrada bbckcci f ot iq iolraedmt lg diqtb-ngqtl
Use o cifrador de Vigenre para cifrar a mensagem secreta Encontramos aliens
usando a palavra-chave missao:
Msg aberta E
Palavra-chave
Msg cifrada

n c o n t

42

r a

m o

l i e

n s

c Carlos Maziero

8: Segurana de sistemas

9. Alice precisa enviar a imagem ISO de um CD confidencial a seus amigos Bob,


Carol e David. Como o arquivo muito grande, ela o carregou em um servidor de
arquivos acessvel remotamente. Contudo, esse servidor pode ser invadido e as
comunicaes entre eles podem ser capturadas. Como Alice pode cifrar o arquivo
ISO de forma que somente Bob, Carol e David possam abri-lo, cada um com sua
prpria chave?
10. Recentemente foi noticiado na imprensa que certificados digitais emitidos pela
Autoridade Certificadora holandesa DigiNotar haviam sido falsificados e estavam
sendo usados por um governo do oriente mdio para monitorar as comunicaes
de seus cidados. Considerando o certificado falso do servio de e-mails do Google
(mail.google.com), explique:
(a) Neste contexto, em que consiste um certificado falso?
(b) Qual a utilidade de um certificado falso na interceptao de comunicaes?
(c) Por que somente os usurios do navegador Chrome (produzido pelo prprio Google) detectaram o certificado falso, enquanto usurios de outros
navegadores no perceberam nada?
11. O provedor de contedo TOL (Tabajara OnLine) decidiu implementar um novo
mecanismo de segurana em suas pginas web. Esse mecanismo consiste em
adicionar uma etiqueta oculta (HTML tag) em cada pgina, contendo o nome do
autor (name), a data de produo (date) e uma assinatura digital s. Essa assinatura
constituida pelo hash criptogrfico do nome do autor e da data (hash(name + date)),
cifrado usando a chave privada do autor da pgina. O contedo da pgina Web
em si no cifrado. As chaves pblicas dos autores registrados podem ser obtidas
em http://www.tol.com.br/pubkeys.html.
Responda:
(a) Que objetivo tinham em mente os proponentes desse mecanismo?
(b) Esse esquema seguro? Por que?
(c) Se o esquema no for seguro, indique um possvel ataque ao mesmo; caso
seja seguro, explique por que esse mesmo ataque no funcionaria.
12. Analise as seguintes afirmaes relativas s tcnicas de autenticao:
I. Nas estratgias de autenticao SYK, o sistema autentica o usurio com base
em informaes fornecidas pelo mesmo.
II. Nas estratgias de autenticao SYH, o sistema usa dados coletados do
usurio para fazer sua autenticao.
III. Nas estratgias de autenticao SYA, o usurio autenticado com base em
suas caractersticas fsicas.
As alternativas corretas so:
43

c Carlos Maziero

8: Segurana de sistemas

(a) I e II
(b) II e III
(c) I e III
(d) Nenhuma delas
(e) Todas elas
Justifique as afirmaes julgadas erradas (Assim: XIV est errada porque ...):
13. Analise as seguintes afirmaes relativas s tcnicas de autenticao:
I. Para estar devidamente protegidas, as senhas armazenadas no sistema devem
ser cifradas com criptografia simtrica.
II. A autenticao multi-fator consiste em autenticar o usurio usando duas
senhas simultaneamente.
III. A autenticao por tcnicas biomtricas deve usar caractersticas fsicas
universais, singulares, permanentes e mensurveis dos usurios.
IV. Os tokens de segurana usados no acesso a servios bancrios pela Internet
implementam um esquema de senhas baseado em desafio-resposta.
V. PAM e SSPI so infraestruturas de autenticao modulares usadas em sistemas
operacionais de mercado.
As alternativas corretas so:
(a) II e IV
(b) II e V
(c) I e III
(d) IV e V
(e) III e V
Justifique as afirmaes julgadas erradas (Assim: XIV est errada porque ...):
14. Qual a funo do sal usado em sistemas de autenticao por senhas? Explique
como o sal usado; sua explicao deve conter um diagrama.
15. Analise as seguintes afirmaes relativas aos modelos de controle de acesso:
I. Nos modelos de controle de acesso obrigatrios, o controle definido por
regras globais incontornveis, que no dependem das identidades dos sujeitos
e objetos nem da vontade de seus proprietrios ou mesmo do administrador
do sistema.
II. Os modelos de controle de acesso discricionrios se baseiam na atribuio
de permisses de forma individualizada, ou seja, pode-se conceder ou negar
a um sujeito especfico a permisso de executar uma ao sobre um dado
objeto.
44

c Carlos Maziero

8: Segurana de sistemas

III. O Modelo da matriz de controle de acesso uma forma de representao


lgica de polticas discricionrias.
IV. O modelo de Bell-LaPadula uma forma de representar polticas de controle
de acesso obrigatrias que tenham foco em confidencialidade de dados.
V. O modelo de Biba uma forma de representar polticas de controle de acesso
obrigatrias que tenham foco em integridade de dados.
VI. Os modelos de controle de acesso baseados em papis permitem desvincular
os usurios das permisses sobre os objetos, atravs da definio e atribuio
de papis.
As alternativas corretas so:
(a) I, II, IV
(b) II, III, VI
(c) I, II, III, V
(d) Nenhuma delas
(e) Todas elas
Justifique as afirmaes julgadas erradas (Assim: XIV est errada porque ...):
16. Analise a seguinte matriz de controle de acesso:

Alice

Beto

f ile1
read
write
remove
owner
read
write

Carol
Davi

read

f ile2
read
write

program1
execute

read
write
remove
owner
read

read
owner

execute

write

read

socket1
write

read
write
read
write
owner

Assinale a alternativa correta:


(a) O usurio Beto pode alterar as permisses dos recursos f ile1 e program1
(b) O usurio Alice tem a seguinte lista de capacidades:
{ f ile1 :
(read, write, remove, owner), f ile2 : (read, write), program1 : (read, execute), socket1 :
(write) }
45

c Carlos Maziero

8: Segurana de sistemas

(c) A lista de controle de acesso de f ile2 : {Alice : (read, write), Beto :


(read, write, remove), Carol : (read), Davi : (write) }
(d) A lista de capacidades de Beto :
{ f ile1
(read, write, remove, owner), program1 : (read, owner) }

(read, write), f ile2

(e) Nenhuma das anteriores


17. Escreva as listas de controle de acesso (ACLs) equivalentes s listas de capacidades
a seguir:

CL(Alice) = { f ile1 : (read, write, remove, owner),


f ile2 : (read),
program1 : (execute),
socket1 : (read, write) }
CL(Beto) = { f ile1 : (read),
f ile2 : (read, write, remove, owner),
program1 : (read, execute, owner) }
CL(Carol) = { f ile2 : (read, write),
program1 : (execute),
socket1 : (read, write) }
CL(Davi) = { f ile1 : (read),
f ile2 : (write),
program1 : (read, execute),
socket1 : (read, write, owner) }

18. Relacione as expresses a seguir aos modelos de controle de acesso de Bell


(L)aPadula, (B)iba ou da (M)atriz de controle de acesso. Considere s um sujeito,
o um objeto, h(s) o nvel de habilitao ou de integridade do sujeito e c(o) a
classificao do objeto.
[

] request(si , o j , write) h(si ) c(o j )

] request(si , o j , write) write Mi j

] request(si , o j , read) h(si ) c(o j )

] request(si , o j , read) read Mi j

] request(si , o j , write) h(si ) c(o j )

] request(si , o j , read) h(si ) c(o j )

19. Preencha a matriz de controle de acesso que corresponde seguinte listagem de


arquivo em um ambiente UNIX:
46

c Carlos Maziero

-rwxr-x---rw-------rwxr-x--x
-rw-rw-r--rw-r-----

8: Segurana de sistemas

2 maziero
2 lucas
2 daniel
2 sheila
2 mariana

prof
aluno
suporte
prof
aluno

14321
123228
3767
76231
4089

2010-07-01 16:44
2008-12-27 08:53
2010-11-14 21:50
2009-18-27 11:06
2010-11-09 02:14

script.sh
relat.pdf
backup.py
cmmi.xml
teste1.c

Observaes:
Composio do grupo prof: {maziero, sheila}
Composio do grupo suporte: {maziero, daniel}
Composio do grupo aluno: {lucas, daniel, mariana}
Preencha os campos da matriz com os caracteres r, w, x e -.
script.sh

relat.pdf

backup.py

cmmi.xml

teste1.c

maziero

lucas

daniel

sheila

mariana

20. Em um sistema de documentao militar esto definidos os seguintes usurios e


suas respectivas habilitaes:
Usurio
Marechal Floriano
General Motors
Major Nelson
Sargento Tainha
Recruta Zero

Habilitao
Ultrassecreto
Secreto
Confidencial
Restrito
Pblico

Considerando operaes sobre documentos classificados, indique quais das operaes a seguir seriam permitidas pelo modelo de controle de acesso de Bell-LaPadula:
[

] Sargento Tainha cria o documento secreto comunicado.txt


47

c Carlos Maziero

8: Segurana de sistemas

] Recruta Zero l o documento ultrassecreto salarios-dos-generais.xls

] General Motors escreve um memorando pblico aviso-sobre-ferias.doc.

] Major Nelson escreve um documento confidencial avarias-no-submarino.doc.

] Marechal Floriano l o documento restrito comunicado.txt.

] General Motors l o documento secreto vendas-de-carros-2010.doc.

] Sargento Tainha l o documento restrito plano-de-ataque.pdf.

] Major Nelson l o documento confidencial processos-navais.html.

] Marechal Floriano escreve o documento secreto novas-avenidas.doc.

] Recruta Zero escreve o documento ultrassecreto meu-diario.txt.

21. As listas de controle de acesso (ACLs) e as listas de capacidades (CLs) a seguir so


complementares, mas esto incompletas. Complete-as com as regras faltantes.
ACL(o1 )
ACL(o2 )
ACL(o3 )
ACL(o4 )

=
=
=
=

{ (u1 : rwx)
{ (u2 : r)
{ (u1 : r) (u4 : rw)
{ (u2 : rw) (u3 : r)

}
}
}
}

CL(u1 )
CL(u2 )
CL(u3 )
CL(u4 )

=
=
=
=

{ (o2 : rw)
{ (o1 : rx)
{ (o1 : rx)
{ (o4 : rwx)

}
}
}
}

(o4 : r)

22. Considerando o modelo de controle de acesso de Bell & LaPadula, indique que
tipo de acesso (R, W, RW ou ) um usurio u pode ter sobre os documentos abaixo
identificados. Considere que h(u) = secreto e que C(u) = {vendas, rh}.
[

] d1 : c(d1 ) = ultrassecreto e C(d1 ) = {vendas}

] d2 : c(d2 ) = publico e C(d2 ) = {rh, f inanceiro}

] d3 : c(d3 ) = secreto e C(d3 ) = {rh}

] d4 : c(d4 ) = reservado e C(d4 ) = {rh, vendas}

] d5 : c(d5 ) = con f idencial e C(d5 ) = { }

23. Muitas vezes, usurios precisam executar aes que exigem privilgios administrativos, como instalar programas, reconfigurar servios, etc. Neste contexto, analise
as seguintes afirmaes:
I. No mecanismo UAC User Access Control dos sistemas Windows, um
usurio administrativo inicia sua seo de trabalho com seus privilgios de
usurio normal e recebe mais privilgios somente quando precisa efetuar
aes que os requeiram.
48

c Carlos Maziero

8: Segurana de sistemas

II. Alguns sistemas operacionais implementam mecanismos de mudana de


credenciais, atravs dos quais um processo pode mudar de proprietrio.
III. As POSIX Capabilities so uma implementao do mecanismo de capabilities
para sistemas operacionais que seguem o padro POSIX.
IV. Alguns sistemas operacionais separam os usurios em usurios normais
ou administrativos, atribuindo aos ltimos permisses para efetuar tarefas
administrativas, como instalar programas.
V. Alguns sistemas operacionais implementam processos monitores que recebem
pedidos de aes administrativas vindos de processos com baixo privilgio,
que so avaliados e possivelmente atendidos.
VI. Os flags setuid e setgid do UNIX implementam um mecanismo de permisses temporrias.
As alternativas corretas so:
(a) I, II, IV, VI
(b) II, III, VI
(c) I, II, III, V
(d) I, II, IV, V
(e) Todas elas
Justifique as afirmaes julgadas erradas (Assim: XIV est errada porque ...):
24. O diagrama abaixo representa os principais componentes da infraestrutura de
controle de acesso de um sistema operacional tpico. Identifique e explique
elementos representados pelas caixas tracejadas.

49

c Carlos Maziero

8: Segurana de sistemas

sujeitos

objetos
permite

acessos

aes

Illenihild
ubitatquin
ullamscientiam
habet(Nadaduvi
daquemnadasabe
)Illenihildubi
tatquinullamsc
ientiamhabet(N
adaduvidaquemn
adasabe)Illeni
hildubitatquin
ullamscientiam
habet(Nadaduvi

outros
sujeitos
ou
sistemas

nega

processos
threads
transaes

arquivos

informaes externas
(horrio, etc)

50

eventos