欢迎来到天天文库
浏览记录
ID:9797578
大小:911.00 KB
页数:36页
时间:2018-05-10
《操作系统课程设计 进程调度》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、进程调度实现源代码分析摘要本文对Linux内核中进程调度部分的源代码进行了详细的流程分析与代码注释,并对该部分的代码实现进行了研究。画出了具体的流程图,及分析了具体的作用。在进程调度部分主要涉及了Linux的调度算法及实现.关键词:操作系统进程进程调度中断定时器运行队列系统调用门内核空间用户空间36目录第一章引言3第二章Linux内核的整体结构4第三章进程调度5一、Linux进程调度的策略5二、Linux进程调度的加权处理5三、在Linux中,进程的结构及状态转换关系6四、Linux进程的调度算
2、法8五、Linux进程的调度时机9六、Linux进程的队列10七、Linux进程调度的全过程12第四章Linux源码模块功能12一、进程调度函数:schedule()12二、计算进程权值的函数:goodness()15三、载入新进程函数:switch_mm()17四、函数add_to_runqueue()18五、函数del_from_runqueue()19六、函数move_last_runqueue()20七、函数move_first_runqueue()20第五章内核源代码分析22第六章分析
3、研究体会33第七章自我评价36第八章参考文献3636第一章引言在计算机系统中,处理机是整个系统的核心资源。在多处理机操作系统中,进程调度就是把处理机公平、合理、高效地分配给各个进程。计算机系统整体的运行性能如响应的及时性、用户作业周转时间的长短、作业吞吐量的大小等,都与进程调度有关。所以,进程调度是操作系统的核心部分。Linux中进程调度的对象是可运行队列中的进程,它是按照一定的调度方式、采用给定的调度算法,从可运行队列中选择一个进程,把处理机分配给它,使它成为运行态。Linux继承了UINX进
4、程调度的方法,并且又采用了若干最新技术。在整个计算机系统中CPU是最宝贵的资源,所有的任务必须由CPU来执行。因此只有充分利用CPU,才能最大程度的提高系统的效率。Linux是一个多进程系统,它通过进程调度解决了充分利用CPU的问题。当一个进程因为得不到某些资源而等待时,Linux在此时不是让CPU空转等待进程获得足够资源后继续运行,而是采取一定的调度策略选择另外一个进程交给CPU去执行。虽然某个进程会因为各种原因停止运行,CPU却总是有任务在执行,这样,CPU就得到了充分的利用,从而大大提高了
5、系统的效率和吞吐量。我国的IT产业起步较晚,技术落后于西方经济发达国家。在我国,由于受知识产权的限制,无论是使用PC平台上的Windows,还是使用应用于大中型机的UNIX,都无法窥视到其内部结构。这些系统很可能存在不为我们所知的漏洞,如果这些漏洞为别有用心者所利用,将会严重危及我国的经济安全和国家安全。操作系统不同于其它软件产品,它是其它应用程序得以运行的平台,应用软件的开发必须基于对相应平台(操作系统)的技术的理解和掌握。由于我们的软件企业无法获知这些系统的细节,根本无法与拥有这些关键技术的
6、国外先进企业相抗衡,长此以往,将会对我国软件产业产生深远的负面影响。因此,分析Linux源代码对于在Linux现有的基础上开发我们自己的Linux就具有非常现实和重要的意义。在这次课程设计中,我主要在源码水平上讨论Linux内核进程调度的实现,其目的是通过对源码的分析与研究,为以后的学习打下基础。36第二章Linux内核的整体结构Linux内核由5个主要的子系统组成。这5个子系统分别是进程调度(SCHED)、内存管理(MM)、虚拟文件系统(VirtualFileSystem,VFS)、网络接口(
7、NET)和进程间通信(IPC)。进程调度控制着进程对CPU的访问。当需要选择下一个进程运行时,由调度程序选择最值得运行的进程。可运行进程实际是仅等待CPU资源的进程,如果某个进程在等待其它资源,则该进程是不可运行进程。Linux使用了比较简单的基于优先级的进程调度算法选择新的进程。下图显示了上述五个子系统之间的关系:图1在这些子系统中,进程调度子系统是其他子系统得以顺利工作的关键。无论是文件系统的系统进程还是网络子系统的服务进程都需要通过进程调度来获得相应的CPU时间以正常运行。36第三章进程调
8、度一、Linux进程调度的策略进程调度的策略主要考虑以下几个原则:1、高效使处理器的利用率最高,空闲最小;2、公平使每一个申请处理器的进程都得到合理的处理器时间;3、周转时间短使用户提交任务后得到结果的时间尽可能短;4、吞吐量大使单位时间内处理的任务数量尽可能多;5、响应时间短使对每个用户响应的时间尽可能短。Linux有两种类型的进程:实时和非实时(普通)。实时进程比所有其它进程的优先级高。如果有一个实时的进程准备运行,那么它总是先被运行。实时进程有两种策略:时间片轮转或先进先出(roundro
此文档下载收益归作者所有