如果面试官的意思是让你设计一个操作系统,那你应该说说windows的套路。大概是这样: 每一个线程都有一个struct,其中的成员用来保存CPU的寄存器的数据。当一个线程在结束之前要把CPU中所有寄存器的信息保存到struct,然后放到内存。然后线程调度程序查看其它待执行线程的优先级,下一个线程到底执行谁要看两个方面,一个是看谁的优先级高,另一个是看哪个线程憋屈老半天都没能执行。综合判断之后就读取下一个进程的struct,用struct中的成员恢复到寄存器当中,然后就可以用EIP寄存器指向的地址继续执行了
好像我们当初操作系统原理课程设计就是这个。。
怎么实现多线程...这是开发操作系统的节奏啊
说操作系统的多线程,不是很清晰,可能是指应用程序内的多线程如何实现? 如果是多进程、多任务主要是形成解决思路的方案: 比如要考虑内存冲突,设备占用冲突。硬件多核心时的调度等等,输入输出在多线程,负载平衡 如果是应用程序内的多线程,主要考虑的问题是内存冲突,还有负载平衡
《30天自制操作系统》
65,186
社区成员
250,526
社区内容
加载中
试试用AI创作助手写篇文章吧