Linux内核设计第八周 ——进程的切换和系统的一般执行过程
Linux内核设计第八周
——进程的切换和系统的一般执行过程
第一部分 知识点总结









第二部分 实验部分
1、配置实验环境,确保menu内核可以正常启动
2、进入gdb调试,在shedule和context_switch处设置断点
3、开始调试,可以看到Menu内核启动在shedule处中断
4、单步调试,发现程序执行到__schedule处,我们list出该处的代码
5、进入该函数继续调试,在picknexttask处设置断点,查看具体细节
6、查看picknexttask函数的具体代码,我们会看到在进程上下文切换的具体细节,最终调用finishtaskswitch函数完成进程上下文的切换。
7、调试完picknexttask函数,我们finish这段调试,继续执行c,进入到contextswitch函数断点处。list可以看到contextswitch函数处的详细代码。
8、一直单步调试下去,我们在过程中可以发现preparetaskswitch函数,为进程上下文切换做准备工作。
实验总结:在调试过程中,我发现schedule函数中调用__ schedule函数,__ schedule函数又调用了pick_ next_ task函数和context_ switch函数,根据相关代码可以分析出,pick_ next_ task函数首先指定了调度策略,context_ switch函数进行进程上下文切换。
重点总结
1、Linux系统中进程调度的时机分析
见知识点总结
2、进程上下文切换和中断上下文切换的关系?
见知识点总结
3、分析并理解Linux中进程调度与进程切换过程
见知识点总结
4、理解“Linux系统一般执行过程”
- 1.首先在控制台下输入命令
- 2.shell程序分析输入参数,在终端中解释程序
- 3.调用系统调用fork生成一个shell本身的拷贝
- 4.调用exec系统调用将输入的命令的可执行文件装入内存
- 5.从系统调用返回
- 6.shell和命令都执行
宋宸宁+ 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000
Linux内核设计第八周 ——进程的切换和系统的一般执行过程的更多相关文章
- Linux内核分析第八周——进程的切换和系统的一般执行过程
Linux内核分析第八周--进程的切换和系统的一般执行过程 李雪琦+原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/cou ...
- 20135327郭皓--Linux内核分析第八周 进程的切换和系统的一般执行过程
第八周 进程的切换和系统的一般执行过程 一.进程切换的关键代码switch_to分析 1.进程调度与进程调度的时机分析 不同类型的进程有不同的调度需求 第一种分类: I/O-bound:频繁进行I/O ...
- 《Linux内核》第七周 进程的切换和系统的一般执行过程 20135311傅冬菁
进程的切换和系统的一般执行过程 一.内容总结与分析 进程调度与进程调度时机 进程调度需求的分类: 第一种分类方式: I/O -bound(频繁进行I/O,通常会花很多时间等待I/O操作) CPU-bo ...
- 《Linux内核分析》第八周 进程的切换和系统的一般执行过程
[刘蔚然 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000] WEEK EIGHT ...
- Linux内核及分析 第八周 进程的切换和系统的一般执行过程
学习笔记: 一.进程调度与进程调度的时机分析 1.不同类型的进程有不同需求的调度需求: 第一种分类: —I/O-bound:频繁的进行I/O,通常会花费很多时间等待I/O操作的完成 —CPU-boun ...
- 20135337朱荟潼 Linux第八周学习总结——进程的切换和系统的一般执行过程
第八周 进程的切换和系统的一般执行过程 一.进程切换关键代码switch_to 1.不同类型进程有不同调度需求--两种分类 2.调度策略--规则 Linux中进程优先级是动态的,周期性调整. 3.时机 ...
- Linux 第八周实验 进程的切换和系统的一般执行过程
姬梦馨 原创作品 <Linux内核分析>MOOC课程:http://mooc.study.163.com/course/USTC-1000029000 第八讲 进程的切换和系统的一般执行过 ...
- Linux内核设计第六周 ——进程的描述和创建
Linux内核设计第六周 ——进程的描述和创建 第一部分 知识点总结 一.进程描述符task_struct数据结构 1.操作系统的三大功能: 进程管理.内存管理.文件系统 2.进程的作用: 将信号.进 ...
- LINUX内核分析第八周学习总结——进程的切换和系统的一般执行过程
LINUX内核分析第八周学习总结——进程的切换和系统的一般执行过程 张忻(原创作品转载请注明出处) <Linux内核分析>MOOC课程http://mooc.study.163.com/c ...
随机推荐
- Zepto Code Rush 2014 B - Om Nom and Spiders
注意题目给的是一个nxm的park,设元素为aij,元素aij 有4种可能U(上移),D(下移),L(左移),R(右移) 假设第i行第j列元素aij(注意元素的索引是从0开始的) 当aij为D时,此时 ...
- [知识点]C++中的运算符
1.前言 之前最开始学习语法和基础知识的时候,基本上最简单的运算符有所接触,当时对于位运算这种东西完全没有概念.今天对C++中出现的部分运算符尤其是位运算符进行一些总结. 2.+ - * / % 这些 ...
- 【BZOJ】3621: 我想那还真是令人高兴啊
http://www.lydsy.com/JudgeOnline/problem.php?id=3621 题意:给两个三角形,问A能否通过旋转伸缩到B. #include <bits/stdc+ ...
- 对GitHub的认识
Github创建于2008年被市场研究公司Forrester称作开发者的Facebook .作为开源代码库以及版本控制系统,Github拥有140多万开发者用户.随着越来越多的应用程序转移到了云上,G ...
- Log4cplus使用
Log4cplus使用¶ 1.1 简介 log4cplus是C++编写的开源日志系统,前身是java编写的log4j日志系统.log4cplus具有线程安全.灵活.以及多粒度控制的特点,通过将信息划分 ...
- Java_Eclipse_Maven插件部署
方法一:在线; Eclipse-help-Install New Software 1.下载地址: m2e - http://download.eclipse.org/technology/m2e/r ...
- sbt assembly build.sbt content
// import sbt._ // import sbt.Keys._ // import java.io.File // import AssemblyKeys._ name := "n ...
- 全选,不选,反选 jquery
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- UVA12532 线段树(单点更新,区间求乘积的正负)
It’s normal to feel worried and tense the day before a programming contest. To relax, you went out f ...
- Week1 学长的经验教训
我手头拿到的是上一届学长的软件工程大作业,作业的名称是——汽车4S店信息管理系统. 这个大作业我认为还是非常典型的传统模式的大作业,由手机端(客户端)和服务端组成,非常的传统. ...







