Computación concurrente

La computación concurrente es una forma de cómputo en la cual varios cálculos se realizan concurrentemente, y no uno a la vez de forma secuencial.

Es una característica propia de un sistema, ya sea un programa, una computadora o una red, en la cual existe un punto separado de ejecución o "hilo de control" para cada proceso. Un sistema concurrente es aquel donde un cálculo puede avanzar sin esperar a que el resto de los cálculos se completen.[1]

La computación concurrente se considera una forma de programación modular. Dentro de este paradigma un cálculo entero es factorado en varios sub cálculos que podrían ejecutarse concurrentemente. Los pioneros en este campo incluyen a Edsger Dijkstra, Per Brinch Hansen, y C. A. R. Hoare.

Introducción

El concepto de la computación concurrente suele ser confundido con el concepto de la computación paralela, las cuales están relacionadas pero son distintas.[2][3]​ Aunque ambas pueden ser descritas como "múltiples procesos ejecutándose dentro del mismo periodo de tiempo". En la computación paralela, la ejecución ocurre en el mismísimo instante físico: por ejemplo, en los diferentes procesadores o núcleos de una computadora multiprocesador. La computación paralela es imposible en una computadora con un procesador de un solo núcleo, la ejecución paralela es imposible ya que solo un cómputo puede procesarse en un instante dado (sin tener en cuenta casos especiales como por ejemplo la presencia de un coprocesador). En cambio, la computación concurrente consiste en que la vida de los procesos comparten el mismo tiempo, pero la ejecución de todos ellos no ocurre en el mismo instante.

Por ejemplo, múltiples procesos pueden ejecutarse en un solo procesador si se comparte el tiempo de ejecución, dándole a cada proceso una suma de tiempo limitada para ejecutarse. Solo un proceso se ejecuta en un instante dado, y si no completa su operación dentro de su tiempo, el proceso se coloca en pausa, y se le da lugar a otro proceso para iniciar o resumirse, hasta que le vuelva a tocar su tiempo.

Estructurar sistemas de software de manera que se componga por varias partes concurrentes y comunicadas entre sí es una muy buena forma de manejar la complejidad de una aplicación, más allá de si estas partes se ejecutan o no paralelamente.[4]

Coordinando el acceso a recursos compartidos

Uno de los mayores desafíos a la hora de diseñar programas concurrentes es el control de concurrencia: Asegurar el orden correcto de las interacciones o comunicaciones entre diferentes ejecuciones computacionales, y coordinar el acceso a los recursos compartidos entre estas ejecuciones.[5]​ Los problemas potenciales incluyen el bloqueo mutuo, las condiciones de carrera y la inanición. Consideremos por ejemplo el siguiente algoritmo para retirar dinero de una cuenta bancaria, representada por el recurso compartido balance.

bool retirar(int monto_a_retirar)
{
    if (balance >= monto_a_retirar)
    {
        balance -= monto_a_retirar;
        return true;
    } 
    return false;
}

Supongamos que balance = 500 y que dos hilos concurrentes hacen las llamadas retirar(350) y retirar(300). Si en ambas operaciones la línea 3 se ejecuta antes que la línea 5, en ambas operaciones balance >= monto_a_retirar retornará verdadero, y se procederá a sustraer el monto a retirar. Sin embargo, como ambos procesos ejecutaran los retiros, la cantidad total retirada será mayor al balance original. Este tipo de problema se beneficia del uso del control de concurrencias, o de algoritmos no bloqueantes.

Implementación

Existe una variedad de métodos a utilizar para implementar programas concurrentes, tales como implementar cada ejecución como un proceso del sistema operativo, o implementar los procesos computacionales como diferentes hilos del mismo proceso.

Interacción y comunicación

En algunos sistemas de cómputo concurrentes, la comunicación entre los componentes concurrentes es escondida del programador (Por ejemplo con el uso de valores futuros) mientras en otros se debe manejar de manera explícita. La comunicación explícita se divide en dos clases:

Comunicación por memoria compartida

