linux课程设计报告

linux课程设计报告

ID:8472857

大小:21.50 KB

页数:5页

时间:2018-03-28

linux课程设计报告_第1页
linux课程设计报告_第2页
linux课程设计报告_第3页
linux课程设计报告_第4页
linux课程设计报告_第5页
资源描述:

《linux课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、《Linux课程设计》班级:08计算机三班姓名:王海鹏学号:指导教师:于群提交日期:2011-06-231.课程设计题目编写proc文件系统相关的内核模块1)设计一模块,该模块的功能是列出系统中所有内核线程的程序名、PID号和进程状态。2)设计一个带参数的内核模块,其参数为某个进程的PID号,该模块的功能是列出该进程的家族信息,包括父进程、兄弟进程和子进程的程序名、PID号。2.第一题详细描述1)代码#include#include#inc

2、ludeMODULE_LICENSE("GPL");staticintps_begin(void){intcount=0;structtask_struct*p;for_each_process(p){if(p->mm==NULL){printk("ThreadInfo!");printk("comm=%s,pid=%d,state=%ld",p->comm,p->pid,p->state);count++;}printk("thenumbero

3、fprocessesis:%d",count);}return0;}staticvoidps_end(void){printk("Exit!");}module_init(ps_begin);module_exit(ps_end);2)解释1.关于头文件的解释a.。包含了对模块的结构定义以及模块的版本控制,任何模块的程序编写都要包含这个文件。b.init.h定义了模块的加载函数module_init()和模块卸载函数modul

4、e_exit()。初始化函数应当声明成静态的,因为他们不会在特定文件之外可见。模块卸载函数在模块被移除前注销接口并释放所有所含用的系统资源。卸载函数没有返回值,因此被声明为空。c.提供task_struct进程描述符。这是任务(进程)数据结构,或成为进程描述符。structtask_struct*p,声明一个进程指针p,p->comm即线程名,p->state即线程状态,p->pid即线程标识号。2.主要函数的解释。a.staticintps_begin(void).

5、实现题目功能函数。模块加载时,加载此函数。b.staticvoidps_end(void).模块卸载时,加载此函数,释放内存空间。c.for_each_process(p).遍历所有的p,即所有的进程和线程,在接下来的if(p->mm==NULL)找出线程。并count++,进行计数。d.printk().该函数由内核定义,功能与C库中的printf()类似,他把要打印的信息输出到系统日志。3.关于判断p->mm==NULL的解释。父进程是用户进程,由于操作系统中进程与线程的区别在于是否分配内存空

6、间。线程是不分配空间的。所以内核线程的mm=NULL;进程调度的时候以此为依据判断是用户进程还是内核线程。4.count是计数器,记录内核线程的数目。3)编译1.makeclean2.make生成“a.ko”文件,接下来调试用。3.insmoda.ko加载编译好的模块a.ko。4.dmesg调出系统日志内容,显示内核消息。即这个文件的内容/var/log/messages。或者用dmesg

7、tail-10。使用管道查看日志内容中的后10行。5.rmmoda.ko卸载模块。3.第二题详细描述1)代码

8、#include#include#include#includeMODULE_LICENSE("GPL");staticintpid=1;module_param(pid,int,S_IRUGO);staticintps_begin(void){structtask_struct*p,*p_parent,*pp;structlist_head*lh;p=pid_task(find_

9、get_pid(pid),PIDTYPE_PID);//获取进程块if(p){printk("ThreadInfo!");printk("comm=%s,pid=%d,state=%ld",p->comm,p->pid,p->state);p_parent=p->parent;printk("Hisfatheris:comm=%s,pid=%d,state=%ld",p_parent->comm,p_parent->pid,p_parent->state);

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。