You are on page 1of 24

UNIVERSIDADE TECNOLGICA FEDERAL DO PARAN DEPARTAMENTE ACADMICO DE ELETROTCNICA CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO

ANDR FILIPE ROOS

PROPOSTA DE EXERCCIOS PARA REVISO DA DISCIPLINA

ATIVIDADE PRTICA SUPERVISIONADA

CURITIBA 2011

ANDR FILIPE ROOS

PROPOSTA DE EXERCCIOS PARA REVISO DA DISCIPLINA

Trabalho apresentado como requisito parcial para aprovao na disciplina de Sistemas Embarcados, realizada como aprofundamento da rea de Eletrnica Industrial do Curso Superior de Engenharia da de Controle e

Automao,

Universidade

Tecnolgica

Federal do Paran. Docente: Douglas P. Bertrand Renaux

CURITIBA 2011

SUMRIO
1 2 2.1 2.1.1 2.1.2 2.1.3 2.1.4 2.2 2.2.1 2.2.2 2.2.3 2.3 2.4 2.5 2.6 3 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 INTRODUO ............................................................................................................................. 4 EXERCCIOS PROPOSTOS ............................................................................................................ 5 VISO GERAL DE SISTEMAS EMBARCADOS.......................................................................... 5 Conceituao e caractersticas ............................................................................................ 5 Processo de desenvolvimento de SE ................................................................................... 5 Memria............................................................................................................................. 5 Processadores .................................................................................................................... 5 ARQUITETURA ARM ............................................................................................................ 6 Registradores ..................................................................................................................... 6 Conjunto de instrues ....................................................................................................... 6 Interrupes/Excees ....................................................................................................... 7 MQUINAS DE ESTADO FINITAS.......................................................................................... 7 PROGRAMAO CONCORRENTE ......................................................................................... 8 NCLEOS OPERACIONAIS .................................................................................................... 9 ESCALONAMENTO .............................................................................................................11 RESPOSTAS AOS EXERCCIOS .....................................................................................................12 EXERCCIO 1 .......................................................................................................................12 EXERCCIO 2 .......................................................................................................................13 EXERCCIO 3 .......................................................................................................................14 EXERCCIO 4 .......................................................................................................................15 EXERCCIO 5 .......................................................................................................................15 EXERCCIO 6 .......................................................................................................................15 EXERCCIO 7 .......................................................................................................................16 EXERCCIO 8 .......................................................................................................................16 EXERCCIO 9 .......................................................................................................................16 EXERCCIO 10 .....................................................................................................................16 EXERCCIO 11 .....................................................................................................................17 EXERCCIO 12 .....................................................................................................................17 EXERCCIO 13 .....................................................................................................................17 EXERCCIO 14 .....................................................................................................................18

3.15 3.16 3.17 3.18 3.19 3.20 4

EXERCCIO 15 .....................................................................................................................19 EXERCCIO 16 .....................................................................................................................19 EXERCCIO 17 .....................................................................................................................19 EXERCCIO 18 .....................................................................................................................20 EXERCCIO 19 .....................................................................................................................20 EXERCCIO 20 .....................................................................................................................21 REFERNCIAS ............................................................................................................................23

1 INTRODUO Tem-se com este trabalho o objetivo de fornecer aos alunos da disciplina de Sistemas Embarcados (EL68E) da UTFPR uma srie de exerccios, divididos em tpicos, que podem ser teis na reviso da matria para as provas e/ou se ganhar familiaridade com o assunto. Dividiu-se o contedo da disciplina nos seguintes tpicos: Viso geral de sistemas embarcados Arquitetura ARM Mquinas de estado finitas Programao concorrente Ncleos operacionais Escalonamento

2 EXERCCIOS PROPOSTOS Os vinte exerccios que seguem possuem nveis variveis de dificuldade, exigindo desde um raciocnio simples e direto at um projeto. As respostas constam no Captulo 3.

2.1 VISO GERAL DE SISTEMAS EMBARCADOS 2.1.1 Conceituao e caractersticas Pense em um sistema embarcado presente atualmente no mercado e

Exerccio 1.

