Вы находитесь на странице: 1из 6

Aula 6: Concorrncia em Entrada/sada e linguagens de programao concorrente A interao entre a mquina e o usurio se d atravs de dispositivos de entrada e sada, como

mouse, teclado, monitores e impressoras, microfones, caixas de som. H tambm dispositivos de E/ que no intera!em diretamente com o usurio, como os disco e o rel"!io. A estrutura do sistema de E/ dividida nas se!uintes camadas# Processos do usurio $ c%ama E/ , coloca no spool Software independente do dispositi o $ &omeao, proteo, bloqueio, utili'ao de buffer, alocao !ri ers dos dispositi os $ (ornece os recursos dos dispositivos para o ) *ratadores de interrupo $ Acorda o driver quando E/ est completa Hard+are $ Executa as opera,es de E/

-. Estrutura de Hard+are -.-. .ispositivo /omposto de uma controladora e o dispositivo em si, classificado em duas cate!orias# 0 1locos# arma'enam as informa,es em taman%os fixos. o os discos. 0 /aractere# envia e recebe um fluxo de caracteres. o o mouse, teclado, interfaces de redes 0 Exce,es# rel"!ios 2cloc34, causam interrup,es em perodos definidos e limitam o tempo de execuo dos processos. o a unidade de tempo de um computador. -.5. /ontroladora 6 o componente eletr7nico de um dispositivo, que contm um conector para conexo em um barramento. A funo da controladora converter o fluxo serial de bits recebidos do dispositivo em um bloco de b8tes para envio pelo barramento. A controladora tambm efetua corre,es de erro de nvel baixo. -.9. E/ mapeada na mem"ria :ecurso que consiste em mapear os re!istradores de controle das controladoras no espao da mem"ria principal. &a E/ mapeada por porta % dois espaos de endereamento distintos. 0 .esvanta!ens# lentido, dependendo do dispositivo que est usando a mem"ria. 0 ;anta!ens# facilita a pro!ramao, pois no % distino entre E/ e mem"ria, bem como o controle de acesso aos dispositivos de E/ pode ser feito pelo !erenciamento de mem"ria 2afinal os re!istradores dos dispositivos so variveis4< =til em />?s que apresentam espao de endereamento limitado. -.@. .AA 2Acesso direto B mem"ria4 :ecurso que desonera a />? no que di' respeito B transferCncia de dados entre uma controladora e a mem"ria. ) .AA pode trabal%ar com uma ou vrias transferCncias por ve'. A />? pro!rama a .AA para que ela passe a controlar o fluxo de dados entre o controlador e a mem"ria. A />? volta a ser acionada apenas quando conclui0se a transferCncia de dados.

-.D. Enterrup,es inal enviado por um dispositivo de E/ que indica o fim de seu trabal%o. 5. >rincpios de soft+are de E/ 5.-. )bFetivos a4 EndependCncia de dispositivo# escrever soft+ares de acesso aos dispositivos sem necessidade de con%ecC0los b4 *ransferCncia# sncrona ou assncrona c4 *ratamento de erros no tratados pela controladora. 5.5. (ormas de E/ a4 E/ pro!ramada# A />? a!uarda a concluso da tarefa pelo dispositivos de E/ . b4 E/ por interrupo# A />? reali'a tarefas paralelas e avisada do trmino da concluso do E/ por meio de uma interrupo. Aesmo assim, como a troca de dados entre controladora e mem"ria se d a cada bloco ou palavra, ocorrem ainda muitas interrup,es. c4 E/ usando .AA# A />? pro!rama a .AA a reali'ar a tarefa de E/ diminuindo o n=mero de interrup,es, pois a />? s" volta a ser c%amada ap"s a concluso da transferCncia. 5.9. /amadas de soft+are de E/ a4 *ratadores de interrupo# parte do soft+are que trata as interrup,es dos dispositivos de E/ b4 .rivers# /"di!o, normalmente fornecido pelo fabricante do dispositivo, que tem por obFetivo permitir que o ) controle o dispositivo. c4 oft+are de E/ independente do dispositivo# executa as fun,es de E/ comuns para todos os dispositivos, como o fornecimento de uma interface uniforme para os drivers 2re!ras que devem ser atendidas pelo driver para funcionamento4, relat"rio de erros, alocao e liberao de dispositivos, etc. 5.@. E/ no espao do usurio ?tili'ao de tcnicas como o spool e a requisio de E/ por meio de bibliotecas especficas. "# E/S no $inu% 0 &o ?nix, cada driver precisava ser compilado Funto com o seu 3ernel 0 /om o Ginux, os drivers podem ser carre!ados dinamicamente no 3ernel, atravs do comando modprobe 0 Alm dos dispositivos de bloco e caractere, o Ginux trabal%a com dispositivos de rede, onde a transmisso ocorre a partir de uma estrutura c%amada de soc3et 2semel%ante a uma caixa postal4 &# E/S no 'indows 0 )s drivers so carre!ados dinamicamente no n=cleo

