“ Windows ไม่ใช่ระบบปฏิบัติการตามเวลาจริง” หมายความว่าอะไร


19

ฉันเจอแอปพลิเคชันชื่อLatencyMonซึ่งดูเหมือนว่าจะมีการตรวจสอบเวลาแฝง

ฉันเข้าใจอยู่เสมอว่ายิ่งคุณโหลดตัวประมวลผลมากขึ้นเท่าไรระบบก็ตอบสนองน้อยลงหรือแฝงมากขึ้น อย่างไรก็ตามในส่วนที่สองของหน้า LatencyMon ประโยคแรกบอกว่า "Windows ไม่ใช่ระบบปฏิบัติการแบบเรียลไทม์" (RTOS) นั่นทำให้ฉันคิด ฉันหมายความว่ามันแตกต่างจากระบบปฏิบัติการอื่น ๆ เช่น Linux, Unix หรือ Mac OS X หรือไม่?

มีระบบปฏิบัติการ "แบบเรียลไทม์" หรือไม่? หรือเป็นเพียงแผนการตลาดเพื่อให้คุณซื้อผลิตภัณฑ์ของพวกเขา

แก้ไข:

นอกจากนี้ยังมีตัวอย่างของ RTOS ที่ออกมาหรือไม่


4
ตัวอย่างเช่น QNX แบบเรียลไทม์
new123456

คำตอบ:


21

วิกิพีเดียมีข้อมูลมากมายที่น่าแปลกใจที่นี่

ระบบปฏิบัติการเรียลไทม์ (RTOS) เป็นระบบปฏิบัติการ (OS) ที่มีวัตถุประสงค์เพื่อให้บริการคำขอแอปพลิเคชันตามเวลาจริง

ลักษณะสำคัญของ RTOS คือระดับของความสอดคล้องที่เกี่ยวข้องกับระยะเวลาที่ใช้ในการยอมรับและทำภารกิจของแอปพลิเคชันให้เสร็จสมบูรณ์ ความแปรปรวนคือกระวนกระวายใจ ระบบปฏิบัติการแบบเรียลไทม์ที่ยากมีความกระวนกระวายใจน้อยกว่าระบบปฏิบัติการแบบเรียลไทม์ที่อ่อนนุ่ม เป้าหมายการออกแบบที่สำคัญไม่ใช่ปริมาณงานสูง แต่เป็นการรับประกันถึงประสิทธิภาพที่อ่อนหรือแข็ง RTOS ที่สามารถพบหรือกำหนดเวลาได้ตามปกติคือ OS แบบเรียลไทม์ที่อ่อนนุ่ม แต่ถ้ามันเป็นไปตามกำหนดเวลาที่กำหนดมันเป็น OS แบบเรียลไทม์ที่ยาก

RTOS มีอัลกอริทึมขั้นสูงสำหรับการจัดตารางเวลา ความยืดหยุ่นของตัวกำหนดตารางเวลาช่วยให้การจัดลำดับความสำคัญของกระบวนการของระบบคอมพิวเตอร์ในวงกว้างขึ้น แต่ระบบปฏิบัติการแบบเรียลไทม์นั้นมักจะทุ่มเทให้กับแอพพลิเคชั่นชุดแคบ ๆ ปัจจัยสำคัญในระบบปฏิบัติการแบบเรียลไทม์คือความล่าช้าในการขัดจังหวะน้อยที่สุดและความล่าช้าในการสลับเธรดน้อยที่สุด ระบบปฏิบัติการแบบเรียลไทม์มีค่ามากกว่าความรวดเร็วหรือความสามารถในการคาดการณ์ที่ตอบสนองได้มากกว่าปริมาณงานที่สามารถทำได้ในช่วงเวลาที่กำหนด

