期中总结
第一章:计算机是如何工作的
知识点:
冯诺依曼体系结构结构,它最核心的思想是存储程序计算机。
cpu通过总线与内存连接,依靠ip指针依次从内存中取出一条指令执行。
API:程序员与计算机的接口界面。
ABI:程序与CPU的接口界面。
寄存器、寻址方式和各类指令在学习《深入理解计算机》和《汇编》时已做了详细了解,不再赘述。.
http://www.cnblogs.com/hw00332012/p/5225823.html
第二章:操作系统是如何工作的
学习内容:
函数调用堆栈
借助Linux内核部分源代码模拟存储程序计算机工作模型及时钟中断
构造一个简单的操作系统内核
http://www.cnblogs.com/hw00332012/p/5248703.html
第三章:构造一个简单的Linux系统MenuOS
计算机三大法宝
- 存储程序计算机
- 函数调用堆栈
- 中断
操作系统两把宝剑
- 中断上下文的切换
- 进程上下文的切换
Linux内核源代码简介
- arch/x86目录下的代码是重点关注的
- init目录:内核启动相关的代码基本都在init目录下
- init/main.c中start_kernel函数就相当于普通C程序的main函数
- fs目录:file system文件系统
- ipc目录:进程间通信
- kernel目录:Linux内核核心代码在kernel目录中
- http://www.cnblogs.com/hw00332012/p/5271606.html
第四章:系统调用
系统调用在用户空间进程和硬件设备之间添加了一个中间层,该层主要作用有三个:
- 首先它为用户空间提供了一种硬件的抽象接口,举例来说当需要读写文件的时候,应用程序就可以不去管磁盘类型和介质,甚至不用去管文件所在的文件系统到底是哪种类型。
- 第二,系统调用保证了系统的稳定和安全,作为硬件设备和应用程序之间的中间人,内核可以基于权限、用户类型和其他一些规则对需要进行的访问进行裁决,举例来说,这样可以避免应用程序不正确地使用硬件设备,窃取其他进程的资源,或做出其他危害系统的事情。
- 第三,在第3章中曾经提到过,每个进程都运行在虚拟系统中,而在用户空间和系统的其余部分提供这样一层公共接口,也是出于这种考虑,如果应用程序可以随意访问硬件而内核又对此一无所知的话几乎就没法实现多任务和虚拟内存,当然也不可能实现良好的稳定性和安全性。
在Linux中,系统调用是用户空间访问。内核的唯一手段;除异常和陷入外,它们是内核唯一的合法入口。
本章重点强调Linux系统调用的规则和实现方法。
http://www.cnblogs.com/hw00332012/p/5299027.html
第五章 进程的描述和进程的创建
系统调用在用户空间进程和硬件设备之间添加了一个中间层。该层主要作用有三个。
- 它为用户空间提供了一种硬件的抽象接口。
- 系统调用保 证了系统的毡定和安全。
- 在第 3 章中曾经提到过,每个进程都运行在虚拟系统中,而在用户空间和系统的其余部分提供这样一层公共接口,也是出于这种考虑。
在 Linux 中,系统调用是用户空间访问 内核的唯一手段:除异常和陷入外,它们是内核唯一的合法入口。
http://www.cnblogs.com/hw00332012/p/5325942.html
第六章:程序和进程
进程描述符PCB----task_struct数据结构
1
|
操作系统:1.进程管理 2.内存管理 3 文件系统 |
新进程如何创建和修改task_struct数据结构
http://www.cnblogs.com/hw00332012/p/5325942.html
第七章 进程的切换和执行过程概览
编译器预处理(负责把include的文件包含进来及宏替换等工作);编译成汇编代码;编译器编译成目标代码;再链接成可执行文件;操作系统加载到内存中来执行
http://www.cnblogs.com/hw00332012/p/5371394.html
第八周学习总结
一、进程切换关键代码switch-to分析
1、进程调度与进程调度时机分析
1)不同类型的进程有不同的调度要求
分类:I/0-bound:频繁的进行I/o
通常会花费很多时间等待I/o操作的完成
CPU-bound:计算密集型
需要大量的cpu时间进行计算
分类||:批处理进程:不必与用户交互,通常在后台运行
不必很快响应
实时进程: 有实时需求,不应被低优先级的进程阻塞
响应时间要短要稳定
交互式进程:需要经常与用户交互,所以要花很多时间等待用户输入操作
响应时间要快,平均延迟低于50~150m
http://www.cnblogs.com/hw00332012/p/5399146.html
学习感想:痛并快乐着