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

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

4
Interrupt ถูกจัดการใน Linux อย่างไร?
ฉันเพิ่งรู้ว่าInterruptเป็นhardware signal assertionที่เกิดในขาประมวลผล แต่ฉันอยากรู้ว่า Linux OS จัดการกับมันอย่างไร อะไรคือสิ่งที่เกิดขึ้นเมื่อมีการขัดจังหวะ?

4
เหตุใดจึงไม่สามารถออกด้วย Cc ได้
โปรแกรมedตัวแก้ไขข้อความขั้นต่ำไม่สามารถออกได้โดยส่งการขัดจังหวะโดยใช้Ctrl- Cแทนที่จะพิมพ์ข้อความแสดงข้อผิดพลาด "?" ไปยังคอนโซล ทำไมไม่edเพียงออกเมื่อได้รับการขัดจังหวะ? แน่นอนไม่มีเหตุผลว่าทำไมข้อผิดพลาดที่เป็นความลับมีประโยชน์มากกว่าที่นี่เพียงแค่ออกจาก พฤติกรรมนี้นำผู้ใช้ใหม่จำนวนมากไปสู่การโต้ตอบประเภทต่อไปนี้: $ ed hello ? help ? exit ? quit ? ^C ? ^C ? ? ? ^D $ su # rm -f /bin/ed ขยะที่น่าเศร้าเช่นนี้สามารถหลีกเลี่ยงได้ง่ายหากedตกลงกันว่าจะถูกขัดจังหวะ อีกหนึ่งโปรแกรมปากแข็งจัดแสดงเป็นพฤติกรรมที่คล้ายกันซึ่งยังไม่ปรากฏว่ามีเหตุผลมากพอที่จะไม่สนใจless C-cเหตุใดโปรแกรมเหล่านี้จึงไม่เป็นเพียงคำใบ้
20 less  interrupt  ed 

3
ความสัมพันธ์ระหว่างการเรียกของระบบการส่งข้อความและการขัดจังหวะคืออะไร?
ฉันอ่านบทความวิกิพีเดียสำหรับการจัดการกระบวนการ ฉันมุ่งเน้นไปที่ Linux ฉันไม่สามารถหาความสัมพันธ์และความแตกต่างระหว่างการเรียกของระบบการส่งข้อความและขัดจังหวะในแนวคิดและวัตถุประสงค์ของพวกเขา พวกเขาทั้งหมดสำหรับกระบวนการในการร้องขอเคอร์เนลสำหรับทรัพยากรและบริการ? บางคำพูดจากบทความและอื่น ๆ : มีสองวิธีที่เป็นไปได้สำหรับระบบปฏิบัติการที่จะได้รับการควบคุมของหน่วยประมวลผลในระหว่างการดำเนินการของโปรแกรมเพื่อให้ระบบปฏิบัติการที่จะทำการจัดสรรหรือการจัดสรร: กระบวนการออกสายระบบ (บางครั้งเรียกว่าซอฟต์แวร์ขัดจังหวะ); ตัวอย่างเช่นคำขอ I / O เกิดขึ้นเพื่อขอให้เข้าถึงไฟล์บนฮาร์ดดิสก์ การขัดจังหวะของฮาร์ดแวร์เกิดขึ้น ตัวอย่างเช่นมีการกดแป้นบนแป้นพิมพ์หรือตัวจับเวลาหมด (ใช้ในมัลติทาสก์แบบ pre-emptive) มีสองเทคนิคที่โปรแกรมดำเนินการในโหมดผู้ใช้สามารถร้องขอบริการของเคอร์เนลได้: * System call * Message passing อินเทอร์รัปต์เป็นสัญญาณอะซิงโครนัสที่ระบุถึงความต้องการความสนใจหรือเหตุการณ์ซิงโครนัสในซอฟต์แวร์ที่ระบุถึงความต้องการการเปลี่ยนแปลงในการดำเนินการ ฮาร์ดแวร์ขัดจังหวะทำให้โปรเซสเซอร์บันทึกสถานะของการดำเนินการและเริ่มต้นการดำเนินการของตัวจัดการขัดจังหวะ การขัดจังหวะของซอฟต์แวร์มักจะนำมาใช้เป็นคำแนะนำในชุดคำสั่งซึ่งทำให้การสลับบริบทเป็นตัวจัดการขัดจังหวะคล้ายกับการขัดจังหวะฮาร์ดแวร์

