Você está na página 1de 52

Sistemas Operacionais: Conceitos e Mecanismos Caderno de Exerccios

Prof. Carlos A. Maziero, Dr. DAINF UTFPR 7 de maro de 2014

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 especicada 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 ns 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 A GNU/Linux (distribuies Fedora e Ubuntu), compilador de texto L TEX 2 , gerenciador de referncias BibTeX, editor grco Inkscape, criadores de grcos GNUPlot e GraphViz e processador PS/PDF GhostScript, entre outros.

Sumrio
1 2 3 4 5 6 7 8 Conceitos bsicos Gerncia de atividades Comunicao entre tarefas Coordenao entre tarefas Gerncia de memria Gerncia de arquivos Gerncia de entrada/sada Segurana de sistemas 3 7 12 16 24 31 37 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. Identique as principais vantagens trazidas por essa funcionalidade e os desaos a resolver para implement-la. 4. O que caracteriza um sistema operacional de tempo real? Quais as duas classicaes 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 denir 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 decincias mais signicativos das principais arquiteturas de sistemas operacionais. 12. Relacione as armaes 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 denidos. ] 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 grca e a interao com o usurio. ] Construdo para gerenciar de forma eciente grandes volumes de recursos. ] O MacOS X um exemplo tpico deste tipo de sistema. ] So sistemas operacionais compactos, construdos para executar aplicaes especcas 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, justicando 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 naliza 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 armaes 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 armaes II e III esto corretas. (b) Apenas a armao V est correta. (c) As armaes III e IV esto erradas. (d) As armaes III, IV e V esto erradas. (e) Todas as armaes esto erradas. 5

c Carlos Maziero

1: Conceitos bsicos

Justique as armaes julgadas erradas (Assim: VII est errada porque ...): 17. Considere as armaes 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 especca, 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 armaes esto erradas. (b) As armaes II e III esto corretas. (c) As armaes II e IV esto erradas. (d) Apenas a armao V est correta. (e) As armaes II e V esto corretas. Justique as armaes 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 signica 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 gura a seguir, complete o diagrama com a transio de estado que est faltando (t6 ) e apresente o signicado de cada um dos estados e transies.
e1 t5 t1 e3 t4 t2 e4

t3

e2

e5

5. Indique se cada uma das transies de estado de tarefas a seguir denidas 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 armaes 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 4 5 6 7 8 9 10 11 12 13 14

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

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 lho, clone do processo que a executou, retornando o valor zero no processo lho e um valor diferente de zero no processo pai.

c Carlos Maziero

2: Gerncia de atividades

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

#include #include #include #include

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

int main(int argc, char *argv[]) { pid_t pid[10]; int i; int N = atoi(argv[argc-2]); for (i=0; i<N; i++) pid[i] = fork(); if (pid[0] != 0 && pid[N-1] != 0) pid[N] = fork(); printf("X"); return 0; }

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 armaes 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 eciente. ] 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). Signicado 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 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

int y = 0 ; void threadBody { int x = 0 ; sleep (10) ; printf ("x: %d, y:%d\n", ++x, ++y) ; thread_exit(); } 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. Dena a ecincia 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

2: Gerncia de atividades

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

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 la de prontos e para uma tarefa que ainda no iniciou ou j concluiu sua execuo.
t5 t4 t3 t2 t1
t 0 5 10 15 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 Pathnder 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 buering ou sem buering (c) comunicao por mensagens ou por uxo (d) mensagens de tamanho xo 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 armar que: I. Na comunicao semi-bloqueante, o emissor espera indenidamente 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 buer 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 Justique as armaes julgadas erradas (Assim: VII est errada porque ...): 4. Em relao sincronizao na comunicao entre processos, podemos armar 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 buer 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 Justique as armaes 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 nita somente so usados na denio 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 uxo, 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 Justique as armaes 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 buer do processo receptor. II. O buer do canal de comunicao entre dois processos distintos geralmente mantido pelo ncleo do sistema operacional. III. Se a capacidade do buer do canal de comunicao for considerada innita, somente o receptor pode se bloquear. IV. As las de mensagens POSIX so um exemplo de canal de comunicao com capacidade nula. V. O protocolo de rede TCP um exemplo de comunicao por uxo de dados. As asseres erradas so: (a) I, III (b) II, III (c) I, IV (d) II, IV (e) II, V Justique as armaes 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 Justique as armaes 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 las de mensagens POSIX so um bom exemplo de canal de eventos. IV. Nas las de mensagens POSIX, as mensagens transitam atravs de arquivos em disco criados especialmente para essa nalidade. 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 Justique as armaes 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 Justique as armaes julgadas erradas (Assim: VII est errada porque ...): 3. Explique o que espera ocupada e por que os mecanismos que empregam essa tcnica so considerados inecientes. 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 eciente de resolver os problemas de condio de disputa introduzir pequenos atrasos nos processos envolvidos. V. Um semforo composto por um contador inteiro e uma la de processos suspensos. As asseres corretas so: (a) I, III (b) I, V (c) II, V (d) I, IV (e) III, IV Justique as armaes 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 la task_queue.

17

c Carlos Maziero

4: Coordenao entre tarefas

1 2 3 4 5 6

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

11. Usando semforos, escreva o pseudo-cdigo de um sistema produtor/consumidor com dois buers limitados organizado na forma X B1 Y B2 Z, onde X, Y e Z so tipos de processos e B1 e B2 so buers independentes com capacidades N1 e N2 , respectivamente, inicialmente vazios. Os buers 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 denidos os cdigos dos processos X, Y e Z e os semforos necessrios, com seus signicados e valores iniciais. 12. O trecho de cdigo a seguir apresenta uma soluo para o problema do jantar dos lsofos, mas ele contm um erro. Explique o cdigo e explique onde est o erro e porque ele ocorre. A seguir, modique o cdigo para que ele funcione corretamente.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

#define N 5 sem_t garfo[5] ; // 5 semforos iniciados em 1 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 denir 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 b como a e b ocorrem sem uma ordem denida, 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 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 6 7 8 9 10 11 12 13 14 15 16 17

// estrutura que representa um RV typedef struct rv_t { ... // completar } rv_t ; // operador de espera no RV void rv_wait (rv_t *rv) { ... // completar } // 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 B B1 () ; barrier_wait (b) ; B2 () ; barrier_wait (b) ; B3 () ;

Processo C C1 () ; barrier_wait (b) ; C2 () ; barrier_wait (b) ; C3 () ; 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 b como a e b ocorrem sem uma ordem denida, temos as seguintes restries de sincronizao: (i, j), X (i, j), X Y, Xi Y j>i (imposto pela barreira) Y, Xi Y j=i (possibilidade de execuo concorrente)

(i, j), Xi X j>i (imposto pela execuo sequencial)

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 6 7 8 9 10 11 12 13 14 15 16 17

// estrutura que representa uma barreira typedef struct barrier_t { ... // completar } barrier_t ; // operador de espera no RV void barrier_wait (barrier_t *barrier) { ... // completar } // 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 gracamente, 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 Justique as armaes 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-xada. III. As condies necessrias para a ocorrncia de impasses so tambm sucientes 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 Justique as armaes 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 m 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 Justique as armaes julgadas erradas (Assim: VII est errada porque ...): 27. Nos grafos de alocao de recursos da gura a seguir, indique o(s) ciclo(s) onde existe um impasse:
r1 r1 r4 t3

t1

r2

t2

t1

r3

t4

r2 r3 (a) t2 (b)

28. A gura 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, dena 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 justicam seu uso. 2. Explique em que consiste a resoluo de endereos nos seguintes momentos: codicao, 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 armaes 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 noticado 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 armaes II e III esto corretas. (b) As armaes I e V esto corretas. (c) Apenas a armao III est correta. 24

c Carlos Maziero

5: Gerncia de memria

(d) As armaes II e V esto corretas. (e) As armaes IV e VI esto corretas. Justique as armaes 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 armaes relativas s tcnicas de alocao de memria: I. Na alocao em parties xas, a MMU composta basicamente de um registrador e um somador. II. Na alocao contgua, a rea de memria acessvel a cada processo denida 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 armaes II, III e VI esto corretas. (b) As armaes I, II, V e VI esto corretas. (c) Apenas a armao V est correta. (d) As armaes IV e VI esto corretas. (e) Todas as armaes esto corretas. Justique as armaes 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 3 4 5 9 6 2 7 8 9 0 5 10 11 12 13 7 14 15 1

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 oset. 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 nal do mesmo. (d) Idem, caso todas as pginas do processo estejam mapeadas na memria. 14. Analise as seguintes armaes 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 modicao M associado a cada pgina ligado pelo ncleo sempre que um processo modicar o contedo da mesma. VI. O cache TLB deve ser esvaziado a cada troca de contexto entre processos. Indique a alternativa correta: (a) As armaes I, III e IV esto corretas. (b) As armaes II, V e VI esto corretas. (c) Apenas a armao III est correta.
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.
1

26

c Carlos Maziero

5: Gerncia de memria

