คำถามติดแท็ก concurrency

คำถามเกี่ยวกับปัญหาของการเกิดพร้อมกันเช่นการซิงโครไนซ์และการหยุดชะงัก

5
ความแตกต่างระหว่างการเขียนโปรแกรมแบบขนานและแบบพร้อมกัน?
เมื่อดูที่การเขียนโปรแกรมพร้อมกันคำสองคำที่ใช้กันทั่วไปคือพร้อมกันและขนาน และบางภาษาโปรแกรมเฉพาะเรียกร้องการสนับสนุนสำหรับการเขียนโปรแกรมแบบขนานเช่นJava สิ่งนี้หมายความว่าการเขียนโปรแกรมแบบขนานและพร้อมกันนั้นแตกต่างกันจริงหรือ

3
อัลกอริทึมของ Peterson และ Dekker ที่ตัดกัน
ฉันพยายามที่จะเข้าใจอัลกอริทึมของ Peterson และ Dekker ซึ่งคล้ายกันมากและแสดงความสมมาตรมากมาย ฉันพยายามกำหนดอัลกอริทึมในภาษานอกระบบดังนี้: Peterson's: "I want to enter." flag[0]=true; "You can enter next." turn=1; "If you want to enter and while(flag[1]==true&&turn==1){ it's your turn I'll wait." } Else: Enter CS! // CS "I don't want to enter any more." flag[0]=false; Dekker's: "I want to enter." flag[0]=true; "If …

2
ความแตกต่างระหว่างเธรดระดับผู้ใช้และเธรดระดับเคอร์เนลคืออะไร
หลังจากอ่านหลายแหล่งฉันยังคงสับสนเกี่ยวกับเธรดผู้ใช้และเคอร์เนลระดับ โดยเฉพาะอย่างยิ่ง: เธรดสามารถอยู่ได้ทั้งในระดับผู้ใช้และระดับเคอร์เนล อะไรคือความแตกต่างระหว่างระดับผู้ใช้และระดับเคอร์เนล?

2
'การเกิดขึ้นพร้อมกันที่แท้จริง' หมายถึงอะไร?
ฉันมักจะได้ยินวลีเช่น 'ความหมายที่เห็นพ้องที่แท้จริง' และ 'ความเห็นพ้องที่แท้จริงพร้อมกัน' โดยไม่มีการอ้างอิงใด ๆ คำเหล่านั้นมีความหมายว่าอะไรและทำไมจึงมีความสำคัญ ตัวอย่างของการเห็นพ้องต้องกันที่แท้จริงคืออะไรและอะไรคือสิ่งที่จำเป็นสำหรับพวกเขา เช่นในกรณีใดบ้างที่สามารถใช้งานได้มากกว่าการเทียบมาตรฐานแบบอื่น (bisimulation, การติดตามเทียบเท่า ฯลฯ )

3
ความเหมือนและความแตกต่างในจีบราส์กระบวนการที่สำคัญ
สำหรับความรู้ของฉันมีจีบราส์กระบวนการสำคัญสามประการที่เป็นแรงบันดาลใจให้มีการวิจัยมากมายในรูปแบบที่เป็นทางการของการเกิดพร้อมกัน เหล่านี้คือ: CCS และ -calculus ทั้งคู่โดย Robin Milnerππ\pi CSP โดย Tony Hoare และ ACP โดย Jan Bergstra และ Jan Willem Klop ทั้งสามดูเหมือนจะมีมาจนถึงทุกวันนี้มีงานวิจัยจำนวนมากและมีงานวิจัยมากมาย อะไรคือความคล้ายคลึงและความแตกต่างที่สำคัญของวิธีการเหล่านี้? ทำไมการวิจัยในพีชคณิตของกระบวนการถูกแยกออกแทนที่จะมารวมกันในแง่ที่ว่าไม่มีรูปแบบสากลที่จะรวมเป็นหนึ่งเดียวในสนาม

