อะไรเป็นตัวกำหนดว่า Caps Lock ตอบสนองหรือไม่ในขณะที่คอมพิวเตอร์ค้างอยู่


15

เมื่อคอมพิวเตอร์ไม่ตอบสนองในทางใดทางหนึ่งก็มีระดับ "แช่แข็ง" ที่แตกต่างกัน

ตัวอย่างเช่นสมมติว่าฉันกำลังท่องเว็บบนพีซีของฉัน ...

  1. หากแท็บเบราว์เซอร์ปัจจุบันหยุดตอบสนอง (การคลิก / พิมพ์จะไม่ทำอะไรเลย) เบราว์เซอร์อาจยังคงทำงานอยู่

  2. หากเบราว์เซอร์ทั้งหมดถูกล็อคแสดงว่าระบบปฏิบัติการยังคงตอบสนองอยู่

  3. หาก OS GUI ไม่ตอบสนองบ่อยครั้งฉันยังคงสามารถสลับCaps LockLED ได้

  4. หากCaps Lockไม่ตอบสนองอีกต่อไปฉันต้องถือว่า "หยุดสูงสุด" บางครั้งถ้าฉันรอคอมพิวเตอร์ทั้งหมดอาจยังคงกลับมาเป็นปกติหลังจากผ่านไประยะหนึ่ง


  • ถ้า Caps Lock ไม่สลับอีกต่อไปนั่นหมายความว่าคอมพิวเตอร์ "หยุดนิ่งมากกว่าในขั้นตอนที่ 3" หรือไม่?

  • มันสมเหตุสมผลไหมที่จะใช้Caps Lockเป็นการทดสอบขั้นสุดท้ายของ "การแช่แข็ง"?

  • ... และถ้าเป็นเช่นนั้นอะไรคือความแตกต่างระหว่างเมื่อCaps Lockสลับและไม่? อะไรเป็นตัวกำหนดว่าจะCaps Lockตอบสนองหรือไม่?


10
การตอบสนองต่อ Caps Lock, Num Lock และ Scroll Lock ต้องใช้ระบบปฏิบัติการเพื่อให้สามารถขัดจังหวะการให้บริการ (คีย์บอร์ด) AFAIK การตอบสนองของ LED สร้างขึ้นใน ISR และไม่ต้องการการประมวลผล userpace ดังนั้นการไร้ความสามารถในการดำเนินการนี้จะบ่งบอกถึงสภาพที่รุนแรง เมื่อเงื่อนไขนี้ใช้เวลานานกว่าสองสามวินาทีและ Ctrl-Alt-Del ก็ไม่ตอบสนองดังนั้นฉันจึงถือว่ามันไม่สามารถกู้คืนได้และกดปุ่มรีเซ็ตหรือปุ่มเปิดปิดเครื่อง
sawdust

บางโปรแกรมทำสิ่งที่ขี้ขลาดด้วยปุ่ม CapsLock ทำให้ปุ่ม CapsLock น่าเชื่อถือน้อยลงเพื่อให้แน่ใจ ฉันจะใช้ Numlock ในกรณีนี้อาจจะเป็นการทดสอบครั้งที่สอง ตัวอย่างเช่นในซอฟต์แวร์ Music Tracker, ตัวอย่างเช่น Milky Tracker, Fast Tracker และแม้กระทั่ง OpenMPT, CapsLock จะใช้ในการแทรกบันทึกย่อและเช่นเดียวกับสถานะของปุ่ม CapsLock ดังนั้น LED จะไม่เปิดขึ้นมาเมื่อกดครั้งเดียว
LPChip

@ LPChip - สิ่งที่ขี้ขลาดจะต้องใช้ซอฟต์แวร์เพลงเพื่อตอบสนองต่อหรือไม่
Bort

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

คำตอบ:


2

โดยทั่วไปคุณจะตอบคำถามของคุณเองระหว่างตอบคำถาม แต่เพื่อให้ได้คำตอบฉันจะพยายามตอบให้ดีที่สุดเท่าที่จะทำได้

