IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 进程(基础介绍) -> 正文阅读

[开发工具]进程(基础介绍)

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),当然也可能使用树和图(网络)结构。

? ? ? ?进程表保存在操作系统的内核中。

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-09-06 11:21:26  更:2021-09-06 11:22:04 
 
开发: 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/23 0:34:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计