操作系统如何与CPU通信?
操作系统中有驱动程序,这一点我理解。操作系统使用驱动程序 -> 通信 -> 设备控制器。
通信是如何进行的?操作系统是否直接使用其命令触及CPU,还是使用BIOS作为接口?
假设我将制作自己的操作系统。它的唯一任务是向CPU发送算术运算并将结果打印到屏幕上。 我会告诉CPU将内存字放入寄存器中,计数它们,然后将它们放回内存中。我该怎么做?
操作系统如何与CPU通信?
操作系统中有驱动程序,这一点我理解。操作系统使用驱动程序 -> 通信 -> 设备控制器。
通信是如何进行的?操作系统是否直接使用其命令触及CPU,还是使用BIOS作为接口?
假设我将制作自己的操作系统。它的唯一任务是向CPU发送算术运算并将结果打印到屏幕上。 我会告诉CPU将内存字放入寄存器中,计数它们,然后将它们放回内存中。我该怎么做?
中央处理器通过中断调用操作系统执行特定任务,操作系统使用特殊的特权CPU寄存器来编程CPU。
例如,当您在键盘上按键时,硬件会生成中断。CPU调用中断处理程序函数(它是操作系统的一部分),该函数将处理按键事件,并将其传递到用户程序中。
另一个频繁的操作系统 - CPU 交互的例子是任务切换。大多数操作系统使用硬件定时器每秒产生约100个定时器中断。在此中断上,操作系统调度程序被调用,有时可以通过更改一些CPU寄存器来切换任务。在最简单的操作系统和CPU中,调度程序将更改SP(堆栈指针)和PC(程序计数器)寄存器。对于更复杂的CPU,它还将重新编程CPU的MMU硬件单元并更改许多内部控制寄存器。
外部硬件通常由驱动程序进行编程,通过执行PIO写入或写入映射PCI空间(写入硬件内存的特殊地址)。
涉及哪些寄存器用于什么目的等细节很多,但要覆盖所有内容需要一整本书。
这里 是一本免费的书,涵盖了相对入门级别的许多详细信息。