Implemente uma solução para o problema da barreira usando mutexes e variáveis condição da biblioteca das pthreads. A solução consiste de 2 rotinas:

Documentos relacionados
Cap 6: 4,5,8,9,10,11,12,15,16,21 fazer diagramas, usar análise por cálculo do tempo de resposta

LISTA DE EXERCÍCIOS PARA P2 INCLUI PROVAS ATÉ 2007/2

Prioridades com Teste de Escalonabilidade

Escalonamento Baseado em Prioridades Fixas

Alocação sequencial - filas

Sistemas de Tempo-Real

Responda às questões utilizando técnicas adequadas à solução de problemas de grande dimensão.

Sistemas de Tempo-Real

Mecanismos de Escalonamento

SÉRIE DE PROBLEMAS: CIRCUITOS DE ARITMÉTICA BINÁRIA. CIRCUITOS ITERATIVOS.

Escalonamento com Garantia

FICHA de AVALIAÇÃO de MATEMÁTICA A 10.º Ano Versão 3

Análise Temporal da Implementação da Fila de Aptos como Lista Ordenada e Lista Desordenada

FICHA de AVALIAÇÃO de MATEMÁTICA A 10.º Ano Versão 1

FICHA de AVALIAÇÃO de MATEMÁTICA A 10.º Ano Versão 4

FICHA de AVALIAÇÃO de MATEMÁTICA A 10.º Ano Versão 2

Mestrado Integrado em Engenharia Civil. Disciplina: TRANSPORTES Prof. Responsável: José Manuel Viegas

Suporte Básico para Sistemas de Tempo Real

2 Metodologia de Medição de Riscos para Projetos

SISTEMAS OPERACIONAIS. 2ª. Lista de Exercícios

PROVA 2 Cálculo Numérico. Q1. (2.0) (20 min)

Mecanismos de Sincronização com Variáveis Compartilhadas

TRANSPORTES. Sessão Prática 11 Dimensionamento de Interseções Semaforizadas

GABARITO ERP19. impedância total em pu. impedância linha em pu; impedância carga em pu; tensão no gerador em pu.

2ª Atividade Formativa UC ECS

Sistemas de Tempo-Real

ELE0317 Eletrônica Digital II

2 ENERGIA FIRME DE SISTEMAS HIDRELÉTRICOS

Psicologia Conexionista Antonio Roque Aula 8 Modelos Conexionistas com tempo contínuo

Programação Dinâmica. Fernando Nogueira Programação Dinâmica 1

6 ALOCAÇÃO POR ÚLTIMA ADIÇÃO (UA)

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu

Introdução. Uma lâmpada nova é ligada e observa-se o tempo gasto até queimar. Resultados possíveis

Ramos Energia e Automação

3. CIRCUITOS COM AMPOP S UTILIZADOS NOS SAPS

Guia 11 Escalonamento de Mensagens

Sistemas Operacionais

Fundamentos de Sistemas Operacionais

CURSO de ESTATÍSTICA Gabarito

3 Metodologia de Avaliação da Relação entre o Custo Operacional e o Preço do Óleo

ARQUITECTURA DE COMPUTADORES

Variáveis indexadas, somatórios e produtórios

UNIVERSIDADE CATÓLICA PORTUGUESA Faculdade de Ciências Económicas e Empresariais. Microeconomia I

Parte 1: Exercícios Teóricos

SISTEMAS OPERACIONAIS. 2ª. Lista de Exercícios

O Escalonamento de Tempo Real

Curso de extensão, MMQ IFUSP, fevereiro/2014. Alguns exercício básicos

Aula Características dos sistemas de medição

Arquitetura de Computadores

CONTROLADORES FUZZY. Um sistema de controle típico é representado pelo diagrama de blocos abaixo:

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu

RISCO. Investimento inicial $ $ Taxa de retorno anual Pessimista 13% 7% Mais provável 15% 15% Otimista 17% 23% Faixa 4% 16%

UNIDADE IV DELINEAMENTO INTEIRAMENTE CASUALIZADO (DIC)

RAD1507 Estatística Aplicada à Administração I Prof. Dr. Evandro Marcos Saidel Ribeiro

