【进程相关概念】面试常见问题,进程状态,进程优先级,并行与并发,进程通信等

这篇具有很好参考价值的文章主要介绍了【进程相关概念】面试常见问题,进程状态,进程优先级,并行与并发,进程通信等。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:
大家好,我是良辰丫,今天我们来认识一下进程的相关概念,当接触到进程,也就意味着我们进入了javaEE的学习阶段,这篇文章主要带大家去学习一些面试题,帮助大家更好的去学习并熟悉进程,跟着我的步伐一起进入学习吧!!!💞💞💞

🧑个人主页:良辰针不戳
📖所属专栏:javaEE初阶
🍎励志语句:生活也许会让我们遍体鳞伤,但最终这些伤口会成为我们一辈子的财富。
💦期待大家三连,关注,点赞,收藏。
💌作者能力有限,可能也会出错,欢迎大家指正。
💞愿与君为伴,共探Java汪洋大海。

【进程相关概念】面试常见问题,进程状态,进程优先级,并行与并发,进程通信等

1、 进程(任务)是什么

所谓进程,可以这样理解,一个运行起来的程序就叫进程.也可以把程序比作一个工厂,工厂正在加工运转的即进程.
每个应用程序运行于现代操作系统之上时,操作系统会提供一种抽象,好像系统上只有这个程序在运
行,所有的硬件资源都被这个程序在使用。这种假象是通过抽象了一个进程的概念来完成的,进程可以说是计算机科学中最重要和最成功的概念之一。
进程是操作系统对一个正在运行的程序的一种抽象,换言之,可以把进程看做程序的一次运行过程;同时,在操作系统内部,进程又是操作系统进行资源分配的基本单位。

后缀名为exe的文件叫做可执行文件,在没有点击它运行之前,它只能叫做程序,当我们点击它之后,在它运行的时候,我们就给它有了新的定义,叫做进程.

【进程相关概念】面试常见问题,进程状态,进程优先级,并行与并发,进程通信等

进程运行的时候需要向操作系统申请资源,需要反复强调的一句话是进程是操作系统进行资源分配的基本单位,此处涉及的资源包括内存,硬盘,CPU等.

2、 进程控制块相关概念

  • pid: 进程的唯一标识,相当于一个人的身份证号码.
  • 内存指针: 当前内容使用的内存是那一部分(表示地址指向),进程要跑起来就需要消耗一定的硬件资源,比如内存.
  • 文件描述符表: 硬盘上存储的数据,就是以文件为单位进行整理的,进程每次打开一个文件,就会产生一个文件描述符(标识了这个被打开的文件),一个进程可能会打开许多文件,对应了一组文件描述符,把这样的文件描述符放到一个顺序表这样的结构里面,就构成了所谓的文件描述符.这标识着进程运行的时候使用了哪些硬盘上的资源.
  • 进程关联的程序信息,例如哪个程序,加载到内存中的区域等分配给该资源使用的各个资源

3、 进程与CPU资源的相关属性

程序之所以能运行,全依靠CPU,每个程序,其实就是一组二进制指令的集合,那么我们简单认识一下CPU.
cpu 中文名叫中央处理器(Central Processing Unit,简称CPU),是计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。CPU是人类科技史上最伟大的成就之一.

3.1 进程状态

进程有许多运行状态,我们主要了解两个状态.

  • 就绪状态 : 进程已经准备好,随时可以在CPU上执行.
  • 阻塞状态 : 该进程无法在CPU上执行.

简单了解一下上面两个状态,加入你有一个好朋友A,你们两个约好一起去旅游,但是暂时没有定时间,A也没有其它的事情要干,当你要去旅游的时候,你可以随叫随到,这就相当于就绪状态;你还有一个好朋友B,因为一些特殊的情况,他出差了,你们曾经约定可以一起旅行,但是可能暂时做不到了,这就是所谓的阻塞状态.

3.2 进程的优先级

进程是具有一定的优先级的,在CPU上规定了一系列对进程的优先级约束,比如先来先服务就是按照哪个进程先执行,另一个进程进入阻塞状态.按照优先级的次序进行执行.

3.2 进程的上下文

