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

这篇具有很好参考价值的文章主要介绍了计算机是如何工作的??(多进程编程)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

操作系统:像是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编程中多使用,多线程编程
关于多线程编程的具体内容,那么就请各位看官移步下篇辣🤣🤣🤣文章来源地址https://www.toymoban.com/news/detail-461697.html

到了这里,关于计算机是如何工作的??(多进程编程)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • java SSM教师工作量管理系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

    一、源码特点     java SSM 教师工作量管理系统是一套完善的web设计系统(系统采用SSM框架进行设计开发,spring+springMVC+mybatis),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysq

    2024年02月04日
    浏览(58)
  • 如何学习及计算机编程,入门看这一篇就够了---以c语言为例

    用计算机爬取信息(爬虫) 进行数据分析,数据可视化(大数据的某个方面) 处理海量的数据,如excel(百万条数据) example1. 来看下面一段代码 大家一定会说 这太简单了 输出hello world 学习计算机的入门程序嘛!! 那么请问 这是什么?我们第一次编程应该不会知道这是什

    2024年02月08日
    浏览(56)
  • 计算机操作系统和进程

    ✨个人主页:bit me👇 ✨当前专栏:Java EE初阶👇 ✨每日一语:心平能愈三千疾,心静可通万事理。 操作系统是一组做计算机资源管理的软件的统称 目前常见的操作系统有:Windows系列、Unix系列、Linux系列、OSX系列、Android系列、iOS系列、鸿蒙等 防止硬件被时空的应用程序滥用

    2024年01月23日
    浏览(62)
  • 计算机的工作原理

    电脑最直白、人话的描述。 主要由:主板、CPU(中央处理器)、硬盘、内存、显卡组成(以前有介绍) 把电脑当成我们的计算器就更好理解,我们输入指令时就是输入数字,只是我们在计算机输入的只是01二进制的数字,不是我们日常用的(0~9)十进制的数字,为什么不用十进制呢?这个

    2023年04月14日
    浏览(74)
  • 计算机操作系统实验:进程调度实验

    前言 二、实验目的 三、实验要求 四、实验原理 五、实验过程 六、代码详解 总结 计算机操作系统是管理计算机硬件和软件资源的核心软件,它负责为用户提供一个友好、高效、安全的使用环境。进程调度是操作系统的一个重要功能,它决定了进程在处理器上的执行顺序和时

    2024年02月07日
    浏览(57)
  • 计算机操作系统实验-进程调度模拟算法

    进程调度是处理机管理的核心内容。本实验要求用高级语言编写模拟进程调度程序,以 便加深理解有关进程控制快、进程队列等概念,并体会和了解优先数算法和时间片轮转算法 的具体实施办法。 1.设计进程控制块 PCB 的结构,通常应包括如下信息: 进程名、进程优先数(

    2024年02月05日
    浏览(74)
  • 计算机专业,考研还是找工作?

    目前研一在读,只能说当时在大三的时候和你一样迷茫,也找过工作,但是就是找不到!没有技术,技术面一问就炸,还被各种嘲讽... 如果你的本科和我一样没有学什么技术,那读一个研究生也算是给自己一个过渡的机会,多学技术提升自己! 技术过硬以后找工作还是有很

    2024年04月17日
    浏览(38)
  • 计算机组成原理(2)各个硬件的工作原理

    (1)存储体(M) 1、存储单元 :每个存储单元存放一串二进制代码。 2、存储字(word) :存储单元中二进制代码的组合。 3、存储字长 :存储单元中二进制代码的位数,一般是 8bit 的倍数。 4、存储元件 (存储元):即存储二进制的电子元件,每个存储元件可存 1bit。 MAR位数

    2024年02月13日
    浏览(48)
  • 【Linux】进程的韵律:探索计算机世界中的动态舞台

    进程:一个具有一定功能的程序在一个数据集合上的一次动态执行过程。 进程是指正在运行的程序,它是操作系统进行资源分配和调度的基本单位。在计算机中,每个进程都有自己的地址空间、堆栈、文件描述符、环境变量等,每个进程之间相互独立,互不干扰。 进程可以

    2024年02月01日
    浏览(41)
  • 网上邻居无法查看工作组计算机怎么办

    无法查看工作组计算机怎么办? 图一 无法查看工作组计算机 ◆解决方法:对网络进行设置 1、在网上邻居——“网络任务”下单击“设置家庭或小型办公网络” 图二 设置Windows XP网络 2、单击“设置家庭或小型办公网络”弹出网络安装向导:  图三 网络安装向导开始 图四

    2024年02月06日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包