JavaEE_操作系统之进程(计算机体系,,指令,进程的概念、组成、特性、PCB)

一、冯诺依曼体系(Von Neumann Architecture)

现代的计算机, 大多遵守冯诺依曼体系结构
在这里插入图片描述

  1. CPU 中央处理器: 进行算术运算和逻辑判断.
  2. 存储器: 分为外存和内存, 用于存储数据(使用二进制方式存储)
  3. 输入设备: 用户给计算机发号施令的设备.
  4. 输出设备: 计算机个用户汇报结果的设备.

二、指令(Instruction)

 所谓指令,即指导 CPU 进行工作的命令,主要有操作码 + 被操作数组成。指令是CPU上执行命令的最小单元

三、进程

3.1 什么是进程

 进程就是被加载到内存中的可执行程序。更准确的来说,进程是有特定功能的程序在一个数据集上一次动态执行的过程。它是操作系统执行任务的基本单元,也是分配资源和调度的基本单元
在这里插入图片描述

3.2 进程的基本组成:

进程由三大部分组成:分别是代码段,数据段,和进程控制块(PCB),这里特别注意进程控制块(PCB)是进程在计算机中的唯一标识(含有标识信息)

3.3进程的特性

  1. 并发性
     在计算机系统中,为了充分发挥硬件资源的并行性,统筹各个子系统间的平衡,最大化提高效率,我们设计各个进程是并发的频繁的轮流交替执行的,而不是单一的只有当前一个进程执行完后一个进程才能执行。
    并发和并行(重点)

并发:在一段时间内,宏观上来看,多个进程都得到了执行,但微观上,某一个时刻,只有一个进程在占用CPU资源;
并行:宏观上,多个进程在一段时间内都得到了执行,同时微观上,每个时刻也都有多个进程在被执行(占用CPU资源),前提是有多个CPU。

  1. 独立性
     不同的进程只完成自己特定的任务,进程之间的工作不会相互影响。

  2. 动态性
     进程是程序的一次执行,它有着创建、活动、暂停、终止等过程,具有一定的生命周期,是动态地产生、变化和消亡的。

  3. 制约性(异步性)
     首先,计算机资源是有限的,而计算机中的进程有很多,这就决定了不可能同时满足所有进程对资源的需求,进程之间就只能相互制约争夺某些资源;其次,某些进程具有亲缘关系或者依赖关系,这种关系就决定了它们自然而然地就有着制约关系。或者因访问共享数据/资源或进程间同步而产生制约。

  4. 结构性:
     每个进程都配置一个PCB对其进行描述。从结构上看,进程实体是由程序段、数据段和进程控制块三部分组成的。

3.4 进程是如何进行管理的?

 进程控制块(PCB)(系统为了管理进程设置的一个专门的数据结构,用它来记录进程的外部特征,描述进程的运动变化过程。系统利用PCB来控和管理进程,所以PCB是系统感知进程存在的唯一标志。进程与PCB是一一对应的)在不同的操作系统中对进程的控制和管理机制不同,PCB中的信息多少不一样。

可以使用这个 PCB 描述进程的属性,一个进程就可以使用一个或者多个 PCB 来表示。系统中会使用类似于双向链表这样的数据结构来组织多个 PCB。
(创建新的进程,就是创建 PCB ;把 PCB 插入到链表中销毁进程, 就是把 PCB 从链表上删除并释放;展示进程列表,就相当于是遍历链表的每个节点。)

PCB属性

  1. pid: 进程的身份标识
     每个进程都会有一个 pid, 同一时刻,不同进程之间的 pid 是不同的。
  2. 内存指针,(一组属性)
     每个进程在运行的时候,都会分配一定的内存空间。这个进程的内存空间,具体是在哪里,以及分配的内存空间中有哪些部分,每个部分都用来干嘛,都是通过一组指针来进行区分。
  3. 文件描述符表
     类似于顺序表这样的数据结构,有很多元素和文件有关 =>硬盘 有关
    一个进程也需要涉及到硬盘操作,就需要按照文件的方式来操作.当前进程关联了哪些文件,都能操作哪些文件就是通过文件描述符表.

