当计算机没有以某种方式响应时,会出现不同程度的“冻结”。
例如,假设我正在我的电脑上浏览网页...
如果当前浏览器选项卡停止响应(单击/键入没有任何反应),浏览器可能仍会响应。
如果整个浏览器被锁定,也许操作系统仍在响应。
如果 OS GUI 没有响应,我通常仍然可以切换Caps LockLED。
如果Caps Lock不再响应,我必须假设“最大程度冻结”。但有时,如果我等待,整个计算机可能仍然会在一段时间后恢复正常。
如果 Caps Lock 不再切换,是否意味着计算机“比步骤 3 中更加冻结”?
Caps Lock作为“冻结”的最终测试是否有意义?
...如果是的话,切换和不切换之间有什么区别Caps Lock?什么决定了是否Caps Lock响应?
答案1
您提问时基本上是在回答您自己的问题,但是为了得到答案,我会尽我所能去回答。
有多种不同的方式可能会导致某些事物变得无响应。
假设您正在使用 Windows,尽管其他操作系统的流程并没有太大区别。
当您与程序交互时,您可以通过在程序获得焦点时单击或键入来进行交互。
点击或打字通过鼠标或键盘传递到主板。操作系统将查询正在输入的内容以及鼠标的移动方式。它会解释信号并相应地与程序交互。
除非按下了具有全局状态的热键,否则键盘快捷键将发送到活动应用程序。在这种情况下,操作系统将执行不同的操作。
操作系统还会使该程序与其他程序之间无需任何交互即可运行。例如,当你将文件从位置 1 复制到位置 2 时,如果你不输入任何内容或不移动鼠标,文件复制操作仍会继续。
现代操作系统有一个功能叫做多任务这基本上意味着它会非常快速地循环所有程序,让每个程序有时间在其编程中执行一个循环。通过这样做,看起来所有程序都会同时流畅地运行。在这个循环中,操作系统本身也会获得 CPU 时间。
当程序执行大量计算时,CPU 的使用率会更高。CPU 的使用率越高,系统其余部分(包括循环执行所有其他程序)可用的电量就越少。当 CPU 的使用率达到 100% 时,计算机将变得非常慢,因为它正在等待 CPU 时间来处理所有打开的程序的所有活动。如果发生这种情况,操作系统通常会阻止计算机冻结,但在这些情况下计算机可能会冻结。
在创建程序时,可能存在一个错误,导致程序在执行一系列任务时崩溃或无响应。
说到程序错误,无响应程度有多种不同程度。程序可能会暂停执行,等待用户按下某个按钮,但该按钮出现在屏幕之外。程序运行正常,只是不接受用户输入,因此看起来好像是暂停了,但技术上并非如此。
程序可能正在执行内存操作,但内存操作引用了不同的内存段,而该内存段又引用了不同的内存段,最终引用了第一个内存段。结果,形成了一个永无止境的循环。程序认为它正在执行一个简单的操作,并期望在几纳秒内得到结果,但会导致缓冲区不足或溢出。Windows 7 及更高版本具有多种保护措施,并会给出严重错误:“程序停止响应并已崩溃。发送错误报告”。在早期版本的 Windows 中,根据内存循环的严重程度,可能会导致蓝屏死机。
操作系统本身本质上也是一个程序,也存在同样的问题。编程中的一个错误可能会导致整个操作系统失去响应。
最后,操作系统的一部分是用于与硬件通信的程序。这些程序称为驱动程序。与普通程序一样,驱动程序也可能崩溃并变得无响应,尽管发生这种情况的可能性较小。键盘驱动程序可能会崩溃并导致键盘停止响应,而鼠标仍可工作。
操作系统通常会检测驱动程序问题并尝试重新启动驱动程序。驱动程序的编程质量决定了用户发现崩溃的程度。有时它可能会导致显示屏闪烁,仅此而已,有时会显示一个弹出窗口,表明驱动程序已崩溃并重新启动。
即插即用驱动程序通常比较稳定,不会崩溃。特定硬件的自定义驱动程序可能更容易崩溃,因为很可能某些错误尚未被发现。
解释完以上内容后,现在是时候回答这个问题了。
如上所述,崩溃可能由于不同的原因而发生,严重程度也不同。如果 CapsLock 键会触发 LED 灯,则需要两件事。它需要驱动程序正常运行,并且需要操作系统留出时间来处理驱动程序的编程周期(我之前提到的多任务部分)
如果两者都是真,则按下 Capslock 键将执行以下操作:
键盘上的按键被按下,其信号被发送到主板。操作系统的驱动程序向操作系统解释发生了什么,驱动程序向键盘发送一条消息,告知 LED 状态应更改为新状态。操作系统将使用此信息以大写字母输入文本。但是,某些程序会通过向驱动程序发送第二个 CapsLock 信号来关闭 LED 键。根据键盘的不同,如果是这种情况,CapsLock 灯可能永远不会亮起。
如果按下 Caps Lock 后驱动程序没有立即获得其循环,则 LED 不会改变。但系统可能由于某种原因而非常慢,并且循环被延迟。在这种情况下,按下 CapsLock 或 NumLock 可能不会立即改变 LED 的状态,而是在一两秒后才会改变。
最后,有可能由于操作系统层面的某种原因,它会等待驱动程序编程周期,因为它在等待某事。如果是这种情况,鼠标可能仍然可以移动,但其他一切似乎都冻结了。
鉴于如果 5 秒钟后正常的键盘 LED 功能仍然不起作用,则 PC 将面临严重问题,因此可以安全地假设系统已严重崩溃并且无法恢复。
另外还有两个键,即 Scroll Lock 和 Numlock。在这三个键中,Numlock 是唯一一个其他程序可能不会滥用的键,因为它的功能性质决定了它的作用。使用 numlock 来测试系统是否响应比使用 capslock 或 scroll lock 更可靠,因为有些程序倾向于使用这些键来触发不同的功能,因此它们通常会使 LED 状态关闭,这使得使用 Capslock 或 scroll lock 进行测试的可靠性较低,而使用 numlock 进行测试的可靠性更高。