descreva-o sucintamente. Em seguida, responda: (a) Como o sistema escolhido se enquadra na definio de sistema embarcado? (b) Esse sistema contempla todas as caractersticas fundamentais de sistemas embarcados (heterogeneidade, restries, complexidade, prazos e riscos de desenvolvimento)? Justifique. 2.1.2 Processo de desenvolvimento de SE Suponha que uma empresa est cogitando iniciar o projeto de um rob

Exerccio 2.

mvel domstico para limpeza de pisos. Descreva qualitativamente um processo de desenvolvimento plausvel para esse sistema embarcado desde sua concepo at a chegada s lojas. 2.1.3 Memria Como evoluram as memrias ROM, desde a tecnologia Mask-ROM at

Exerccio 3.

a FLASH? Quais as vantagens de cada nova tecnologia sobre a anterior?

Exerccio 4.

Quais as diferenas entre uma memria RWM esttica e dinmica?

Quais as vantagens e desvantagens de cada uma? 2.1.4 Processadores Porque as arquiteturas RISC e CISC ainda coexistem atualmente?

Exerccio 5.

Exerccio 6. popular?

Quais as caractersticas da arquitetura ARM que a tornaram to

2.2 ARQUITETURA ARM 2.2.1 Registradores Dado o seguinte trecho de cdigo:


LDR LDR ADDS r1, =0xffffffff r2, =0x00000001 r0, r1, r2

Exerccio 7.

(a) Qual o valor de r0 aps a adio? (b) Qual o valor das condition flags (N, Z, C, V) aps a adio? Justifique.

Exerccio 8.

Marque um V para sentena verdadeira e um F para sentena falsa.

Justifique as falsas. ( ) Na arquitetura ARM, uma word tem 4 bytes. ( ) O modo Undef usado para manipular violaes de acesso memria. ( ) O modo System tem seus prprios registradores r13 (sp) e r14 (lr). ( ) Uma varivel unsigned long int para um compilador C ARM tem 32bits. ( ) Se r3 armazena o valor #15, uma instruo CMP r3, #11 zera a flag C. 2.2.2 Conjunto de instrues Como se implementa o cdigo em C seguinte na linguagem Assembly

Exerccio 9. ARM?

