linux
隐形的稻草人HWS
If not now when; If not me who
展开
-
移动操作系统内核分析--基于工作者线程实现,要求在系统调用中使用 “完成变量”等待提交的工作完成后(内核线程信息打印完成后)再返回。
思考题:1、如何避免死锁?可以通过破坏死锁产生的4个必要条件来 预防死锁,由于资源互斥是资源使用的固有特性是无法改变的。Ⅰ、破坏“不可剥夺”条件:一个进程不能获得所需要的全部资源时便处于等待状态,等待期间他占有的资源将被隐式的释放重新加入到 系统的资源列表中,可以被其他的进程使用,而等待的进程只有重新获得自己原有的资源以及新申请的资源才可以重新启动,执行。Ⅱ、破坏”请求与保持条件“...原创 2019-11-22 01:28:07 · 538 阅读 · 0 评论 -
移动操作内核分析---将打印内核线程信息的工作用linux内核的工作队列(工作者线程)来实现。
思考题:1、什么情形下使用工作者线程模式?1、处理密集型和性能要求严格的任务时,可以允许调度甚至是休眠。2、推后的任务需要休眠时使用工作者线程;如果推后执行的任务不需要睡眠,那么就选择软中断或tasklet。3、需要把任务推后到进程上下文中完成时要用到工作者线程模式,如果进程上下文不是必要的条件(如果并不需要睡眠),那么软中断和tasklet可能更合适。4、需要一个可以重新调度...原创 2019-11-22 01:23:44 · 386 阅读 · 0 评论 -
git 分支与合并 (附运行截图)
1、现在我们来创建一个新的叫”hws_branch”的分支2、运行下面这条命令,会得到当前仓库中存在的所有分支列表:$ git branch3、“hws_master分支是刚才创建的,“master”分支是Git系统默认创建的主分支。星号(“*”)标识了你当工作在哪个分支下,输入,切换到hws_master 分支,可以看到,分支已经发生改变:$ git che...原创 2019-11-21 12:46:09 · 174 阅读 · 0 评论 -
移动操作系统内核分析--启动内核线程并打印信息
完成目标在实验二的系统调用处理函数中启动一个内核线程,在线程中打印以下信息:- 执行系统调用的进程的ID号- 分行打印系统中所有内核线程的信息:线程ID、父进程ID、运行状态、名称、用户ID(每一行打印一个内核线程的信息),代码逻辑及编码风格一、实现实验效果的源代码图:(在sys_x86_64.c 里面修改)代码路径:path/to/linux/arch/x86/kern...原创 2019-11-13 21:23:05 · 1858 阅读 · 2 评论 -
移动操作系统内核分析--Linux系统调用
一 、实验目的了解Linux系统调用的工作机制 掌握Linux系统调用的实现方法 二、 实验内容 实现一个新的“Hello World”系统调用。 验证系统调用 创建一个用户程序来调用“Hello World”系统调用: 将用户程序编译后,放入rootfs.img根文件系统中。 启动qemu虚拟机,在虚拟机中运行用户程序。成功时将能看到“Hello World!”...原创 2019-10-27 18:21:38 · 1128 阅读 · 0 评论 -
移动操作系统内核分析——Linux系统启动过程
实验一 Linux系统启动过程编译带有调试信息的Linux内核。1. 编译带有调试信息的Linux内核。打开Shell终端,在Linux内核源码根目录里执行下列操作:1) 清除以前的编译结果及配置信息:执行make mrproper2) 以预定义的通用配置defconfig配置内核:执行make defconfig3) 修改通用配置以满足内核调试需求:执行ma...原创 2019-10-17 17:24:34 · 932 阅读 · 0 评论