คำถามติดแท็ก real-time

4
ระบบปฏิบัติการใดที่ใช้ในเครื่องบินและภาษาการเขียนโปรแกรมอะไรที่พัฒนาขึ้นมา [ปิด]
ฉันสงสัยว่าถ้าใครรู้ว่าระบบปฏิบัติการที่ใช้ในเครื่องบินพาณิชย์ (เช่นโบอิ้งหรือแอร์บัส) นอกจากนี้ภาษาโปรแกรมแบบเรียลไทม์ (ที่ต้องการ) คืออะไร ฉันได้ยินมาว่า Ada ถูกใช้ใน Boeing ดังนั้นคำถามของฉันคือ - ทำไม Ada Boeing-guys มีเกณฑ์อะไรบ้างในการเลือกภาษานี้ (ฉันเดาว่า Java จะไม่เป็นทางเลือกที่ดีถ้าเปิดออกอย่างรวดเร็วตัวเก็บรวบรวมขยะ)

2
ใครสามารถอธิบายอย่างง่าย ๆ ว่าอะไรคือรูปแบบของตัวทำลาย
ฉันต้องการถ้าคุณสามารถอธิบายให้ฉันในวิธีที่ง่ายวิธี disatteror ทำงานอย่างไร แนวคิดนี้ทำให้ฉันเข้าใจยาก บางทีด้วยความช่วยเหลือของคุณฉันสามารถเข้าใจมัน

3
ยกเว้นตัวรวบรวมขยะสิ่งอื่นใดที่ทำให้ Java เป็นภาษาการเขียนโปรแกรมที่ไม่ใช่แบบเรียลไทม์
ยกเว้นตัวรวบรวมขยะคุณสมบัติอื่น ๆ ของ Java ที่ไม่เหมาะสมสำหรับการเขียนโปรแกรมแบบเรียลไทม์คืออะไร บนเน็ตทุกครั้งที่มีการพูดถึง Java vs C ++ เกี่ยวกับการเขียนโปรแกรมแบบเรียลไทม์มันจะเป็นตัวรวบรวมขยะที่กล่าวถึงเสมอ มีอะไรอีกไหม?

3
อะไรคือสาเหตุที่ทำให้สแต็ก Java / Linux ล้มเหลวที่จะ "เรียลไทม์"?
ฉันเคยได้ยินนักพัฒนาพูดถึงว่า Java ไม่สามารถ " ทำแบบเรียลไทม์ " ซึ่งหมายความว่าแอป Java ที่ทำงานบน Linux ไม่สามารถตอบสนองความต้องการของระบบเรียลไทม์ที่กำหนดขึ้นเช่นสิ่งที่รันบน RIOT-OS เป็นต้น ฉันกำลังพยายามที่จะเข้าใจว่าทำไม SWAGของฉันบอกฉันว่านี่อาจเป็นเพราะส่วนใหญ่ของ Garbage Collector ของ Java ซึ่งสามารถทำงานได้ตลอดเวลาและหยุดระบบโดยสิ้นเชิง และถึงแม้ว่าจะมีสิ่งที่เรียกว่า "GCS ที่หยุดชั่วคราว" แต่ฉันก็ไม่จำเป็นต้องเชื่อโฆษณาของพวกเขาและยังไม่มีอินสแตนซ์ $ 80K-per-JVM เพื่อแยกโครงการงานอดิเรก! ผมยังอ่านบทความนี้เกี่ยวกับการใช้ซอฟแวร์เสียงหึ่งๆบน Linux ในบทความนั้นผู้เขียนอธิบายสถานการณ์ที่ลีนุกซ์เกือบทำเสียงขึ้นจมูกชนเข้ากับรถ: ฉันเรียนรู้บทเรียนที่ยากลำบากหลังจากเลือกที่จะทำลูปควบคุมระดับต่ำ (PIDs) บน Pi - พยายามที่จะฉลาดฉันตัดสินใจใส่บันทึกการเขียนที่อยู่ตรงกลางของลูปสำหรับการดีบั๊ก - Quad เริ่มต้นดี แต่แล้ว Linux ก็ตัดสินใจ ใช้เวลา 2 วินาทีในการเขียนบันทึกรายการหนึ่งและรูปสี่เหลี่ยมเกือบชนเข้ากับรถของฉัน! ตอนนี้ถึงแม้ว่าผู้เขียนคนนั้นเขียนซอฟต์แวร์เสียงพึมพำของเขาใน C ++ แต่ฉันนึกภาพว่าแอป Java …
20 java  linux  real-time 