While (x < 17){ // bloco do while }

Exerccio 10.

E este cdigo?
if (x a = x = } else { y = d = } y < 7) { b c; 30;

5; e + f + g;

Considere que a,b,c,d,e,f,g,x,y so armazenados como um vetor na label vetor.

Exerccio 11. seguinte.

Escreva um cdigo em C que implementa o trecho em Assembly ARM

inic para

fim

MOV r2, #1 CMP r2, #20 BGE fim ; bloco ADD r2, r2, #1 B para ...

2.2.3

Interrupes/Excees Quais so as medidas tomadas pelo processador ARM quando ocorre

Exerccio 12. uma exceo?

2.3 MQUINAS DE ESTADO FINITAS Exerccio 13. Projete uma mquina de estados que modele o comportamento de um

telefone simples. O telefone estar ativo assim que o usurio retir-lo do gancho, emitindo o tom de discagem. Caso no haja nenhuma ao em 15 s, emite-se o tom de ocupado. Uma sequncia de dgitos errada provoca uma mensagem de erro e uma sequncia correta inicia uma conexo. Estando o destino ocupado, emite-se um tom de ocupado; se disponvel, emite-se o tom de chamada at que atenda o telefone. Uma conversa pode ser interrompida se o destino puser o telefone no gancho, retornando quando ele retir-lo do gancho novamente. A qualquer momento, se o usurio que est fazendo a chamada puser o telefone no gancho, o telefone fica inativo.

Exerccio 14.

Projete uma mquina de estados que modele o comportamento de um

forno de microondas. O forno tem trs funcionalidades independentes: teclado para seleo de modo, display e lmpada. Modo: O dispositivo comea operacional, em estado de espera; caso a porta seja aberta, fica desabilitado at que a feche novamente, voltando ao estado anterior. H o Modo Relgio, para se ajustar o horrio atual, Modo Programa, para ajuste de tempo de cozimento e potncia, e Modo Cozimento, quando o alimento est

efetivamente sendo cozido. O boto 1 Minuto agiliza o incio de um cozimento com um tempo pr-definido de um minuto. Display: Exibe-se no display o horrio, o tempo de cozimento e mensagens de erro (para um horrio invlido, por exemplo). Lmpada: a lmpada acende quando o forno est aquecendo um prato.

2.4 PROGRAMAO CONCORRENTE Exerccio 15. Quais as principais vantagens de se empregar programao concorrente

no desenvolvimento de software para sistemas embarcados?

Exerccio 16.

Considere os dois trechos de cdigo em C abaixo, que rodam em duas

tarefas distintas do sistema operacional acessando um recurso compartilhado.


// Tarefa T1 T1_quer = TRUE; while (T2_quer) suspende(T1); // T1 acessa regio crtica T1_quer = FALSE; // Tarefa T2 T2_quer = TRUE; while (T1_quer) suspende(T2); // T2 acessa regio crtica T2_quer = FALSE;

Esta implementao fere qual(is) princpio(s) de Dijkstra para garantia de excluso mtua? Justifique.

Exerccio 17.

O cdigo em Assembly ARM abaixo implementa a rotina Wait() de

um semforo binrio.
LDR MOV SWP ORRS BEQ r2, =s r1, #0 r1, r1, [r2] r1, r1, r1 suspende

Como se pode garantir que esta rotina atmica, a fim de garantir excluso mtua no acesso a um recurso compartilhado?

Exerccio 18.

Assinale qual(is) solues de excluso mtua atendem aos cenrios

propostos abaixo, nomeando-os. Cenrio / Soluo


Tarefa 1 Tarefa 2 Memria Processador Tarefa N

Alg. de Peterson

Semforos

Mensagens

Cenrio:
Processador 1 Processador 2

Memria

Processador N

Cenrio:

Cenrio:

2.5 NCLEOS OPERACIONAIS Exerccio 19. Explique sucintamente o funcionamento do cdigo em C para o kernel

PET ARM abaixo, baseado no disponibilizado pelo professor Douglas Renaux.


#include <stdio.h> #include "pet_type.h" #include "petarm.h" #ifdef PET_SHELL #include "shell.h" #include "console.h"

10

#endif void sender(Card32); void replier(Card32); void receiver(Card32); void Init() { Create(sender, "sender", 0x400, 5, NON_PREEMPTABLE); Create(replier, "replier", 0x400, 5, NON_PREEMPTABLE); Create(receiver, "receiver", 0x800, 5, NON_PREEMPTABLE); } void sender(Card32 param) { PId replier = GetPId ("replier"); PId receiver = GetPId ("receiver"); char msg[] = "UMA MENSAGEM QUALQUER"; char reply[50]; AbsoluteTime abs_t; PutMsg put_msg; while(1) { SleepUntil ( GetTime() + 50*MSEC ); Send(replier, msg, ((sizeof(msg))+1), reply, 50 ); printf("sender: replier respondeu %s\r\n", reply); GetTime (abs_t); put_msg.w_array[0] = abs_t.Seconds(); put_msg.w_array[1] = abs_t.NanoSeconds(); Put(receiver, &put_msg); } }

void replier(Card32 param) { char rec_buf [50]; char reply_msg[] = "UMA RESPOSTA QUALQUER"; PId from; while(1) { from = Receive(rec_buf, 50); printf("replier: Recebi %s de sender\r\n", rec_buf); Reply(from, reply_msg, ((sizeof (reply_msg)) + 1)); } } void receiver(Card32 param) { PutMsg msg; int count = 0; while(1) { Receive (&msg, sizeof(PutMsg)); count++; if ( count >= 1000 ) { printf("receiver: Recebi %d mensagens\r\n\n", count); count = 0; } } }

11

2.6 ESCALONAMENTO Exerccio 20. Em relao a escalonadores:

a) O que um escalonador? b) Quais seus objetivos? c) Qual a diferena entre escalonamento preemptivo e no-preemptivo? d) Explique os algoritmos de escalonamento Round Robin e Rate Monotonic.

12