Introdução aos Sistemas Operacionais. Threads

Notas Processos estocásticos. Nestor Caticha 23 de abril de 2012

MÉTODOS DE ANÁLISE DE CIRCUITOS RESISTIVOS ANÁLISE NODAL

Variação ao acaso. É toda variação devida a fatores não controláveis, denominadas erro.

Teoremas de Otimização com Restrições de Desigualdade

u t = ν A primeira coisa que você deve perceber é que essa equação apresenta um derivada de 2 ordem. Vamos aprender a lidar com isso.

CAPÍTULO 2 - Estatística Descritiva

1. Obtenha o modelo de ½ carro:

Associação de resistores em série

UM PROBLEMA ECONOMÉTRICO NO USO DE VARIÁVEIS CLIMÁTICAS EM FUNÇÕES DE PRODUÇÃO AJUSTADAS A DADOS EXPERIMENTAIS

EXERCÍCIOS DE RECUPERAÇÃO PARALELA 4º BIMESTRE

CONCEITOS INICIAIS DE ESTATÍSTICA MÓDULO 2 DISTRIBUIÇÃO DE FREQÜÊNCIA - ELEMENTOS Prof. Rogério Rodrigues

ALGORITMO E PROGRAMAÇÃO

X = 1, se ocorre : VB ou BV (vermelha e branca ou branca e vermelha)

Capítulo 2. APROXIMAÇÕES NUMÉRICAS 1D EM MALHAS UNIFORMES

7 - Distribuição de Freqüências

Figura 8.1: Distribuição uniforme de pontos em uma malha uni-dimensional. A notação empregada neste capítulo para avaliação da derivada de uma

Prova P4/PS Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans MULTICICLO syscall space syscall addiu 1. .data 2.

BC0406 Introdução à Probabilidade e à Estatística Lista de Exercícios Suplementares 3 3 quadrimestre 2011

Análise de faltas balanceadas e não-balanceadas utilizando Z bar. 1. Análise de falta balanceada usando a matriz de impedância de barra (Z bar )

F-128 Física Geral I. Aula exploratória-11a UNICAMP IFGW

2 - Análise de circuitos em corrente contínua

3 Algoritmos propostos

8 - Medidas Descritivas

Análise de Regressão Linear Múltipla IV

MC504 Sistemas Operacionais MC514 Sistemas Operacionais: Teoria e

Resolução de Conflitos

Chapter 9 Location INTRODUÇÃO. Localização de Instalações. Problemas de comunicação

Prof. Oscar. Cap. 20 ENTROPIA E SEGUNDA LEI DA TERMODINÂMICA

Eletrotécnica AULA Nº 1 Introdução

Sincronização de Processos (2)

DELINEAMENTOS EXPERIMENTAIS

EXERCÍCIOS SUPLEMENTARES

CQ110 : Princípios de FQ

Análise Complexa Resolução de alguns exercícios do capítulo 1

Despacho Econômico de. Sistemas Termoelétricos e. Hidrotérmicos

3 Animação de fluidos com SPH

Estatística I Licenciatura MAEG 2006/07

3.3 Ordenação por Heap (Heapsort)

Extensões da Análise para Prioridades Fixas

1 a Lei de Kirchhoff ou Lei dos Nós: Num nó, a soma das intensidades de correntes que chegam é igual à soma das intensidades de correntes que saem.

IMPLEMENTAÇÃO DO MÉTODO DE FATORAÇÃO DE INTEIROS CRIVO QUADRÁTICO

Sincronização de Processos (2)

Transcrição:

