进程
来源:互联网 发布:免费的流程图软件 编辑:程序博客网 时间:2024/06/05 00:50
进程:
操作系统为了让多个程序并发运行的载体,有独立的堆栈,进程控制块,结构体,专用的用户空间
用户进程:
共享用户空间
内核进程:
没有用户空间
进程的特性:
动态性,并发性,独立性,异步性,结构特征
进程的基本状态:
就绪:进程已经获得除CPU以外的资源,可执行。
阻塞:进程因等待某个事件而暂停执行
运行:获得CPU,执行程序
进程是资源管理的最小单位,线程是程序
进程的同步和互斥:
1.一组进程因直接制约关系而导致相互之间传送信息而进行相互合作,相互等待,使得各进程按一定的速度执行称为同步(例如卡车和摩托车一起行驶在冲断的公路,卡车装载工具而摩托要去探路然后告知卡车以便达到修路的目的,此时先行的摩托要停下来等待卡车,因为这种制约关系导致它们的同步)
2.临界资源就是指那些一次智能允许一个进程访问 的资源。而互斥就是呀保证临界资源一次只有一个进程访问。临界资源导致了互斥,所以是间接制约关系
临界区:
进程中使用临界资源的那段程序就是临界区。
管理原则:有空则进,无空则等,有限等待,让权等待(当一个进程不能进入自己的临界区时,它应该放弃CPU,而让其他进程进入,以免进入忙等状态)
信号量机制;
公用信号量:实现进程间的互斥,初值为1或者资源的个数
私有信号量:实现进程同步,初值为0或者正整数
信号量S的物理意义是:S>=0时,表示可用资源的个数;S<0,表示因无法得到该类资源而阻塞的进程个数
PV操作:
P:申请资源,V:释放资源
P:S=S-1,如果S>=0,则表示申请资源成功;否则,意味着没有可用的资源可供申请,进程进入阻塞队列等待
V:S=S+1,如果S>0(表明当前的资源数在加上这个释放的资源后大于0),则执行V操作的这个进程继续向下执行。
如果S<=0(在系统释放当前的这个资源之前可用资源<0),表示有进程在阻塞队列等待,则在阻塞队列中调度一个进程,将资源转交给它让它进入就绪队列之中等待执行。接着执行V操作的当前进程继续执行。
进程高级通信:
共享存储系统:共享一个数据结构或者存储区
消息传递系统:程序员直接利用系统提供的一组通信原语来进行通信
管道通信:连接一个读进程和一个写进程
进程调度级别:
高级调度:又称作业调度,它决定哪些后备作业可以从外存调入内存,进入就绪队列。主要解决:调度哪些作业;接受哪些作业
中级调度:又称对换调度,它决定静止就绪队列中的进程是否可以从外存调入内存,竞争CPU(提高内存的利用率和系统的吞吐量)
低级调度:又称进程调度,它决定内存中的就绪队列哪些可以占用CPU
进程调度方式:
可剥夺:
不可剥夺:
常用的进程调度算法:
先来先服务:按照进程在就绪队列的位置依次执行
时间片轮转:将进程按照FCFS中的队列排成一排,依次执行,不同的是,每一个进程都只有一个时间片来执行,时间片用完了就会产生中断放弃CPU,重新排入就绪队列的队尾,而此刻排在队首的进程开始执行。(可以提高内存的利用率)
优先级调度:分为动态和静态两种
多级反馈调度:是时间片轮转和优先级的综合
死锁:
两个或多个进程因争夺对方所占用的资源而导致。
发生死锁的原因:
1.竞争资源
2.推进顺序不当
产生死锁的必要条件:
1.互斥条件:一段时间内某资源只由一个进程使用
2.请求和保持条件:进程已经保持了至少一个资源,但又提出新的请求,而所请求的资源又被占用,它本身所占用的资源又没有释放
3.不可剥夺条件:进程已获得资源在未使用完之前不能被剥夺
4.环路等待:在发生死锁时,必然存在一条环形的进程——资源链。
- 进程
- 进程
- 进程
- 进程
- 进程
- 进程
- 进程
- 进程
- 进程
- 进程
- 进程
- 进程
- 进程
- 进程
- 进程
- 进程
- 进程
- 进程
- 使用ssh开发rest web服务支持http etag header的教程详解
- cas完全配置
- 爱张国荣
- div+css浮动
- Java实现俄罗斯方块附源码
- 进程
- OpenGLES 关于 数学 的分支 - 线性变化量、离散量、随机量
- MSI文件无法安装解决
- java连接数据库
- 解决SQL Server[Suspect]
- 数位dp(求1-n中数字1出现的个数)
- aspect学习(1)before&after&around
- ADSP-BF533 EBIU接口如何实现SDRAM读写
- OpenGLES demo - 2. Shader