3 RESPOSTAS AOS EXERCCIOS 3.1 EXERCCIO 1 Este estudo de caso foi baseado no material de [4]. A cmera fotogrfica digital um sistema embarcado, cuja ideia bsica captar a imagens com um sensor por exemplo, CCD - e transformar cada ponto dessa imagem em bits que so ento registrados em memria. possvel interface-la com um computador por meio de um cabo USB, por exemplo. H normalmente uma tela de cristal lquido que permite a visualizao imediata da imagem que foi registrada. a) A cmera fotogrfica digital um sistema embarcado pois combina hardware, software e componentes mecnicos para executar uma funo dedicada. Na cmera, o software embarcado est intimamente relacionado com o hardware que foi especificamente projetado para interagir com ele. b) O sistema atende a todas as caractersticas de sistemas embarcados: Heterogeneidade: A cmera um projeto que exigiu o desenvolvimento de um hardware bem especfico, com necessidades particulares de desempenho, interfaces, memria, etc. Inclui no hardware uma diversidade de elementos como microcontrolador, DSP e FPGA. O software embarcado tambm apresenta grande heterogeneidade em termos funcionais, exigindo device drivers para uma srie de interfaces, atividades concorrentes e reatividade a mltiplos eventos. Restries: Sendo um eletrnico de consumo de fabricao em larga escala, a cmera sofre grandes presses por reduo de custos. H tambm limitaes de dimenso, por ser um produto porttil, e de peso, pois deve ser possvel lev-la para qualquer lugar. Contudo, a reduo de dimenso e peso no pode comprometer sua estrutura mecnica, j que deve ser tolervel a quedas e intempries. As cmeras so usualmente alimentadas por baterias e tm, portanto, uma autonomia limitada , o que resulta em modificaes no projeto para atender a essa restrio de consumo. Essas imposies influenciam na quantidade de memria voltil e no-voltil, na capacidade de processamento e na quantidade de interfaces. No se pode esquecer que esses dispositivos obedecem a prazos definidos para operaes e funcionalidades do sistema, como abertura/fechamento do obturador e captura de vdeo, o que a enquadra na categoria de sistema em tempo real.

13

Complexidade: A cmera fotogrfica digital interage com o mundo real, conectando-se a diversos dispositivos externos como de captura de sinais, de comunicao e de armazenamento. Cada dispositivo desses exige protocolos de comunicao e rotinas de controle prprios, reatividade e, muitas vezes, programao concorrente. O sistema, composto por sensor CCD, interface USB, conversores A/D, microcontrolador, DSP, carto de memria, tela LCD, teclado, etc., exige grande mincia e diviso de tarefas no projeto.

Prazos e riscos no desenvolvimento: como o mercado de cmeras de extrema concorrncia e repleto de inovaes tecnolgicas, as oportunidades para injetar um modelo novo so raras, apertando o cronograma e aumentando os riscos no projeto.

3.2 EXERCCIO 2 Este estudo de caso foi baseado no material de [4]. Uma possibilidade para o processo de desenvolvimento do rob : Concepo do Produto

Avaliao da existncia de robs semelhantes no mercado, do interesse do pblico e do oramento disponvel (viabilidade econmica do projeto). Engenharia de Requisitos

Avaliao dos requisitos do rob. Pode-se proceder com a construo de prottipos funcionais dele, visando produo de um documento de especificao, que compila suas necessidades funcionais e no-funcionais, o problema a ser ultrapassado, etc. Engenharia de Sistema

Trata-se o rob como um conjunto de hardware, software e mecnica. Aqui se planeja a soluo tentando fracionar o rob em partes dependentes, o que levar s especificaes do software, do hardware e da mecnica. Processo de Desenvolvimento de Hardware

Analisando-se os requisitos de hardware do rob, esta fase procede com o projeto do hardware, na montagem e avaliao. O projeto do hardware inicia-se com a definio da arquitetura do hardware e dos componentes principais, produzindo o diagrama esquemtico e o projeto da placa de circuito impresso. Processo de Desenvolvimento de Software

14

Segue a mesma linha processo de desenvolvimento de hardware. Processo de Desenvolvimento da Mecnica

Idem item anterior, para a mecnica do rob. Integrao do Sistema

