LINUX内核分析第八周学习总结——进程的切换和系统的一般执行过程 张忻(原创作品转载请注明出处) <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.知识概要 (一)进程切换的关键代码switch_to分析 1.进程进度与进程调度的时机分析 2.进程上下文切换相关代码分析 (二)Linux系统的一般执行过程 1.Linux系统的一般执行过程分析 2.Linux系统执行过程中的几个特殊情况 3.内核与舞女 (三…
LINUX内核分析第六周学习总结--进程的描述与创建 标签(空格分隔): 20135321余佳源 余佳源 原创作品转载请注明出处 <Linux内核分析>MOOC课程 http://mooc.study.163.com/course/USTC-1000029000 一.进程的描述 1.操作系统三大功能 进程管理 内存管理 文件系统 最核心的是进程管理 2.进程的作用 将信号.进程间通信.内存管理和文件系统联系起来 3.进程控制块PCB--task_struct 来自课件↓ 为了管理进程,内核必须…
LINUX内核分析第六周学习总结——进程的描述和进程的创建 张忻(原创作品转载请注明出处) <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.知识概要 进程的描述 进程描述符task_struct数据结构(一) 进程描述符task_struct数据结构(二) 进程的创建 进程的创建概览及fork一个进程的用户态代码 理解进程创建过程复杂代码的方法 浏览进程创建过程相关的关键代码 创建的新进程是从哪里开始执行的…
  一.进程 process: executing program code(text section) data section containing global variables open files pending signals internal kernel data address space one or more threads of execution Processes, in effect, are the living result of running progra…
内核版本:linux-2.6.11 Linux在加载一个可执行程序的时候做了种种复杂的工作,内存分配是其中非常重要的一环,作为一个linux程序员必然会想要知道这个过程到底是怎么样的,内核源码会告诉你这一切. 线性区 一个可执行程序,是经过编译器处理后的遵守一定规则的数据.符号表和指令序列的组合,当linux加载一个可执行程序的时候,会为其创建一个新的进程,其对应的进程描述符task_struct中会保存许多资源的描述符,其中的mm_struct就是这个进程的内存描述符,用来管理该进程拥有的所有…
本次实验过程如下: 1. 运行MenuOS系统 在实验楼的虚拟机环境里,打击打开shell,使用下面的命令 cd LinuxKernel/ qemu -kernel linux-/arch/x86/boot/bzImage -initrd rootfs.img 截图如下: 2. 使用 gdb 对 MenuOS 进行调试跟踪运行 1) 在命令行内输入如下代码: qemu -kernel linux-/arch/x86/boot/bzImage -initrd rootfs.img -s -S #…
20135132陈雨鑫 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ” 一.进程调度与进程调度的时机分析 1.进程调度 不同类型的进程有不同的调度需求 第一种分类:       I/O-bound            频繁的进行I/O           通常会花费很多时间等待I/O操作的完成     CPU-bound            计算密集型          …
进程的描述和进程的创建 一.进程的描述 1.进程描述符task_struct数据结构(一) 操作系统的三大功能:进程管理(核心).内存管理.文件系统. 进程控制块PCB——task_struct(进程描述符):为了管理进程,内核必须对每个进程进行清晰的描述,进程描述符提供了内核所需了解的进程信息. struct task_struct数据结构很庞大,共有约400行代码 Linux进程的状态与操作系统原理中的描述的进程状态似乎有所不同,比如就绪状态和运行状态都是TASK_RUNNING,为什么呢?…
一.进程调度与进程切换 1.不同的进程有不同的调度需求 第一种分类: I/O密集型(I/O-bound) 频繁的进行I/O 通常会花费很多时间等待I/O操作的完成 CPU密集型(CPU-bound) 计算密集型 需要大量的CPU时间进行运算 第二种分类: 批处理进程 不必与用户交互,通常在后台运行 不必很快响应 典型:编译程序,科学计算 实时进程 有实时需求,不应被低优先级的进程阻塞 响应时间要短要稳定 典型:视频.音配.机械控制 交互式进程 需要经常与用户交互,所以要花很多时间等待用户输入操作…
杨舒雯(原创作品转载请注明出处) <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 实验目的: 使用gdb跟踪分析一个schedule()函数 ,验证您对Linux系统进程调度与进程切换过程的理解:; 理解进程上下文的切换机制,以及与中断上下文切换的关系: 实验步骤: 1.配置环境,登录实验楼网站. 按照以前的实验方式配置好环境,具体过程见图示: 2.设置断点 3.单步执行 ![](http://images20…