进程的概念
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了进程的概念,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2727字,纯文字阅读大概需要4分钟。
内容图文
![进程的概念](/upload/InfoBanner/zyjiaocheng/952/0a2578fa02b94e36b1b0108a3e3bae4d.jpg)
进程
操作系统发展史
操作系统的作用
- 对计算机硬件接口的复杂操作进行封装
串行
- 一个程序完完整整的运行结束后再执行下一个程序
多道技术
- 产生背景
- 针对单核CPU,实现并发
- 空间上的复用
- 各自程序所运行的内存空间是隔离的
- 无法对其他程序进行干扰
- 时间上的复用
- 复用CPU上的时间片
- 对CPU的利用率有了很大的提高
并发
- 虚假的同时运行
- 实际上是对单个CPU的利用
- 因为一个进程在运行时不可能一直用到CPU的所有资源
- 操作系统对CPU的资源进行调度
- 多个程序在使用CPU,但并不是在同一时刻运行
- 只要在不同程序中切换的够快,
就看起来像是多个程序同时运行了
- 程序对CPU的占用切换
- 程序进入阻塞态
- 该程序分配的时间片到了
- 优先级更高的进程执行了
并行
- 基于多核CPU,完成了真正上的同一时刻上运行多个程序
现在的CPU
- 多核cpu
- 每个核心上都使用了多道技术
ps:一个核心是做不到同一时刻完成两件事的
进程的概念
进程即正在执行的一个过程。
进程是对正在运行程序的一个抽象。
- 单核+多道,实现多个进程的并发执行
进程和程序的区别
- 进程:
- 正常运行的程序
- 需要一些数据
- 可以得到一些结果
- 程序:
- 单纯的一些文件,仅仅是一些代码,
不运行将一点意义都没有
- 单纯的一些文件,仅仅是一些代码,
进程的创建
- 首先,知道进程肯定是操作系统来创建的
- 系统初始化
- 查看进程linux中用ps命令,windows中用任务管理器,前台进程负责与用户交互,后台运行的进程与用户无关,运行在后台并且只在需要时才唤醒的进程,称为守护进程,如电子邮件、web页面、新闻、打印
- 一个进程在运行过程中开启了子进程
- 如nginx开启多进程,os.fork,subprocess.Popen等
- 用户的交互式请求,而创建一个新进程
- 如用户双击暴风影音
- 一个批处理作业的初始化
- 只在大型机的批处理系统中应用
- 新进程的创建都是由一个已经存在的进程执行了一个
用于创建进程的系统调用而创建的
不同操作系统中对进程的创建
- 在UNIX中该系统调用是:fork
- fork会创建一个与父进程一模一样的副本,二者有相同的存储映像、同样的环境字符串和同样的打开文件
- 在shell解释器进程中,执行一个命令就会创建一个子进程
- 在windows中该系统调用是:CreateProcess
- CreateProcess既处理进程的创建,也负责把正确的程序装入新进程。
进程的状态
运行态
- 进程占用处理器资源
- 处于此状态的进程的数目小于等于处理器的数目
阻塞态
- 由于进程等待某种条件(如I/O操作或进程同步)
- 在条件满足之前无法继续执行
- 该事件发生前即使把处理器资源分配给该进程,也无法运行
就绪态
- 进程已获得除处理器外的所需资源,等待分配处理器资源,只要分配了处理器进程就可执行
- 就绪进程可以按多个优先级来划分队列
进程的退出
自愿
- 正常退出
- 用户点击交互式页面的叉号
- 程序执行完毕调用发起系统调用正常退出
- 在linux中用exit
- 在windows中用ExitProcess
- 出错退出
- python a.py中a.py不存在
非自愿
- 被其他进程杀死
- 执行非法指令
- 严重错误
- 如kill -9
mutiprocess
开启子进程的方式一
- 使用函数
- Process(target = 函数名, args = ([参数1,[参数2,]])
开启子进程的方式二
- 使用类
- class A(Process):
A().start()
僵尸进程和孤儿进程
僵尸进程
- 程序执行完但是pid和运行时的状态还存在
- 死而不僵
孤儿进程
- 父进程死了,子进程还活着
三种情况
- 父进程等着所有的子进程都运行结束,进行同一的资源回收
- 无害
- 父进程死了,子进程将由init进程接管并回收
- 无害
- 父进程一直不死,开辟了大量的子进程,占用了大量的pid
- 有害
- 解决方案:杀死父进程
XMind: ZEN - Trial Version
内容总结
以上是互联网集市为您收集整理的进程的概念全部内容,希望文章能够帮你解决进程的概念所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。