3
วิธีจัดการกับคอมพิวเตอร์ที่เร็วขึ้นในวิดีโอเกมไคลเอนต์ / เซิร์ฟเวอร์แบบเรียลไทม์
ฉันกำลังสร้างเกมออนไลน์ครั้งแรกโดยใช้ socket.io และฉันต้องการให้เป็นเกมแบบผู้เล่นหลายคนแบบเรียลไทม์เช่น agar.io หรือ diep.io แต่ฉันพบปัญหาในการพยายามหาวิธีที่จะทำให้คอมพิวเตอร์ทั้งหมดทำงานด้วยความเร็วเดียวกัน ฉันมีสามแนวคิดสำหรับแบบจำลอง แต่ไม่มีแนวคิดใดที่ถูกต้องและฉันสงสัยว่าวิดีโอเกมปกติทำได้อย่างไร (คุณสามารถข้ามอ่านความคิดของฉันพวกเขาเพียงให้วิธีการดูปัญหาที่ฉันมี) เซิร์ฟเวอร์อนุญาตให้ไคลเอนต์ทำงานด้วยตนเองและส่งต่อการอัปเดตไปยังเซิร์ฟเวอร์ซึ่งจะส่งต่อไปยังไคลเอนต์ที่เหลือ นี่เป็นปัญหาที่คอมพิวเตอร์บางเครื่องทำงานได้เร็วกว่าเครื่องอื่น ๆ ทำให้พวกเขาอัปเดตเร็วขึ้นและเคลื่อนที่ข้ามหน้าจอเร็วขึ้น ให้เซิร์ฟเวอร์แจ้งให้ลูกค้าทราบเมื่อมีการอัปเดต ฉันสามารถรอจนกว่าลูกค้าคนสุดท้ายจะตอบสนอง (เป็นความคิดที่แย่มากในกรณีที่คนคนหนึ่งมีคอมพิวเตอร์ช้า) รอจนกว่าลูกค้าคนแรกจะตอบสนอง (อีกครั้งรอการสื่อสารก่อนแต่ละเฟรม) หรือเพียงแค่ส่งพวกเขาให้เร็วที่สุด ดูเหมือนว่าจะพบปัญหาเดียวกันกับหมายเลข 1) ที่จุดเริ่มต้นของเกมให้เซิร์ฟเวอร์บอกกับลูกค้าถึงวิธีการอัปเดตอย่างรวดเร็ว นี่หมายความว่าลูกค้าจะต้องรับผิดชอบในการ จำกัด การเคลื่อนไหวในช่วงเวลานั้น ตัวอย่างเช่นหากมีคนจัดการกดปุ่มสองครั้งภายในช่วงเวลานั้นก็จะส่งเหตุการณ์กดปุ่มเพียงปุ่มเดียว นี่เป็นปัญหาที่การดำเนินการบางอย่างอาจถูกเพิกเฉย (เช่นการกดปุ่มสองครั้ง) และการโต้ตอบจะขึ้นอยู่กับนาฬิกาของลูกค้าซึ่งอาจไม่ตรงกับนาฬิกาของเซิร์ฟเวอร์ เซิร์ฟเวอร์จะต้องติดตามลูกค้าแต่ละรายและตรวจสอบให้แน่ใจว่ามีการส่งการอัปเดตในเวลาที่ถูกต้อง ฉันได้ทำการค้นคว้าแล้ว แต่บทความที่ฉันอ่านดูเหมือนจะไม่เจาะจงว่าจะทำอย่างไรถ้าลูกค้าส่งการอัพเดตเร็วกว่าไคลเอนต์อื่น ๆ ในกรณีของฉันฉันกำลังติดต่อกับคนที่มีความเร็วแป้นพิมพ์เร็วกว่า (คอมพิวเตอร์จะส่งการอัปเดตแป้นพิมพ์มากกว่าคอมพิวเตอร์เครื่องอื่น) โปรแกรมเมอร์มักจะจัดการกับเรื่องนี้อย่างไร