0 )s drivers podem ser empil%ados, onde um driver fornece recursos para outro driver. Ex. .ispositivos da ? 1. H um driver !enrico para o ? 1 e um driver especfico para o dispositivo conectado ao barramento. (# $inguagens de programao concorrentes D.-. A.A >aralelismo efetuado atravs de rende'vou' 2troca de mensa!ens4. (ontes# E1E *A, :obert. H. /onceitos de lin!ua!ens de pro!ramao. D. ed. *raduo Ios /arlos 1arbosa dos antos. >orto Ale!re# 1oo3man, 5JJJ e %ttp#//+++.Fr.eti.br/mestrado/cmpJ@-/encontros.%tml D.5. Erlan! Gin!ua!em funcional criada pela Ericson para utili'ao em sistemas distribudos tolerantes a fal%as. ?tili'a a troca de mensa!ens para comunicao entre processos. (onte# %ttp#//+++.lbd.dcc.ufm!.br/colecoes/erad/5JJK/J95.pdf D.9. Lo Gin!ua!em apoiada pela Loo!le, cuFa sintaxe muito parecida com a lin!ua!em /, porm com mais recursos e menos suscetvel a erros. >ossui vrias formas de comunicao entre processos, como os mutexes, semforos e monitores. >orm implementa um mecanismo de alto nvel con%ecido por canal. )s canais so buffers compartil%ados onde os processos podem sincroni'arem0se e, consequentemente, trocar informa,es. (onte# %ttp#//!olan!.or!/doc/ D.@. Gua Gi!ua!em utili'ada para pro!ramao de Fo!os e tambm para desenvolvimento do middle+are de *; .i!ital do 1rasil. >ossui diversos mtodos de paralelismo, mas o que destaca0se a comunicao entre processos. (ontes# %ttp#//+++.inf.puc0rio.br/Mroberto/docs/r8JN0JD.pdf e %ttp#//itvbr.com.br/blo!/daniel/lua0o0mundo0se0rende0a0lin!ua!em0de0pro!ramacao0brasileira )arefa *: +uest,es so-re E/S -. >or que a .AA desocupa a />?, aumentando o desempen%o de um computadorO A tcnica de .AA permite que um bloco de dados seFa transferido entre mem"ria e perifricos, sem a interveno da ?/>, exceto no incio e no final da transferCncia. Puando o sistema deseFa ler ou !ravar um bloco de dados, so passadas da ?/> para o controlador informa,es como# onde o dado est locali'ado, qual o dispositivo de E/ envolvido na operao, posio inicial da mem"ria de onde os dados sero lidos ou !ravados e o taman%o do bloco de dados. /om estas informa,es, o controlador reali'a a transferCncia entre o perifrico e a mem"ria principal, e a ?/> somente interrompida no final da operao. A rea de mem"ria utili'ada pelo controlador na tcnica de .AA c%amada buffer, sendo reservada exclusivamente para este prop"sito. 5. >orque a E/ pro!ramada consome muita />?O &a E/ pro!ramada, cabe ao processador obter os dados na interface e coloc0los na mem"ria 2nas opera,es de entrada4, e obtC0los na mem"ria e entre!0los B interface apropriada 2nas opera,es de sada4. Puando o processador envia um comando para o modulo de E/ , ele tem de esperar at que essa operao seFa completada. e o processador for mais rpido que o modulo de E/ , essa espera

representara um desperdcio de tempo de processamento. 9. ) driver um soft+are que comp,e uma das camadas de soft+are de E/ . Pual a sua funoO Pual sua relao com a concorrCnciaO ?m driver uma camada de soft+are que fa' a comunicao do sistema operacional com o controlador do %ard+are que por sua ve' fa' a interface com o %ard+are. .rivers escondem as diferenas entre os diversos dispositivos, atravs de uma interface de pro!ramao =nica. .river de dispositivo responsvel por pro!ramar as rotinas necessrias ao acesso e B !erCncia de um dispositivo especfico. 6 necessrio que o soft+are de E/ reali'a a pro!ramao de re!istradores internos de controladores que comp,em a interface fsica dos dispositivos e pro!rame os respectivos tratadores de interrupo, assim cada tipo de dispositivo requer um driver apropriado. @. Pue tipos de dispositivos de E/ no intera!em diretamente com o usurioO .ispositivos eletr7nicos ex# discos, fitas, atuadores, controladores. .ispositivos remotos ex# modem, interfaces de rede. )arefa .: Pes/uisa de paralelismo em E/S -. Geia o subcaptulo D.@.- do livro istemas )peracionais Aodernos, de Andre+ *anenbaum, e responda as se!uintes quest,es e relacionado0os ao conceitos de concorrCncia# a4 Pue :AE.O .e que forma ele aFuda a aumentar o desempen%o e a confiabilidade dos dados arma'enados em disco. :AE., si!la de redundant arra8 of independent dis3s 2/onFunto :edundante de .iscos Endependentes4, um mecanismo criado com o obFetivo de mel%orar o desempen%o e se!urana dos discos r!idos existentes em um >/ qualquer, atravs do uso de H.s extras. Q formado um por um conFunto de dois ou mais discos r!idos com dois obFetivos bsicos# tornar o sistema de disco mais rpido acelerando o carre!amento dos dados 2 :AE. J4, ou tornar o sistema de disco mais se!uro, atravs de uma tcnica c%amada espel%amento 2 :AE. -4. b4 Explique as diferenas entre o :AE. J, -, e D. Pual2is4 deles aumentam o desempen%o por meio do paralelismoO :AE. J consiste em dividir os dados usando um disco extra em paralelo, dividindo a informao atravs dos dois H.s disponveis, sua vanta!em est no fato de ser possvel ler e !ravar o dobro de informa,es ao mesmo tempo, assim diminuindo o tempo de operao quase pela metade :AE. - e a replicao de dados, como seu pr"prio nome indica, fa' com que dois ou mais discos possuam exatamente o mesmo conte=do, tornando um c"pia idCntica do outro. Assim, sempre %aver um bac3up pronto para ser utili'ado. :AE. D con%ecida com data !uardin! ou strip set com paridade. Essa implementao est em criar informa,es a partir de clculos booleanos feitos com o dado =til 2a informao a ser !ravada no disco4, !ravando essa paridade em um dos discos e de forma distribuda. >ara implementao do :AE. D, no mnimo de 9 discos sendo que um para paridade. 5. Geia o subcaptulo D.@.9 do livro istemas )peracionais Aodernos, de Andre+ *anenbaum, e tente explicar como funciona os se!uintes al!oritmos de escalonamento de disco, relacionando0os aos conceitos de concorrCncia# a4 do elevador<

