为了方便看Delphi的VCL源码,这几天在学汇编,里面基本是对寄存器的操作,我就有点不明白了,CPU就那么几个寄存器,而每台电脑有N多程序,软件都在用,它怎么安排得过来的,靠中断吗,还是排队机制,等其他程序用完了再轮到你。那不是很影响速度

解决方案 »

  1.   

    推荐一本书
    《Windows.环境下32位汇编语言程序设计(第2版)完整高清晰PDF版》
    电驴上有下
      

  2.   

    在硬件上来讲,就是靠中断来进行切换,这个中断也叫系统中断,即操作系统以此获得控制权。在高级的CPU中(相对于早年的8086或者51单片机),已经可以实现硬件压栈,即在一个指令周期内把所有的CPU寄存器入栈。现在的CPU不是都一、二、三级缓存了吗?速度快,做栈蛮合适的,所以切换占用时间已经很少了。
    至于排队机制,也是操作系统最核心的任务,任务调度时会遵循一此规则,例如抢占式或非抢占式什么的。在用户层面,多数操作系统下都可以设置任务或进程的优先级,排队则按照优先级和先后顺序进行。