进程

来源:互联网 发布:免费的流程图软件 编辑:程序博客网 时间: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.环路等待:在发生死锁时,必然存在一条环形的进程——资源链。


                                    

0 0
原创粉丝点击