计算机是如何工作的??(多进程编程)

news2024/11/27 17:58:21

目录

  • 多进程编程
    • 进程调度
    • 组织进程调度

本篇博客的重点知识是进程+进程的调度

操作系统:像是windows,android,iOS等都是常见的操作系统

下面是关于计算机在底层工作的原理流程图
在这里插入图片描述
在操作系统层面:

  1. 对上,要给软件提供稳定的运行环境。
  2. 对下,要管理好各种硬件设备(如鼠标,键盘等)。

操作系统本身就是一个大话题,是一个非常复杂的软件,其中的功能非常多,**“进程管理”**就是一个与我们密切相关的模块
一个运行起来的程序,就是进程
进程(process)/任务(task)

可以在任务管理器中查看到启动了哪些进程
在这里插入图片描述

进程管理(进程多了,才需要管理)

  1. 描述一个进程:使用结构体/类,把一个进程有那些信息,表示出来

  2. 组织这些进程:使用一定的数据结构,把这些结构体/对象放到一起

    例如,学生管理系统:

    1. 明确每个学生相关属性信息
    2. 通过一定数据结构把这些学生的信息都放起来(例如通过表格等形式)

进程的结构体里有哪些属性?(进程结构体PCB(process control block))

  1. pid 每个进程需要有一个唯一的身份标识
  2. 内存指针,当这个进程运行的时候,使用了哪些内存上的资源
  3. 文件描述符表,当这个进程运行的时候,使用了哪些硬盘上的资源
  4. 进程的运行,需要从操作系统这里申请资源,所以 进程是操作系统进行资源分配的基本单位 \color{red}{进程是操作系统进行资源分配的基本单位} 进程是操作系统进行资源分配的基本单位

多进程编程

进程调度

进程调度的两种方式:

并行
    同一时刻,两个核心,同时执行两个进程.此时这两进程就是并行执行的

并发
    一个核心,先执行进程1,执行一会之后,再去执行进程2,再执行一会之后,再执行进程3....
    只要转换的做够快那么我们就可以认为进程1,2,3就是同时执行的

下面我会使用通俗易懂的文字来对并行和并发进行解释:

条件:
现在假设我是一个漂亮的妹子
同时有三个小哥哥A(有钱),B(长得帅),C(舔狗)在追求俺
而俺和三个小哥哥都想交往,怎么办呢???

在并行的视角去看:
我可以把他们三个一起叫来,进行交往,这时候他们会碰面

在并发的视角去看:
我可以在
周一、周二、周三把小哥哥 A 叫来和我交往
周四、周五把小哥哥 B 叫来和我交往
周六把小哥哥 C 叫来和我交往
这样,如果我们
把时间线当做一周来看,那么我是和其中的一个小哥哥进行交往
但是,把时间线当做一年来看,那么我就是和三个小哥哥同时进行交往

很多时候我们都把“并行 + 并发”统称为“并发”

并发程度更高了,就可以称为“高并发”

进程调度(PCB)所需要的4个核心属性:(不只有四个属性)

  1. 进程状态

简单认为,进程状态主要是这两个:
就绪态:该进程已经准备好随时可以上CPU执行
阻塞态:该进程暂时无法上CPU执行

例如:
还是上述条件
每周给这三个小哥哥,安排时间表
假设,A对我说,他要出差一个月
默认情况下,这三个小哥哥都是随叫随到,我在排时间的时候就会非常灵活
在以上情况中A就属于阻塞状态,B和C就是就绪状态
现在我可以去安排
周一到周四,和B
周五周六,和C
周天继续放假

  1. 进程的优先级

进程之间的调度不一定是“公平”的,所以有的进程需要优先进行调度

还是上述条件
现在我给他们的调度安排个优先级
例如:
A 优先度最高
B 其次
C 最低
所以每周排时间,优先排A, 其次排B, 最后排C

  1. 进程的上下文

描述了当前进程执行到哪里这样的“存档记录”
进程在离开CPU的时候就要把当前运行的中间结果,“存档”
等到下次进程回来CPU上,在恢复之前的“存档”,从上次的结果继续往后执行

例如:
有一天,我和 A 在一起,A 给我说:下个月,我带你到马尔代夫去玩,你准备准备~~
此时,我可以准备一套性感的泳衣
第二天,我和B在一起,B 给我说:下个月,他妈妈要过生日,他想让我帮忙给挑个礼物,让我也准备准备~~
这时候我准备买一部手机
过了一段时间,此时 A 问我:你准备的怎么样了?
我回答说:我把手机买好了
B 问我:你准备的怎么样了??
我回答说:我把性感的泳衣准备好了!
此时明显上下文就对不上