3.5 进程的组织

PCB作为进程唯一标识,我们组织进程的实质就是组织PCB,而PCB又是一种数据结构,比如Linux中的task_struct结构体。

  1. 链接表方式(链表):统一状态的进程其PCB成一脸表,多个状态对应多个不同的链表,各状态的进程形成不同的链表。在这里插入图片描述

  2. 索引表方式:同一状态的进程归入一个index表(由index指向PCB),多个状态对应多个不同的index,各状态的进程形成不同的索引表,例如就绪索引表,阻塞索引表。
    在这里插入图片描述

总结

以上就是今天要讲的内容,本文仅仅简单介绍了计算机体系结构、指令是CPU上执行命令的最小单元,以及进程是操作系统执行任务的基本单元,也是分配资源和调度的基本单元。

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

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

相关文章

基于php+mysql+html超市商品管理系统(含论文)

博主介绍: 大家好,本人精通Java、Python、Php、C#、C、C编程语言,同时也熟练掌握微信小程序、Android等技术,能够为大家提供全方位的技术支持和交流。 我有丰富的成品Java、Python、C#毕设项目经验,能够为学生提供各类…

【数据结构-之八大排序(下),冒泡排序,快速排序,挖坑法,归并排序】

🌈个人主页:努力学编程’ ⛅个人推荐:基于java提供的ArrayList实现的扑克牌游戏 |C贪吃蛇详解 ⚡学好数据结构,刷题刻不容缓:点击一起刷题 🌙心灵鸡汤:总有人要赢,为什么不能是我呢 …

eve 导入linux

mkdir /opt/unetlab/addons/qemu/linux-centos7 cd /opt/unetlab/addons/qemu/linux-centos7 上传hda.qcow2 /opt/unetlab/wrappers/unl_wrapper -a fixpermissions Linux images - (eve-ng.net) Due to very high demand of this section and problems with how to crea…

【车载开发系列】MCAL基本概念

【车载开发系列】MCAL基本概念 【车载开发系列】MCAL基本概念 【车载开发系列】MCAL基本概念一. BSW与MCAL1)BSW-服务层2)BSW-ECU抽象层3)MCAL驱动层 二. MCAL基本概念三. MCAL组成1)PORT2)DIO3)ADC4&#…

阿里云开源大模型开发环境搭建

ModelScope是阿里云通义千问开源的大模型开发者社区,本文主要描述AI大模型开发环境的搭建。 如上所示,安装ModelScope大模型基础库开发框架的命令行参数,使用清华大学提供的镜像地址 如上所示,在JetBrains PyCharm的项目工程终端控…

机器人正反向运动学(FK和IK)

绕第一个顶点可以沿Z轴转动,角度用alpha表示 绕第二个点沿X轴转动,角度为Beta 第三个点沿X轴转动,记作gama 这三个点构成姿态(pose) 我们记第一个点为P0,画出它的本地坐标系,和世界坐标系一样红…

SpringCloud知识点梳理

1. Spring Cloud 综述 1.1 Spring Cloud 是什么 [百度百科]Spring Cloud是⼀系列框架的有序集合。它利⽤Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中⼼、消息总线、负载均衡、断路器、数据监控等,都可以⽤ Spring Boot的开发⻛格…

(C语言)文件操作与函数,超详解

目录 1. 文件 1.1 为什么使用文件? 1.2 什么是文件? 1.2.1 程序文件 1.2.2 数据文件 1.3 文件名 1.4 二进制文件和文本文件 2. 文件的打开和关闭 2.1 流和标准流 2.1.1 流 2.1.2 标准流 2.2 文件指针 2.3 文件的打开和关闭 3. 文件的顺序…

Go Web 开发【Gin 框架快速开发】

1、Gin Web 快速开发 1.1、环境准备 1.1.1、导入 gin 依赖 这里就叫 gin 依赖了,在 Goland 命令行中输入下面的命令: go get -u github.com/gin-gonic/gin 1.1.2、设置代理 如果下载失败,最好设置一下代理,在 cmd 命令行中输…

深度学习论文:Local Feature Matching Using Deep Learning: A Survey

深度学习论文: Local Feature Matching Using Deep Learning: A Survey Local Feature Matching Using Deep Learning: A Survey PDF: https://arxiv.org/pdf/2401.17592 1 概述 近年来,深度学习模型的引入引发了对局部特征匹配技术的广泛探索。本文旨在全面概述局…

爬虫学习:基本网络请求库的使用

目录 一、urllib网络库 1.urlopen()方法 2.request方法 二、requests网络请求库 1.主要方法 2.requests.get()和requests.post() 一、urllib网络库 1.urlopen()方法 语法格式: urlopen(url,data,timeout,cafile,capath,context) # url:地址 # data:要提交的数据…

POWERBI==官网教程

地址 COVID-19 tracking sample for US state and local governments - Power BI | Microsoft Learn 已经非常全面了

JSON教程(非常详细)

参考文章来源:JSON教程(非常详细) 目录 JSON JSON 发展史 为什么要使用 JSON? JSON 的不足 存储格式 使用场景 1) 定义接口 2) 序列化 3) 生成 Token 4) 配置文件 JSON语法规则 JSON 与 JavaScript 对象的区别 JSON数…

解决Pycharm全局搜索与输入法简繁切换快捷键冲突问题

Pycharm中全局搜索快捷键Ctrl Shift F 如图所示: 微软输入法简繁切换快捷键设置: 解决办法: 关掉输入法的切换功能即可,或者更改简繁切换快捷键,毕竟简繁切换使用频率极低。

骑缝电子章怎么盖?

盖骑缝电子章通常涉及几个基本步骤,这里提供一个通用的流程,适用于大多数电子文档处理软件,尤其是那些支持电子签名和印章功能的软件,比如Adobe Acrobat Pro DC、e-章宝(易友EU3000智能盖章软件)等。请注意,具体操作可…

2024年五一数学建模C题完整解题思路代码

2024年第二十一届五一数学建模竞赛题目 C题 煤矿深部开采冲击地压危险预测 煤炭是中国的主要能源和重要的工业原料。然而,随着开采深度的增加,地应力增大,井下煤岩动力灾害风险越来越大,严重影响着煤矿的安全高效开采。在各类深…

路由器的构成

一、路由器简介 路由器是互联网中的关键设备: 连接不同的网络路由器是多个输入端口和多个输出端口的专用计算机,其任务是转发分组(转发给下一跳路由器)下一跳路由器也按照这种方法处理分组,直到该分组到达终点为止 …

Pandas入门篇(二)-------Dataframe篇4(进阶)(Dataframe的进阶用法)(机器学习前置技术栈)

目录 概述一、复合索引(一)创建具有复合索引的 DataFrame1. 使用 set_index 方法:2.在创建 DataFrame 时直接指定索引: (二)使用复合索引进行数据选择和切片(三)重置索引&#xff08…

使用 Langchain、Langfuse、Nemo-gaurdrails、RAGAs构建 RAG 管道并进行监控和评估

原文地址:build-end-to-end-rag-pipeline-with-monitoring-and-evaluation-using-langchain-azure-ai-search 2024 年 4 月 21 日 介绍 使用现代的LLM框架,如Langchain或llamaindex,可以迅速搭建一个用于 RAG 的管道,通常只需编写大约5-6行代码。然而,若要构建一个适用于生…

【小浩算法 BST与其验证】

BST与其验证 前言我的思路思路一 中序遍历判断数组无重复递增思路二 递归边界最大值最小值的传递 我的代码测试用例1测试用例2 前言 BST是二叉树一个经典应用,我们常常将其用于数据的查找以及构建平衡二叉树等。今天我所做的题目是验证一颗二叉树是否为二叉搜索树&…