【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.mzph.cn/news/159325.shtml

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

相关文章

python 水质日历热力图

利用日历热力图可以方便的查看站点水质全年的变化情况。 接口获取站点数据 这一步根据自己实际情况,也可以读取excel、MySQL读取数据。这里把API地址已隐去。 import numpy as np import calendar import requests import json import pandas as pd import time f…

Linux:进度条(小程序)以及git三板斧

Linux小程序&#xff1a;进度条 在实现小程序前我们要弄清楚&#xff1a; 1.缓冲区&#xff1b; 2.回车与换行。 缓冲区&#xff1a; 分别用gcc来编译下面两个程序&#xff1a; 程序一&#xff1a; #include <stdio.h> int main() { printf("hello Makefil…

前后端分离SpringBoot+vue的买菜农副产品多功能商城

1&#xff0c;项目介绍 本系统主要针对买菜而设计&#xff0c;其功能有菜品基本信息管理、商品类别管理、系统订单管理、评论管理、系统用户管理等功能模块。并且本系统采用了现在流行的SpringBootVue进行的设计与实现&#xff0c;其中Tomcat为服务器&#xff0c;MySQL为数据库…

小红书干货类笔记怎么写?建议收藏

小红书干货类笔记是指在小红书这个社交平台上&#xff0c;用户分享的各种实用、有价值的生活技巧、经验、心得等内容的笔记。这类笔记通常具有以下特点&#xff1a;内容详实、实用性强、独特见解、图文并茂。 比如&#xff1a;某个妆要怎么化、某种技能该怎么学、某个城市该怎…

【开源】基于JAVA的开放实验室管理系统

项目编号&#xff1a; S 013 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S013&#xff0c;文末获取源码。} 项目编号&#xff1a;S013&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容2.1 实验室类型模块2.2 实验室模块2.3 实…

【Vue】生命周期一文详解

目录 前言 生命周期 钩子函数使用方法 ​编辑 周期-----创建阶段 创建阶段做了些什么事 该阶段可以干什么 周期----挂载阶段 挂载阶段做了什么事 该阶段适合干什么 周期----更新阶段 更新阶段做了什么事 该阶段适合做什么 周期----销毁阶段 销毁阶段做了什么事 …

C++:继承

一、继承的概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段&#xff0c;它允许程序员在保 持原有类特性的基础上进行扩展&#xff0c;增加功能&#xff0c;这样产生新的类&#xff0c;称派生类。继承呈现了面向对象 程序设计的层次结构&#xff0c…

使用Microsoft Dynamics AX 2012 - 4. 销售和配送

销售和分销的主要职责是为客户提供您的商品和服务。为了完成这项任务&#xff0c;销售和分销需要通过分拣、运输和开具发票来处理销售订单&#xff0c;从而管理客户的材料需求。 销售和配送业务流程 在我们开始详细介绍之前&#xff0c;下面几行概述了销售和配送中的业务流程…

【IEEE独立出版 | 往届均完成检索】2024年第四届消费电子与计算机工程国际学术会议(ICCECE 2024)

#国际学术会议# 推荐 #广州# 【IEEE独立出版 | 往届均完成检索】2024年第四届消费电子与计算机工程国际学术会议&#xff08;ICCECE 2024&#xff09; 2024 4th International Conference on Consumer Electronics and Computer Engineering 2024年1月12-14日 | 中国广州 会…

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

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

Leaflet结合Echarts实现迁徙图

效果图如下&#xff1a; <!DOCTYPE html> <html><head><title>Leaflet结合Echarts4实现迁徙图</title><meta charset"utf-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0">…

14.(vue3.x+vite)组件间通信方式之pinia

前端技术社区总目录(订阅之前请先查看该博客) 示例效果 Pinia简介 Pinia 是 Vue 的存储库,它允许您跨组件/页面共享状态。 Pinia与Vuex比较 (1)Vue2和Vue3都支持,这让我们同时使用Vue2和Vue3的小伙伴都能很快上手。 (2)pinia中只有state、getter、action,抛弃了Vu…

世微 dc-dc降压恒流 LED汽车大灯 单灯 14V5A 68W车灯驱动方案 AP5191

产品描述 AP5191是一款PWM工作模式,高效率、外围简单、外置功率MOS管&#xff0c;适用于4.5-150V输入的高精度降压LED恒流驱动芯片。输出最大功率150W&#xff0c;最大电流6A。AP5191可实现线性调光和PWM调光&#xff0c;线性调光脚有效电压范围0.55-2.6V.AP5191 工作频率可以…

windows搭建gitlab教程

1.安装gitlab 说明&#xff1a;由于公司都是windows服务器&#xff0c;这里安装以windows为例&#xff0c;先安装一个虚拟机&#xff0c;然后安装一个docker&#xff08;前提条件&#xff09; 1.1搜索镜像 docker search gitlab #搜索所有的docker search gitlab-ce-zh #搜索…

视频直播美颜SDK全面解析:美颜SDK技术对比

美颜SDK的出现&#xff0c;为直播主和用户提供了更丰富的美颜体验。 一、美颜SDK的基本原理 美颜SDK多种技术协同工作&#xff0c;使得直播画面更加细腻、自然&#xff0c;给用户带来更好的视觉感受。不同的SDK可能采用不同的算法和处理流程&#xff0c;从而产生各具特色的美…

【深度学习实验】注意力机制(三):打分函数——加性注意力模型

文章目录 一、实验介绍二、实验环境1. 配置虚拟环境2. 库版本介绍 三、实验内容0. 理论介绍a. 认知神经学中的注意力b. 注意力机制 1. 注意力权重矩阵可视化&#xff08;矩阵热图&#xff09;2. 掩码Softmax 操作3. 打分函数——加性注意力模型1. 初始化2. 前向传播3. 内部组件…

配电房智能综合监控系统

配电房智能综合监控系统是一种针对配电房环境和设备进行实时监控和管理的系统。依托电易云-智慧电力物联网&#xff0c;它集成了多种先进技术&#xff0c;如物联网、大数据、AI视频智能分析等&#xff0c;实现对配电房全方位、智能化的监控和管理。 这个系统的主要功能可能包括…

用Stable Diffusion帮助进行卡通风格渲染

用Stable Diffusion帮助进行卡通风格渲染 正常风格渲染卡通风格贴图增加涅斐尔边缘高光效果 正常风格渲染 正常的动物写实模型 卡通风格贴图 用Stable Diffusion可以帮助我们将写实贴图转化为卡通风格&#xff08;具体参数可以自己调试&#xff0c;总体上是将提示词强度和图…

Redis整数集合

前言 整数集合(intset)是集合键的底层实现之一&#xff0c;当一个集合只包含整数值元素&#xff0c;并且这个集合的元素数量不多时&#xff0c;Redis就会使用整数集合作为集合键的底层实现。 一. 整数集合的实现 1.1 结构 整数集合(intset)是Redis用于保存整数值的集合抽象数据…