为了避免上述穿帮的情况,我就需要在安排时间的本子上面记录一下:
和他们都做了啥样的事情,有啥是需要进一步完善的

总结下来就是:
在这里插入图片描述

  1. 进程的记账信息
    统计了每个进程,在CPU上执行了多久,可以作为调度的参考依据

例如:
按照之前的优先级,每周只给C 排一天时间,
过了几个月之后,我就发现,C对我的太读逐渐冷淡了,
舔的也是力不从心的,
此时排查之前的时间表,原来是给C 的时间太少了,
难怪感情就淡了,
接下来的时间里给C 多排点时间,
多给他尝尝甜头,
就由不得他舔的不卖力了~~

组织进程调度

在这里插入图片描述
进程间通信

所谓进程间通信,就是在隔离性的前提下,找一个公共的区域,让两个进程借助这个区域来完成数据的交换
在这里插入图片描述

以上就是本博客对于操作系统的相关介绍了~~
本篇博客的重点知识就是 进程+进程的调度
学习本篇并不是为了讲线程,而是为了引出下一个知识点:线程!!!
多进程编程 和 多进程编程,都能满足“并发编程”的需求场景
而在Java编程中多使用,多线程编程
关于多线程编程的具体内容,那么就请各位看官移步下篇辣🤣🤣🤣

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/573183.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《低代码指南》——低代码维格云能源行业解决方案

目录 典型场景介绍: 一、能源资产管理 二、碳核查 三、配电运营 总 结: 从业界实际情况来看,流程建设本身是一个对业务现实进行抽象的过程,这个过程即使不考虑软件开发的门槛,对于很多客户而言也是个涉及较长周期的复杂工作,往往需要咨询专家或专业公司帮助其建设内…

【Python】函数式编程例子

知识目录 一、写在前面🍺二、七段数码管显示倒计时✨三、斐波那契序列🍺四、总结撒花😊 一、写在前面🍺 大家好!我是初心,今天我们回到了Python从入门到精通。 今天跟大家分享的文章是 Python中函数的使用…

sentinel原理分析及源码剖析