1
ไม่มีโครงสร้างล็อคข้อมูลต้นไม้พร้อมกันอย่างต่อเนื่องที่ล็อคตลอดเวลา?
ฉันอ่านวรรณกรรมเมื่อเร็ว ๆ นี้และพบว่ามีโครงสร้างข้อมูลที่น่าสนใจอยู่บ้าง ฉันได้ค้นคว้าวิธีที่แตกต่างหลากหลายในการทำให้เวลาการอัปเดตลดลงเป็นเวลาอัปเดตกรณีที่เลวร้ายที่สุด [1-7]O ( 1 )O(1)\mathcal{O}(1) เมื่อเร็ว ๆ นี้ฉันเริ่มค้นหาโครงสร้างข้อมูลที่ไม่ล็อคเพื่อสนับสนุนการเข้าถึงพร้อมกันอย่างมีประสิทธิภาพ มีกรณีที่เลวร้ายที่สุดเทคนิคการอัปเดตใด ๆ เหล่านี้ถูกนำมาใช้ในการใช้โครงสร้างข้อมูลที่ไม่ล็อคหรือไม่?O ( 1 )O(1)\mathcal{O}(1) ฉันถามเพราะ; สำหรับฉันพวกเขาดูเหมือนการขยายการปฏิบัติที่ชัดเจนของ "การเพิ่มประสิทธิภาพเชิงทฤษฎี" นี้ Tarjan, Robert Endre “ การปรับปรุงโครงสร้างการค้นหาที่สมดุลในการหมุน O (1)” ตัวประมวลผลข้อมูล 16, ไม่ใช่ 5 (1983): 253 - 257 Driscoll, JR, N Sarnak, DD Sleator และ RE Tarjan “ การทำให้โครงสร้างข้อมูลคงทน” ในการประชุมวิชาการ ACM ประจำปีที่สิบแปดเรื่องทฤษฎีคอมพิวเตอร์, …

6
เหตุใดจึงต้องยกเลิกการทำธุรกรรมที่ไม่มีข้อผูกมัดโดยย้อนหลัง
ฉันมีบันทึกฐานข้อมูลซึ่งธุรกรรมบางรายการชนะ เราเรียนรู้ในชั้นเรียนว่าการกระทำของผู้แพ้จะต้องย้อนกลับไป มีเหตุผลในการทำสิ่งนี้ถอยหลังหรือไม่? ทุกคนสามารถให้ตัวอย่างง่ายๆของบันทึกที่ยกเลิกการส่งต่อจะให้ผลลัพธ์ที่ผิด?

1
มีการใช้งานล็อคฮาร์ดแวร์โดยไม่ต้องทดสอบและตั้งค่าหรือแลกเปลี่ยน?
โดยทั่วไปแล้วล็อกจะถูกนำไปใช้ผ่านคำแนะนำการทดสอบและตั้งค่าและสลับระดับเครื่อง มีการนำไปใช้งานอื่น ๆ ที่ไม่ได้ใช้สิ่งเหล่านี้หรือไม่? นอกจากนี้เราสามารถพูดได้หรือไม่ว่าโซลูชั่นระดับฮาร์ดแวร์ทั้งหมดสำหรับปัญหาส่วนที่สำคัญสามารถแบ่งได้เป็นสามส่วนคือการปิดใช้งานการขัดจังหวะการทดสอบและตั้งค่าและการสลับ?

4
ทำไมจำนวนฉันทามติสำหรับการทดสอบและตั้ง 2
ตามที่วิกิพีเดีย , การดำเนินการทดสอบและตั้งค่าสามารถแก้ไขปัญหาฉันทามติที่ปราศจากการรอคอยสำหรับกระบวนการที่เกิดขึ้นพร้อมกันไม่เกินสองกระบวนการ ทำไมมันไม่สามารถแก้ปัญหามากกว่าสองกระบวนการได้?

1
ความแตกต่างระหว่างโมเดล Actor และกระบวนการสื่อสารต่อเนื่อง (CSP)
เมื่อเรามองไปที่นักแสดงรุ่นและการสื่อสารตามลำดับกระบวนการเราจะเห็นว่าพวกเขาทั้งสองพยายามที่จะทำเห็นพ้องด้วยขึ้นอยู่กับข้อความผ่านแต่พวกเขามีความแตกต่างกัน (เราเห็นการใช้งานCSP Modelในgoroutinesของgo-lang (และcorejas ของ Clojure ) และ Actor Model ในชุดเครื่องมือAkka ของ Scala ) ฉันกำลังพยายามหารายการความแตกต่างง่ายๆระหว่าง Actor Model และ CSP จนถึงตอนนี้ฉันมี: การส่งข้อความของนักแสดงเป็นแบบอะซิงโครนัสการส่งผ่านข้อความ CSP นั้นเป็นแบบซิงโครนัส นักแสดงcomposable , ซีเอสพีไม่ได้ (จำเป็น) นักแสดงมักจะมีขอบเขตที่ไม่ใช่ขอบเขตเสมอ CSP อาจมีขอบเขตหรือไม่ จำกัด ขอบเขต นักแสดงมีตัวแปรโครงสร้างในขณะที่ CSP มีโครงสร้างแบบคงที่ นักแสดงมีหลักการของท้องที่ CSP ไม่มีท้องที่ นักแสดงได้รับการออกแบบตามพฤติกรรมของพวกเขา CSP ไม่จำเป็นต้องมีสิ่งนี้ ถูกต้องหรือไม่ มีอะไรฉันหายไปไหม สมมติฐาน เมื่อฉันพูดว่า 'model model' - ฉันหมายถึงพื้นฐานทางทฤษฎีที่อยู่เบื้องหลังการใช้งานในกรอบ Akka …