(d) As armaes I, III e VI esto corretas. (e) Todas as armaes esto corretas. Justique as armaes julgadas erradas (Assim: XIV est errada porque ...): 15. Explique o que TLB, qual a sua nalidade 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 rst-t, best-t, worst-t e next-t? 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 nal de cada buraco de memria aps a seguinte seqncia de alocaes: 12K 10K 5K 8K 10K. Considere as estratgias de alocao rst-t, best-t, worst-t e next-t. 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-t, Best-t ou Worst-t. Indique a alternativa correta: (a) Se usarmos Best-t, o tamanho nal do buraco B4 ser de 6 Mbytes. (b) Se usarmos Worst-t, o tamanho nal do buraco B4 ser de 15 Mbytes. (c) Se usarmos First-t, o tamanho nal do buraco B4 ser de 24 Mbytes. (d) Se usarmos Best-t, o tamanho nal do buraco B5 ser de 7 Mbytes. (e) Se usarmos Worst-t, o tamanho nal 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 2 3 4 5 6 7 8 9

unsigned char buffer[4096][4096] ; for (int i=0; i<4096; i++) // lao 1 for (int j=0; j<4096; j++) buffer[i][j] = 0 ; 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 nal do contador associado a cada pgina e indique que quadro ser substitudo. 32. Em um sistema que usa o algoritmo WSClock, o contedo da la 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 armaes 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 inuencia signicativamente a velocidade de execuo de um processo. IV. O algoritmo LRU implementado na maioria dos sistemas operacionais, devido sua ecincia 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 dene o melhor comportamento possvel em teoria, mas no implementvel. As armaes 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 Justique as armaes 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 rst-t, next-t, best-t e worst-t.

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 armaes relativas a formatos de arquivos: I. Um magic number consiste de um atributo numrico separado que identica o tipo de arquivo. II. A forma mais comum de identicao 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 identicar o m 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 congurao. VI. O padro MIME usado no Linux para identicao 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 Justique as armaes 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 armaes 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 Justique as armaes 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 signica o termo best-t? 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 decincias. 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 armaes sobre as tcnicas de alocao de arquivos: I. A alocao contgua muito utilizada em sistemas desktop, por sua exibilidade. 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 armaes 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 Justique as armaes 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 nal 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 nal 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).
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

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

incio 76 14 29 6 31 67 73

R
20

R
21

R
22

R
23

R
24

F 17 F 15 68 13 53 F
25 26 27 28 29 30 31 32

L 63 L
33 34 35

F 26 F
36 37 38

F
39

33 L
40 41

F 38 L
42 43 44

F 11 55 F 36 F 35 43 B
45 46 47 48 49 50 51 52 53

F
54

B 20 F
55 56 57

8
58

F
59

21 32 F 50 B
60 61 62 63 64

L
65

F
66

F 40 F
67 68 69

L 45 F 58 F
70 71 72 73 74

B
75

F
76

F 72 F
77 78 79

44 F

F 51 F

F 60 24 F

F 10 27 F

F 41 F

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 la, 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 armaes relativas s propriedades da segurana: I. A Condencialidade consiste em garantir que as informaes do sistema estaro criptografadas. II. A Integridade consiste em garantir que as informaes do sistema s podero ser modicadas 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 Justique as armaes julgadas erradas (Assim: XIV est errada porque ...): 2. Analise as seguintes armaes 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 Justique as armaes julgadas erradas (Assim: XIV est errada porque ...): 3. Relacione as situaes abaixo a ataques diretos (C)ondencialidade, (I)ntegridade, (D)isponibilidade ou (A)utenticidade, justicando 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 modica 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

8: Segurana de sistemas

#include <stdio.h> #include <string.h> #include <ctype.h> int confirma (char * pergunta) { char resp[20] ; printf ("%s (sim/nao): ", pergunta) ; scanf ("%s", &resp[0]) ; if (! strcmp (resp, "sim")) return (1) ; return (0) ; } int main () { ... if (confirma ("Devo apagar os valores?")) { ... } ... }

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 inltra 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 codicao pode ser decifrada atravs da tabela a seguir:

Explique qual o tipo de criptograa 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 codicado usando uma cifra de substituio (cifrador de Csar). A cifra a usar para um caractere denida 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 r a m o s a l i e n s

42

c Carlos Maziero

8: Segurana de sistemas