Este al!oritmo reprodu' o comportamento dos elevadores em edifcios# a cabea de leitura se move em uma direo e atende aos pedidos que encontra pela frente, ap"s o =ltimo pedido, ela inverte seu sentido de movimento e atende os pr"ximos pedidos, esse movimento tambm semel%ante ao dos limpadores de para0brisas de um autom"vel. A !rande vanta!em do al!oritmo do elevador atender aos pedidos de forma mais uniforme ao lon!o do disco eliminando a possibilidade de inanio 2quando um processo nunca executado4 de pedidos e mantendo um bom desempen%o, ele adequado para sistemas com muitos pedidos concorrentes de acesso a disco em paralelo, como servidores de arquivos, este al!oritmo tambm con%ecido na literatura como /A& ou G))R. b4 de posicionamento mais curto primeiro 2 (4.

Esta estrat!ia de escalonamento de disco consiste em sempre atender ao pedido que est mais pr"ximo da posio atual da cabea de leitura 2que !eralmente a posio do pedido que acabou de ser atendido4, dessa forma, ela busca redu'ir os movimentos da cabea de leitura, e com isso o tempo perdido entre os acessos atendidos. Apesar de oferecer um bom desempen%o, esta estrat!ia pode levar B inanio 2starvation4 de requisi,es de acesso# caso existam muitas requisi,es em uma determinada re!io do disco, pedidos de acesso a blocos lon!e dessa re!io podem Scar muito tempo esperando. )arefa ": Pes/uisa em linguagens /ue implementam recursos de paralelismo >esquise os mecanismos de paralelismo e concorrCncia 2semforos, monitores, comunicao, entre outros4 existentes nas lin!ua!ens /, /T, ;ale@, Iava e >ascal /oncorrente.