2
เป็นไปได้หรือไม่ที่ภาษาการเขียนโปรแกรมแบบกองซ้อนพร้อมกัน?
ฉันได้อ่านเกี่ยวกับภาษาการเขียนโปรแกรมแบบกองซ้อนเช่นFORTHและCatและดูเหมือนว่าด้วยลักษณะของพวกเขาพวกเขาสามารถดำเนินการได้ครั้งละหนึ่งการกระทำโดยไม่คำนึงถึงกระบวนทัศน์ของพวกเขา (FORTH มีความจำเป็นในขณะที่ Cat ทำงานได้) ภาษาที่จำเป็นจะแก้ไขสแต็กและภาษาที่ใช้งานได้ดีเช่นJoyจะส่งคืนสแต็กใหม่ แต่ประเด็นก็คือสแต็กเดียวเท่านั้นที่ใช้ในแต่ละครั้ง ดังนั้นภาษาการเขียนโปรแกรมแบบกองซ้อนสามารถพร้อมกันได้หรือไม่ พวกเขาสามารถบรรลุการทำงานพร้อมกันโดยใช้หลายกองในเวลาเดียวกันหรือบางสิ่งบางอย่างเหมือนกันหรือไม่ เป็นไปได้หรือไม่ที่จะใช้การประเมินผลแบบขี้เกียจในภาษาการเขียนโปรแกรมแบบกองซ้อน? โปรดแก้ไขฉันหากฉันเข้าใจผิดเกี่ยวกับภาษาและแนวคิดที่กล่าวถึงข้างต้น

3
ต้องการความเป็น Linearizability ใคร
ฉันได้อ่านเกี่ยวกับความแตกต่างระหว่างserializabilityและlinearizabilityซึ่งเป็นทั้งเกณฑ์ความสอดคล้องสำหรับระบบที่จำลองแบบเช่นฐานข้อมูลที่จำลองแบบ อย่างไรก็ตามฉันไม่ทราบว่าในกรณีใดความจำเป็นต้องใช้ความสามารถเชิงเส้นตรงถึงแม้ว่ามันจะแข็งแกร่งกว่าความสามารถเชิงอนุกรม คุณช่วยสร้างสถานการณ์ที่จำเป็นต้องใช้ทรัพย์สินที่แข็งแกร่งเช่นนี้ได้หรือไม่?

2
สถาปัตยกรรมซีพียูมีอคติต่อการดำเนินการตามขั้นตอนหรือไม่?
มีการเปลี่ยนแปลงใด ๆ ที่ทำให้ซีพียูทำงานได้ดีขึ้นสำหรับรันไทม์ที่เกิดขึ้นพร้อมกันเช่น Rust หรือไม่? ตัวอย่างเช่นมีการเปลี่ยนแปลงการนำไปใช้การทำนายสาขาหรือขนาดแคชที่จะช่วยรันไทม์พร้อมกันหรือไม่ ฉันรู้สึกว่าการออกแบบ CPU ในปัจจุบันอาจได้รับการปรับให้เหมาะสมยิ่งขึ้นสำหรับ runtimes แบบโพรซีเดอร์เช่น C หากเราต้องการปรับให้เหมาะสมสำหรับ runtimes ที่เกิดขึ้นพร้อมกัน CPU จะดูแตกต่างกันอย่างไร สำหรับ isntance การคาดคะเนสาขาถูกนำมาใช้บนพื้นฐานของการสรุปทั่วไปในเอกสารงานวิจัยที่วิเคราะห์รหัสขั้นตอน ฉันสงสัยว่าสิ่งที่เป็นนามธรรมที่เกิดขึ้นพร้อมกันจะเพิ่มชุดการทำงานที่สำคัญให้กับรันไทม์ที่ส่งผลเสียต่ออัลกอริทึมการทำนายสาขาที่มีอยู่หรือไม่ ตัวอย่างเช่นการคาดการณ์ใน for for loop เป็นสิ่งหนึ่ง แต่เมื่อเป้าหมายของสาขาเป็นส่วนใหม่ของหน่วยความจำเสมอ (กราฟิก, ข้อความ, ฯลฯ ) มันจะเป็นแคชที่พลาดเสมอและจะไม่มีสาขา ประวัติศาสตร์สำหรับมัน - เพราะยังไม่ได้แตะต้องเลย นี่อาจเป็นคำถามที่งี่เง่าเพราะเนื้อหาแม้ว่ามันอาจจะอยู่ใน RAM เสมอ แต่จะถูกแยกเป็นลำดับความสำคัญน้อยกว่าที่จะใช้ (เมื่อโหลดไปยังแคช) ... แต่ยังมี ควรเป็นขอบเขตชั่วคราวที่สามารถสังเกตได้กับบริบทที่เก็บไว้ในแคชและตัวทำนายสาขาในรันไทม์ของขั้นตอนซึ่งจะแสดงให้เห็นว่าเป็นนามธรรม - ขอบเขตในสภาพแวดล้อมที่ขนานกันมากขึ้น ดังนั้นฉันสงสัย ... มีการปฏิบัติตามขอบเขตเหล่านี้หรือไม่? มีงานวิจัยใดบ้างที่วิเคราะห์สิ่งนี้? สถาปัตยกรรมของ …