1) Em um sstema que suporta programação concorrente apenas através da troca de mensagens, será crado um Servdor para controlar o uso das portas seras. Quando um processo Clente deseja usar uma porta seral, ele enva uma mensagem Aloca para o Servdor. Exstem N portas seras, todas equvalentes, mas cada uma pode ser usada somente por um Clente de cada vez. O Servdor nforma ao Clente a porta que ele va usar através da mensagem Porta p. Ao conclur o uso, o Clente enva para o Servdor a mensagem Lbera p. Suponha que exsta mas do que N processos Clentes. 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. 2) O problema dos letores/escrtores consste de um texto que pode ser ldo ou escrto por város processos. Consderando o códgo abaxo, responda justfcando: a) É possível város letores lerem ao mesmo tempo? b) É possível város escrtores escreverem ao mesmo tempo? c) É possível postergação ndefnda de um letor? d) É possível postergação ndefnda de um escrtor? nt nl = 0; semaphore tpo = 1; semaphore exclusvo = 1; vod letor( vod) f( nl > 0 ) ++ nl; else{ P( tpo ); nl = 1; -- nl; f( nl == 0 ) V( tpo ); vod escrtor( vod) P( tpo ); V( tpo ); 3) Em um programa concorrente exstem N processos trabalhadores e um únco processo fnalzador. O programa é tal que o processo fnalzador precsa esperar todos os processos trabalhadores termnarem para então ele fnalzar o programa. Este tpo de sncronzação é chamada de barrera e é típca da programação em máqunas paralelas. Implemente uma solução para o problema da barrera usando mutexes e varáves condção da bbloteca das pthreads. A solução consste de 2 rotnas: /* processo trabalhador meupd nforma que acabou sua parte do servço */ vod acabe (nt meupd); /* processo fnalzador fca bloqueado até todos os trabalhadores acabarem o servço */ vod espera_todos( vod );

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) 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) Determne se o conjunto de tarefas abaxo é escalonável, aplcando a análse baseada em tempo de resposta vsta em aula, quando: (a) prordades são atrbuídas conforme o deadlne monotônco; (b) prordades são atrbuídas conforme o taxa monotônco (rate monotonc); T1: C1=3 P1=20 D1=6 T2: C2=3 P2=15 D2=7 T3: C3=4 P3=9 D3=8 6) Consderando o mesmo conjunto de tarefas, é possível crar uma escala de tempo não preemptva para atender os deadlnes solctados? Justfque tentando crar uma escala do tpo usada por executvo cíclco. 7) 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) Interrupções desabltadas. (b) Kernel não é preemptvo. 8) Indque dos aspectos do projeto de um sstema operaconal que afetam o comportamento temporal de uma aplcação, atrapalhando o atendmento dos requstos temporas. 9) Eventos são coletados em uma rede composta por 4 computadores, e assocados com a hora local do computador que detecta cada evento. Para que os mesmos possam ser analsados em conjunto, é necessáro um erro máxmo entre relógos de 100 mlsegundos. Os crstas usados nesses computadores possuem uma precsão de 10-5 em relação a sua freqüênca nomnal, para mas ou para menos. Supondo que pode exstr um erro ncal de 40 mlssegundos entre quasquer dos relógos da rede, calcule quanto tempo va levar até que os dos relógos com maor erro entre eles apresentem um erro de 100 mlsegundos, supondo sempre o por caso.

