学习笔记: 一.进程调度与进程调度的时机分析 1.不同类型的进程有不同需求的调度需求: 第一种分类: —I/O-bound:频繁的进行I/O,通常会花费很多时间等待I/O操作的完成 —CPU-bound:计算密集型,需要大量的CPU时间进行运算 第二种分类: —批处理进程:不必与用户交互,通常在后台运行:不必响应很快: —实时进程:有实时需求,不被低优先级的进程阻塞:响应时间短,稳定: —交互式进程:需要经常与用户交互:响应时间要快 2.调度策略:一组规则,决定什么时候以怎样的方式选择一个新的进…
Linux内核分析第八周--进程的切换和系统的一般执行过程 李雪琦+原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.知识要点: schedule目的:在运行队列中找到一个进程,把cpu分配给他. schedule()函数选择一个新的进程来运行,并调用context_switch进行上下文的切换,这个宏调用switch_to来进行关键上下文切换. next = pick_next_…
第八周 进程的切换和系统的一般执行过程 一.进程切换的关键代码switch_to分析 1.进程调度与进程调度的时机分析 不同类型的进程有不同的调度需求 第一种分类: I/O-bound:频繁进行I/O,花费很长时间等待I/O CPU-bound:计算密集型,需要大量CPU时间进行计算 第二种分类: 批处理进程:不必交互.很快响应 实时进程:要求响应时间短 交互式进程(shell) 调度策略:是一组规则,它们决定什么时候以怎样的方式选择一个新进程运行. Linux的进程根据优先级排队 Linux中…
Linux内核设计第八周 ——进程的切换和系统的一般执行过程 第一部分 知识点总结 第二部分 实验部分 1.配置实验环境,确保menu内核可以正常启动 2.进入gdb调试,在shedule和context_switch处设置断点 3.开始调试,可以看到Menu内核启动在shedule处中断 4.单步调试,发现程序执行到__schedule处,我们list出该处的代码 5.进入该函数继续调试,在picknexttask处设置断点,查看具体细节 6.查看picknexttask函数的具体代码,我们会…
[刘蔚然 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000] WEEK EIGHT(4.11--4.17)进程的切换和系统的一般执行过程 SECTION 1 进程切换的关键代码switch_to的分析 1.进程调度与进程调度的时机分析 进程分类 分类1 I/O-bound:等待I/O CPU-bound:大量占用CPU进行计算 分类2 交互式进程(shell) 实时进程 批处理进程 进程调…
进程的切换和系统的一般执行过程 一.内容总结与分析 进程调度与进程调度时机 进程调度需求的分类: 第一种分类方式: I/O -bound(频繁进行I/O,通常会花很多时间等待I/O操作) CPU-bound(计算密集型.需要花大量CPU时间进行运算) 第二种分类方式: 批处理进程(后台进行,典型:编译程序.科学计算) 实时进程(有实时需求响应时间短.稳,典型:视频.音频.机械控制) 交互式进程(与用户交互多,响应时间要快,典型:shell.文本编辑程序.图形应用程序) Linux调度基于分时和优…
第八周 进程的切换和系统的一般执行过程 一.进程切换关键代码switch_to 1.不同类型进程有不同调度需求--两种分类 2.调度策略--规则 Linux中进程优先级是动态的,周期性调整. 3.时机 schedule()函数负责调度. 中断处理过程(包括时钟中断.I/O中断.系统调用和异常)中,直接调用schedule(),或者返回用户态时根据need_resched标记调用schedule(): 内核线程可以直接调用schedule()进行进程切换,也可以在中断处理过程中进行调度,也就是说内…
姬梦馨 原创作品 <Linux内核分析>MOOC课程:http://mooc.study.163.com/course/USTC-1000029000 第八讲 进程的切换和系统的一般执行过程 学习笔记 一:进程的调度时机与进程的切换 1:进程调度时机      两种分类 a:I/O-bound 频繁的进行I/O 通常会花费很多时间等待I/O操作的完成 CPU-bound 计算密集型 需要大量的CPU时间进行运算 b:批处理进程(batch process) 不必与用户交互,通常在后台运行,不必…
LINUX内核分析第八周学习总结——进程的切换和系统的一般执行过程 张忻(原创作品转载请注明出处) <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.知识概要 (一)进程切换的关键代码switch_to分析 1.进程进度与进程调度的时机分析 2.进程上下文切换相关代码分析 (二)Linux系统的一般执行过程 1.Linux系统的一般执行过程分析 2.Linux系统执行过程中的几个特殊情况 3.内核与舞女 (三…
韩玉琪 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.进程切换的关键代码 操作系统原理中介绍了大量进程调度算法,这些算法从实现的角度看仅仅是从运行队列中选择一个新进程,选择的过程中运用了不同的策略而已. 对于理解操作系统的工作机制,反而是进程的调度时机与进程的切换机制更为关键. 1. 进程的调度时机 不同类型的进程有不同的调度需求 (1)第一种分类: I/O-bound 频…
一.进程调度与进程切换 1.不同的进程有不同的调度需求 第一种分类: I/O密集型(I/O-bound) 频繁的进行I/O 通常会花费很多时间等待I/O操作的完成 CPU密集型(CPU-bound) 计算密集型 需要大量的CPU时间进行运算 第二种分类: 批处理进程 不必与用户交互,通常在后台运行 不必很快响应 典型:编译程序,科学计算 实时进程 有实时需求,不应被低优先级的进程阻塞 响应时间要短要稳定 典型:视频.音配.机械控制 交互式进程 需要经常与用户交互,所以要花很多时间等待用户输入操作…
进程的切换和系统的一般执行过程 一.进程调度的三个时机: 1.中断处理过程(包括时钟中断.I/O中断.系统调用和异常)中,直接调用schedule(),或者返回用户态时根据need_resched标记调用schedule(): 2.内核线程可以直接调用schedule()进行进程切换,也可以在中断处理过程中进行调度,也就是说内核线程作为一类的特殊的进程可以主动调度,也可以被动调度: 3.用户态进程无法实现主动调度,仅能通过陷入内核态后的某个时机点进行调度,即在中断处理过程中进行调度. 二.swi…
week 8 进程的切换和系统的一般执行过程 [ 20135239 原文请转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000] 一.进程调度与进程调度的时机分析 操作系统原理中介绍了大量进程调度算法,这些算法从实现的角度看仅仅是从运行队列中选择一个新进程,选择的过程中运用了不同的策略而已.对于理解操作系统的工作机制,反而是进程的调度时机与进程的切换机制更为关键. 不同类型的进程有不同的调度需求 第一…
进程的切换和系统的一般执行过程 一.进程切换的关键代码switch_to分析 (一)进程调度与进程调度的时机分析 1.不同类型的进程有不同的调度需求 第一种分类: (1)I/O-bound:频繁进行I/O,花费很多时间等待I/O操作的完成. (2)CPU-bound:计算密集型,需要大量CPU时间进行计算. 第二种分类: (1)批处理进程:不必交互.很快响应. (2)实时进程:要求响应时间短. (3)交互式进程(shell). 2.调度策略:是一组规则,它们决定什么时候以怎样的方式选择一个新进程…
此为个人笔记存档 week 8 进程的切换和系统的一般执行过程 一.进程调度与进程切换 1.不同的进程有不同的调度需求 第一种分类: I/O密集型(I/O-bound) 频繁的进行I/O 通常会花费很多时间等待I/O操作的完成 CPU密集型(CPU-bound) 计算密集型 需要大量的CPU时间进行运算 第二种分类: 批处理进程 不必与用户交互,通常在后台运行 不必很快响应 典型:编译程序,科学计算 实时进程 有实时需求,不应被低优先级的进程阻塞 响应时间要短要稳定 典型:视频.音配.机械控制…
进程的切换和系统的一般执行过程 谈愈敏 原创作品转载请注明出处 <Linux内核分析>MOOC课程 http://mooc.study.163.com/course/USTC-1000029000 一.进程切换的关键代码switch_to分析 进程调度与进程调度的时机分析 不同类型的进程有不同的调度需求 第一种分类: I/O-bound:频繁进行I/O,花费很长时间等待I/O CPU-bound:计算密集型,需要大量CPU时间进行计算 第二种分类: 批处理进程:不必交互.很快响应 实时进程:要…
20135132陈雨鑫 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ” 一.进程调度与进程调度的时机分析 1.进程调度 不同类型的进程有不同的调度需求 第一种分类:       I/O-bound            频繁的进行I/O           通常会花费很多时间等待I/O操作的完成     CPU-bound            计算密集型          …
一.进程切换的关键代码switch_to的分析 (一)进程调度与进程调度的时机分析 1.不同类型的进程有不同的调度需求 第一种分类: I/O-bound:频繁地进行I/O,花费很多的时间等待I/O操作的完成 CPU-bound:计算密集型,需要大量的CPU时间进行计算 第二种分类: 批处理进程 实时进程 交互式进程(shell) 进程调度策略:是一组规则,决定何时以何种方式选择进程. Linux的调度基于分时和优先级策略: 进程根据优先级排队: 这个优先级的值表示如何适当分配CPU: 进程的优先…
进程调度的时机 linux进程调度是基于分时和优先级的 中断处理过程(包括时钟中断.I/O中断.系统调用和异常)中,直接调用schedule(),或者返回用户态时根据need_resched标记调用schedule(): 内核线程可以直接调用schedule()进行进程切换,也可以在中断处理过程中进行调度,也就是说内核线程作为一类的特殊的进程可以主动调度,也可以被动调度: 内核线程是只有内核态没有用户态的特殊进程 内核可以看作各种终端处理过程和内核线程的集合 用户态进程无法实现主动调度,仅能通过…
杨舒雯(原创作品转载请注明出处) <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 实验目的: 使用gdb跟踪分析一个schedule()函数 ,验证您对Linux系统进程调度与进程切换过程的理解:; 理解进程上下文的切换机制,以及与中断上下文切换的关系: 实验步骤: 1.配置环境,登录实验楼网站. 按照以前的实验方式配置好环境,具体过程见图示: 2.设置断点 3.单步执行 ![](http://images20…
2019-2020-1 20199303 <Linux内核原理分析> 第一周作业 1. 环境准备 在众多的Linux发行版中,Ubuntu,小红帽还有类Unix系统的BSD系统,我选择了目前比较流行的Ubuntu.Ubuntu的安装考虑了做双系统或者使用虚拟机安装,因为暂时没有性能需求且使用虚拟机的插件进行主系统和虚拟机系统的交互更为方便,就使用了VMware作为虚拟机安装了操作系统. 写博客的选择markdown标记语言,编辑器使用Markdownpad 2,因其可以实时显示html下的显示…
实验过程 1.github上克隆相应的mengning/menu.git 2.测试menuOS,测试fork直接执行结果 3.配置调试系统,进入gdb调试,利用file linux-3.18.6/vmlinux和target remote:1234来配置加载初始调试环境 4.在linux内核进程创建可能用到的点设置断点分别为sys_clone,do_fork,dup_task_struct,copy_thread,copy_process和ret_from_fork. 总结: 1.通过调用do_…
实验步骤 1. 更新menu,用test.c覆盖test_exec.c 2. 把init 和 hello 放到了rootfs.img目录下,执行exec命令的时候自动加载了hello程序 3. 执行exec 4. 运行stopped的menu 5.  gdb进行跟踪分析 总结 1. 创建新进程 2. 新进程调用execve()系统调用执行指定的ELF文件 3. 调用内核的入口函数sys_execve(),sys_execve()服务例程修改当前进程的执行上下文: 当ELF被load_elf_bi…
实验内容: 1.执行rm menu -rf命令,强制删除原有的menu 2.使用git命令 git clone https://github.com/mengning/menu.git 克隆新的menu 3.在test.c中,在main函数中增加两个MenuConfig 4.增加对应的GetPid函数和GetPidAsm函数 5.通过脚本 make rootfs,编译并运行Menu 6.设置断点使用gdb跟增系统调用内核函数sys_time 系统调用是一种中断: 1. 保存现场 在系统调用时,我…
实验过程: 打开shell终端,执行以下命令: cd LinuxKernel/ qemu -kernel linux-3.18.6/arch/x86/boot/bzImage-initrd rootfs.img 执行完毕后会弹出QEMU窗口,输出Linux内核启动信息,启动成功后显示Menuos 输入help,提示该精简的系统支持三个命令:help.version.quit 使用gdb跟踪调试内核 打开shell终端,执行以下命令: cd LinuxKernel/ qemu -kernel li…
第八周 进程的切换和系统的一般执行过程 一.进程切换的关键代码switch_to分析 1.进程调度与进程调度的时机分析 (1)进程分类 第一种分类 I/O-bound:等待I/O CPU-bound:大量占用CPU进行计算 第二种分类 交互式进程(shell) 实时进程 批处理进程 (2)进程调度策略 调度策略:是一组规则,它们决定什么时候以怎样的方式选择一个新进程运行 Linux的调度基于分时和优先级. Linux的进程根据优先级排队 根据特定的算法计算出进程的优先级,用一个值表示 这个值表示…
第八章 进程的切换和系统的一般执行过程 进程调度与进程调度的时机分析 第一种分类: I/O密集型(I/O-bound):频繁的进行I/O,通常会花费很多时间等待I/O操作的完成 CPU密集型(CPU-bound):计算密集型,需要大量的CPU时间进行运算 第二种分类: 批处理进程:不必与用户交互,通常在后台运行,不必很快响应.主要用于编译程序,科学计算 交互式进程:需要经常与用户交互,所以要花很多时间等待用户输入操作,响应时间要快,平均延迟低于50~150ms.主要用于shell,文本编辑程序,…
张嘉琪 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 Linux内核分析 第八周 进程的切换和一般的执行过程 一.进程切换的关键代码switch_to分析 1.进程进度与进程调度的时机分析 中断处理过程(包括时钟中断.I/O中断.系统调用和异常)中,直接调用schedule(),或者返回用户态时根据need_resched标记调用schedule(): 内核线程可以直接调用schedu…
LINUX内核分析第八周学习总结 标签(空格分隔): 20135328陈都 陈都 原创作品转载请注明出处 <Linux内核分析>MOOC课程 http://mooc.study.163.com/course/USTC-1000029000 一.进程切换的关键代码switch_to的分析 1.进程调度与进程调度的时机 不同类型的进程有不同的调度需求. 第一种分类: I/O-bound 频繁的进行I/O:通常会花费很多时间等待I/O操作的完成. CPU-bound 计算密集型:需要大量的CPU时间…
Linux 内核分析第八周学习笔记 zl + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 进程调度的时机 直接调用:中断处理过程(包括时钟中断,I/O中断,系统调用和异常) 返回用户态时调用:根据need_resched标记调用 内核线程可以主动调用也可以被动调用 用户态线程仅能在陷入内核态后,即在中断处理过程中调度 进程上下文 用户地址空间:代码,数据,堆栈等 控制信息:进程描…