2
วิธีรับการแจ้งเตือนแบบเรียลไทม์เมื่อมีการเปลี่ยนแปลงฐานข้อมูล (แทรกอัปเดตลบ)?
ฉันกำลังสร้างแดชบอร์ดซึ่งควรตรวจสอบตารางฐานข้อมูล ฉันมีการเข้าถึงฐานข้อมูลเท่านั้น (ไม่มีเลเยอร์แอปพลิเคชัน) ตารางมีขนาดค่อนข้างใหญ่ (10 ล้านแถว) แต่ไม่เปลี่ยนแปลงอย่างรวดเร็ว (100 เม็ด / อัปเดตต่อนาที) ฉันจะทราบได้อย่างไรว่าตารางมีการเปลี่ยนแปลงอย่างไร ฉันจะพยายามที่จะตีฐานข้อมูลทุกวินาที แต่ดูเหมือนว่าวิธีการดุร้ายกำลัง ... ฐานข้อมูล: MySQL / Postgres

2
ประโยชน์ของ RTOS กับ Bare Metal สำหรับการเขียนโปรแกรม MCU?
โปรดทราบ:คำถามนี้กล่าวถึง RTOS สองตัวโดยเฉพาะ แต่มีความเป็นทั่วไปมากกว่าและใคร ๆ ก็สามารถตอบได้โดยเขียนรหัส C สำหรับ RTOSes แบบฝังตัวก่อนหน้านี้และให้ซอฟต์แวร์ทำงานโดยตรงบน MCU ฉันสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับ RTOS แบบฝังและการเขียนแอปพลิเคชันสำหรับพวกเขา ฉันกำลังดูEmboxและRIOTเพราะพวกเขาเป็นโอเพ่นซอร์สที่ทันสมัยใช้งานได้และดูเหมือนจะมีเอกสารที่ยอดเยี่ยม เป้าหมายของฉันมีสองขั้นตอน: ระยะที่ 1 คือการหาวิธีการคอมไพล์และแฟลชระบบปฏิบัติการเหล่านี้ไปยัง MCU (อาจเป็น AVR หรือ ARM) ขั้นตอนที่ 2 คือเขียนโปรแกรม C อย่างง่าย (โดยทั่วไปคือ daemon ไร้หัว) ซึ่งจะพัฒนาไปตามเวลาเป็น "งานอดิเรก" จากนั้นฉันจะแฟลช / ปรับใช้โปรแกรมนี้กับ MCU เดียวกันดังนั้นจึงประสบความสำเร็จในการปรับใช้ appstack ซึ่งประกอบด้วย Embox / RIOT และแอพของฉันอยู่ด้านบนของมัน ก่อนที่ผมจะไปลงถนนใด ๆ ที่ในที่สุดนำไปสู่การสิ้นสุดตายผมเจอบทความนี้ที่จะได้งานที่ดีงามของการอธิบายว่าทำไมปพลิเคชันแบบ real-time เขียนใน …

