2014/03/06 对进程的总结

来源:互联网 发布:chrome修改js代码 编辑:程序博客网 时间:2024/05/22 01:51

花了将近一个礼拜的时间,将操作系统一书中的第二部分给看了一遍。这一部分主要讲解的是进程,分为进程的描述和控制、线程、并发性:互斥和同步、并发:死锁和饥饿,一共四个章节。

进程的描述和控制将了什么是进程,是一个正在计算机上执行的程序实例,可以分配给处理器并由其执行的实体,是具有一下特征的活动单元一组指令序列的执行,一个当前状态和相关系统的资源集。

而一个进程从创建到结束还包含有就绪态、阻塞态、阻塞/挂起态、就绪/挂起态等诸多状态,它需要在进程控制模块的控制下运行,因为数据传输的速度是难以跟上cpu的运算速度的,而为了保证cpu的有效工作率,就需要一些其他的措施来辅助,如中断,时钟控制,进程切换、优先级等。

然而仅有这些可能还是无法满足计算机的强大性能,从而在进程的基础上向下衍生出了更小的单位,线程。一个进程中至少包含有一个线程,和进程一样,线程具有执行状态,且可以相互之间进行同步,也具有三种关键状态。有运行态、就绪态和阻塞态。线程分为两大类,用户级线程和内核级线程。前者较后者灵活,但不如后者效率高。


进程和线程都有并发性,即同一时间有多个进程或者线程在活动,而不论线程还是进程在运行过程中都需要资源,因此产生了互斥、同步、死锁、饥饿等问题。

信号量和管程的使用保证了在多进程(线程)活动中,一个进程(线程)在执行的时候不被其他进程(线程)所干扰,而其它不符合执行条件的可以在等待队列中等待执行条件的出现。等于说是制定了有序的规章制度,不至于混乱。

而死锁的避免和死锁的检测及恢复根据已有的相关数据尽可能的避免发生死锁,即使发生了死锁也以最小的损失来尽快恢复进程(线程)的重新执行。

0 0