【JavaEE】操作系统与进程

作者主页:paper jie_博客

本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。

本文录入于《JavaEE》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和精力)打造,将MySQL基础知识一网打尽,希望可以帮到读者们哦。

其他专栏:《MySQL》《C语言》《javaSE》《数据结构》等

内容分享:本期将是JavaEE的开头曲,会从操作系统与进程,CPU之间的关系拉开序幕~

目录

操作系统

操作系统在计算机系统中处在的位置

进程

什么是进程

操作系统对进程的管理

进程与CPU的关系

进程控制快 PCB

PCB重要的属性

PCB支持进程调度的属性

内存与进程的关系

进程间通信


操作系统

操作系统它是一组管理计算机资源的软件的统称.本质上它就是软件,它负责管理硬件资源和为程序提供稳定的运行环境.一般都是由C/C++代码编写的.一般我们常见的操作系统有:     Windows,Unix,Linux,IOS,Android,鸿蒙等等.

操作系统在计算机系统中处在的位置

操作系统在计算机中处在中间位置,向下管理硬件,向上为软件即应用程序提供资源.

操作系统有两个最基本的功能:

防止硬件被应用程序滥用

将底层的硬件封装起来,向程序提供统一的API让程序可以简单一致的使用硬件资源

进程

什么是进程

进程就是操作系统对应用程序的抽象. 系统上的硬件资源,好像只要程序在运行,就会被调用. 这种情况就是通过抽象了进程这么一个概念来完成的. 现在我们使用的都是多进程/多任务系统.

进程是操作系统对一个在运行的程序的抽象,我们可以将在运行的程序看做为就是一个进程. 

且进程是操作系统分配资源的基本单位.

操作系统对进程的管理

操作系统一般对于进程采用的是先描述,再组织的方式.

描述:

操作系统一般都是拿C/C++写的,一般会用一个机构体将进程的实体属性描述出来.而这个描述进程的结构体就叫做PCB,这是所有操作系统对进程结构体的统称.

组织:

在描述好后,操作系统会用一个类似于双向列表的数据结构将进程组织起来.像任务管理器中的信息就是对这个链表进行遍历,将其中所有进程的信息打印出来.而要是有一个新的进程,它就会构造出一个新的PCB,将这个PCB新增在链表中. 但如果哪个程序退出了,就要将对应进程的PCB删除,且释放其使用的资源.

进程与CPU的关系

这里关于硬件资源与进程,我们可以通过PCB感知到内存,硬盘等资源,但一个进程消耗CPU的资源?这我们从PCB中是体现不出来的.

这里我们先从单核处理器讲起:

我们可以将单核CPU看成一个舞台,进程看成演员.同一时刻舞台上只能有一个演员表演.这时规定. 那但是这有好多个进程,也就是演员在等待,狼多肉少,这该怎么办呢?  这里,就引入了分时复用,也就是我们口中的并发这个概念. 也就是让每个演员表演一下,A表演一会,就换B表演,以此往复,不断循环. 这里大家可以就会想到了,你这还不是每次只能一个进程运行,怎么就是并发了呢. 这里大家不要忽略了CPU这个强大的处理数据,它一秒钟可以处理几十亿条指令呢,这就可以但短时间内CPU进行多次的任务切换,只要速度够快,在我们人眼中和同时运行也就没什么概念了.

我们现在使用的多核处理器也是这个道理:

这就等于从一个舞台变成了多个舞台,同一时刻每个舞台上都有一个演员在表演.这种就叫做并行执行. 但是上面的并发执行还是同样会发生.这就是等于并行+并发

所以我们得到一个结论: 进程在CPU中是分时复用,并发执行的~

进程控制快 PCB

计算机中要管理任何现实事物,都要将其抽象成一组有关联的数据.在操作系统中就将进程里的实体信息抽象成了一个PCB对象,就是一个结构体.操作系统在通过数据结构将PCB对象组织起来,方便管理.