นี่คือสิ่งที่ระบบปฏิบัติการน้อยมากทำจริงเพราะสำหรับปริมาณงานจำนวนมากมันมีประสิทธิภาพน้อยกว่า ไม่มีระบบปฏิบัติการของผู้บริโภครายใหญ่ในขณะนี้ (หรือความรู้ของฉันเคยเป็น) แบบเรียลไทม์ แต่น่าเสียดายที่มันหมายความว่าบางครั้งสิ่งต่าง ๆ ในสภาพแวดล้อมที่ไม่ใช่เวลาจริงต้องนั่งรอสิ่งอื่น ๆ สิ่งนี้จะกลายเป็นปัญหาเมื่อบางสิ่งบางอย่างไม่เกิดขึ้นในเวลาที่เหมาะสมโดยทั่วไป

ปัจจุบันระบบปฏิบัติการแบบเรียลไทม์ที่รู้จักกันดีและมีการใช้งานกันอย่างแพร่หลายที่สุดคือ:

LynxOS
OSE
QNX
RTLinux
VxWorks
Windows CE

ดูรายการระบบปฏิบัติการแบบเรียลไทม์สำหรับรายการที่ครอบคลุม


6
ตามปกติแล้วระบบปฏิบัติการแบบเรียลไทม์จะใช้ในบทบาทที่ทุ่มเทอย่างมากเช่นระบบควบคุมที่แม่นยำอย่างยิ่งซึ่งการตัดสินใจ / การคำนวณ / อื่น ๆ จะต้องเสร็จสิ้นในกรอบเวลาที่เข้มงวดมาก
ลามาร์ B

มีตัวอย่างของ RTOS หรือไม่? การอัปเดตคำถามตามส่วนนี้
ชาดแฮร์ริสัน


สิ่งที่ @ ta.speot.is พูด - มีบางอย่างในบทความเชื่อมโยงแล้ว ฉันจะแก้ไขบางอย่างใน
Shinrai

ฉันไม่ได้ลงไปที่ด้านล่างของหน้า Wiki ... ขออภัยด้วย: /
Chad Harrison

19

ระบบปฏิบัติการแบบเรียลไทม์มักใช้กับระบบสมองกลฝังตัวซึ่งพวกเขาอาจต้องรับผิดชอบบางอย่างเช่นคำแนะนำหรือการตรวจสอบระบบ สิ่งสำคัญที่ต้องจดจำเกี่ยวกับระบบเรียลไทม์ (และสิ่งที่แตกต่างจากระบบที่ไม่ใช่เรียลไทม์) คือในระบบเรียลไทม์หากคำตอบนั้นสายมันผิด คุณสามารถดูวิธีการทำงานได้อย่างง่ายดายโดยการคิดเพิ่มตัวเลขใน Excel (ซึ่งหากการดำเนินการล่าช้าไม่มีผลกระทบจริง) กับการใช้เบรกในรถยนต์ (ซึ่งอาจทำให้เกิดความล่าช้า)


10

โดยทั่วไป RTOS สามารถรับประกันได้ว่าสามารถให้บริการ IRQ (คำขอขัดจังหวะ) ในกรอบเวลาที่กำหนด (โดยปกติจะต่ำ) ระบบปฏิบัติการมาตรฐานไม่มีการรับประกันดังกล่าว

ในระบบที่ทันสมัยที่สุดอุปกรณ์ส่วนใหญ่สามารถสร้าง IRQ สิ่งนี้ทำให้ CPU หยุด (เช่นถูกขัดจังหวะ) สิ่งที่ทำและเรียกใช้โปรแกรมบริการขัดจังหวะ แนวคิดก็คือโปรแกรมบริการนี้จะทำสิ่งที่อุปกรณ์ต้องการเช่นนำข้อมูลออกจากอุปกรณ์และเป็น RAM บอกอุปกรณ์ว่าจะทำอย่างไรต่อไปเป็นต้น