所谓上下文,就是描述了进程执行到哪里的存档信息,进程在离开CPU的时候要对当前进程运行的中间结果进行存档,等下次进程回到CPU的时候恢复之前的存档,从上次的结果继续向后执行,这样就不会后台退出,比如王者农药这个游戏,我们挂着后台回复一个消息或者干一些别的事情,我们回到王者,后台依然存在.

  • 如果进程结束了,就不必进行存档.
  • 在进程中理解上下文,进程在运行的过程中,CPU内部的一系列寄存器的值,其中,寄存器的作用有很多,我们需要记得的是寄存器用来保存当前进程执行的中间结果,包括进程运行到哪一条指令.
  • 存档,就是进程在离开CPU的时候,就需要把这些寄存器的值存到PCB的上下文字段中;读档,进程下次回到CPU,再把PCB的值恢复到寄存器中.

3.3 并行与并发

并行: 同一个时刻,两个核心同时执行两个进程,此时这两个进程就是并行执行的(一起执行).并行可以理解为两个人分别一起做两件事情.

并发: 一个核心,先执行进程1,执行一会再执行进程2,执行一会儿进程2之后再执行进程3…然后再返回来执行进程1,一会再执行进程2…只要切换的速度快,在我们肉眼看来其实和并行没有什么区别(可以简单的认为同时执行).

很多情况下操作系统的任务通过并行和并发两种方式共同完成的,我们通常把并行+并发的方式统称为并发.当一个核心(主体)并发执行几万甚至几十万个任务的时候,我们把它叫做高并发.

3.4 进程的进账信息

统计每个进程在CPU上执行了多久,可作为进程调度的参考依据.比如在CPU中三个进程ABC,可能进程A执行时间比较少,我们就可以多给它分配一些执行时间.

3.5 组织PCB

操作系统往往通过双向链表组织PCB

  • 创建一个进程就是创建一个链表节点.
  • 销毁一个进程就是销毁一个链表节点.
  • 遍历进程就是遍历进程链表.

3.6 内存分配(内存管理)

操作系统对内存资源的分配,采用的是空间模式 —— 不同进程使用内存中的不同区域,互相之间不会干扰.操作系统给资源分配的内存,是以虚拟地址空间的方式进行分配的,每个进程访问的内存地址,其实并不是真正的内存地址.

3.6.1 直接访问物理内存地址

下面是进程直接访问物理内存地址,此时可能产生问题,如果进程A奔溃了,会把同一内存条上的其它进程也搞奔溃.这就对于操作系统的稳定性产生了一定的挑战.

【进程相关概念】面试常见问题,进程状态,进程优先级,并行与并发,进程通信等

那么,什么是稳定性,可以简单的认为,两个相关联的东西,其中一个坏掉了导致另外一个不能运行,这就是说明这两个相关联的东西形成的整体稳定性较差;反之,如果没有较大的影响,我们就说这个整体稳定性较好.

3.6.2 通过虚拟地址访问物理内存地址

【进程相关概念】面试常见问题,进程状态,进程优先级,并行与并发,进程通信等

上面两个进程中,通过代码操控自己要访问的物理内存地址,访问的内存会被操作系统自动映射到真正的物理内存上,但是进程自身感知不到真正的物理内存地址是什么.此时进程A奔溃了就不会影响进程B,因为任何一个内存操作都需要通过页表来进行翻译,如果出现野指针,野指针的地址会与页表上的地址进行对比,如果页表上没有这个地址将无法翻译,也就无法访问并修改物理内存,因此呢,也不会对别的进程造成干扰.

这样可以有效的校验,校验当前的地址是否有效.一个进程无法干预另一个进程的内存,表示了每个进程有自己独立的地址空间.这样大大提高了操作系统的稳定性.

3.7 进程间的通信

有些时候进程之间需要相互配合,交互运行.
如果每个进程可以直接访问物理内存(没有隔离性),也就不需要进程通信,进程A直接把结果写到进程B的内存中就可以了.

  • 所谓进程通信,就是在隔离性的前提下,找一个公共区域,让两个进程借助这个公共区域完成进程间的数据交换.
  • 操作系统提供的进程间通信方式有很多种,有管道,消息队列,共享内存,信号等.
  • 在java中,我们主要使用文件和socket这两种方式完成进程通信(后续详解).

后序:
今天我们有关的内容就到这里了,我们学习了进程的一些相关概念,学习了进程控制块,进程一些属性等内容,希望本篇小小的文章可以帮到大家💌💌💌文章来源地址https://www.toymoban.com/news/detail-401100.html