มีหลายวิธีบางอย่างอาจไม่ตอบสนอง

สมมติว่าคุณใช้ Windows อยู่แม้ว่ากระบวนการนั้นจะไม่แตกต่างกันสำหรับระบบปฏิบัติการอื่น

เมื่อคุณโต้ตอบกับโปรแกรมคุณทำได้โดยคลิกหรือพิมพ์ในขณะที่โปรแกรมนั้นโฟกัส

คลิกหรือพิมพ์ดีดผ่านเมาส์หรือแป้นพิมพ์ไปยังเมนบอร์ด ระบบปฏิบัติการจะสอบถามสิ่งที่กำลังพิมพ์และวิธีการย้ายเมาส์ มันตีความสัญญาณและโต้ตอบกับโปรแกรมตาม

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

ระบบปฏิบัติการจะทำให้โปรแกรมระหว่างโปรแกรมอื่น ๆ ทำงานโดยไม่มีการโต้ตอบใด ๆ ตัวอย่างเช่นเมื่อคุณคัดลอกไฟล์จากตำแหน่ง 1 ไปยังตำแหน่ง 2 หากคุณไม่พิมพ์อะไรเลยหรือไม่ย้ายเมาส์การดำเนินการคัดลอกไฟล์จะยังคงดำเนินต่อไป

ระบบปฏิบัติการสมัยใหม่มีคุณสมบัติที่เรียกว่าMulti Taskingซึ่งโดยทั่วไปหมายความว่ามันวนผ่านโปรแกรมทั้งหมดอย่างรวดเร็วให้เวลาแต่ละโปรแกรมเพื่อดำเนินรอบในการเขียนโปรแกรม โดยการทำเช่นนั้นจะปรากฏว่าโปรแกรมทั้งหมดทำงานในเวลาเดียวกันอย่างคล่องแคล่ว ในรอบนี้ระบบปฏิบัติการเองก็จะได้รับเวลา CPU

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

เมื่อมีการสร้างโปรแกรมเป็นไปได้ว่ามีข้อผิดพลาดเกิดขึ้นซึ่งทำให้โปรแกรมขัดข้องหรือไม่ตอบสนองเมื่อมีการทำงานหลายอย่าง

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

เป็นไปได้ที่โปรแกรมกำลังดำเนินการการทำงานของหน่วยความจำ แต่การทำงานของหน่วยความจำหมายถึงส่วนต่าง ๆ ของหน่วยความจำซึ่งอีกครั้งหมายถึงส่วนที่แตกต่างกันของหน่วยความจำและไปตามทางสิ้นสุดลง เป็นผลให้เกิดการวนซ้ำไม่สิ้นสุด โปรแกรมคิดว่ามันทำงานได้ง่ายและคาดว่าจะได้ผลลัพธ์ภายในไม่กี่นาโนวินาที แต่จะทำให้บัฟเฟอร์มีการไหลบ่าหรือล้น Windows 7 ขึ้นไปมีการป้องกันหลายอย่างและจะให้ข้อผิดพลาดร้ายแรง: "โปรแกรมหยุดตอบสนองและล้มเหลวส่งรายงานข้อผิดพลาด" ใน windows รุ่นก่อนหน้าขึ้นอยู่กับความรุนแรงของลูปหน่วยความจำมันอาจส่งผลให้ Blue Screen of Death

ระบบปฏิบัติการตัวเองอยู่ในสาระสำคัญยังเป็นโปรแกรมและมีปัญหาเดียวกัน เป็นไปได้ว่าบั๊กในการโปรแกรมอาจทำให้ระบบปฏิบัติการทั้งหมดไม่ตอบสนอง

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

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

โดยทั่วไปแล้วไดรเวอร์ Plug and Play จะเสถียรและไม่ผิดพลาด ไดรเวอร์ที่กำหนดเองสำหรับฮาร์ดแวร์เฉพาะอาจผิดพลาดได้ง่ายขึ้นเนื่องจากมีโอกาสสูงกว่าข้อผิดพลาดบางอย่างที่ยังไม่พบ