Los componentes concurrentes se comunican alterando los valores de un área de memoria compartida (ejemplificado por Java y C#). Este estilo de programación concurrente suele necesitar algún tipo de bloqueo (Por ejemplo, mutex o semáforos) para coordinar entre hilos. Un programa que implementa correctamente alguno de estos es llamado thread-safe.

Comunicación a través de mensajes

Los componentes concurrentes se comunican a través de paso de mensajes (ejemplificado por MPI, Go, Scala, Erlang y Occam). El cambio de mensajes se puede realizar asincrónicamente, o puede utilizar una manera sincrona en la cual quien envia el mensaje se bloquea a si mismo hasta que el mismo es recibido.

Ambos tipos tienen diferentes características en cuanto a rendimiento. Típicamente (pero no siempre) el uso de memoria por proceso y el trabajo para cambiar de tarea suele ser menor en un sistema de paso de mensajes, pero el tiempo de procesamiento para pasar un mensaje es mayor que una llamada a procedimiento. Estas diferencias suelen ser muy menores comparadas con otros factores visibles en un programa del mundo real.

Historia

La computación concurrente apareció en el trabajo temprano en ferrocarriles y en la telegrafía, desde el siglo XIX y hasta los comienzos del 20, con algunos términos aún permaneciendo hoy en día, como por ejemplo "semáforos". Estos aparecieron para contestar ciertas preguntas, como manejar múltiples trenes en el mismo sistema ferroviario (evitando colisiones y maximizando la eficiencia) y como controlar múltiples transmisiones en el mismo conjunto de cables (maximizando eficiencia), como por ejemplo la multiplexión por división de tiempo, que data hasta los años 1870s.

El primer estudio académico de algoritmos concurrentes comenzó en la década del 60, con Dijkstra acreditado con haber escrito la primera documentación en esta área, identificando y resolviendo excluciones mutuas.[6]

Referencias

  1. Operating System Concepts 9th edition, Abraham Silberschatz. "Chapter 4: Threads" (Conceptos de los Sistemas Operativos, 9a edición, capitulo 4)
  2. «Concurrency is not Parallelism». talks.golang.org. Consultado el 31 de agosto de 2020. 
  3. «Parallelism vs. Concurrency - HaskellWiki». wiki.haskell.org. Consultado el 31 de agosto de 2020. 
  4. Schneider, Fred B. (1997). «1». On Concurrent Programming (en inglés). Springer. ISBN 9780387949420. 
  5. Ben-Ari (2006). Addison-Wesley, ed. Principles of Concurrent and Distributed Programming (2nd ed.). ISBN 978-0-321-31283-9. 
  6. Dijkstra, E. W. (1 de septiembre de 1965). «Solution of a problem in concurrent programming control». Communications of the ACM 8 (9): 569. ISSN 0001-0782. doi:10.1145/365559.365617. Consultado el 31 de agosto de 2020. 

Read other articles:

Monochamus sartor Klasifikasi ilmiah Kerajaan: Animalia Filum: Arthropoda Kelas: Insecta Ordo: Coleoptera Famili: Cerambycidae Genus: Monochamus Spesies: Monochamus sartor Monochamus sartor adalah spesies kumbang tanduk panjang yang tergolong famili Cerambycidae. Spesies ini juga merupakan bagian dari genus Monochamus, ordo Coleoptera, kelas Insecta, filum Arthropoda, dan kingdom Animalia. Larva kumbang ini biasanya mengebor ke dalam kayu dan dapat menyebabkan kerusakan pada batang kayu hidu...

 

 

Diskografi Vanessa HudgensHudgens pada High School Musical Concert TourAlbum studio2Video musik4Extended play1Singel4Album soundtrack8 Vanessa Hudgens adalah seorang artis rekaman Amerika. Diskografi nya terdiri dari dua album studio, satu album mini, empat singel, dua tur konser dan empat video musik. Album Album studio Daftar album, dengan chart posisi pilihan Judul Rincian album Posisi puncak Sertifikasi US[1] AUS[2] AUT[3] FRA[4] GER[5] IRE[6 ...

 

 

This article relies excessively on references to primary sources. Please improve this article by adding secondary or tertiary sources. Find sources: Lucky Cha Cha Cha! – news · newspapers · books · scholar · JSTOR (August 2011) (Learn how and when to remove this template message) 2004 single by MinimoniLucky Cha Cha Cha!Single by MinimoniReleasedApril 21, 2004 (JP)Recorded2004GenreJapanese PopLabelZetimaSongwriter(s)TsunkuProducer(s)TsunkuMinimoni sing...

Artikel ini sebatang kara, artinya tidak ada artikel lain yang memiliki pranala balik ke halaman ini.Bantulah menambah pranala ke artikel ini dari artikel yang berhubungan atau coba peralatan pencari pranala.Tag ini diberikan pada Oktober 2022. Emma Schenson Emma Sofia Perpetua Schenson (lahir 21 September 1827 - meninggal 17 Maret 1913) adalah seorang fotografer dan pelukis asal Swedia. Schenson adalah salah satu dari beberapa fotografer profesional perempuan pertama di Swedia.[1] ...

 

 

Anoplodermatinae Necydalis mellita Klasifikasi ilmiah Kerajaan: Animalia Filum: Arthropoda Kelas: Insecta Ordo: Coleoptera Subordo: Polyphaga Superfamili: Chrysomeloidea Famili: Cerambycidae Subfamili: AnoplodermatinaeGuérin-Méneville, 1840 Anoplodermatinae adalah suatu subfamili dari kumbang tanduk panjang (famili Cerambycidae). Tribus Meliputi tribus dan genus berikut: Anoplodermatini Acanthomigdolus Bruch, 1941 Anoploderma Guérin-Méneville, 1840 Cherrocrius Berg, 1898 Migdolus Westwoo...

 

 

Species of flowering plant in the family Papaveraceae Papaver somniferum Scientific classification Kingdom: Plantae Clade: Tracheophytes Clade: Angiosperms Clade: Eudicots Order: Ranunculales Family: Papaveraceae Genus: Papaver Species: P. somniferum Binomial name Papaver somniferumL.[1] Papaver somniferum, commonly known as the opium poppy[2] or breadseed poppy,[3] is a species of flowering plant in the family Papaveraceae. It is the species of plant from which b...

RamaAwatara Wisnu sebagai putra Dasarata, pembunuh RahwanaEjaan DewanagariरामEjaan IASTRāmaNama lainRamacandra; Ragawa; Rama Wijaya; Ramabhadra; Bhatara RamaGolonganAwatara WisnuSenjataBusurWahanaGajahPasanganSintaMantraJai Shri Ramlbs Dalam agama Hindu, Rama (Sanskerta: राम; Rāma) atau Ramacandra (Sanskerta: रामचन्द्र; Rāmacandra) adalah seorang raja legendaris yang terkenal dari India yang konon hidup pada zaman Tretayuga, keturunan Dinasti Surya atau Suryaw...

 

 

Palladium(II) oxide Names Other names Palladium monoxide Identifiers CAS Number 1314-08-5 Y 3D model (JSmol) Interactive image ChemSpider 66602 Y ECHA InfoCard 100.013.836 PubChem CID 73974 UNII B30901Q32J Y CompTox Dashboard (EPA) DTXSID90894899 InChI InChI=1S/O.Pd/q-2;+2 YKey: JQPTYAILLJKUCY-UHFFFAOYSA-N YInChI=1/O.Pd/q-2;+2Key: JQPTYAILLJKUCY-UHFFFAOYAD SMILES [Pd+2].[O-2] Properties Chemical formula PdO Molar mass 122.42 g/mol Appeara...

 

 

For other uses, see The Little Fox (disambiguation). 1981 Hungarian filmThe Little FoxDVD coverDirected byAttila DargayScreenplay byAttila DargayIstván ImreEde TarbayBased onVuk1965 novelby István FeketeStarringJudit PogányJózsef GyabronkaTeri FöldiGyula SzabóCinematographyIrén HenrikEdited byJános CzipauerMagda HapMusic byPeter WolfProductioncompanyPannónia FilmstúdióDistributed byMoképRelease dates 10 December 1981 (1981-12-10) (Budapest, Hungary) 7 Novem...

Disambiguazione – Se stai cercando altri significati, vedi Spagna (disambigua). Disambiguazione – Regno di Spagna rimanda qui. Se stai cercando altri significati, vedi Regno di Spagna (disambigua). Spagna (dettagli) (dettagli) Plus ultra Spagna - LocalizzazioneLa Spagna (verde scuro) nell'Unione europea (verde chiaro) Dati amministrativiNome completoRegno di Spagna Nome ufficialeReino de España Lingue ufficiali spagnolo a livello nazionale basco nei Paesi Baschi e in Navarra; ca...

 

 

Katie Mitchell nel 2016 Katie Mitchell, vero nome Kathrina Jane Mitchell (Reading, 23 settembre 1964), è una regista teatrale inglese. Indice 1 Biografia 2 Premio Europa per il Teatro 3 Onorificenze 4 Note 5 Altri progetti 6 Collegamenti esterni Biografia Nata e cresciuta a Reading, Katie Mitchell ha studiato letteratura inglese al Magdalene College dell'Università di Oxford prima di cominciare a lavorare dietro le quinte del King's Head Theatre di Islington. Successivamente ha lavorato com...

 

 

2020年夏季奥林匹克运动会波兰代表團波兰国旗IOC編碼POLNOC波蘭奧林匹克委員會網站olimpijski.pl(英文)(波兰文)2020年夏季奥林匹克运动会(東京)2021年7月23日至8月8日(受2019冠状病毒病疫情影响推迟,但仍保留原定名称)運動員206參賽項目24个大项旗手开幕式:帕维尔·科热尼奥夫斯基(游泳)和马娅·沃什乔夫斯卡(自行车)[1]闭幕式:卡罗利娜·纳亚(皮划艇)&#...

「アプリケーション」はこの項目へ転送されています。英語の意味については「wikt:応用」、「wikt:application」をご覧ください。 この記事には複数の問題があります。改善やノートページでの議論にご協力ください。 出典がまったく示されていないか不十分です。内容に関する文献や情報源が必要です。(2018年4月) 古い情報を更新する必要があります。(2021年3月)出...

 

 

ابن الأثير أبو السعادات معلومات شخصية اسم الولادة المبارك بن محمد بن محمد بن محمد بن عبد الكريم الشيباني الجزري الميلاد سنة 1150   جزيرة ابن عمر  الوفاة سنة 1210 (59–60 سنة)  الموصل  إخوة وأخوات ابن الأثير الكاتب،  وابن الأثير الجزري  الحياة العملية التلامذة الم�...

 

 

Dalam artikel ini, nama keluarganya adalah Hsu. Jake HsuJake pada Mei 2019Nama asal徐鈞浩Lahir30 Desember 1990 (umur 33)Taoyuan, TaiwanAlmamaterNational Taiwan University of ArtsPekerjaanPemeranTahun aktif2016–sekarangAgenHappy Together Entertainment(2018 - Current) Jake Hsu Hanzi tradisional: 徐鈞浩 Hanzi sederhana: 徐钧浩 Alih aksara Mandarin - Hanyu Pinyin: Xú Jūnhào - Wade-Giles: Hsü Chün-Hao Min Nan - Romanisasi POJ: Chhî Kun-hō Jake Hsu (Hanzi: 徐�...

Church in Hunseby, LollandHunseby ChurchHunseby KirkeLocationHunseby, LollandDenominationChurch of DenmarkHistoryEarlier dedicationSaint AndrewArchitectureArchitectural typeRomanesque architecture, Gothic ArchitectureCompletedca. 1150AdministrationDioceseDiocese of Lolland–FalsterDeaneryMaribo DomprovstiParishHunseby Sogn Hunseby Church is located in the village of Hunseby some 3 km north of Maribo on the Danish island of Lolland. Built in the middle of the 12th century, the church has a Ro...

 

 

Decline of Ottoman Empire and its effect on the balance of power In diplomatic history, the Eastern question was the issue of the political and economic instability in the Ottoman Empire from the late 18th to early 20th centuries and the subsequent strategic competition and political considerations of the European great powers in light of this. Characterized as the sick man of Europe, the relative weakening of the empire's military strength in the second half of the eighteenth century threate...

 

 

Marvel's The Runaways Serie de televisiónGénero Aventura Superhéroes Drama adolescenteCreado por Josh Schwartz Stephanie SavageBasado en Runaways de Brian K. VaughanAdrian AlphonaProtagonistas Rhenzy Feliz Lyrica Okano Virginia Gardner Ariela Barer Gregg Sulkin Allegra Acosta Angel Parker Ryan Sands Annie Wersching Kip Pardue Ever Carradine James Marsters Brigid Brannagh Kevin Weisman Brittany Ishibashi James Yaegashi Julian McMahon Clarissa ThibeauxCompositor(es) Siddhartha KhoslaPa�...

Track and field event AthleticsShot putPolish double Olympic champion Tomasz MajewskiWorld recordsMen Ryan Crouser 23.56 m (77 ft 3+1⁄2 in) (2023)Women Natalya Lisovskaya 22.63 m (74 ft 2+3⁄4 in) (1987)Olympic recordsMen Ryan Crouser 23.30 m (76 ft 5+1⁄4 in) (2021)Women Ilona Slupianek 22.41 m (73 ft 6+1⁄4 in) (1980)World Championship recordsMen Ryan Crouser 23.51 m (77 ft 1+1⁄2 in) (2023)...

 

 

Godoy pada 1816 oleh Madrazo Makam Manuel Godoy di Pemakaman Père-Lachaise, Paris (divisi 45) Manuel Godoy y Álvarez de Faria, pangeran Perdamaian dan Bassano, adipati la Alcudia dan Sueca, merupakan seorang abdi dalem dan politikus Spanyol, lahir 12 Mei 1767 di Badajoz, Spanyol dan meninggal 4 Oktober 1851 di Paris, Prancis. Dia dua kali menjabat sebagai Sekretaris Negara (kepala pemerintahan), tetapi karena kesulitan dari dalam dan luar negeri, dia gagal mencegah invasi Spanyol dan pengun...