操作系统(进程与线程)
进程与线程的区别与联系
进程是资源分配的基本单位,是可以独立运行的,线程是资源调度的基本单位
不仅进程间可以并发执行,在一个进程中的多个线程也可以并发执行,从而更加有效的提高系统资源利用率和吞吐量
进程拥有资源,而线程并不拥有资源
在同一进程中不同线程独立性比不同进程间独立性低
在创建和撤销进程时,系统的开销,比创建和撤销线程时开销大
对于传统进程来说,不管多少处理机,都只是单线运行的,而对于多线进程,可以将进程
死锁
死锁:两个进程互相等待对方释放资源然后运行的状态称为死锁
产生死锁原因:资源竞争,资源不足导致不能满足进程/线程需要、进程间推进顺序非法 请求和释放顺序不当
产生死锁的必要条件:
(1)互斥条件:一段时间内,某资源只能被一个进程占用,直至被释放
(2)请求和保持条件:指进程已经获得至少一个资源,但又提出新的资源请求,而该资源又被其他进程占用,
(3)不剥夺条件:指进程已获得的资源,未使用完前不能被剥夺
(4)环路等待条件:发生死锁时,必然存在一个进程环形链
预防死锁:
因为条件一是设备固有条件,不能改变,反而加以保证
摒弃2,3,4
2:一开始将资源全部分配,不能再运行中在获取
3:一个进程已经获得资源之后,再次请求资源,如果不能立马得到满足,系统就会将该进程资源释放
4:系统将资源按类型进行线性排序,所有进程获取资源序号递增顺序获得,这样就能避免环路产生。