9. Alice precisa enviar a imagem ISO de um CD condencial 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 certicados digitais emitidos pela Autoridade Certicadora holandesa DigiNotar haviam sido falsicados e estavam sendo usados por um governo do oriente mdio para monitorar as comunicaes de seus cidados. Considerando o certicado falso do servio de e-mails do Google (mail.google.com), explique: (a) Neste contexto, em que consiste um certicado falso? (b) Qual a utilidade de um certicado falso na interceptao de comunicaes? (c) Por que somente os usurios do navegador Chrome (produzido pelo prprio Google) detectaram o certicado 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 criptogrco 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 armaes 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 Justique as armaes julgadas erradas (Assim: XIV est errada porque ...): 13. Analise as seguintes armaes relativas s tcnicas de autenticao: I. Para estar devidamente protegidas, as senhas armazenadas no sistema devem ser cifradas com criptograa 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 desao-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 Justique as armaes 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 armaes relativas aos modelos de controle de acesso: I. Nos modelos de controle de acesso obrigatrios, o controle denido 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 especco 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 condencialidade 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 denio 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 Justique as armaes julgadas erradas (Assim: XIV est errada porque ...): 16. Analise a seguinte matriz de controle de acesso: f ile1 read write remove owner read write f ile2 read write program1 execute socket1 write

Alice

Beto

Carol Davi read

read write remove owner read write

read owner

execute read

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) } (e) Nenhuma das anteriores 17. Escreva as listas de controle de acesso (ACLs) equivalentes s listas de capacidades a seguir: : (read, write), f ile2 :

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 classicao 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

8: Segurana de sistemas

-rwxr-x---rw-------rwxr-x--x -rw-rw-r--rw-r----Observaes:

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

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 maziero relat.pdf backup.py cmmi.xml teste1.c

lucas

daniel

sheila

mariana

20. Em um sistema de documentao militar esto denidos os seguintes usurios e suas respectivas habilitaes: Usurio Marechal Floriano General Motors Major Nelson Sargento Tainha Recruta Zero Habilitao Ultrassecreto Secreto Condencial Restrito Pblico

Considerando operaes sobre documentos classicados, indique quais das operaes a seguir seriam permitidas pelo modelo de controle de acesso de BellLaPadula: 47

c Carlos Maziero

8: Segurana de sistemas

[ [ [ [ [ [ [ [ [ [

] Sargento Tainha cria o documento secreto comunicado.txt ] 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 condencial 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 condencial 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 ) CL(u1 ) CL(u2 ) CL(u3 ) CL(u4 ) = = = = = = = = { (u1 : rwx) { (u2 : r) { (u1 : r) (u4 : rw) { (u2 : rw) (u3 : r) { (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 identicados. 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, recongurar servios, etc. Neste contexto, analise as seguintes armaes: 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 ags 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 Justique as armaes 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. Identique e explique elementos representados pelas caixas tracejadas.

49

c Carlos Maziero

8: Segurana de sistemas

sujeitos
permite

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

arquivos

acessos nega

aes

outros sujeitos ou sistemas

processos threads transaes

informaes externas (horrio, etc)

eventos

25. A listagem a seguir apresenta alguns programas executveis e arquivos de dados em um mesmo diretrio de um sistema UNIX, com suas respectivas permisses de acesso: - rwx r-s --- 2 marge - rwx r-x --x 2 homer - rws r-x --x 2 bart - rwx r-x --- 2 lisa rwrwrwrwrwr-rwr-rw------------2 2 2 2 2 lisa marge bart homer bart family family men women women family men family men indent more nano sha1sum codigo.c dados.csv prova.pdf relatorio.txt script.sh

Os programas executveis precisam das seguintes permisses de acesso sobre os arquivos aos quais so aplicados para poder executar: more, sha1sum: leitura nano, indent: leitura e escrita Considerando os grupos de usurios men = {bart, homer, moe}, women = {marge, lisa, maggie} e f amily = {homer, marge, bart, lisa, maggie}, indique quais dos 50

c Carlos Maziero

8: Segurana de sistemas

comandos a seguir sero permitidos e quais sero negados. O prompt indica qual usurio/grupo est executando o comando: [ [ [ [ [ [ [ [ [ [ ] lisa:women> nano codigo.c ] lisa:women> more relatorio.txt ] bart:men> nano relatorio.txt ] bart:men> sha1sum prova.pdf ] marge:women> more relatorio.txt ] marge:women> indent codigo.c ] homer:men> sha1sum prova.pdf ] homer:men> nano dados.csv ] moe:men> sha1sum relatorio.txt ] moe:men> nano script.sh

26. Sistemas de deteco de intruso (IDS - Intrusion Detection Systems) podem ser classicados sob vrias perspectivas. Explique como os IDSs so classicados segundo: (a) A origem dos dados analisados; (b) O momento da anlise dos dados; (c) A forma de anlise dos dados.

51