一、计算机系统概述
(一)章节内容
1.操作系统的运行环境
(1)内核态和用户态(重要但只考察一道选择题)
系统中存在两种程序一种是内核程序,另一种是应用程序,内核程序还是系统的管理者,特权指令只能由内核程序来使用。执行程序就是执行一条条机器指令,但有些指令(内存清零指令)会对程序执行造成很大的影响,因此有些指令需要操作系统专门执行,用户不能随意执行,因此分了这两态。
这两态的切换是通过一个psw状态寄存器来实现
2.中断和异常
中断的作用:用户态转为内核态的唯一方法,通常一个应用程序在用户态下能一直执行下去,但这样的话就失去了并发性,因此需要进行中断操作。
外中断的例子(内中断看书)
计算机当中有一个时钟部件每隔50ms(假设)发送一个中断信号
程序1执行----50ms中断执行内核程序----程序2----50ms中断执行内核程序,循环往复直到任务完成。
中断信号来自cpu外部与当前指令无关(称外中断)
3.系统调用
是什么
为什么
怎么做
这里有一条特殊的指令访管指令,在用户态下执行会主动的请求操作系统的服务
4.boot开机过程
5.vmm
资源分配方式:第一类vmm会分配连续的存储空间给一台虚拟机,第二类vmm则会在通过宿主操作系统创建一个大文件,这个大文件的位置是由宿主os决定,并且存储空间可能不连续。
可支持虚拟机数量:在有相同的硬件资源的条件下第一类比第二类支持的vmm更多,因为第二类出了vmm需要硬件资源,本身宿主os也需要硬件资源
虚拟内核空间下执行的特权指令,都会间接的通过真正的内核空间截获完成,这样实现会让vmm是自己完成的一样。
二、进程与线程
(一)章节内容
2.1.1进程的概念、组成、特征
进程:程序一次执行的过程,程序运行会创建对应的进程实体,进程实体的相关信息随着程序运行会发生变化,这个变化的过程,其实也就是运行的过程称为进程(目前理解),进程实体在某一时刻内是静态的,反映了程序在谋一时刻运行时的状态,进程是动态的。
pcb:创建一个进程需要创建这么多的信息,这些进程信息都被存放在pcb这个数据结构当中。
程序通过编译链接形成exe文件,平时被存放在硬盘上,执行时会创建一个与之对应的pcb,程序对应的指令,和数据都放入到内存中,此pcb,程序段,数据段三部分共同组成了进程实体,在没有特别区分进程和进程实体的区别的时候,可以把进程实体理解成进程。
2.1.2进程的状态与转换
创建:如图
就绪:进程运行所需要的资源全部准备完毕,但是处理机忙无法为进程提供服务
运行态:进程进入运行态,cpu会运行进程对应程序的指令,执行过程成如果要要请求其他资源,但此时这个请求无法被满足的时候,停止运行转为阻塞
转为阻塞态的进程,cpu会终止为其提供服务,转而为其他就绪态的进程提供服务。
当阻塞态请求的资源空闲时,阻塞态的程序会转为就绪态,等待处理机提供服务。
终止态
进程状态的转换
进程状态的改变都会修改进程实体中pcb中的信息
pcb2等待的资源被响应,那么接下来就会对pcb2进行两个操作,修改state值为1,并放到就绪队列中,如果进程控制的内核程序不能一气呵成,那么就会出现下图情况,所以要使用原语来保证进程控制内核程序一气呵成
2.1.3进程控制
关中断和开中断是两个特权指令,只能使用在内核程序当中 操作系统在杀死一个进程的时候,同时杀死所有其子进程,操作系统会给父进程分配资源,再由父进程向子进程分配资源,所以当子进程终止以后,资源会归还给父进程
父子进程示例图
进程对应的程序在cpu执行的时候会使用一系列的寄存器,但是这个寄存器也会为其他进程服务,所以当进程停止运行的时候操作系统会将与当前运行的进程相关的寄存器中的信息保存到进程控制块pcb当中,并不是全部保存而是保存必要的信息(这是实现进程并发执行的关键技术)
2.1.4进程通信
进程之间的通信需要操作系统的支持
如果有很多进程访问共享内存,就会导致一些冲突,因此各个进程对共享空间的访问应该是互斥进行的
共享存储方式又可进一步划分为两种,基于数据结构的共享,速度慢,灵活低,所以是低级通信方式,第二种相反,因此被称为高级通信方式
id是进程控制块中的pid
发送原语Q是指发送方,接收原语P是指接收方
注意和直接通信方式做出区别,直接通信方式需要指名道姓的说明我是谁并且要发给谁
2.1.5
2.1.6
2.1.7
2.1.8
三
四
五
六
七