บน x86 เนื่องจากมีเพียง 1 IRQ บรรทัดบน CPU เมื่อได้รับการขัดจังหวะการขัดจังหวะเพิ่มเติมจะถูกปิดใช้งานโดยอัตโนมัติ (ยกเว้น NMI, RESET และ SMI) จนกว่า CPU จะยอมรับแหล่งขัดจังหวะและเปิดใช้งานอีกครั้ง ไดรเวอร์อุปกรณ์ที่ดีภายใต้มาตรฐาน i386 / amd64 Windows จะทำการประมวลผลน้อยที่สุดในสถานะนี้เพียงพอเพื่อให้สามารถเปิดใช้งานอินเตอร์รัปต์ได้อีกครั้งจากนั้นเลื่อนการประมวลผลของอินเตอร์รัปต์จนเสร็จสมบูรณ์ (เนื่องจากระบบสามารถให้บริการได้ แกนกลางในเวลา) ฉันไม่แน่ใจ แต่ฉันเชื่อว่า Linux ทำเช่นเดียวกัน อย่างไรก็ตามไม่มีการรับประกันอย่างหนักในเวลาที่การขัดจังหวะจะได้รับการบริการภายใต้

สำหรับอุปกรณ์พีซีส่วนใหญ่เช่นดิสก์แป้นพิมพ์ NICs หากมีความล่าช้าเล็กน้อยในการให้บริการ IRQ ของพวกเขาจะไม่มีอะไรเลวร้ายเกิดขึ้นนอกจากการสูญเสียประสิทธิภาพ นี่อาจเป็นปัญหาสำหรับอุปกรณ์เช่นอินพุตเสียงและวิดีโอซึ่งอุปกรณ์ไม่ได้บัฟเฟอร์อะไรเลยและพีซีจำเป็นต้องติดตามกระแสข้อมูลที่เข้ามา


คุณสามารถอธิบายสิ่งที่คุณหมายถึงโดย "x86 มีเพียง 1 IRQ บรรทัด" ครั้งล่าสุดที่ฉันล้อมคอมพิวเตอร์ 80186 (เป็นที่ยอมรับหลายทศวรรษที่ผ่านมา) ฉันดูเหมือนจะจำได้ว่า 8259 PIC มี 8 ช่องทางและพีซีที่ระบุในเวลานั้นมีหนึ่งวินาทีที่สองรวมเป็น 15 ช่องไม่รวม NMI?
Glenn Slayden

คุณต้องการ PIC อย่างแม่นยำเพราะ x86 มีเพียงหนึ่ง IRQ บรรทัด แต่หาก x86 อินเตอร์รัปต์ถูกปิดใช้งาน PIC จะรอจนกว่า CPU จะเปิดใช้งานอีกครั้งและ IIRC จะทำเช่นนั้น IIRC ซีพียูอื่น ๆ เช่น 68000 มีหมุดขัดจังหวะ 3 อันและคาดว่าระดับความสำคัญที่กำหนดรหัสไว้ 0-7 จะอยู่บนซีพียูเอง แม้ว่าตอนนี้ฉันจะพิจารณาแล้ว แต่ 68,000 คนอาจปิดการใช้งานอินเตอร์รัปต์ทั้งหมดเมื่อได้รับ IRQ ด้วยเช่นกัน - ฉันไม่เคยตั้งโปรแกรม 68000 เลย
LawrenceC

อ่าใช่ตอนนี้ฉันจำได้ และ IIRC ด้าน 'ลำดับความสำคัญ' ของการออกแบบชิป 8259 - โดยการอนุญาตให้จัดการ IRQ ที่ซ้อนกัน - ควรสนับสนุนให้ระบบปฏิบัติการปิดการใช้งานอินเตอร์รัปต์น้อยที่สุดเท่าที่จะเป็นไปได้หรือไม่ แต่การขัดจังหวะโดยพีซี เข้าใกล้? ไม่ว่าจะด้วยวิธีใดให้เรียกรหัสจำนวนมหาศาลภายใต้ CLI ... STI นั้นไม่เคยมีเจตนา
Glenn Slayden
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.