QUESTÕES DO LIVRO Real-Tme Systems, Jane Lu Cap 6: 4,5,8,9,10,11,12,15,16,21 fazer dagramas, usar análse por cálculo do tempo de resposta Cap 8: 1,2,7 fazer dagramas
Concetos Báscos e Técncas de Implementação de Sstemas Automatzados 2001/1 Prova P2 Prof. Rômulo Nome: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1) (2 pontos) Que tpos de crtéros devem ser utlzados no momento da defnção da fata de tempo a ser empregada em um determnado sstema? Cte dos. 2) (2 pontos) Qual a fragmentação apresentada pelos métodos de gerênca de memóra baseados em partções fxas, partções varáves, pagnação smples e segmentação smples? Justfque as 8 stuações. 3) (2 pontos) Descreva o erro na mplementação do produtor-consumdor mostrada abaxo. Cre uma seqüênca de eventos que termna em algum comportamento ndesejado para o programa. struct tpo_dado buffer[n]; nt proxma_nsercao = 0; nt proxma_remocao = 0; semaphore exclusao_mutua = 1; semaphore espera_vaga = N; semaphore espera_dado = 0; vod produtor( vod) { P( exclusao_mutua ); P( espera_vaga ); buffer[ proxma_nsercao ] = dado_produzdo; proxma_nsercao = ( proxma_nsercao + 1 ) % N; V( espera_dado ); V( exclusao_mutua ); } vod consumdor( vod) { P( espera_dado ); P( exclusao_mutua ); dado_a_consumr = buffer[ proxma_remocao ]; proxma_remocao = ( proxma_remocao + 1 ) % N; V( exclusao_mutua ); V( espera_vaga ); }
4) (2 pontos) Dadas as tarefas T1, T2 e T3 com as restrções temporas descrtas abaxo, e sabendo que T1 precede T2, calcule os tempos de respostas das três tarefas. A atrbução de prordades segue o deadlne monotonc. Tarefa release jtter tempo de computação período deadlne T1 1 9 80 30 T2-8 80 40 T3-7 50 50 5) (2 pontos) Suponha que o fornecedor de um Sstema Operaconal de Tempo Real nformou que o tempo para chaveamento de contexto é 100us e a latênca máxma no atendmento a nterrupções é de 500us. Cte mas duas nformações que seram necessáras para aplcar sobre o sstema as equações da teora de escalonamento de tempo real vsta em aula. Justfque a necessdade dessas duas nformações. Cte apenas duas.
Concetos Báscos e Técncas de Implementação de Sstemas Automatzados 2002/1 Prova Prof. Rômulo segunda-fera Nome: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1)(1.5 pontos) O sstema operaconal é um programa drgdo por eventos, e esses eventos são snalzados por nterrupções. Para cada uma das três classes de nterrupções (perférco, proteção, chamada de sstema), descreva a reação que o sstema operaconal deverá ter com relação aos estados dos processos (quas transções de estado são desencadeadas). 2)(1.5 pontos) Qual a fragmentação apresentada pelos métodos de gerênca de memóra baseados em partções fxas, partções varáves e pagnação smples? Explque as 6 stuações. 3)(2.0 pontos) Consderando o códgo abaxo, uma varação da mplementação do produtor/consumdor vsta em aula, responda as seguntes perguntas (justfcando): a) Está garantdo o acesso exclusvo à varável "buffer" no caso de 1 produtor e 1 consumdor? b) É possível a ocorrênca de postergação ndefnda no caso de 3 produtores e 1 consumdor? struct tpo_dado buffer; semaphore espera_vaga = 1; semaphore espera_dado = 0; vod produtor( vod) { P( espera_vaga ); buffer = dado_produzdo; V( espera_dado ); } vod consumdor( vod) { P( espera_dado ); dado_a_consumr = buffer; V( espera_vaga ); } 4)(1.5 pontos) Usando os mecansmos "mutex" e "varáves condção" do Posx, mplemente as operações P e V de um semáforo. Cada uma dessas operações deverá ser substtuda por um códgo C com semântca smlar. Lembre-se que estas operações devem ser atômcas. Dcas sobre o Posx: pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER; pthread_mutex_lock( &m ); pthread_mutex_unlock( &m );
pthread_cond_t vc = PTHREAD_COND_INITIALIZER; pthread_cond_wat( &vc, &m ); pthread_cond_sgnal( &vc ); 5)(1.5 pontos) Determne se o conjunto de tarefas abaxo é escalonável com deadlne monotônco, aplcando a análse para D P, vsta em aula. T1: J1=2 C1=4 P1=10 D1=10 B1 = 0 T2: J2=3 C2=5 P2=50 D2=30 B2 = 0 T3: J3=0 C3=10 P3=60 D3=60 B3 = 0 6)(2 pontos) Suponha que o fornecedor de um Sstema Operaconal de Tempo Real nformou que o tempo para chaveamento de contexto é 100us e a latênca máxma no atendmento a nterrupções é de 500us. Cte mas duas nformações que seram necessáras para aplcar sobre o sstema as equações da teora de escalonamento de tempo real vsta em aula. Justfque a necessdade dessas duas nformações. Cte apenas duas.
Concetos Báscos e Técncas de Implementação de Sstemas Automatzados 2002/1 Prova Prof. Rômulo sexta-fera Nome: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1)(1.5 pontos) Que crtéros devem ser utlzados no momento da defnção da fata de tempo a ser empregada em um determnado sstema? Cte dos. 2)(1.5 pontos) Consdere um sstema operaconal que trabalha com pagnação smples. As págnas são de 1Kbyte. O endereço lógco é formado por 16 bts. O endereço físco é formado por 20 bts. Qual o tamanho do: (a) Espaço de endereçamento lógco (maor programa possível)? (b) Espaço de endereçamento físco (memóra prncpal)? (c) Entrada da tabela de págnas, sem consderar bts de proteção? (d) Tabela de págnas (número de entradas necessáras no por caso)? 3)(2.0 pontos) Consderando o códgo abaxo, uma varação da mplementação do produtor/consumdor vsta em aula, responda as seguntes perguntas (justfcando): a) Está garantdo o acesso exclusvo à varável "buffer" no caso de 1 produtor e 1 consumdor? b) É possível a ocorrênca de postergação ndefnda no caso de 3 produtores e 1 consumdor? struct tpo_dado buffer; semaphore espera_vaga = 1; semaphore espera_dado = 0; vod produtor( vod) { P( espera_vaga ); buffer = dado_produzdo; V( espera_dado ); } vod consumdor( vod) { P( espera_dado ); dado_a_consumr = buffer; V( espera_vaga ); }
4)(1.5 pontos) Usando os mecansmos "mutex" e "varáves condção" do Posx, mplemente as operações P e V de um semáforo. Cada uma dessas operações deverá ser substtuda por um códgo C com semântca smlar. Lembre-se que estas operações devem ser atômcas. Dcas sobre o Posx: pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER; pthread_mutex_lock( &m ); pthread_mutex_unlock( &m ); pthread_cond_t vc = PTHREAD_COND_INITIALIZER; pthread_cond_wat( &vc, &m ); pthread_cond_sgnal( &vc ); 5)(1.5 pontos) Determne se o conjunto de tarefas abaxo é escalonável com deadlne monotônco, aplcando a análse para D P, vsta em aula. T1: J1=2 C1=4 P1=10 D1=10 B1 = 1 T2: J2=2 C2=5 P2=50 D2=30 B2 = 0 T3: J3=0 C3=10 P3=60 D3=60 B3 = 0 6)(2 pontos) Com respeto às equações usadas na questão anteror, explque de que manera os seguntes tempos de um sstema operaconal aparecerão nos cálculos: - Tempo gasto na execução do tratador de nterrupções do tmer que ocorre enquanto uma tarefa da aplcação executa; - Processo faz chamada de sstema X mas outro processo com prordade menor fez a mesma chamada de sstema X antes dele e está usando de forma exclusva as estruturas de dados assocadas com a chamada de sstema X em questão.
Concetos Báscos e Técncas de Implementação de Sstemas Automatzados 2003/1 Rômulo Nome: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1)(2 pontos) Suponha que ocorreu uma nterrupção de hardware causada por um perférco. Descreva o algortmo segudo pelo sstema operaconal na reação a esta nterrupção, com respeto aos estados dos processos. Teste seu algortmo supondo que ocorreu: (a) Uma nterrupção do controlador de dsco snalzando a conclusão de uma operação. (b) Uma nterrupção do temporzador em hardware snalzando que passaram mas 10 ms. 2)(2 pontos) Consderando pagnação e segmentação: (a) Qual a maor vantagem da pagnação sobre a segmentação? (b) Qual a maor vantagem da segmentação sobre a pagnação? Cte as vantagens e também cre um exemplo para cada uma onde a vantagem ctada se manfesta. 3)(2 pontos) Usando os mecansmos mutex e varável condção do Posx, mplemente um montor para o segunte sstema: A tarefa controle executa um laço onde ela lê o sensor, armazena o valor ldo, compara com o valor de referênca fxo e enva um valor calculado para o atuador. Caso o valor ldo seja maor que o lmte, ela acorda a tarefa alarme. A tarefa alarme apenas espera ser acordada pelo sensor e escreve uma mensagem na tela que nclu o valor ldo. Dcas sobre o Posx: pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER; pthread_mutex_lock( &m ); pthread_mutex_unlock( &m ); pthread_cond_t vc = PTHREAD_COND_INITIALIZER; pthread_cond_wat( &vc, &m ); pthread_cond_sgnal( &vc ); 4)(2 pontos) Determne se o conjunto de tarefas abaxo é escalonável com deadlne monotônco, aplcando a análse para D P, vsta em aula. T1: J1=0 C1=2 P1=5 D1=5 B1 = 0 T2: J2=0 C2=5 P2=30 D2=10 B2 = 0 T3: J3=0 C3=10 P3=25 D3=25 B3 = 0 J + W W j = C + B + C j HP ( ) j R = J + W Pj 5)(2 pontos) Ilustre através de exemplos como as característcas abaxo do sstema operaconal podem aumentar o tempo de resposta de uma tarefa com alta prordade. Para cada exemplo, desenhe um dagrama de tempo para mostrar o mpacto sobre a tarefa de alta prordade. (a) Tempo de chaveamento entre tarefas. (b) Kernel não é preemptvo.
Concetos Báscos e Técncas de Implementação de Sstemas Automatzados 2004 Rômulo Nome: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1)(1,5 ponto) Em um sstema usando pagnação pura, o espaço de endereçamento lógco de cada processo consste de, no máxmo, 1 Mbyte de tamanho. As págnas físcas são de 512 bytes. Entretanto, a memóra físca pode ter até 32 Mbytes de tamanho. Dga quantos bts são necessáros para especfcar cada uma das grandezas abaxo, explcando de onde veo cada número: (a) Número da págna lógca; (b) Número da págna físca; (c) Número de entradas máxmo na tabela de págnas. 2)(1 ponto) Uma vez que pagnação não apresenta fragmentação externa enquanto segmentação apresenta fragmentação externa, quas motvações exstem para justfcar a déa de segmentação? Quas as duas vantagens apontadas para a segmentação pura em relação a pagnação pura? 3)(2 pontos) Usando semáforos, mplemente rotnas cujo comportamento seja smlar ao das funções wat e sgnal vstas em aula e descrtas abaxo. Cre tantos semáforos e varáves auxlares do tpo ntero quantos julgar necessáro. Explque a lógca da solução. WAIT( VC ): Sempre bloquea o processo até alguém executar um SIGNAL. SIGNAL( VC ): Se exste alguém bloqueado em VC, acorda apenas 1 deles. 4)(2 pontos) Em um sstema que suporta programação concorrente apenas através da troca de mensagens, será crado um Servdor para controlar o envo de dados entre produtores e consumdores. Os dados serão envados dretamente de um Produtor para um Consumdor lvre, mas o Produtor deve consultar o Servdor para obter o número do Consumdor que ele deverá usar. O Servdor deve manter uma lsta com os números dos Consumdores lvres no momento, e nformar um desses números quando um Produtor solcta. Após receber e processar os dados, o Consumdor volta a nformar que está lvre para o Servdor. Mostre o algortmo do Servdor, em português estruturado. Apresentar a solução como fo feto para o Servdor de Buffer vsto em aula. Supor receve bloqueante. 5)(2 pontos) Determne se o conjunto de tarefas abaxo é escalonável se prordades forem atrbudas segundo o deadlne monotônco, aplcando a análse para D P, vsta em aula. Consdere que exste uma seção crítca entre T1 e T2, em função de uma tabela acessada pelas duas tarefas. A tarefa T1 permanece 1 undade de tempo acessando a tabela, enquanto a tarefa T2 permanece 2 undades de tempo acessando a mesma tabela. O protocolo herança de prordade é utlzado. T1: J1=0 C1=2 P1=5 D1=5 T2: J2=0 C2=5 P2=30 D2=10 T3: J3=0 C3=10 P3=25 D3=25
J + W W j = C + B + C j HP ( ) j R = J + W Pj 6)(1,5 ponto) Ilustre através de exemplos como as característcas abaxo do sstema operaconal podem aumentar o tempo de resposta de uma tarefa com alta prordade. Para cada exemplo, desenhe um dagrama de tempo para mostrar o mpacto sobre uma tarefa de alta prordade e procure ndcar do que depende a quantdade de atraso sofrda. (c) Tempo de chaveamento entre tarefas; (d) Kernel não é preemptvo; (e) Tempo gasto com o tratador de nterrupções do tmer.
Concetos Báscos e Técncas de Implementação de Sstemas Automatzados 2005 Rômulo Nome: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1)(2 pontos) Em um sstema usando pagnação pura, o espaço de endereçamento lógco de cada processo consste de, no máxmo, 1 Mbyte de tamanho. As págnas físcas são de 512 bytes. Entretanto, a memóra físca pode ter até 32 Mbytes de tamanho. Dga quantos bts são necessáros para especfcar cada uma das grandezas abaxo, explcando de onde veo cada número: (d) Número da págna lógca; (e) Número da págna físca; (f) Número de entradas máxmo na tabela de págnas; (g) Deslocamento de um byte dentro da págna. 2)(2 pontos) Consdere a stuação de uma estrada que possu uma ponte cuja largura só comporta um carro. A estrada como um todo possu uma psta em cada sentdo, mas a ponte possu uma únca psta. Carros vndos do norte e carros vndos do sul chegam a ponte com uma só psta e precsam atravessala. Os que vajam no mesmo sentdo podem atravessar a ponte ao mesmo tempo, mas os que vajam em sentdo oposto precsam esperar que a ponte fque lvre. Modele os carros como threads e a ponte como um recurso, o qual pode ser utlzado smultaneamente por carros que travegam no mesmo sentdo, mas nunca por carros em sentdos opostos. Implemente uma solução para este problema usando mutexes e varáves condção da bbloteca das pthreads. A solução consste de 2 rotnas, como mostrado abaxo: /* função chamada pela thread carro para solctar o acesso a ponte, nformando o seu sentdo (NORTE ou SUL), ao retornar desta função a thread está autorzada a entrar na ponte */ vod pede_para_entrar (nt sentdo); /* função chamada pela thread carro para avsar que sau da ponte, possvelmente lberando processos do outro sentdo */ vod avsa_que_sau (nt sentdo); Dcas sobre o Posx: pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER; pthread_mutex_lock( &m ); pthread_mutex_unlock( &m ); pthread_cond_t vc = PTHREAD_COND_INITIALIZER; pthread_cond_wat( &vc, &m ); pthread_cond_sgnal( &vc ); 3)(2 pontos) Usando semáforos, mplemente rotnas cujo comportamento seja smlar ao das funções wat e sgnal vstas em aula e descrtas abaxo. Cre tantos semáforos e varáves auxlares do tpo ntero quantos julgar necessáro. Comente o papel de cada varável crada.
WAIT( VC ): Sempre bloquea o processo até alguém executar um SIGNAL. SIGNAL( VC ): Se exste alguém bloqueado em VC, acorda apenas 1 deles. 4)(2 pontos) Em um sstema que suporta programação concorrente apenas através da troca de mensagens, será crado um Servdor para controlar o envo de dados entre produtores e consumdores. Os dados serão envados dretamente de um Produtor para um Consumdor lvre, mas o Produtor deve consultar o Servdor para obter o número do Consumdor que ele deverá usar. O Servdor deve manter uma lsta com os números dos Consumdores lvres no momento, e nformar um desses números quando um Produtor solcta. Após receber e processar os dados, o Consumdor volta a nformar que está lvre para o Servdor. Mostre o algortmo do Servdor, em português estruturado. Apresentar a solução como fo feto para o Servdor de Buffer vsto em aula. Supor receve bloqueante. 5)(2 pontos) Determne se o conjunto de tarefas abaxo é escalonável se prordades forem atrbudas segundo o deadlne monotônco, aplcando a análse para D P, vsta em aula. Consdere que exste uma seção crítca entre T1 e T2, em função de uma tabela acessada pelas duas tarefas. A tarefa T1 permanece 1 undade de tempo acessando a tabela, enquanto a tarefa T2 permanece 2 undades de tempo acessando a mesma tabela. O protocolo herança de prordade é utlzado. T1: J1=0 C1=2 P1=5 D1=5 T2: J2=0 C2=5 P2=30 D2=10 T3: J3=0 C3=10 P3=25 D3=25 J + W W j = C + B + C j HP ( ) j R = J + W Pj