Linguagem C Semforos#
>ara utili'ar semforos utili'a0se Tinclude Usemap%ore.%V int semW+ait2semWt X sem4< ?tili'ada para fa'er um >/do+n sobre um semforo, ou seFa, decrementa seu valor e bloqueia se o valor estava em 'ero. int semWpost2semWt X sem4< ?tili'ada para fa'er um ;/up sobre um semforo, ou seFa, incrementa o seu valor. e o semforo valia J e al!um processo/t%read estava bloqueado neste semforo ento ser liberado e poder executar quando selecionado pelo escalonador. int semW!etvalue2semWt Xsem, int Xsval4< ?tili'ada para capturar 2ler4 o valor de um semforo sem reali'ar nen%uma operao sobre ele. ) valor lido e arma'enado no se!undo parYmetro.

0onitores:
/ no implementa monitores

Soc1ets:
6 um componente do sistema que permite a comunicao entre processos atravs da rede por meio dos c%amados protocolos de transporte. ?tili'a0se as se!uintes declara,es# s8s/t8pes.% 0V definio de tipos de dados< s8s/soc3et.% 0V fun,es e constantes relativas a soc3ets< netinet/in.% 0V para manipulao de estruturas, dados e endereos da famBlia internet< arpa/inet.% 0V defini,es para fun,es destinadas a opera,es com soc3ets< netdb.% 0V permite o uso de fun,es relativas a %ostnames, portas, etc. A funo soc3et24 definida no %eader s8s/soc3et.%.

Criao e 0anuteno de Processos:

As principais s8stem calls 2c%amadas do sistema4 disponveis para a criao e manipulao de processos so as se!uintes# for3 0V cria um processo fil%o< +ait 0V espera que um processo termine< !etpid 0V devolve o pid de um processo< exit0V termina o processo actual. >ara usar sero necessrias as bibliotecas unistd.%, s8s/t8pes.%, stdlib.% e s8s/+ait.%.

Linguagem C# Semforos#
>ara utili'ar a classe emforo, utili'a0se namespace 8stem.*%readin!. emap%ore. >odemos usar a classe semforo para controlar um pool de t%reads, para isso existem 5 mtodos que usado, Hait)ne24 e :elease24. Hait)ne24: Este mtodo dever ser c%amado lo!o no comeo, para que a t%read atual s" entre em execuo quando a outra t%read estiver terminado. Este mtodo indica ao semforo que existe uma t%read a!uardando a execuo e incrementa a conta!em dentro do semforo. :elease24: Este mtodo deve ser c%amado sempre que um t%read for finali'ada, ou quando se deseFar liberar para que outra t%read possa entrar em execuo. Este mtodo decrementa a conta!em do semforo<

0onitores:
>ara utili'ar monitores utili'a0se 8stem.*%readin!. A /lasse Aonitor (ornece um mecanismo que sincroni'a o acesso aos obFetos, uma coleo de mtodos estticos que d acesso ao monitor associado a um obFeto particular, que especificado atravs primeiro ar!umento do mtodo, a classe fornece os mtodos se!uintes#
Monitor.Enter(): Adquire um bloqueio exclusivo no objeto especificado. Esta ao tambm marca o in cio de uma seo cr tica. Monitor.Exit(): !ibera um bloqueio exclusivo no objeto especificado. Esta aco tambm assinala o fim de uma seco cr tica prote"ida pelo objeto bloqueado. Monitor.#ules():. $otifica um se"mento na fila de espera de uma mudana no estado do objeto bloqueado. Monitor.%ait():. !ibera o bloqueio em um objeto e bloqueia o se"mento atual at que ele readquire o bloqueio. Monitor.#ulesAll(): $otifica os t&picos de espera de uma mudana de estado do objeto. Monitor.'r(Enter(): 'enta adquirir um bloqueio exclusivo no objeto especificado.

Вам также может понравиться