当前位置: 首页 > news >正文

进程的概念

进程的概念

程序的概念
这里说的是一个可执行文件,passive的意思可以理解为我们这个执行文件需要我们进行双击才会被被执行。
在这里插入图片描述双击后,程序入口地址读入寄存器,程序加载入主存,成为一个进程
在这里插入图片描述进程是主动去获取想要的资源,注意这里每个进程都只有一个pc
在这里插入图片描述这里我去问了一下老师,老师说微观上来说确实一个核心一个pc只能同时运行一个进程,因为学习过计组之后我们知道单核只有一个pc寄存器,分时任务可以设置中断程序然后让pc数据存入对应堆栈空间,然后执行完相应程序再读取回来,通过cpu流水线进行优化,这样一套流程让我们感觉到多进程是在同时运行的。

程序推入内存示意图
在这里插入图片描述

在这里插入图片描述

执行流程:
1.先将代码解释成二进制指令,该指令区域(text)是只读的,压入无法修改;
2.入口main函数加载入栈空间,压入静态变量i和调用另外一个g函数,同时压入全局变量global;
3.g函数压入栈,a局部变量压入栈,再压入f函数;
4.压栈入f函数,x,y,p局部变量进栈,动态申请堆空间100Byte(p指针局部变量值为此堆空间的地址) ,继续向下读
5.返回到f函数f函数再代码中存在的地址区,继续向下读;
6.读到g函数return,返回g函数代码点,返回0值进栈,释放栈、堆空间,释放text空间;

遗留问题
在这里插入图片描述

c语言需要手动释放垃圾内存

并发的进程:
在这里插入图片描述在这里插入图片描述当然这里我们要知道这个"并发"并非并行,前面讨论pc的时候有讲。
当然如果是多核cpu是可以并行的。

并发进程共享cpu
就算是并行也会被并发所影响
在这里插入图片描述最后给进程下个定义
在这里插入图片描述

进程的状态:
在这里插入图片描述
最后一个等待态是不具备运行条件,下面这个例子是,如果指定到2步输出语句需要调用系统write占用io,如果这个函数执行占用资源很大,那调用2步函数的进程需要进入等待状态让出cpu控制权,等待调用结束。
在这里插入图片描述

运行状态何时能让出cpu控制权?
在这里插入图片描述

调用i/o设备进入等待,非正常结束进入终止。
在这里插入图片描述

windows叫做抢占式的多任务操作系统,如果有更高优先级的进程到达就绪状态,那么立刻就会抢占低优先级进程的cpu使用权;分时操作系统为所有的并发进程分发时间片,假设分时系统为每个进程运行时间平均分配100s,那么进程占用cpu达到100s就会被强制剥夺cpu使用权。

进程转化
在这里插入图片描述

总结:
外中断:外部事件
内中断:经典例子地址越界,除数为0,c语言堆栈溢出。

在这里插入图片描述
中断处理程序保存前面 我们画的那个程序内存空间的数据
中断程序执行一个lpsw指令跳回用户模式
在这里插入图片描述在这里插入图片描述

上下文内容(context)
在这里插入图片描述

操作系统管理context,只需要调用每个进程的context内的PCB
在这里插入图片描述

http://www.lryc.cn/news/13059.html

相关文章:

  • 自动化测试5年经验,分享一些心得
  • independentsoft.de/MSG .NET Framework Crack
  • 基于Transformer的NLP处理管线
  • 二叉树OJ(一)二叉树的最大深度 二叉搜索树与双向链表 对称的二叉树
  • 使用Fairseq进行Bart预训练
  • n阶数字回转方阵 ← 模拟法
  • 【人工智能AI】二、NoSQL 基础知识《NoSQL 企业级基础入门与进阶实战》
  • Camera Rolling Shutter和Global Shutter的区别
  • 模版之AnyType
  • 【汇编】一、环境搭建(一只 Assember 的成长史)
  • 【博客628】k8s pod访问集群外域名原理以及主机开启了systemd-resolved的不同情况
  • 测试3.测试方法的分类
  • Android 基础知识4-2.9 FrameLayout(帧布局)详解
  • Go语言xorm框架
  • 19_微信小程序之优雅实现侧滑菜单
  • JSP中JDBC与javaBean学习笔记
  • 编译Android系统源码推荐的电脑配置
  • 加油站会员管理小程序实战开发教程10
  • shell编程之条件判断和流程控制
  • 第一次接触jquery
  • Vue中 引入使用 babel-polyfill 兼容低版本浏览器
  • ArcGIS Enterprise on Kubernetes 11.0安装示例
  • js 防抖函数 节流函数
  • Yarn节点unhealthy解决办法
  • 【jumpServer 功能梳理】
  • 中国各省人力资本测算就业人员受教育程度构成(2000-2021年)
  • java面试题-集合篇
  • Python 异步: 同时运行多个协程(10)
  • SVN 获取多版本间的更新内容
  • c++ const使用说明