sentinel功能 sentinel功能可参考官网 可以从sentinel的dashboard中了解到sentinel的核心功能包括 流控规则 阈值类型:QPS、并发线程数流控模式:直接,关联,链路流控效果:快速失败(滑动时间窗算法Default…

分享Python采集99个焦点图,总有一款适合您

分享Python采集99个焦点图,总有一款适合您 Python采集的99个焦点图下载链接:https://pan.baidu.com/s/1887LXr2ovCAw-Bp7PuM66g?pwdbyx4 提取码:byx4 原创Jquery焦点图片切换效果 自定义大小,使用方 jquery立体式缩略图焦点图…

Linux系统之编译安装python3

Linux系统之编译安装python3 一、python3介绍1. python3简介2. python3特点 二、检查本地环境1. 检查本地操作系统版本2. 检查内核版本3. 检查当前python版本 三、安装前准备工作四、下载python最新版本源码包1. 访问python官网2. 创建下载目录3. 下载python源码包4. 解压pytho…

Git业务实践记录

您好,如果喜欢我的文章,可以关注我的公众号「量子前端」,将不定期关注推送前端好文~ 场景描述 最近在开发一个新的功能,和往常一样先建了一个分支进行开发,开发到周期60%的时候,后端临时通知需要将大功能…

思维导图到底有多少种?

思维导图是一种非常实用的工具,它可以帮助我们更好地组织和表达我们的思想。在日常生活和工作中,我们可以使用各种不同类型的思维导图来解决不同的问题。下面,我将介绍一些常见的思维导图类型以及如何使用ProcessOn思维导图软件制作思维导图。…

前端学习--Vue(5)

一、动态组件 动态切换组件的显示与隐藏 1.1 <component>组件 <!-- component是vue内置的标签占位符 is中规定标签名 --><component :is"comName"></component> 动态组件在被展示的时候被创建&#xff0c;隐藏的时候被销毁 如果想要组件…

Day1:Windows消息循环机制

先区分几个概念 系统&#xff1a;特指Windwos操作系统 应用程序&#xff1a;指一个程序&#xff0c;比如QQ&#xff0c;微信等 窗口&#xff1a;每个应用程序都 可以拥有窗口&#xff0c;而且可以有多个&#xff0c;但一般会有一个主窗口。 消息&#xff1a;window系统定义…

【系统集成项目管理工程师】计算题专题二

七、进度网络计算题 1、单代号网络图 六标时图 正推取大&#xff08;红色&#xff09;&#xff1b;反推取小&#xff08;绿色&#xff09; 关键路径&#xff1a;ACDE&#xff08;关键路径下的活动总浮动时间都是 0&#xff09; 浮动时间&#xff08;总时长&#xff09;&…

《Spring Guides系列学习》guide31 - guide34 及中期简单回顾

要想全面快速学习Spring的内容&#xff0c;最好的方法肯定是先去Spring官网去查阅文档&#xff0c;在Spring官网中找到了适合新手了解的官网Guides&#xff0c;一共68篇&#xff0c;打算全部过一遍&#xff0c;能尽量全面的了解Spring框架的每个特性和功能。 接着上篇看过的gu…

Scrum敏捷迭代规划和执行

Sprint Backlog看板 迭代工作的开展是围绕Sprint Backlog展开的&#xff0c;在Leangoo中&#xff0c;我们需要为每个迭代创建一个Sprint Backlog看板。Sprint Backlog&#xff08;迭代&#xff09;看板&#xff0c;用于管理当前Sprint的需求和开发任务&#xff0c;可视化展示每…

Cesium教程(七):加载自定义影像数据

GIS开发中经常需要调用本地或供应方发布的影像数据,加载独立的场景,此时可以借助GeoServer发 布自定义影像数据。 geoserver下载地址:geoserver下载 1、geoserver安装 1.1 安装方式1(推荐) 要求已安装tomcat:下载 Web Archive 版本的GeoServer,下载完毕解压,目 录如…

【JavaSE】Java基础语法(十九):接口新特性

文章目录 1. 接口组成更新概述2. 接口中默认方法3. 接口中静态方法4. 接口中私有方法 1. 接口组成更新概述 常量&#xff1a;接口可以定义全局常量&#xff0c;使用关键字public static final修饰。 抽象方法&#xff1a;接口中可以定义抽象方法&#xff0c;使用关键字public…

零基础如何入门网络安全?2023年专业学习路线看这篇就够了

前景 很多零基础朋友开始将网络安全作为发展的大方向&#xff0c;的确&#xff0c;现如今网络安全已经成为了一个新的就业风口&#xff0c;不仅大学里开设相关学科&#xff0c;连市场上也开始大量招人。 那么网络安全到底前景如何&#xff1f;大致从市场规模、政策扶持、就业…

汽车以太网通道和相关组件的测试

随着车载网络的发展&#xff0c;已经出现了CAN、LIN、FlexRay、MOST等成熟的协议&#xff0c;而基于LVDS/USB技术的链路传输模式也得到了广泛的应用。然而&#xff0c;面对不断提高的摄像头、显示器和不同传感器系统共享的更复杂信息分辨率&#xff0c;就需要更高的传输速度。 …

企业内容管理入门指南:从概念到实践,提升协作效率和质量

在现代企业管理中&#xff0c;存在一种容易被忽视但又极为重要的管理理念——企业内容管理。由于“企业内容”这一概念过于抽象&#xff0c;大家对它可能还比较模糊。所以&#xff0c;今天我们来聊聊企业内容管理。 在开始之前&#xff0c;对企业内容做一个简明的介绍&#x…

API对接是什么意思,技术分享

在计算机科学中&#xff0c;应用程序接口&#xff08;API&#xff09;是一种程序编程接口&#xff0c;定义了应用程序之间或应用程序和操作系统之间的通信方式。API对接就是在不同的应用程序之间实现数据交换和信息传输的过程。当两个不同的应用程序需要共享数据时&#xff0c;…

黄河千年清一回与人类健康

黄河千年清一回奏响一曲曲让人类走进幸福新时代的壮丽凯歌。疫情之后的首届全世界健康产业发展大会 5 月28 日上午 9 时在中国首都北京召开 The Yellow River has played a magnificent song of triumph in the millennium, ushering humanity into a new era of happiness. T…

常见通信名词的解释

在通信接口的介绍中&#xff0c;难免见到全双工/半双工/单工、同步/异步等这些名词。今天就专门来介绍一下这些名词。 1. 什么是全双工/半双工/单工 数据通信中&#xff0c;数据在线路上的传送方式可以分为单工通信、半双工通信和全双工通信三种。 单工通信&#xff1a;是指…