PCB重要的属性

pid:

是对这个PCB进行身份标识,同一时刻的每个PCB中的PId是不同的

内存指针:

内存指针是对进程使用内存资源的描述.进程在运行的过程中,是需要消耗系统的内存资源的,而内存是不能随便使用的.内存指针就是告诉进程那些内存是可以使用的,在运行进程前,需要将这个exe可执行文件的指令和数据加载到内存中,这时就需要知道哪些内存是存放指令,哪些是存放数据.

文件描述符表:

文件描述符表是对进程使用系统硬件资源的描述.因为一个进程经常会使用系统的磁盘资源,这时就需要知道哪些是可以使用的.

PCB支持进程调度的属性

状态:

状态就是用来描述进程当前能不能在CPU上执行. 进程在运行的过程中会有一些不同的状态, 有的就不方便在CPU上运行. 比如这个进程在等待用户输入数据的时刻,总不可能让CPU来等它吧,这就需要给它们加上状态,让操作系统知道哪些先不要在CPU台上表演,哪些可以上台表演.这里有一些常见的状态:

就绪状态: 随时准备就绪可以上台表演.CPU可以执行它

阻塞状态: 这个进程不方便在CPU上执行,这时操作系统就不能让它去CPU上执行

优先级:

优先级就是描述进程在CPU上执行的先后顺序. 多个进程总有先后执行的顺序,我们就可以通过优先级来区分他们执行的先后顺序.

记账信息:

记账信息就是针对与CUP执行每个进程时间的统计,再根据这个统计进行调整.这就可以确保每个进程不至于没有机会在CPU上执行了.

上下文:

上下文就是对进程调度出CPU前的存档,对下次调度进CPU执行的读档. 这就相当于游戏中的读档和存档. 因为操作系统在调度进程CPU上是随机的, 任何进程在执行到任何一个指令时都有可能调度出CPU,这就需要保存当前的进度,在下次调度进CPU时继续当前进度执行. 读档就是在调度出CPU时将当前寄存器这些数据保存到另一个地方,再下次调度的时候再恢复回来.

保存上下文: 将当前CPU寄存器中的数据保存到内存的特定区域

恢复上下文: 去内存的特定区域将保存寄存器中的数据恢复到CPU中的寄存器中.

内存与进程的关系

操作系统对内存资源的分配是让不同进程使用的内存在不同的区域,相互独立,互不干扰.

进程间通信

如上所述,进程是操作系统进⾏资源分配的最⼩单位,这意味着各个进程互相之间是⽆法感受到对方存在的,这就是操作系统抽象出进程这⼀概念的初衷,这样便带来了进程之间互相具备”隔离性'',但现代的应⽤,要完成⼀个复杂的业务需求,往往⽆法通过⼀个进程独⽴完成,总是需要进程和进程进⾏配合地达到应⽤的⽬的,如此,进程之间就需要有进⾏“信息交换“的需求。

进程间通信就是操作系统会提供一些公共的区间(所有的进程都可以访问到),让多个进程可以进行交换数据.

目前,常用的进程通信机制有以下几种:

管道, 共享内存, 文件, 网络, 信号.

这里,在Java中,我们用的最多的就是文件和网络. 而网络可以同一个主机间不同进程通信,也可以不同主机间不同进程通信.
 


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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ MiniZip实现目录压缩与解压

Zlib是一个开源的数据压缩库,提供了一种通用的数据压缩和解压缩算法。它最初由Jean-Loup Gailly和Mark Adler开发,旨在成为一个高效、轻量级的压缩库,其被广泛应用于许多领域,包括网络通信、文件压缩、数据库系统等。其压缩算法是…

如何在部署中实施实时监控

不可否认,在当今的技术环境中,应用系统已变得越来越繁杂。为了及时获悉各种软件应用的健康和服务状态,我们需要通过关注基本的应用指标,来确保应用的所有组件在部署的整个过程中,按照预期运行。 不过,对于…