2
โครงสร้างข้อมูล snapshottable ที่ดีสำหรับดัชนีในหน่วยความจำ
ฉันออกแบบฐานข้อมูลวัตถุในหน่วยความจำสำหรับกรณีการใช้งานที่เฉพาะเจาะจง เป็นนักเขียนเดียว แต่ต้องสนับสนุนการอ่านพร้อมกันอย่างมีประสิทธิภาพ การอ่านต้องถูกแยกออก ไม่มีภาษาของแบบสอบถามฐานข้อมูลรองรับเท่านั้น: รับวัตถุ / -s โดยคุณลักษณะ / ชุดของคุณลักษณะ (อาจมีการสนับสนุนสำหรับการแสดงออกเช่นx.count < 5) รับคุณลักษณะของวัตถุ แบบสอบถามเป็นสคริปต์ที่จำเป็นซึ่งประกอบด้วยจำนวนการดำเนินการข้างต้นโดยพลการ ขนาดข้อมูลจะเป็นหน่วยความจำ << ดังนั้นวัตถุและดัชนีทั้งหมดของคุณลักษณะส่วนใหญ่ควรพอดีอย่างสะดวกสบายโดยไม่ต้องสลับ สิ่งที่ฉันต้องการคือโครงสร้างข้อมูลสำหรับดัชนีแอ็ตทริบิวต์ของวัตถุซึ่งสามารถเป็น O (n) กับการเขียนไม่สนับสนุนการเขียนพร้อมกัน แต่ควรสนับสนุนการถ่ายภาพ O (1) อย่างสมบูรณ์ (อาจคัดลอกบนการเขียน) และ O (logN) เป็นการดีที่มันจะช่วยให้การทำงานพร้อมกันสูงในการอ่านที่มีการแบ่งปันโครงสร้างสูงสุดระหว่างรุ่น ฉันกำลังดูCTries , BSTsที่เกิดขึ้นพร้อมกันและต้นไม้ Splay ที่เกิดขึ้นพร้อมกันแต่ฉันไม่แน่ใจว่าฉันกำลังมองไปในทิศทางที่ถูกต้องที่นี่หรือไม่ โครงสร้างด้านบนให้ความสนใจอย่างมากกับความซับซ้อนของเม็ดมีดซึ่งฉันไม่สนใจ คำถาม : มีโครงสร้างข้อมูลที่รู้จักที่เหมาะสมกับกรณีการใช้งานของฉันหรือไม่? แก้ไข : หลังจากคิดเพิ่มเติมบางอย่างดูเหมือนว่าต้นไม้ BST / Splay ถาวรจะทำงาน ผู้เขียนจะอัปเดตสำเนา 'ต้นแบบ' …

1
วัตถุประสงค์ของการทำเกลียว M: N (Hybrid) คืออะไร?
กล่าวอีกนัยหนึ่งข้อดีของการทำเธรดไฮบริดมีมากกว่า 1: 1 (เคอร์เนลเท่านั้น) และการทำเธรด N: 1 (ผู้ใช้เท่านั้น) นี่คือการติดตามเพื่อเธรดระดับผู้ใช้และเธรดระดับเคอร์เนลแตกต่างกันอย่างไร

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.