进程
- 进程是资源拥有的基本单位
- 进程可以并行
- 一个进程可以有多个线程
- 进程的地址空间之间互相独立
- 系统中一个进程由程序 、 数据集合 和 进程控制块(PCB) 三部分组成。
- 进程状态:运行、就绪、阻塞、创建、结束
线程
- 线程是独立调度的基本单位。
- 在同一进程中,线程的切换不会引起进程切换。在不同进程中进行线程切换,如从一个进程内的线程切换到另一个进程中的线程时,会引起进程切换。
- 同一进程内的多个线程共享进程的地址空间。
- 一个线程与同属一个进程的其他线程共享进程所拥有的全部资源。
- 一个线程由线程ID、程序计数器、寄存器集合和堆栈组成。
进程死锁
死锁条件
产生死锁必然会有四个条件
- 互斥条件。即必然有某资源在一段时间内仅被一段程序可占用。举个例子,就好比有一个玩具,每个小孩都想玩,但是每段时间只能一个小孩玩,来晚了就得排队。
- 请求和保持条件。当进程因请求资源而阻塞时,对已获得的资源保持不放。小孩拿到了玩具,还想要另一个玩具,而且抓着手里的不放,两个都要。
- 不剥夺条件。进程已获得的资源在未使用完之前,不能剥夺,只能在使用完时由自己释放。我们有一个规定,小孩手里的玩具,别人不能抢,必须等他自己不要玩,主动让给别人。
- 环路等待条件:在发生死锁时,必然存在一个进程–资源的环形链。形成僵局的时候,就可能会有小孩说:你把那个给我玩一会,我的一会就给你!然后另一个小孩说:凭什么不是你先给我呢?死锁就形成了。
---------------下次复习(可能会咕)-----------------
进程调度
- 调度算法
- 经典问题
进程通信