Esta etapa coleta os resultados os processos de desenvolvimento de hardware, software e mecnica, integrando-os e buscando ajustes. Teste de Sistema

Agora o rob, j integrado, seria visto como uma caixa preta. Confronta-se ento as expectativas da anlise de requisitos com o resultado obtido. Teste em Campo

Poderia se produzir um lote pequeno de robs de limpeza e distribu-lo a um pblico que teria a funo de test-lo por um tempo determinado, em busca de melhorias. Documentao de Produto e de Produo

Caso o projeto obtivesse sucesso, seria vivel o projeto de uma linha de produo em escala maior. Adicionalmente, a criao de uma documentao robusta para desenvolvedores futuros e usurios, assim como jigas de teste, mostra-se valioso. Empacotamento de produto

Por fim, o rob de limpeza de pisos poderia se tornar um produto completo, com embalagem, manual e material de marketing. 3.3 EXERCCIO 3 A evoluo das memrias ROM seguiu basicamente a sequncia ROM Mscara PROM EPROM EEPROM FLASH. Uma ROM Mscara (do ingls mask read-only memory) uma memria digital no-voltil que s gravada fisicamente uma vez, na prpria fbrica, no permitindo alterao futuras. Uma PROM (do ingls programmable read-only memory) tem os trancados por

um fusvel ou anti-fusvel. Pode ser programada s uma vez depois do fabrico pelo "rebentamento" dos fusveis. Uma EPROM (do ingls erasable programmable read-only memory) uma evoluo da PROM que pode ser programada por um dispositivo eletrnico. Uma vez programada, s pode ser apagada pela exposio a luz ultravioleta.

15

Ao contrrio de uma EPROM, uma EEPROM pode ser programada e apagada vrias vezes, eletricamente. Admite um nmero quase ilimitado de leituras e entre 100.000 e 1 milho de escritas. Por fim, a memria FLASH uma variao popular e moderna da EEPROM, cujas clulas necessitam de uma rea menor. Oferece um tempo de acesso rpido (cerca de 10 ns), embora no to rpido como a memria voltil. 3.4 EXERCCIO 4 A memria RWM um tipo de memria voltil com acesso aleatrio aos dados e o suporte leitura e gravao de dados. A RWM Dinmica uma memria que requer a atualizao peridica do contedo de cada clula. Uma importante vantagem a grande capacidade de armazenamento oferecida por este tipo de tecnologia e a alta densidade, pois cada clula possui apenas um transistor e um capacitor. A RWM Esttica, por sua vez, no requer atualizao dos dados, mas consome mais energia e aquece mais que a RAM Dinmica. Cara clula possui seis transistores, o que confere uma densidade menor e maior custo. So muito mais rpidas. 3.5 EXERCCIO 5 Um processador RISC capaz de executar suas instrues mais rapidamente que um processador CISC. A ideia principal que apesar de um processador CISC ser capaz de executar centenas de instrues diferentes, apenas algumas so usadas frequentemente. Pode-se ento criar um processador otimizado para executar apenas estas instrues simples e mais frequentes. Em conjunto com um software adequado, este processador capaz de desempenhar quase todas as funes de um processador CISC, acabando por compensar suas limitaes com uma maior velocidade de processamento. indiscutvel, porm, que em instrues complexas os processadores CISC se saem melhor. Por isso, ao invs uma tecnologia dominar a outra, atualmente vemos processadores hbridos, que so essencialmente processadores RISC, mas incorporam muitos recursos encontrados nos processadores CISC (ou vice-versa). 3.6 EXERCCIO 6 A arquitetura ARM foi desenvolvida na dcada de 1980 pela empresa ARM. O

16

modelo de negcios da empresa consiste na venda de licenas do projeto do seu processador para dezenas de empresas fabricantes de microcontroladores [4]. Esta estratgia, aliada ao baixo custo, simplicidade da arquitetura e otimizao no consumo de energia, posicionando-a como a melhor relao DMIPS/uW do mercado, garantiu a enorme popularidade da arquitetura ARM, que domina o mercado de sistemas embarcados.

