| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> 进程(基础介绍) -> 正文阅读 |
|
[Python知识库]进程(基础介绍) |
1、何为进程? ? ? 进程是正在运行中的程序。程序加载到内存中后就变成了进程。将多个程序加载到计算机中并发的执行,可以提高系统资源的利用率,缩短系统的响应时间。实现进程首先需要考虑程序的存储,这需要给程序分配合适的内存。但由于多进程的存在,为了避免内存冲突需要进行内存管理。 此外,进程运行实际上是指进程在CPU上执行。那么如何将CPU在多个进程之间进行交接或切换,这就需要考虑进程的调度了。进程间还需要考虑进程间的通讯。 ? ? ? 多进程可以提高资源(CPU)的使用效率,看如下例子。 ? ? ? 如果一个进程有20%的时间使用CPU进行计算,另外80%的时间用来进行I/O,则如果使用单道编程,CPU的利用率只有20%。但如果同时运行两个这样的进程,即进行所谓的2道编程,则CPU利用率将提高到36%(忽略了进程切换所需要的系统消耗, CPU只在两个进程同时进行I/O时才处于闲置状态,因此CPU的利用率为1-0.8×0.8=36%)。但如下图所示,随着进程数量的增加,CPU利用率在稳定的上升,但最终会到达极限(下图中进程数为12时到达极限)。 ?? ? ? 进程越多就不得不考虑进程切换的消耗了。到达临界点之后再起进程,多进程带来的好处会呈现下降的趋势。 ? ? ? 多进程带来的另外一个好处是响应时间(用户的等待时间)的降低。假设现在有四个进程,每个进程花费80%的时间进行I/O,20%的时间使用CPU。每个进程的启动时间和使用CPU的时间如下图所示。 ?? ? ? 多进程环境下,每个进程的响应时间如下表所示。 ?? ? ? 而单进程环境下,则每个进程的响应时间如下表所示。 ?? ? ? 由上述两个表格的数据可以看出,多进程比起单进程,系统平均响应时间缩短了约21分钟,响应时间改善程度约47%,这是一个巨大的改善。 ? ? ? 多进程带来的好处到底有多少与每个程序的性质、多道编程的度数、进程切换消耗等均有关系。但一般来说,只要度数适当,多进程总是利大于弊。 2、进程的状态转移? ? ? 进程从CPU的使用来说,分为两种状态。一种是执行状态(CPU上执行);另一种是挂起状态。挂起的原因可能是因为进程自身的原因,如在进程运行过程中执行了阻塞操作(读写操作),此时即使给其CPU控制权它也不会使用,这时OS就会将该进程挂起,运行其他进程;还可能使为了公平性,将运行时间太长的进程挂起,让其他进程运行。 ? ? ? 逻辑上进程分为3种状态:执行、阻塞和就绪。下图是它们之间状态的转换图。 ?3、进程的管理? ? ? 创建进程的步骤如下所示: ? ? ? ? ? ? 1)分配进程控制块。 ? ? ? ? ? ? 2)初始化机器寄存器。 ? ?? ? ? ? 3)初始化页表。 ? ?? ? ? ? 4)将程序代码从磁盘读进内存。 ? ?? ? ? ? 5)将处理器状态设置为“用户态”。 ? ? ? ? ? ? 6)跳转到程序的起始地址(设置程序计数器)。 ? ? ? 进程的产生,操作系统需要维护进程的一些信息。进程产生后,操作系统使用进程表维护进程信息。一般来说,维护的资料信息应当包括寄存器、程序计数器、状态字、栈指针、优先级、进程ID、信号、创建时间、所耗CPU时间、当前持有的各种句柄等。而采纳的数据结构主要是线性表、链表和结构(struct),当然也可能使用树和图(网络)结构。 ? ? ? ?进程表保存在操作系统的内核中。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/27 12:57:22- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |