JavaWeb——进程详解

news2024/12/26 12:21:23

目录

一、操作系统

1、定义:

2、操作系统的基本功能:

二、进程

1、定义:

三、进程管理

1、PCB定义

(1)、身份标识

(2)、内存指针

(3)、文件描述符

2、操作系统是如何管理进程

(1)、描述进程

(2)、组织进程

四、进程调度(cpu分配)

1、状态

2、优先级

3、记账信息

4、上下文

五、内存管理(内存分配)

六、进程的虚拟空间地址

1、定义

2、进程通信


一、操作系统

1、定义:

操作系统是计算机资源管理软件的统称。目前常见的操作系统有:Windows系列、Linux系列等,具体详情如下图所示:

2、操作系统的基本功能:

  • 防止硬件被应用程序滥用
  • 向应用程序提供简单一致的机制来控制复杂而又通常大相径庭的低级硬件设备

二、进程

1、定义:

进程相当于是一个程序完成一项任务的过程。同时,在操作系统内部,进程又是操作系统进行资源分配的基本单位。

可执行文件(.exe)相对于进程来说是静态的,只占用我们硬盘的内存,但当我们运行.exe文件时,操作系统就会把里面的信息加载到我们的内存中,并且运行其中的代码,因此就形成了一个进程。

在任务管理器中, 如下图所示这些在内存中运行的程序就相当于一个个进程。

三、进程管理

1、PCB定义

每个进程都有自己的PCB,而PCB又包含是什么呢?

(1)、身份标识

身份标识符pid也就相当于我们的身份证号,每个进程都有自己的pid。

(2)、内存指针

内存指针指明了进程要执行的代码内存中的地方,以及这个进程执行中依赖的数据都在哪里。当运行一个.exe文件时,操作系统就会把这个文件加载到内存中,变成进程。

(3)、文件描述符

文件描述符表示进程中打开了哪些文件。在文件描述符表中,每个元素代表一个打开的文件,表中对应的下标就是文件描述符,因此可以将其看作是顺序表。

2、操作系统是如何管理进程

(1)、描述进程

计算机内部要管理任何现实事物,都需要将其抽象成一组有关联的、互为一体的数据。因此我们可以通过类/对象来描述这一特征。这样,每一个 PCB 对象,就代表着一个实实在在运行着的程序,也就是进程。

(2)、组织进程

操作系统再通过某些数据结构,例如链表、二叉树等把每个进程的PCB给串起来,便于进行增删查改的操作。

四、进程调度(cpu分配)

进程的调度是操作系统将CPU资源分配给各个进程。

以下属性便是为了实现进程调度:

1、状态

状态描述了当前这个进程接下来应该怎么调度:
就绪状态:随时可以去CPU上执行。
阻塞状态/睡眠状态:暂时不可以去CPU上执行。

2、优先级

每个进程所优先分配到的时间和空间。

3、记账信息

统计了每个进程,都分别执行了多久、执行了哪些指令以及排队等了多久。记账的目的是给进程调度提供信息。

4、上下文

表示上次进程被调度出CPU的时候,当时程序的执行状态,下次进程上CPU的时候,就可以恢复之前的状态,然后继续往下执行。进程被调度出CPU之前,要把CPU中的所有的寄存器中的数据都给保存到内存中。
上下文也就相当于玩游戏时的存档,当退出游戏时保存进度,在下次打开游戏时可以继续从该处进行游戏。

注:为了便于讨论和理解,我们大部分的场景下假设是单CPU单核的计算机。操作系统对CPU资源的分配,采用的是时间模式 —— 不同的进程在不同的时间段去使用 CPU 资源。

五、内存管理(内存分配)

操作系统对内存资源的分配,采用的是空间模式(不同进程使用内存中的不同区域,互相之间不会干扰)。

六、进程的虚拟空间地址

1、定义

虚拟空间地址可以抽象为两个班级都有相同的学号,但是他们实际的所在的班级是不同的。

虚拟空间对于进程的作用在于“隔离性”,相比于线程来说进程之间不会相互影响,一个进程崩溃了也不会有影响其他的进程,每个进程都有这样的一份虚拟空间。

即使操作系统有这么多的进程,但同一时刻执行的进程不会很多。即使同一时刻执行了也不会用到进程虚拟空间所有的内存,只会显示真实使用的部分。

因为进程之间存在“隔离性”,所以想要多个进程配合工作,操作系统就提供了“进程间通信”,给进程之间提供一份公共资源,借助公共资源来通信。

2、进程通信

进程是操作系统进行资源分配的最小单位,这意味着各个进程互相之间是无法感受到对方存在的。因此进程之间存在“隔离性”但想要完成一个复杂的业务需求,往往需要通过多个进程配合来完成。因此进程之间就需要有进行“信息交换”的需求。进程间通信的需求就应运而生。

目前,主流操作系统提供的进程通信机制有如下:

  • 管道
  • 共享内存
  • 文件
  • 网络
  • 信号量
  • 信号

注:网络是一种相对特殊的 IPC 机制,它除了支持同主机两个进程间通信,还支持同一网络内部非同一主机上的进程间进行通信。

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

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

相关文章

Hadoop入门常见面试题与集群时间同步操作

目录 一,常用端口号 Hadoop3.x : Hadoop2.x: 二,常用配置文件: Hadoop3.x: Hadoop2.x: 集群时间同步: 时间服务器配置(必须root用户): (1&#xff09…

1639_perror的函数功能以及简单测试

全部学习汇总: GreyZhang/g_unix: some basic learning about unix operating system. (github.com) 继续分析之前的shell程序代码,看到了一个fork1的实现。 Fork之前还是看过的,但是也已经忘得差不多了,这个fork1就是fork的一种应…

4.Spring Cloud (Hoxton.SR8) 学习笔记—Nacos微服务治理

本文目录如下:一、Nacos微服务治理Nacos 下载 与 启动Spring Cloud 集成 NacosIDEA 同一个 Application 启动多次一、Nacos微服务治理 Nacos 下载 与 启动 https://github.com/alibaba/nacos/releases Nacos 下载与启动: F:\ProgramFiles\nacos\bin> .\startup…

MyBatis操作数据库

目录 MyBatis 功能架构 学习MyBatis 第一个MyBatis查询 1、创建数据库和表 2、搭建MyBatis开发环境 2.1、在项目中添加MyBatis框架 2.2、配置数据库连接信息 2.3、配置MyBatis中xml的保存路径(规则) 3、添加业务代码 3.1、创建实体类 3.2、构…

stack,queue

stack,queuestack的介绍和使用介绍使用模拟实现queue的介绍和使用介绍使用模拟实现priority_queue的介绍和使用介绍使用模拟实现容器适配器概念标准库中stack,queue的底层结构介绍deque原理缺陷deque作为stack,queue底层默认容器stack的介绍和使用 介绍 stack是适…

哪个牌子的蓝牙耳机音质好?音质比较好的蓝牙耳机排名

蓝牙耳机经过多年发展,无论是在外观设计还是性能配置上都有很大的进步,越来越多的蓝牙耳机开始注重音质表现,逐渐有HIFI音质、无损音质出现在大众视野。那么哪个牌子的蓝牙耳机音质好?接下来,我来给大家分享几款音质比…

【H2实践】之 SpringBoot 与 H2 数据交互

一、目标 本文是【H2实践】之认识 H2,【H2实践】之 SpringBoot 整合的后续。前文分别介绍了 H2 及其简单使用,并完成了 H2 与 SpringBoot 的整合。本文将紧接 【H2实践】之 SpringBoot 整合 探索实用 SpringBoot 结合 JPA 通过 web 接口操作 H2 数据库的…

Python数据分析案例22——财经新闻可信度分析(线性回归,主成分回归,随机森林回归)

本次案例还是适合人文社科领域,金融或者新闻专业。本科生做线性回归和主成分回归就够了,研究生还可以加随机森林回归,其方法足够人文社科领域的硕士毕业论文了。 案例背景 有八个自变量,[微博平台可信度,专业性,可信赖性,转发量,…

Java对象结构与内置锁

Java对象结构与内置锁 Java内置锁的很多重要信息都存放在对象结构中 1.Java对象结构 Java对象包括三部分:对象头、实例数据和对齐字节 对象头: 第一个字段叫做Mark Word,用于存储自身运行时数据,例如GC标志位,哈希…

P1120 小木棍(搜索+剪枝)

题目链接:P1120 小木棍 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 样例输入: 9 5 2 1 5 2 1 5 2 1 样例输出: 6 分析:这道题一看数据范围就知道是搜索,但关键是需要剪枝。 首先我们求出所有木棍的长度和&am…

什么是刺猬理念

一、什么是刺猬理念刺猬理念是指把复杂的世界简化成单个有组织性的观点,一条基本原则或一个基本理念,发挥统帅和指导作用。核心是把事情简单化,把所有的挑战和进退维谷的局面压缩为简单的。二、刺猬理念的寓言故事狐狸是一种狡猾的动物&#…

Maix Bit(K210)保姆级入门上手教程---自训练模型之云端训练

Maix Bit(K210)保姆级入门上手教程系列 Maix Bit(K210)保姆级入门上手教程—环境搭建 Maix Bit(K210)保姆级入门上手教程—外设基本使用 这是K210快速上手系列文章,主要内容是,介绍…

《机器学习》基础概念之【P问题】与【NP问题】

《机器学习》基础概念之【P问题】与【NP问题】 这里写目录标题《机器学习》基础概念之【P问题】与【NP问题】一、多项式&时间复杂度1.1. 多项式1.2.时间复杂度二、P问题 & NP问题2.1. P问题2.2.NP问题2.3.举例理解NP问题-TSP旅行商推销问题三、NP-hard问题&NP-C问题…

PMP项目管理项目成本管理

目录1 项目成本管理概述2 规划成本管理3 估算成本4 制定预算5 控制成本1 项目成本管理概述 项目成本管理包括为使项目在批准的预算内完成而对成本进行规划、估算、预测、融资、筹资、管理和控制的各个过程,从而确保项目在批准的预算内完工。核心概念 项目成本管理旨…

vuex getters的作用和使用(求平均年龄),以及辅助函数mapGetters

getters作用:派生状态数据mapGetters作用:映射getters中的数据使用:方法名自定义,系统自动注入参数:state,每一个方法中必须有return,其return的结果被该方法名所接收。在state中声明数据listst…

PyTorch深度学习实战 | 计算机视觉

深度学习领域技术的飞速发展,给人们的生活带来了很大改变。例如,智能语音助手能够与人类无障碍地沟通,甚至在视频通话时可以提供实时翻译;将手机摄像头聚焦在某个物体上,该物体的相关信息就会被迅速地反馈给使用者&…

【教学典型案例】21.面向对象复用、面向对象实现、立体化权限落地

目录一:背景介绍1、针对于激励配置的功能体现出来的:面向对象的思想就可以实现极大程度的复用性的问题2、脱离学习通设计图,过程化,如何用面向对象的思想来去组织管理流程图3、词云位置记录定制化二:思路&方案1、面…

CSDN每日一练(编程题)

目录1. 2023/1/31-非降序数组(类型:数组&排序 难度:中等)2. 2023/2/1- 走楼梯(类型:递归&循环 难度:中等)3. 2023/2/1-蛇形矩阵(难度:困难)4. 2023/2/2-奇偶排序(类型:数组&奇偶排序 难度&…

环境配置之Keepass

前言很久以前,就有了想要一个自己密码管理器的念头。毕竟,即使浏览器能记住各个网站的账号密码,但是在登录单独客户端的时候,仍然要翻找密码。为了省事,也曾经是一个密码走天下。然后被劫持了QQ给同学发黄色小网站&…

手写Mybatis

Mybatis总体流程 (1)加载配置并初始化触发条件:加载配置文件 配置来源于两个地方,一个是配置文件(主配置文件conf. xml, mapper文件*.xml),一个是java代码中的注解,将主配置文件内容解析封装到Configuration,将sql的配置信息加载成为一个mappedstateme…