3.7 EXERCCIO 7 a) r0 = 0x00000000 (se houvesse 33 bits seria 0x100000000) b) N = 0 (se considerarmos os operandos SIGNED, 0x00000000 positivo) Z = 0 (resultado zero) C = 1 (se considerarmos os operandos UNSIGNED, na adio houve overflow) V = 0 (se considerarmos os operandos SIGNED, na adio no houve overflow) 3.8 EXERCCIO 8 V F (modo Undef usado para manipular instrues no definidas) F (modo System compartilha os registradores r13 (sp) e r14 (lr) com o modo User) V F (CMP r3, #11 equivale a subtrair 15 de 11 e modificar as condition flags. O borrow vai a 0 (no foi necessrio emprestar) e portanto o carry bit 1) 3.9 EXERCCIO 9 Uma possibilidade:
x While EQU ADR LDR CMP BGE ... B ... 0x00008000 r1, x r2, [r1] r2, #17 Fim_while While ; endereo de x

; r2 tem o valor de x ; x >= 17? ; sim, sai do while ; no, executa bloco

Fim_while

3.10

EXERCCIO 10

Uma possibilidade:

17

if

else

endif

LDR LDMIA SUB CMP BGE SUB MOV B MOV ADD ADD B

r10, =vetor r10!, {r1-r9} r11, r8, r9 r11, #3 else r1, r2, r3 r8, #30 endif r9, #5 r12, r5, r6 r4, r12, r7 endif

; ; ; ; ; ; ; ;

carrega vetor r11 = x - y x y >= 7? sim, vai para o else no, a = b - c x = 30 pula o else y = 5;

; d = e + f + g

3.11

EXERCCIO 11

Uma possibilidade:
For (x=1; x < 20; x++) { // bloco }

3.12

EXERCCIO 12

Quando ocorre uma exceo, o processador ARM [7]: Copia o CPSR em SPSR_ <modo> Seta os bits apropriados de CPSR o Muda para o estado ARM o Muda para o modo de exceo o Desabilita interrupes (se necessrio) Carrega o endereo de retorno em LR_<modo> PC aponta para o endereo do vetor

Para retornar da exceo: Restaura o CPSR com o valor de SPSR_<modo> Restaura o PC com o valor de LR_<modo>

3.13

EXERCCIO 13

Uma possibilidade de projeto, baseada em [6], :

18

3.14

EXERCCIO 14

Uma possibilidade de projeto, baseada em [2], :

19

3.15

EXERCCIO 15

A programao concorrente surge para atender projetos de software com uma complexidade grande. Traz vantagens como maior modularidade e estruturao de cdigo, possibilidade de reuso de cdigo e maior diviso de tarefas entre a equipe. Alm disso, h controle sobre o bloqueio e desbloqueio de tarefas e uma abstrao do hardware por baixo do sistema operacional, que se encarrega de gerenciar os recursos. 3.16 EXERCCIO 16

A implementao fere o princpio de Dijkstra que aconselha se evitar deadlocks. Imagine que a tarefa T1 execute a linha T1_quer = TRUE e o sistema operacional escalone a tarefa T2. Se a tarefa T2 executar at a verificao do while suspender porque T1_quer = TRUE. A tarefa T1 voltar a executar exatamente em sua verificao de while e tambm suspender porque T2_quer = TRUE. E este ciclo se repetir indefinidamente; sempre que uma tarefa for escalonada, ir verificar se a outra deseja acessar o recurso (o que ser verdadeiro) e suspender, entrando em deadlock. 3.17 EXERCCIO 17

Se o sistema operacional desabilitar as interrupes quando a rotina wait() for chamada, esta instruo, mesmo com vrias linhas de cdigo, s contm uma instruo que faz acesso a um recurso compartilhado (SWP r1, r1, [r2]), que do tipo RMW

(read-modify-write) e atmica. Portanto, a rotina wait()se comportar como atmica e o princpio da excluso mtua no ser ferido.

20

3.18

EXERCCIO 18 Cenrio / Soluo


Tarefa 1 Tarefa 2

Alg. de Peterson
APROPRIADO

Semforos
APROPRIADO

Mensagens
APROPRIADO

Memria

Processador Tarefa N

Cenrio: UNIPROCESSADOR
Processador 1 Processador 2

APROPRIADO

APROPRIADO

APROPRIADO

Memria

Processador N

Cenrio: MULTIPROCESSADOR MEMRIA COMPARTILHADA


APROPRIADO

Cenrio: MULTIPROCESSADOR MEMRIA DISTRIBUDA

3.19

EXERCCIO 19

Primeiramente, o cdigo inclui alguns cabealhos referentes ao PET e prottipos de funes. Na rotina de inicializao do kernel, Init(), criam se trs tarefas de mesma prioridade e no preemptivas: Sender: esta tarefa de envio cria identificadores para as tarefas de resposta e recebimento, uma mensagem para envio e um buffer de recebimento de resposta. Ento, em um loop infinito, dorme por um tempo definido, envia uma mensagem

21

sncrona para a tarefa de resposta e bloqueia. Quando recebe uma resposta, a imprime na tela. Ento, obtm o tempo atual do sistema e envelopa seu valor em segundos e nanosegundos em uma mensagem. Por fim, faz um envio assncrono dessa mensagem (no bloqueia aguardando resposta) e reinicia o ciclo indefinidamente. Replier: esta tarefa de resposta inicialmente cria um buffer de recebimento de mensagens e uma mensagem de resposta. Ento, entra em um loop infinito em que retira mensagens sncronas da caixa postal (caso no haja nenhuma bloqueia at chegar uma mensagem nova), imprime na tela a mensagem que recebeu e responde com sua mensagem padro. Receiver: esta tarefa de recebimento imprime na tela sempre que recebe 1000 mensagens assncronas da tarefa Sender.

3.20

EXERCCIO 20

a) O escalonador uma entidade do sistema operacional responsvel por selecionar em um ambiente multitarefa qual o processo ir utilizar o processador, dividindo-o o de forma justa entre os processos aptos.

b) Seus objetivos principais so: Maximizar a utilizao do processador Privilegiar processos crticos Maximizar o throughput do sistema Minimizar o tempo de espera Minimizar o tempo de resposta