ด้วยการอธิบายข้างต้นเวลาในการตอบคำถาม

ตามที่ระบุความผิดพลาดอาจเกิดขึ้นได้จากหลายสาเหตุและแตกต่างกัน หากปุ่ม CapsLock จะทำให้ไฟ LED ต้องใช้สองสิ่ง มันต้องการไดรเวอร์ที่จะทำงานได้และมันต้องใช้ระบบปฏิบัติการเพื่อให้เวลาในการประมวลผลรอบการเขียนโปรแกรมของไดรเวอร์ (ส่วนมัลติทาสก์ที่ฉันกล่าวถึงก่อนหน้านี้)

หากทั้งคู่เป็นจริงการกดปุ่ม Capslock จะทำดังนี้:

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

หากไดรเวอร์ไม่ได้รับรอบโดยตรงหลังจากกดปุ่ม Caps Lock ไฟ LED จะไม่เปลี่ยน แต่เป็นไปได้ว่าระบบช้ามากด้วยเหตุผลบางอย่างและรอบจะล่าช้า ในกรณีดังกล่าวอาจเกิดขึ้นได้ว่าการกดปุ่ม capslock หรือ Numlock จะไม่เปลี่ยนสถานะของ LED ทันที แต่หลังจากนั้นหนึ่งหรือสองวินาที

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

เนื่องจากพีซีกำลังมีปัญหาร้ายแรงหากฟังก์ชั่น LED ของคีย์บอร์ดปกติไม่ทำงานหลังจากเวลาผ่านไป 5 วินาทีก็สามารถสันนิษฐานได้อย่างปลอดภัยว่าระบบล้มเหลวอย่างรุนแรงและไม่สามารถกู้คืนได้

มีอีกสองปุ่มคือ Scroll Lock และ Numlock จากสามปุ่มเหล่านี้ Numlock เป็นกุญแจสำคัญเดียวที่โปรแกรมอื่น ๆ จะไม่ใช้ในทางที่ผิดเนื่องจากลักษณะของการใช้คีย์ มีความน่าเชื่อถือมากกว่าที่จะใช้ numlock เพื่อทดสอบว่าระบบตอบสนองหรือไม่มากกว่า capslock หรือ scroll lock เพราะบางโปรแกรมมักจะใช้ปุ่มเหล่านี้เพื่อเรียกใช้ฟังก์ชันที่แตกต่างกันและเช่นนั้นพวกเขามักจะทำให้สถานะ LED ดับ เชื่อถือได้น้อยกว่าในการทดสอบด้วย Capslock หรือ Scroll Lock และเชื่อถือได้มากขึ้นในการทดสอบกับ Numlock


คำถามสุดท้ายของฉันเกี่ยวกับ [สิ่งที่กำหนดว่า Caps Lock LED ตอบกลับ] รองจากนั้นคือถ้าเหมาะสมที่จะใช้ Caps Lock เพื่อทดสอบสำหรับ "point of no return"] ฉันไม่แน่ใจในสิ่งที่คุณบอกเป็นนัยว่าฉันตอบคำถามของฉันเอง คำถามของฉันมีเพียงสมมติฐานเก็งกำไรโดยไม่มีข้อมูลจริงหรือทฤษฎีจริงที่เกี่ยวข้อง ฉันเชื่อว่าคำตอบของคุณเสริมการใช้งาน Caps Lock ที่เสนอโดยอธิบายกลไกระดับล่าง
Bort

@Bort ฉันแก้ไขคำถามของฉันเพื่อให้ชัดเจนยิ่งขึ้น ฉันพยายามตอบคำถามของคุณ แต่รู้สึกว่าจำเป็นต้องอธิบายว่าทุกอย่างทำงานได้อย่างไรเพื่อวางรากฐานว่าทำไมสิ่งต่าง ๆ เช่นนี้ มิฉะนั้นจะถูกมองว่าเป็นความคิดเห็นของฉันและไม่ได้มีความเป็นจริงมากนัก
LPChip
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.