816 字
4 分钟
进程与线程
1. 进程与线程的基本概念
进程:进程是系统进行资源分配和调度的一个独立单位,是系统中的一个并发执行的单位 线程:线程是进程的一个实体,也是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位,有时又被称为轻权进程或轻量级进程
2. 进程与线程的区别
- 进程是资源分配的最小单位,而线程是CPU调度的最小单位
- 创建进程或撤销进程,系统都要为之分配或回收资源,操作系统开销远大于创建或撤销线程时的开销
- 不同进程地址空间相互独立,同一进程内的线程共享同一地址空间。一个进程的线程在另一个进程内是不可见的
- 进程间不会相互影响,而一个线程挂掉可能导致整个进程挂掉
3. 为什么有了进程还要有线程呢?
系统可以使多个程序并发执行,以提高资源的利用率和系统的吞吐量,但是其带来了一些缺点:
- 进程在同一时间只能干一件事情
- 进程在执行的过程中如果阻塞,整个进程就会被挂起,即使 进程中 有些工作 不依赖 等待的资源,仍然不会执行
基于以上的缺点,操作系统引入了比进程粒度更小的线程,作为并发执行的基本单位,从而 减少 程序 在并发执行时 所付出的 时间和空间开销,提高并发性能
4. 进程的状态转换
进程包括三种状态:就绪态、运行态、阻塞态
就绪到执行: 对就绪状态的进程,当 进程调度程序 按 一种选定的策略 从中 选中一个 就绪进程,为之分配了处理机后,该进程 便由 就绪状态 变为 执行状态
执行到阻塞: 正在执行的进程 因 发生某等待事件 而无法执行,则进程 由执行状态 变为阻塞状态,如:
- 进程提出 输入/输出请求,而变成 等待外部设备传输信息 的状态
- 进程申请资源(主存空间或外部设备)得不到满足时 变成等待资源状态
- 进程运行中出现了故障(程序出错 或 主存储器读写错误等)变成等待干预状态
- ……
阻塞到就绪: 处于阻塞状态的进程,在其 等待的事件已经发生时(如 输入/输出完成、资源得到满足、错误得到处理),不会马上转入执行状态,而是先转入就绪状态,再由 系统进程调度程序 在适当的时候 将该进程 转为执行状态
执行到就绪: 正在执行的进程 因时间片用完 而被暂停执行,或 在采用抢先式优先级调度算法的系统中 当有更高优先级的进程要运行的时候 被迫让出处理机,进程 就会由执行状态 变为就绪状态