主题:[讨论]Pentium的多任务求教!!!!急
wangyangsong163
[专家分:30] 发布于 2008-03-07 21:55:00
我是学软件技术的,但我们学院没有开设汇编,但我知道汇编很重要,只好自学。汇编里讲Pentium的多任务时讲的哪些理论我是看得似懂非懂的,我想问一下。
一个程序在运行时怎么会交出CPU的使用权呐,汇编里讲系统只执行程序的一小部分。它是怎么让程序只运行一部分的呀,是不是系统在把程序调入内存时在某点就给程序设置了无条件转移指令来指向下一个程序的呀
对了虚拟内存是指在系统盘下开设一块区域吗?唉,自学这个好多问题呀。
[em10][em10][em10][em10][em10][em10][em10][em10]
回复列表 (共3个回复)
沙发
lstzixing [专家分:30] 发布于 2008-03-11 20:57:00
建设你看一下386的保护模式相关的资料。其中有关于任务切换以及虚拟内存的东西。
不过那个比较复杂, 我现在在看很是头痛, 很多地方不清楚。
板凳
我是大喊三 [专家分:3010] 发布于 2008-03-13 02:06:00
它是怎么让程序只运行一部分的呀,是不是系统在把程序调入内存时在某点就给程序设置了无条件转移指令来指向下一个程序的呀
-------------------------------
建议看看“操作系统原理”类的书。你所说的“系统”即是操作系统了。但是并不是你说的“通过给程序设置无条件转移指令”来实现程序的切换的。应该是通过保存然后修改CS:IP(即代码的指向,不过这里只是打个比方,不涉及具体的CPU),状态字等寄存器来实现各进程之间的切换的。那你要说如果一个进程自己去修改那些寄存器,不是让自己想要就要了?不幸的是它不可能得逞,所谓的“保护模式”就是为此而诞生的,某些指令或是寄存器,处于“用户态”级别的进程根本无法执行。进程与操作系统之间还有很多通信,告知和了解自己处于“等待”,“挂起”还是“激活”等状态。也就是说交出CPU控制权可以是主动的,也可能是被动的(操作系统调度)。在多任务操作系统下运行的程序都以为自己拥有全部的资源,实际上它们是共享资源,并且只能执行一些规规矩矩的代码,不能涉及操作系统及其它进程的领域。这样一个进程死锁,操作系统可以方便的KILL它。这也就是为什么以NT为核心的2K,XP比较稳定的原因。以上随便乱谈,因为自己了解的也不是很多。
3 楼
beijingmaxiao [专家分:0] 发布于 2008-05-21 12:24:00
在80386以上处理器,保护模式下通过分段分页机制实现多任务。。建议看看操作系统和32位汇编原理
我来回复