时态图根据时间轴动态播放热力图

效果图如下&#xff1a; <!DOCTYPE html> <html><head><title>时态图</title><meta charset"utf-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><!-- 引入样式 --&g…

java的继承特性和方法重写

java的继承特性和方法重写 Java的继承特性是一种面向对象编程的重要概念&#xff0c;它允许我们基于已有的类创建新的类&#xff0c;并且保留了已有的类的一些特性。这是通过使用"继承"这个关键词来实现的&#xff0c;新创建的类称为子类&#xff08;subclass&#…

【OpenCV实现图像:使用OpenCV进行物体轮廓排序】

文章目录 概要读取图像获取轮廓轮廓排序小结 概要 在图像处理中&#xff0c;经常需要进行与物体轮廓相关的操作&#xff0c;比如计算目标轮廓的周长、面积等。为了获取目标轮廓的信息&#xff0c;通常使用OpenCV的findContours函数。然而&#xff0c;一旦获得轮廓信息后&#…

echarts实现如下图功能代码

这里写自定义目录标题 const option {tooltip: {trigger: axis},legend: {left: "-1px",top:15px,type: "scroll",icon:rect,data: [{name:1, textStyle:{color: theme?"#E5EAF3":#303133,fontSize:14}}, {name: 2, textStyle:{color: theme…

监控摄像头连接NAS,实现监控管理一体化

嗯&#xff1f;你问干嘛要把摄像头连到NAS&#xff1f; 小马给家里安了个监控摄像头 本意是想家里有啥事也能查监控 却没想到这些监控不仅存储回放有限制 要想更多功能还是得多花钱 恰好&#xff0c;我有铁威马NAS 打开Surveillance Manager 轻松搭建网络摄像头管理系统 …

安防监控视频融合平台EasyCVR定制化页面开发

安防监控EasyCVR视频汇聚平台基于云边端智能协同&#xff0c;支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。安防视频平台EasyCVR拓展性强&#xff0c;视频能力丰富&#xff0c;具体可实现视频监控直播、视频轮播、视频录像、云存储、回放与检索…

用HALCON标定助手对相机进行标定

任务要求&#xff1a; 已知相机镜头焦距f为8mm&#xff0c;相机单个CCD像素在水平和竖直两个方向上的尺寸均为3.75微米&#xff0c;相机为普通透光镜头和面阵相机&#xff0c;对相机进行标定&#xff0c;测量相机的内外参数。 操作步骤&#xff1a; 1. 在HALCON中运行gen_ca…

专业pdf编辑工具PDF Expert mac中文版特点介绍

PDF Expert mac是一款专业的PDF编辑和阅读工具。它可以帮助用户在Mac、iPad和iPhone等设备上查看、注释、编辑、填写和签署PDF文档。 PDF Expert mac软件特点 PDF编辑&#xff1a;PDF Expert提供了丰富的PDF编辑功能&#xff0c;包括添加、删除、移动、旋转、缩放、裁剪等操作…

焦炉加热系统简述

烟道吸力 焦炉负压烘炉分烟道的吸力会影响立火道温度&#xff0c;具体影响因素如下&#xff1a; 烟道吸力过大会导致热量被抽走&#xff0c;使立火道温度降低。烟道吸力不足会导致烟气在烘炉内停留时间过长&#xff0c;使热量无法充分利用&#xff0c;也会导致立火道温度降低…

【Windows 常用工具系列 13 -- Confluence 如何快速输入代码块 code block】

文章目录 Confluence 如何快速输入代码块方法二 Confluence 如何快速输入代码块 在使用使用 confluence 进行文档编辑时&#xff0c;有时需要贴上部分代码&#xff0c;但是直接贴代码在 confluence上&#xff0c;显示效果不是太好看&#xff0c;所以confluence 给我们提供了符…