10) Desenhe o grafo de precedênca do códgo abaxo: man() { [1] nt f1, f2, f3; /* Identfca processos flho*/ [2] prntf("alo do pa\n"); [3] f1 = fork( codgo_do_flho ); /* Cra flho 1 */ [4] prntf("flho 1 crado\n"); [5] f2 = fork( codgo_do_flho ); /* Cra flho 2 */ [6] prntf("flho 2 crado\n"); [7] wat( f1); [8] prntf("flho 1 morreu\n"); [9] f3 = fork( codgo_do_flho ); /* Cra flho 3 */ [10] prntf("flho 3 crado\n"); [11] wat( f3); [12] prntf("flho 3 morreu\n"); [13] wat( f2); [14] prntf("flho 2 morreu\n"); [15] ext(); codgo_do_flho() { [16] prntf("alo do flho\n"); [17] ext(); 11) Em um sstema que suporta programação concorrente apenas através da troca de mensagens, será crado um Servdor de Semáforo. Suponha que o processo S será o servdor, mplementando a funconaldade de um únco semáforo ncalzado com 1. O protocolo que permte a um processo clente executar operações P e V é mostrado abaxo. Mostre o algortmo do processo S, em português estruturado. Apresentar a solução como fo feto para o Servdor de Buffer vsto em aula. Supor receve bloqueante. P: --valor Se valor < 0 então bloquea quem executou o P V: ++valor Acorda o prmero da fla, se houver alguém bloqueado Solcta P Clente Lberado Servdor Solcta V Clente

12) Em um sstema que suporta programação concorrente apenas através da troca de mensagens, será crado um Servdor para controlar o uso das portas seras. Quando um processo Clente deseja usar uma porta seral, ele enva uma mensagem Aloca para o Servdor. Exstem N portas seras, todas equvalentes, mas cada uma pode ser usada somente por um Clente de cada vez. O Servdor nforma ao Clente a porta que ele va usar através da mensagem Porta p. Ao conclur o uso, o Clente enva para o Servdor a mensagem Lbera p. Suponha que exsta mas do que N processos Clentes. 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. Aloca Clente Porta p Servdor Lbera p 13) Suponha a exstênca de um texto que é acessado por város processos Letores e um processo Escrtor. Quando o Escrtor está acessando, nenhum Letor pode ler o texto, pos podera acessar uma versão nconsstente. Por outro lado, é permtdo que város Letores acessem o texto smultaneamente. Implemente a solução descrta abaxo, usando os recursos da bbloteca Pthreads. Não é necessáro crar as threads, apenas mostrar o códgo de acesso ao texto. Letor: Escrtor: Se número de letores acessando for maor que zero Então Incrementa número de letores acessando Senão Se escrtor acessando Então Espera escrtor sar Senão Faz Letores acessando gual a 1 Decrementa número de letores acessando Se número de letores acessando for gual a zero Então Lbera o texto Se número de letores acessando for maor que zero Então Espera fcar lvre Senão Indca escrtor acessando Lbera o texto 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 );

14) 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 deadlock no caso de 2 produtores e 2 consumdores? 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 ); 15) Descreva a dferença entre deadlnes hard, frm e soft, e ndque um exemplo para cada um deles. 16) 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. O valor ncal do semáforo é 1. 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 ); 17) 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 deadlock no caso de 2 produtores e 2 consumdores? 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 ); 18) Indque dos aspectos do projeto de um sstema operaconal que afeta o comportamento temporal de uma aplcação.

19) Qual a dferença entre tempo real crítco e tempo real brando? Forneça também uma aplcação exemplo para cada tpo. 20) 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. Produtor Pede Servdor lvre Consumdor 1 Produtor End 2 Dados 21) O problema dos letores/escrtores consste de um texto que pode ser ldo ou escrto por város processos. Consderando o códgo abaxo, responda justfcando: e) É possível város letores lerem ao mesmo tempo? f) É possível város escrtores escreverem ao mesmo tempo? g) É possível um letor e um escrtor acessarem ao mesmo tempo? h) É possível postergação ndefnda de um escrtor? Consumdor 2 nt nl = 0; semaphore tpo = 1; semaphore exclusvo = 1; vod letor( vod) f( nl > 0 ) ++ nl; else{ P( tpo ); nl = 1; -- nl; f( nl == 0 ) V( tpo ); vod escrtor( vod)

22) Usando semáforos, mplemente rotnas cujo comportamento seja smlar ao das funções wat e sgnal vstas em aula (pthreads) 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. Obs: O que é peddo são dos trechos de códgo em C, tal que um funcone como se fosse o wat e o outro funcone como se fosse o sgnal. Neste códgo em C, para obter atomcdade e bloquear tarefas, devem ser usados semáforos. 23) 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. 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 24) Consderando o mesmo conjunto de tarefas, é possível crar uma escala de tempo não preemptva para atender os deadlnes solctados? Justfque tentando crar uma escala do tpo usada por executvo cíclco. 25) Consdere um kernel preemptvo com as seguntes característcas: - Interrupções do tmer acontecem a cada 10 ms; - O tratador de nterrupções do tmer demora 1 ms para executar; - Dentro do kernel as nterrupções fcam desabltadas no máxmo por 2 ms de cada vez; - A carga do contexto de uma tarefa demora 0,1 ms e o salvamento do contexto de uma tarefa demora 0,2 ms. Supondo que a tarefa da aplcação de mas alta prordade execute a cada atvação um algortmo que demora (tempo de computação) no por caso 200 ms, qual será o seu tempo máxmo de resposta? Justfque cada termo da equação usada no cálculo.