linux0.11
文章平均质量分 56
JewinH
create as god, work as slave.
展开
-
linux0.11中的进程相关总结
建议阅读这里列举的参考资料,本文仅用于备忘。参考资料本次的分享是非常浅的,更多内容请查看:具体的请阅读《Linux内核0.11完全注释_V3.0 by 赵炯 (z-lib.org).pdf》以及inter的官方英文手册: 《i386.pdf》要想理解机器怎么工作的,必须要读一遍汇编:《汇编语言(第3版) 》王爽著调汇编可以用vscode提供的插件,具体请参考这3篇文章:https://blog.csdn.net/weixin_45708190/article/details/121134296原创 2022-04-29 11:43:13 · 424 阅读 · 1 评论 -
Linux0.11 实验四 进程运行轨迹跟踪与统计
实验4 进程运行轨迹跟踪与统计pid X time其中:- pid是进程的IDX可以是N,J,R,W和E中的任意一个N 进程新建 ,newJ 进入就绪态 , JR 进入运行态 , runW 进入阻塞态, waitE 退出 ,exittime表示X发生的时间。这个时间不是物理时间,而是系统的滴答时间(tick)仔细阅读sched.c文件本实验主要分析整个的调度流程,主要方法是,当发生状态转换时,进程的state变化时,我们把这个记录记下来。打印函数先看看打印函数:st原创 2022-04-25 10:35:00 · 580 阅读 · 0 评论 -
linux0.11 sleep_on函数说明
/*这是一个非常复杂的函数:该函数与wake_up配合使用,我们用一个例子来说明这个复杂的问题sleep_on(&inode->i_wait);比如有任务在等待资源inode->i_wait,如果这个资源是NULL,也就是说,没有任何人在使用这个东西,那么就无需等待,如果这个队列里面有东西,那么就存在tmp里面,tmp此时指向原等待队列头,值得注意的是,这个地方,tmp是局部变量,而p是全局的。所有进程共用p , 每个进程都有自己的tmp讲本进程设置为TASK_UNIN原创 2022-04-24 17:43:55 · 641 阅读 · 0 评论 -
linux0.11_系统调用
系统调用系统调用的过程void sched_init(void){ ... set_system_gate(0x80,&system_call); //注册}system_call: cmpl $nr_system_calls-1,%eax ja bad_sys_call push %ds push %es push %fs pushl %edx pushl %ecx # push %ebx,%ecx,%edx as parameters pushl %eb原创 2022-04-19 14:47:44 · 544 阅读 · 0 评论