6
วิธีบันทึกระหว่างการทำงานร่วมกันแบบเรียลไทม์
ฉันต้องการให้ผู้ใช้หลายคนแก้ไขเอกสารเดียวกัน ปัญหาที่ฉันเผชิญคือเมื่อผู้ใช้ใหม่เข้าร่วมเขาอาจเห็นเอกสารที่ล้าสมัย ฉันจะแน่ใจได้อย่างไรว่าผู้ใช้ใหม่ได้รับการเปลี่ยนแปลงล่าสุด วิธีแก้ปัญหาที่ฉันคิด: ประหยัดทุกการเปลี่ยนแปลง ฉันไม่ชอบโซลูชันนี้เพราะจะทำให้ช้าลงใน UI และทำให้โหลดบน db เมื่อผู้ใช้ใหม่เข้าร่วมทริกเกอร์บันทึกลูกค้าอื่น ๆ ทั้งหมด หลังจากบันทึกไคลเอนต์อื่นแล้วให้โหลดเอกสาร ด้วยสิ่งนี้จะยังคงไม่สอดคล้องกัน ข้อเสนอแนะอื่น ๆ จะเป็นประโยชน์ อัปเดต:หลังจากดูวิธีการแก้ปัญหาที่แนะนำแล้ว Google Realtime API ฉันพบว่า: ผู้ใช้แอปของคุณจะต้องมี Google ไดรฟ์และให้คุณเข้าถึงไดรฟ์ของพวกเขา สิ่งนี้อาจทำให้เกิดการไหลของ UI ที่น่าอึดอัดใจที่สุดหรือป้องกันผู้ใช้ที่ไม่มี Google Drive จากการใช้คุณสมบัติเรียลไทม์ การตั้งค่าการแชร์ทั้งหมดที่อยู่ข้างคุณต้องทำซ้ำสำหรับเอกสาร Google อัปเดต 2:เพื่อบรรลุเป้าหมายฉันไปกับFirebase ของ Google

3
จะทำการดัดแปลงซอฟต์แวร์ให้เป็นแบบเรียลไทม์ได้อย่างไร? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา สำหรับตอนแรกฉันอยากจะพูดถึงว่าฉันเป็นมือใหม่ในการเขียนโปรแกรมระบบเรียลไทม์นั่นเป็นเหตุผลที่ฉันไม่แน่ใจว่าคำถามของฉันถูกต้องหรือไม่ ขออภัยสำหรับสิ่งนั้น แต่ฉันต้องการความช่วยเหลือ คำถามโดยย่อ: วิธีใช้งานซอฟต์แวร์แบบเรียลไทม์อย่างหนักเพื่อให้แน่ใจว่าตรงตามกำหนดเวลาที่ยากหรือไม่ จำเป็นต้องใช้คุณสมบัติ QNX ใช่ไหม หรือมันเพียงพอที่จะเขียนสำหรับ linux, พอร์ตไปยัง QNX และมันจะเป็นเรียลไทม์โดยค่าเริ่มต้น คำถามเต็ม: เราได้นำซอฟต์แวร์มัลติโพรเซสเซอร์ข้ามแพลตฟอร์มที่ซับซ้อนมาพร้อมกับการสื่อสารระหว่างกระบวนการสำหรับ Linux, Windows, Android และ QNX ภาษาการเขียนโปรแกรมคือ C ++ เราใช้ Boost และ planty ของ libs อื่น ๆ ซอฟต์แวร์ของเราทำงานได้ดีและรวดเร็ว แต่ก็ยังเป็นเครื่องต้นแบบอยู่ เพื่อจุดประสงค์ในการผลิตเราต้องดำเนินการตามเวลาจริงคุณสมบัติบางอย่างของเราต้องเป็นแบบเรียลไทม์และแข็งแกร่งมากเพราะมันมีความสำคัญและความปลอดภัยของคนที่ใช้ซอฟต์แวร์ของเราอาจขึ้นอยู่กับคุณสมบัติเหล่านั้น พวกมันทำงานได้อย่างรวดเร็ว - มากถึงหลายร้อยมิลลิวินาที แต่ฉันไม่แน่ใจว่าระบบของเราเป็นแบบเรียลไทม์เนื่องจากความจริงข้อนี้ (ฉันพูดถูก) ดังนั้นจึงมีคำถามหลัก: วิธีการปรับเปลี่ยนซอฟต์แวร์ของเราเป็นเรียลไทม์? ฉัน googled …
9 c++  real-time 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.