3
เคอร์เนลของ Linux จัดการ IRQ ที่แชร์ได้อย่างไร
ตามที่ฉันได้อ่านจนถึง "เมื่อเคอร์เนลได้รับการขัดจังหวะตัวจัดการที่ลงทะเบียนทั้งหมดจะถูกเรียกใช้" ฉันเข้าใจว่าตัวจัดการที่ลงทะเบียนสำหรับ IRQ แต่ละตัวสามารถดูได้ผ่านทาง/proc/interruptsและฉันยังเข้าใจว่าตัวจัดการที่ลงทะเบียนนั้นมาจากไดรเวอร์ที่เรียกใช้การrequest_irqส่งผ่านในรูปแบบการติดต่อกลับโดยประมาณ: irqreturn_t (*handler)(int, void *) จากสิ่งที่ฉันรู้ควรเรียกใช้ตัวจัดการอินเทอร์รัปต์เหล่านี้ที่เกี่ยวข้องกับ IRQ เฉพาะและขึ้นอยู่กับตัวจัดการเพื่อพิจารณาว่าควรจัดการอินเทอร์รัปต์จริงหรือไม่ IRQ_NONEถ้าจัดการไม่ควรจัดการกับการขัดจังหวะโดยเฉพาะอย่างยิ่งจะต้องกลับแมโครเคอร์เนล สิ่งที่ฉันมีปัญหาในการทำความเข้าใจคือคาดว่าไดรเวอร์แต่ละตัวจะตัดสินว่าควรจัดการกับอินเทอร์รัปต์หรือไม่ ฉันคิดว่าพวกเขาสามารถติดตามภายในถ้าพวกเขาควรจะคาดหวังว่าการขัดจังหวะ ถ้าเป็นเช่นนั้นฉันไม่รู้ว่าพวกเขาจะสามารถรับมือกับสถานการณ์ที่ไดรเวอร์หลายตัวที่อยู่เบื้องหลัง IRQ เดียวกันคาดว่าจะเกิดการขัดจังหวะได้อย่างไร เหตุผลที่ฉันพยายามเข้าใจรายละเอียดเหล่านี้ก็เพราะฉันยุ่งกับkexecกลไกในการเรียกใช้เคอร์เนลอีกครั้งในระหว่างการทำงานของระบบในขณะที่เล่นด้วยหมุดรีเซ็ตและรีจิสเตอร์ต่าง ๆ บนสะพาน PCIe เช่นเดียวกับ PCI ดาวน์สตรีม เครื่อง และในการทำเช่นนั้นหลังจากรีบูตฉันอาจได้รับความตื่นตระหนกของเคอร์เนลหรือไดรเวอร์อื่น ๆ บ่นว่าพวกเขาได้รับการขัดจังหวะแม้ว่าจะไม่มีการดำเนินการเกิดขึ้น ผู้จัดการตัดสินใจว่าควรจัดการกับอินเทอร์รัปต์อย่างไรจึงเป็นเรื่องลึกลับ แก้ไข: ในกรณีที่เกี่ยวข้องกับสถาปัตยกรรม CPU ที่เป็นx86ปัญหา
14 linux  kernel  pci  interrupt  irq 

3
ทำการรวบรวมต่อไปอย่างไร
ฉันรู้ว่าฉันสามารถขัดจังหวะmakeกระบวนการได้ตลอดเวลาโดยไม่ต้องคอมไพล์ต้นไม้ต้นกำเนิดอีกครั้ง อย่างที่ฉันรู้makeรวบรวมเฉพาะเป้าหมายหากยังไม่ได้รวบรวมหรือรหัสแหล่งที่มามีการแก้ไขหลังจากการรวบรวมครั้งสุดท้าย แต่ถ้าฉันขัดจังหวะmakeจะต้องมีครึ่งหนึ่ง (ขึ้นอยู่กับระดับการทำงานพร้อมกัน) อย่างแน่นอน มันจะมีอะไรทำกับพวกเขาในครั้งต่อไปผมทำงานmake? หรือมันจะเสร็จสิ้นเป้าหมายปัจจุบันเมื่อฉันกดCtrl+ Cเพื่อหลีกเลี่ยงการรวบรวมไบนารีบางส่วน?

1
วิธีแก้จุดบกพร่องสาเหตุของการใช้ทรัพยากร ksoftirqd มากเกินไป?
man ksoftirqd ระบุว่า: หาก ksoftirqd ใช้เวลา CPU นานกว่าเล็กน้อยแสดงว่าเครื่องอยู่ภายใต้ภาระการขัดจังหวะแบบนุ่มนวลหนัก ฉันทำงานกับระบบ Debian Wheezy ภายใต้การใช้งานระบบที่สูงซึ่งกระบวนการ ksoftirqd ใช้ทรัพยากรซีพียูและดิสก์มากเกินไปในช่วงเวลาสั้น ๆ ในช่วงเวลานั้นระบบจะทำงานอย่างช้ามาก เราจะเริ่มเข้าใจได้อย่างไรว่าสาเหตุใดที่ทำให้เกิดการใช้ทรัพยากรอย่างนี้ ksoftirqd?
9 interrupt  load 

2
วิธีการตรวจหาโดยทางโปรแกรมเมื่ออุปกรณ์ทำการขัดจังหวะ?
วิธีการตรวจหาโดยทางโปรแกรมเมื่ออุปกรณ์ทำการขัดจังหวะ? นี่อาจเป็นเมื่ออุปกรณ์เชื่อมต่อหรือตัดการเชื่อมต่อ และในกรณีนี้เช่นเมื่อยกนิ้วสแกนลายนิ้วมือจะเกิดการขัดจังหวะ จะตรวจจับและดักจับอินเทอร์รัปต์นี้ได้อย่างไร ฉันต้องการเขียนแอปพลิเคชันโดยใช้ Gtkmm เช่นเมื่อมีเหตุการณ์เกิดขึ้นเช่นซีดีที่ถูกแทรกหรือเสียบ pendrive ฉันจับอุปกรณ์ขัดจังหวะเหล่านี้ยกขึ้นและใช้เพื่อทำบางสิ่งบางอย่างในแอปพลิเคชันของฉันที่เกี่ยวข้องกับอุปกรณ์เหล่านี้ หากไม่สามารถทำได้ใน Gtkmm ฉันสามารถดัก Interrupt ในระดับที่ต่ำกว่าและแจ้งแอปพลิเคชัน Gtkmm ได้หรือไม่ ฉันกำลังตรวจสอบว่า GParted ทำงานอย่างไร มันเริ่มแสดง/dev/sdaและเมื่อฉันเชื่อมต่อ pendrive ของฉันมันเปิดfilesแอปพลิเคชันโดยอัตโนมัติ เมื่อฉันตรวจสอบ GParted แล้ว pendrive ไม่มีอยู่ในเมนูแบบเลื่อนลงของอุปกรณ์ มันปรากฏตัวเฉพาะเมื่อฉันเลือก“อุปกรณ์รีเฟรช” ในเมนูหรือ GParted +CtrlR
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.