进程和线程

一、什么是进程进程是并发程序的一次执行过程,是并发程序在一个数据集合上的执行过程,是系统进行资源分配和调度的一个独立单位

二、进程的特征:

1、动态性:进程的实质是程序的一次执行过程,因此,动态性是进程最重要的特性。进程由操作系统建立与撤消,具有一定的生命周期。它由“创建”而产生,由“调度”而执行,因得不到所需资源而暂停执行,最后由“撤消”而死亡。

2、并发性:由进程产生的背景可知,引入进程的目的是为了反映程序的并发执行。因为没有建立进程的程序是不能并发执行的,仅当为其建立一个进程后才能参与并发执行,所以,并发性是进程又一个重要的特性。

3、独立性:进程是一个能够独立运行的基本单位,同时也是系统进行资源分配和调度的一个独立单位。

4、异步性:各进程按照各自独立的、不可预知的速度向前推进,为了保证进程之间能协调运行和共享资源,系统必须提供某些设施,来协调各进程的推进速度。

5、结构性:进程是由程序、数据和进程控制块三部分组成的。

三、进程的状态

就绪状态:进程获得除CPU外的一切所需资源,一旦得到CPU即可运行,则称此进程为处于就绪状态。

运行状态:进程获得了CPU及其他一切所需资源,正在CPU上运行。在单CPU系统中,只有一个进程处于运行状态。在多CPU系统中,则有多个进程同时处于运行状态。

阻塞状态:又称等待状态。正在运行的进程,因等待某一事件而暂时不能运行,它在等待某一事件的发生,则称此进程为阻塞状态。

四、进程的调度

1、高级调度(又称为作业调度或宏观调度):按照一定的原则和策略从外存后备队列中选择一个或多个作业进入内存,并为选中的作业分配必要的资源;同时创建相应的作业进程,并将该作业进程插入就绪队列中,以使该作业的进程获得竞争处理机的权利。

2、中级调度(又称为交换调度):它主要是为了提高内存的利用率,往往在带有虚拟存储的系统中增加该调度。其主要作用是在内存和外存对换区之间进行进程交换,以解决内存紧张问题。

3、低级调度(又称为微观调度):按照某种方式和策略从就绪队列中选取一个就绪状态的进程以占用处理机,使之处于执行状态。

进程的调度方式:剥夺式进程调度、非剥夺式进程调度、选择性剥夺方式。

进程调度的算法:先来先服务FCFS、短进程优先调度算法(SJF,SPF)、优先权调度算法(HPF—Highest Priority First)、高响应比优先(HRRN, Highest Response Ratio Next )、时间片轮转调度算法、多级反馈队列算法(多队列轮转法)

五、进程间通信管道、消息队列、信号量、共享存储、Socket、Streams等

六、死锁

1、死锁产生的原因:系统资源不足、进程推进顺序不恰当。

2、死锁产生的必要条件:互斥控制(在一段时间内一个资源仅能被一个进程使用)、不可剥夺控制(进程对所获得的资源在未释放前,不能被其他进程剥夺)、请求和保持(进程在运行过程中可随时提出对各种资源的请求,当进程因请求资源而阻塞时,对已获得的资源保持不放。)、循环等待条件(在发生死锁时,进程所占有的资源必构成循环,即前一进程保持着后一进程所要求的资源。)

 

死锁解决方案:

死锁预防

1、资源的静态分配方法:系统在进程运行之前,一次性地满足进程所要求的全部资源。进程在运行过程中只能释放资源而不能申请资源。

2、资源的顺序分配法:其基本思想是对系统的全部资源进行顺序编号,只允许进程按编号顺序递增的次序申请。

3、一个已占有资源的进程若要申请新的资源时,必须先释放已占有的资源,若再要使用时,重新申请。

死锁避免

在进程的执行过程中,对资源的动态分配采用某种限制方法,如管理程序对提出资源申请的进程进行核查,依据某种算法决定是否将资源分配给有申请要求的进程。

如:银行家算法

死锁解除

1、删除法:即删除某些死锁进程而将其资源分配给其他死锁进程,直到其死锁解除为止。
2、剥夺法:即剥夺某些非死锁进程的资源给死锁进程使用,直到解除死锁为止。

七、什么是线程:指进程内的一个执行单元,也是进程内的一个可调度实体。

八、线程和进程的关系:

(1) 线程是进程的一个组成部分。(2) 一个进程可以有多个线程,一个进程的多个线程都在进程的地址空间活动。(3) 资源的分配对象是进程,而不是线程。(4) CPU调度的基本单位是线程而不是进程,即处理机是分配给线程的;真正在处理器上执行的是线程,但线程所用到的资源是进程所分配到的资源。(5) 线程在执行过程中,需要协作同步。

posted @ 2018-03-16 14:42  Zzz...y  阅读(192)  评论(0编辑  收藏  举报