c) Escalonadores no-preemptivos permitem que processos rodem at o fim de execuo sem serem interrompidos por eventos externos. Escalonadores preemptivo so capazes de suspender processos durante sua execuo para dar tempo de processador a outro processo.

d) No escalonamento Round Robin, os processos so mantidos em uma fila circular. A cada processo se atribui um tempo durante o qual ele poder utilizar o processador (denominado quantum). Nesse algoritmo, um processo perde o processador quando libera

22

explicitamente o processador, realiza uma chamada de sistema (bloqueio), termina sua execuo ou quando sua fatia de tempo esgotada. No escalonamento preemptivo Rate Monotonic, muito empregado em sistemas operacionais de tempo real, atribui-se a prioridades estticas aos processos. A maior prioridade do processo com menor perodo de ciclo.

23

4 REFERNCIAS

[1]

ARM

CONDITION

FLAGS.

Disponvel

em:

<http://blogs.arm.com/software-

enablement/206-condition-codes-1-condition-flags-and-codes/ >. Acesso em 05 dez 2011.

[2] CONCURRENT HIERARCHICAL STATE MACHINE. Disponvel em: <http://chsm.sourceforge.net/examples/microwave/>. Acesso em 06 dez 2011.

[3] EXERCISES ARM ARCHITECTURE AND INSTRUCTION SET. Disponvel em: < http://www.ict.kth.se/courses/2B1445/Seminars/Seminar1/2B1445_S1_Ex_InstructionSet.pdf >. Acesso em 05 dez 2011.

[4] RENAUX, Douglas P. B.; STADZISZ, Paulo C. Software Embarcado (captulo de livro). Curitiba: UTFPR.

[5] SEAL, David. ARM architecture reference manual. 2 ed. Addison-Wesley, 2000.

[6] OBJECT MANAGEMENT GROUP. OMG Unified Modeling Language Specification. Disponvel em: <http://www.jeckle.de/files/omg-uml-1.3.pdf>. Acesso em 04 dez 2011

[7] THE ARM ARCHITECTURE. Slides. Disponvel em: <www.inf.u-szeged.hu/~havasi/>. Acesso em 06 dez 2011.

You might also like