机器语言:由二进制组成,可直接在机器上运行,效率最高
汇编语言:采用助记符号,需要转换到机器语言
高级语言:高度封装,可易于人类理解,需要进行编译程序或是翻译程序进行高级语言到低级语言的转换。编译程序会产生可执行文件,翻译程序是逐句翻译逐句执行,并不会产生可执行文件
进程的管理进程是某个程序的执行过程:动态
程序是代码的集合:静态
产生死锁的必要条件互斥条件:在系统中进程与进程之间使用的资源是互斥资源,即同一资源不能由多个进程占用
请求和保持条件:一个 进程在占用资源的同时还在请求其他的资源,而且也不释放本身已经占有的资源
不剥夺条件:任意进程不能从其他的进程剥夺资源,即不能打破死锁中进程与进程之间互相占用所需资源的情况
循环等待:一个进程等待另外一个进程的资源,造成资源等待的环路
只有前面三个条件成立,第四个条件才能成立,如果死锁发生则必定能够推出死锁的四个必要条件。
产生死锁的原因1、资源数量不够
2、资源获取的顺序错误
死锁的解除 死锁预防1、打破循环等待:通过对进程资源获取顺序的合理分配,使得在有限的资源下,也可以不会产生死锁
2、打破不剥夺:在产生死锁的情况,通过对某些资源的释放,使得死锁的情况被打破
3、资源预先分配:事先进行资源的分配,保证死锁不会产生
因为计算机资源都是独占的,所以我们不能从互斥条件出发。
死锁避免进程在每次申请资源的时候,都进行算法的判断,判断进程在获取进程之后是否可能产生死锁,并根据相关算法进行合理的资源分配。
银行家算法看这个例子就行
死锁检测在系统中允许死锁的产生,在发生死锁之后,通过死锁检测进行死锁的检查,当发生死锁之后使用死锁解除的方法,对死锁进行消除
死锁解除1、撤销进程
2、资源剥夺
PV操作临界区:每个进程中的临界资源的代码段表示临界区
互斥信号量:表示临界资源
同步信号量:表示具有共享性质,或多数量的资源
p操作:申请资源
v操作:释放资源
存储管理 区域存储:实现数据的连续存储,容易产生存储碎片造成存储空间的浪费 页式存储:使用页表记录数据存储的物理位置,实现数据的不连续存储,提高存储空间的利用率 段式存储:使用段表记录数据存储的物理位置。页式存储主要依据存储空间中的单个地址块去构建页表,但是段式存储可将每段的大小进行认为的约定 页表的组成:页号+块号 逻辑地址的组成:页号+页内地址 页面置换算法先进先出FIFO:
每次都置换最先进入的页面
最佳置换:
最佳置换,要发生置换的时候判断哪个最慢要使用,那么就将这个页面进行置换
最近最少使用:
每次置换的时候,都从当前想要置换的页面往前数三个,数到第三个的页面就是最少使用的页面,我们就需要将这个页面进行淘汰
设备管理
数据传输控制方式
程序控制方式:按顺序执行的过程,CPU需要不断检测外部设备是否空闲,空闲后才能进行数据传输
程序中断方式:外部设备在做完IO操作之后,它就会发送中断信号给CPU报告操作的完成
程序中断需要对现在进行保护,以便于程序的返回并执行
DMA方式(直接存储访问方式):通过硬件的方式将CPU与外部设备分离出来,由
DMA是一个控制器,当有数据传输的时候,DMA从CPU中接管后续的IO操作
所以CPU不用持续关注相关的数据IO,只有当数据都传输完成后,才会进行完成信号
的通知
IO通道:一种与CPU之间更加独立的IO外设,进一步减少与CPU的干预



