linux内核分析第八次实验
2016-04-17 10:26
218 查看
20135118 罗鹏越
本周学习的是linux内核中的进程调度,之前我们在操作系统中有讲解进程调度的分类,以及一些调度算法。而linux中的进程调度有所不同,首先老师讲解了进程调度和进程调度的时机,所有的用户态进程都只能被调度,而内核线程可以主动调度,而进程调度的实现都是通过schedule函数,然后讲解了进程上下文所包含的信息,然后讲解了切换寄存器状态所使用的switch to函数,每一个部分都单独分析了。然后讲解了LINUX架构和执行过程。虽然在操作系统中讲解过了进程调度,但是这个讲解得更加深入,是从内核的角度讲解了调度的原理,和执行过程。
[b]开始实验:[/b]按c继续,可以发现core.c里面调用了schedule()。
单步执行发现__schedule()
继续单步执行,直到发现context_switch:
之后继续执行,可以进入context_switch()函数并发现了switch_to()和__switch_to()
linux系统的一般执行过程
正在运行发生中断,可能陷入内核,CPU自动保存加载
SAVE_ALL保存现场
调用schedule,switch_to进程上下文切换
标号1之后运行Y(之前有进行准备动作)
restore_all恢复现场
继续运行用户态进程Y
相关文章推荐
- Linux mysql安装 1
- Linux IPC――system v 共享内存
- linux命令---二
- Linux mint 软件安装
- Linux下yum保存已安装包的方法
- 软件开发工具整合
- Linux计划任务(at batch crontab anacron)
- Makefile学习(1) arm-linux-ld arm-linux-objcopy arm-linux-objdump
- centos7 vmware克隆解决网络问题
- 细数Linux下制作U盘系统启动盘的方法
- Linux系统下使用split命令分割大文件
- linux命令详解:md5sum命令
- linux命令dd
- CentOS7.2系统环境中安装saltstack详细配置过程讲解
- Linux进程调度时机和进程切换
- linux使用FIO测试磁盘的iops 【转载】
- Linux---windows互通之samba部署
- 第八课 linux系统概览(3)
- win10和linux双系统的安装
- 基于CentOS7开发之路 --- 第五章 :CentOS 7 安装eclipse并添加 Gnome 启动