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内核设计第八周 ——进程的切换和系统的一般执行过程的更多相关文章

  1. Linux内核分析第八周——进程的切换和系统的一般执行过程

    Linux内核分析第八周--进程的切换和系统的一般执行过程 李雪琦+原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/cou ...

  2. 20135327郭皓--Linux内核分析第八周 进程的切换和系统的一般执行过程

    第八周 进程的切换和系统的一般执行过程 一.进程切换的关键代码switch_to分析 1.进程调度与进程调度的时机分析 不同类型的进程有不同的调度需求 第一种分类: I/O-bound:频繁进行I/O ...

  3. 《Linux内核》第七周 进程的切换和系统的一般执行过程 20135311傅冬菁

    进程的切换和系统的一般执行过程 一.内容总结与分析 进程调度与进程调度时机 进程调度需求的分类: 第一种分类方式: I/O -bound(频繁进行I/O,通常会花很多时间等待I/O操作) CPU-bo ...

  4. 《Linux内核分析》第八周 进程的切换和系统的一般执行过程

    [刘蔚然 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000] WEEK EIGHT ...

  5. Linux内核及分析 第八周 进程的切换和系统的一般执行过程

    学习笔记: 一.进程调度与进程调度的时机分析 1.不同类型的进程有不同需求的调度需求: 第一种分类: —I/O-bound:频繁的进行I/O,通常会花费很多时间等待I/O操作的完成 —CPU-boun ...

  6. 20135337朱荟潼 Linux第八周学习总结——进程的切换和系统的一般执行过程

    第八周 进程的切换和系统的一般执行过程 一.进程切换关键代码switch_to 1.不同类型进程有不同调度需求--两种分类 2.调度策略--规则 Linux中进程优先级是动态的,周期性调整. 3.时机 ...

  7. Linux 第八周实验 进程的切换和系统的一般执行过程

    姬梦馨 原创作品 <Linux内核分析>MOOC课程:http://mooc.study.163.com/course/USTC-1000029000 第八讲 进程的切换和系统的一般执行过 ...

  8. Linux内核设计第六周 ——进程的描述和创建

    Linux内核设计第六周 ——进程的描述和创建 第一部分 知识点总结 一.进程描述符task_struct数据结构 1.操作系统的三大功能: 进程管理.内存管理.文件系统 2.进程的作用: 将信号.进 ...

  9. LINUX内核分析第八周学习总结——进程的切换和系统的一般执行过程

    LINUX内核分析第八周学习总结——进程的切换和系统的一般执行过程 张忻(原创作品转载请注明出处) <Linux内核分析>MOOC课程http://mooc.study.163.com/c ...

随机推荐

  1. [转]JavaScript跨域总结与解决办法

    转载自http://www.cnblogs.com/rainman/archive/2011/02/20/1959325.html仅用作个人读书笔记. 什么是跨域 1.document.domain+ ...

  2. js 对象(Object)

    一.对象 除了字符串.数字.true.false.null和undefined之外,javascript中的值都是对象. javascript对象属性包括名字和值,属性名可以是包含空字符串在内的任意字 ...

  3. oracle的内置函数

    1.wmsys.wm_concat   行转列函数 select wmsys.wm_concat(destnumber) from mms_send_his_record group by sendn ...

  4. NUC_TeamTEST_B(贪心)

    B - B Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Submit Statu ...

  5. ASP.NET 操作Cookie详解 增加,修改,删除

    Cookie,有时也用其复数形式Cookies,指某些网站为了辨别用户身份而储存在用户本地终端上的数据(通常经过加密).定义于RFC2109.它是网景公司的前雇员Lou Montulli在1993年3 ...

  6. BZOJ 3110 k大数查询 & 树套树

    题意: 有n个位置,每个位置可以看做一个集合,现在要求你实现一个数据结构支持以下功能: 1:在a-b的集合中插入一个数 2:询问a-b集合中所有元素的第k大. SOL: 调得火大! 李建说数据结构题能 ...

  7. struts1 核心类

    http://ajh-123.blog.163.com/blog/static/161727409201031455634475/ 1.ActionServlet类: 是一个前端控制器,将reques ...

  8. 【bzoj3160】万径人踪灭 FFT

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3160 我是一个傻叉 微笑脸 #include<bits/stdc++.h> #de ...

  9. UESTC 30 最短路,floyd,水

    最短路 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit Statu ...

  10. 11877 The Coco-Cola Store

    题目:    11877  The Coco-Cola Store Once upon a time, there is a special coco-cola store. If you retur ...