Linux操作系统分析--课程总结报告
一、结合虚拟化技术分析Linux系统的一般执行过程
1.Linux系统的一般执行过程
最一般的情况:正在运行的用户态进程X切换到运行用户态进程Y的过程
1)正在运行的用户态进程X
2)发生中断——save cs:eip/esp/eflags(current) to kernel stack,then load cs:eip(entry of a specific ISR) and ss:esp(point to kernel stack).
3)SAVE_ALL //保存现场
4)中断处理过程中或中断返回前调用了schedule(),其中的switch_to做了关键的进程上下文切换
5)标号1之后开始运行用户态进程Y(这里Y曾经通过以上步骤被切换出去过因此可以从标号1继续执行)
6)restore_all //恢复现场
7)iret - pop cs:eip/ss:esp/eflags from kernel stack
8)继续运行用户态进程Y
当然还有几个特殊的情况:
- 1)通过中断处理过程中的调度时机,用户态进程与内核线程之间互相切换和内核线程之间互相切换,与最一般的情况非常类似,只是内核线程运行过程中发生中断没有进程用户态和内核态的转换;
- 2)内核线程主动调用schedule(),只有进程上下文的切换,没有发生中断上下文的切换,与最一般的情况略简略;
- 3)创建子进程的系统调用在子进程中的执行起点及返回用户态,如fork;
- 4)加载一个新的可执行程序后返回到用户态的情况,如execve;
2.虚拟化技术在linux执行过程中的应用
虚拟机技术在linux执行过程中起着非常重要的作用,其中主要涉及到虚拟机管理器以及虚拟机中断。
(1)虚拟机管理器
虚拟机管理器(VMM)是一种软件程序,用于实现虚拟化技术,将物理服务器分割为多个虚拟服务器,并控制它们的运行。下面是虚拟机管理器的一些功能:硬件资源管理、虚拟机配置、虚拟机监控、虚拟机间通信、安全性和隔离性。
(2)虚拟机中断
物理外设产生虚拟中断流程:
外设中断信号(Hypervisor已经将其配置成虚拟中断)到达GIC;
GIC Distributor将该物理IRQ发送至CPU;
CPU trap到Hyp模式,此时将会退出Guest OS的运行,并返回到Host OS;
Host OS将响应该物理中断,也就是Host OS驱动响应外设中断信号;
Hypervisor往List Register写入虚拟中断,Virtual CPU interface将virtual irq信号发送至vCPU;
CPU将处理该异常,Guest OS会从Virtual CPU Interface读取中断状态进行响应;
虚拟外设产生虚拟中断流程:
Qemu模拟外设,通过irqfd来触发Hypervisor进行中断注入;
Hypervisor往List Register写入虚拟中断,Virtual CPU interface将virtual irq信号发送至vCPU;
CPU将处理该异常,Guest OS会从Virtual CPU Interface读取中断状态进行响应;
irqfd提供了一种机制用于注入虚拟中断,而这个中断源可以来自虚拟外设;
irqfd是基于eventfd的机制来实现的,用于用户态与内核态,以及内核态之间的事件通知;
事件源可以是虚拟设备,比如VFIO框架等。
二、 课程总结
我是一名跨专业的学生,之前对linux的了解可能仅仅停留在纸面上,仅仅是会用一些简单的指令,通过这两个月的linux操作系统课程的学习,我对linux系统的执行过程又有了深入的理解,也学会了如何用qemu调试linux内核,面对一堆很复杂的源码也有头绪可以一步一步的读下去了。通过阅读源码以及和老师上课以及ppt上知识点结合的方式,我逐渐明白了linux系统设计的巧妙之处,明白了各个功能是如何分工协作的,这也让我对于一个大型工程项目有了一个更宏观的认识,也让我对于linux的学习更加感兴趣了,即使课程结束了我也会不断的了解更多的新知识,也会用到在这门课上学到的各种学习方法,这也正是课程的意义所在。
Linux操作系统分析--课程总结报告相关推荐
- Linux操作系统分析-课程总结报告
一.结合虚拟化技术分析Linux系统的一般执行过程 a. 一个 Linux 系统在虚拟化技术中的一般执行过程: 用户登录:当用户登录到 Linux 系统时,系统会创建一个用户会话. 系统启动:Linu ...
- Linux操作系统分析——课程总结报告
一.Linux系统的启动过程 1.POST开机自检 linux开机加电后,系统开始开机自检,该过程主要对计算机各种硬件设备进行检测,如CPU.内存.主板.硬盘.CMOS芯片等,如果出现致命故障则停机, ...
- linux操作系统分析 课程,“Linux操作系统”课程分析与项目化改造
摘要:性能卓越的开源系统Linux在当今社会具有极其重要的教育资源价值.本文通过引入中小企业转平台项目中的真实案例,重新整合设计出既能体现职业岗位真实工作任务,又能涵盖培养技能所需知识模块的综合项目, ...
- linux操作系统分析 课程,《Linux操作系统》课程的现状与分析
第卷第期 安 徽 水利 水 电职 业技 术 学 院 学报 年 月 上() <操 作 系统 >课 程 的现状 与分 析 李俊娇 , 冉 兆昶 , 甘琳瑛 (蚌埠经济技术职业学 院 ,安徽 蚌 ...
- linux网卡配子接口,Linux 操作系统分析 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) Autumn 2010....
Linux 操作系统分析 中国科学技术大学计算机系 陈香兰( 0512 - ) Autumn 2010 11/23/09 Linux 操作系统分析 2/92 主要内容 进程描述符 进程切换 ...
- Linux操作系统分析------期末总结、感谢老师、祝我们越来越好
王雪 原创作品转载请注明出处 <Linux内核分析>MOOC课程 http://mooc.study.163.com/course/USTC-1000029000 一.博客目录: 1.第一 ...
- linux操作系统分析实验—基于mykernel的时间片轮转多道程序实现与分析
linux操作系统分析实验-基于mykernel的时间片轮转多道程序实现与分析 学号384 原创作业转载请注明出处+中国科学技术大学孟宁老师的Linux操作系统分析 https://github.co ...
- 【Linux操作系统分析】设备驱动处理流程
1 驱动程序,操作系统,文件系统和应用程序之间的关系 字符设备和块设备映射到操作系统中的文件系统,由文件系统向上提供给应用程序统一的接口用以访问设备. Linux把设备视为文件,称为设备文件,通过对设 ...
- Linux操作系统分析 | 深入理解系统调用
Linux操作系统分析 | 深入理解系统调用 实验要求 1.找一个系统调用,系统调用号为学号最后2位相同的系统调用 2.通过汇编指令触发该系统调用 3.通过gdb跟踪该系统调用的内核处理过程 4.重点 ...
最新文章
- WCF服务重构实录(上)
- ballerina 学习二十九 数据库操作
- 拉肚子,不能吃东西的痛苦
- checked_delete问题: Beyond the C++ STL: an introduction to boostdeleter::do_it
- 从零开始的C++网络编程
- Python--简单的目录扫描脚本
- java8 list切片_java中怎么从一个数组中截取一定长度的元素放到新数组中
- MariaDB日志审计 帮你揪出内个干坏事儿的小子
- redisTemplate批量写入数据
- java程序片的元素符号_UML 中的 基本画图元素及符号
- 技术图文:基于“科比投篮”数据集学Pandas
- mysql节点是什么意思_数据库节点是什么意思
- S3C2440原理图导读
- 阿里国际站P4P直通车玩法
- 解决pip下载速度过慢及超时等其它的报错的方法适于多种操作系统(详细)
- Excel选中单元格光标一直闪
- freemarker导出excel时office报错而wps不会
- Permission denied(publickey) 解决办法
- 难倒刘强东的奥数题,京东智能供应链解开了
- 用Java写一个集合竞价抓涨停的策略