到了这里,关于【进程相关概念】面试常见问题,进程状态,进程优先级,并行与并发,进程通信等的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 项目经理岗面试常见问题

    一、注意事项   ·电面邀约确认(避免hr刷KPI): 请问贵司招聘的是什么岗位,是新建团队还是原有团队? 这边面试流程是怎样的,是 leader 直接面,还是?   ·面试前铺垫: 如果您对某部分感兴趣,请随时打断我。   ·面试中发挥: 尽量采用 STAR 原则回答,即 情境( Si

    2024年02月05日
    浏览(15)
  • JVM基础,面试常见问题

    目录 一.运行时数据区域 1.线程独享 (1)栈 (2)程序计数器 2.线程共享 (1)方法区 (2)堆 二.内存如何分配 1.指针碰撞法 2.空闲列表法 3.TLAB 三.对象在内存中的组成 1.对象头 (1)markword (2)指向类型的指针 (3)如果是数组-》数组长度 2.实例数据 3.对齐填充 四.如何访

    2024年01月23日
    浏览(14)
  • 【数据结构面试常见问题】

    数据结构作为计算机的一门基础学科,它在面试中占有很大的比重,本科阶段,我们也学过数据结构与算法,内容比较多,也比较难,尤其是图的应用以及各类查找和排序算法,这些也都是核心内容。数据结构在实际的应用中也比较多,因此,整理一些常见的笔试、面试的数

    2024年03月22日
    浏览(18)
  • 单片机面试常见问题

    1、中断的概念?简述中断的过程 (1)中断:指CPU在正常执行程序的过程中,由于内部/外部事件的触发或由程序的预先安排,引起CPU暂时中断当前正在运行的程序,转而执行为内部/外部事件或程序预先安排的事件的服务子程序,待中断服务子程序执行完毕后,CPU再返回到被

    2024年04月10日
    浏览(32)
  • 关于GpuMall智算云—实例相关常见问题解答

    实例到期后有提醒吗?​ 有的,对于包月包周形式的产品,在用户使用期限到期前3天,系统会每天以短信形式给用户发送即将到期的提醒通知,对于包日形式的产品,系统会在到期前6h以短信形式给用户发送即将到期的提醒通知。 实例计费模式可以变更吗?​ 可以的,控制

    2024年01月22日
    浏览(12)
  • Ajax-概念、Http协议、Ajax请求及其常见问题

    其他AJAX知识 AJAX同源策略及跨域问题解决方案——点击此处 AJAX请求的不同发送方式——点击此处 AJAX 全称为Asynchronous Javascript And XML,就是 异步的JS和XML 。通过AJAX 可以在浏览器中向服务器发送异步请求,最大的优势: 无刷新获取数据 。AJAX 不是新的编程语言,而是一种将现

    2024年02月13日
    浏览(11)
  • kubernetes常见面试问题详解

    在面试的时候,面试官常常会问一些问题: k8s是什么?有什么用? k8s由哪些组件组成? pod的启动流程? k8s里有哪些控制器? k8s的调度器里有哪些调度算法? pod和pod之间的通信过程? 外面用户访问pod数据流程? 你常用哪些命令? 容器的类型? 3种探针? pod的升级? HPA、V

    2024年02月10日
    浏览(10)
  • docker常见面试问题详解

    在面试的时候,面试官常常会问一些问题: docker是什么,能做什么? docker和虚拟机的区别是什么呢? docker是用什么做隔离的? docke的网络类型?docker数据之间是如何通信的? docker的数据保存问题? 常用的docker命令? docker制作镜像相关? 下面,就让我来详细说明一些这些问

    2024年02月10日
    浏览(16)
  • List常见面试问题

    Java中的List是一种存放有序的、可以重复的数据的集合,它允许重复元素的存在。List中的元素都有对应的一个序列号(索引)记录着元素的位置,因此可以通过这个序列号来访问元素。 ‍ Java中的List有三种实现方式:ArrayList、LinkedList和Vector。其中,ArrayList是基于数组实现的,

    2024年02月09日
    浏览(11)
  • 大数据常见面试问题汇总

    目录 第1章 核心技术 1.1 LinuxShell 1.1.1 Linux常用高级命令 1.1.2 Shell常用工具及写过的脚本 1.1.3 Shell中单引号和双引号区别 1.2 Hadoop 1.2.1 Hadoop常用端口号 1.2.2 HDFS读流程和写流程 1.2.3 HDFS小文件处理 1.2.4 HDFS的NameNode内存 1.2.5 Shuffle及优化 1.2.6 Yarn工作机制 1.2.7 Yarn调度器 1.2.8 HDFS块大

    2024年02月14日
    浏览(21)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包