ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

操作系统课程设计 进程管理 chrt系统调用的实现

2020-07-03 21:37:39  阅读:337  来源: 互联网

标签:课程设计 chrt 操作系统 调度 调用 deadline 进程 proc


 进程管理 实验报告及代码见我的github:https://github.com/ningmengwei-ata/ClassProject/tree/master/Operating%20System/chrt%20system%20call 目标 1. 巩固操作系统的进程调度机制和策略 2. 熟悉MINIX系统调用和MINIX调度器的实现 实验要求  在MINIX3中实现Earliest-Deadline-First近似实时调度功能: 1. 提供设置进程执行期限的系统调度chrt (long deadline),用于将调用该系统调用的进程设为实时进程,其执行的期限为:从调用处开始deadline秒。 2. 在内核进程表中需要增加一个条目,用于表示进程的实时属性;修改相关代码,新增一个系统调用chrt,用于设置其进程表中的实时属性。 3. 修改proc.c和proc.h中相关的调度代码,实现最早deadline的用户进程相对于其它用户进程具有更高的优先级,从而被优先调度运行。 4. 在用户程序中,可以在不同位置调用多次chrt系统调用,在未到deadline之前,调用chrt将会改变该程序的deadline。 5. 未调用chrt的程序将以普通的用户进程(非实时进程)在系统中运行。 增加系统调用chrt:  MINIX3中的系统调用结构分成三个层次:应用层,服务层,内核层。在这三层中分别进行代码修改,实现系统调用chrt的信息传递。从应用层用_syscall将信息传递到服务层,在服务层用_kernel_call将信息传递到内核层,在内核层对进程结构体增加deadline成员。 MINIX3中的进程调度:  进程调度模块位于/usr/src/minix/kernel/下的proc.h和proc.c,修 改影响进程调度顺序的部分。  struct proc 维护每个进程的信息,用于调度决策。添加deadline成员。  switch_to_user() 选择进程进行切换。  enqueue_head() 按优先级将进程加入列队首。实验中需要将实时进程的优先级设置成合适的优先级。  enqueue() 按优先级将进程加入列队尾。同上。  pick_proc() 从队列中返回一个可调度的进程 。遍历设置的优先级队列,返回剩余时间最小并可运行的进程。

标签:课程设计,chrt,操作系统,调度,调用,deadline,进程,proc
来源: https://www.cnblogs.com/wwqdata/p/13232792.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有