【JavaEE】计算机组成以及操作系统(进程)的基本知识

news2025/6/17 3:03:20

目录

前言

1、计算机基本组成

1.1、存储器 

2、操作系统

2.1、 进程(任务)的概念

2.2、进程的管理 

2.2.1、进程控制块PCB(process control block)

2.3、CPU分配(进程调度)

2.3.1、并发

2.3.2、并行

2.4、进程管理(PCB)的一些属性

2.4.1、进程的状态

2.4.2、进程的优先级 

2.4.3、进程的上下文

2.4.4、进程的记账信息

2.5、操作系统的常用数据结构


前言

相信计算机相关专业的同学对冯诺依玛体系结构一定是相当熟悉吧。现代的计算机大多遵守冯诺依曼体系结构。

1、计算机基本组成

  • cpu(中央处理器  ):进行算数运算和逻辑判断
  • 存储器:分为外村和内存,用于存储数据(使用二进制方式存储)
  • 输入设备:用户给计算机发号施令的设备。
  • 输出设备:计算机给用户汇报结果的设备。
  • 数据流:一组有序,有起点和终点的字节的数据序列。包括输入流和输出流。由指令流调用的数据序列,包括输入数据和中间结果。

数据流是一串连续不断的数据的集合,就像水管里的水流,在水管的一端一点一点的供水,而在水管的另一端看到的是一股连续不断的水流。类比,数据写入程序可以是一段一段的向数据流管道当中写入数据,这些数据段会按先后顺序形成一个长的数据流。对数据读取的程序来说,看不到数据流再写入时的分段情况,每次可以读取其中的任意长度的数据,但只能先读取前面的数据后,再读取后面的数据。不管写入时是将数据分次写入,还是作为一个整体一次写入,读取时的效果都是完全一样的。

  • 指令流:机器执行的指令序列
  • 控制流:是计算机执行一个程序中语句的顺序。

1.1、存储器 

在计算机上的数据有三种存储方式,一种是外存,一种是内存,一种是CPU缓存。

  • 外存:比如电脑上的硬盘,磁盘,U盘等都是外存
  • 内存:是暂时存储进程以及数据的地方,又称为主存,是CPU能直接寻址的存储空间。
  • CPU缓存:缓存就是数据交换的缓冲区,是贮藏数据(使用频繁的数据)的临时地方。当用户查询数据时,首先在缓存中寻找,如果找到了则直接执行,如果找不到,则取数据库中查找。
  1. 存储量:外存的最大,其次是内存,最后是CPU缓存。
  2. 数据的读取速度:CPU缓存 > 内存 > 外存。

2、操作系统

操作系统的作用是控制和管理系统资源。操作系统是管理硬件与软件资源的计算机程序。

操作系统的分层试图

 操作系统由两个基本功能:

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

操作系统是一个非常大的概念,他是一个软件,这里与我们关系最大的就是,操作系统对进程的管理。 


2.1、 进程(任务)的概念

进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配基本单位是操作系统结构的基础。

  • 狭义定义:进程就是一段程序的执行过程
  • 广义定义:进程是一个具有一定独立功能的程序,关于某个数据集合的一次运行活动。他是操作系统动态执行的基本单元在传统的操作系统中,进程即是基本的分配单元,也是基本的执行单元。

下面这些被运行起来的程序可以理解为进程 

 进程是一个“执行中的程序”,程序是一个静态的没有生命的永久的实体,当操作系统执行他时,他才能成为一个活动的实体。我们将他称为进程。进程是一个动态的,暂时的状态变化的过程


2.2、进程的管理 

由上边的图可以看到,由于进程很多,所以需要管理,如果只有几个进程的话,也就涉及不到管理。

所谓的管理,分为两步:

  • 描述一个进程:使用结构体/类,把一个进程有哪些信息,表示出来。
  • 组织这些进程:使用一定的数据结构,把这些结构体对象放到一起(通常使用双向链表链接起来)

描述每个进程的结构体,在概念上被称为进程控制块(PCB)。 

2.2.1、进程控制块PCB(process control block)

进程控制块是进程实体的一部分,是操作系统中最重要的记录行数据结构。他是进程 管理和控制的最重要的数据结构,每一个进程均有一个PCB,在创建进程时,建立PCB,伴随进程运行的全过程,直到进程撤销而撤销。

PCB进程控制块是进程的静态描述。

  • 进程控制块(PCB)的属性:这里只介绍几个重要的属性,
  • 程序ID:(PID:进程句柄):他是唯一的,一个进程都必须对应一个PID。PID一般是整形数字,程序ID 是每个进程的唯一标识。
  • 内存指针:当前这个进程使用的内存是那一部分【进程运行的时候,使用了那些内存上的资源】
  • 文件描述符表:进程每次打开一个文件,就会产生一个“文件描述符”(标识了这个被打开的文件),一个进程可能会打开很多文件,对应了一组文件描述符。把这些文件描述符放到一个顺序表这样的结构里,就构成文件描述表。【体现的是,进程运行的时候,使用了那些硬盘上的资源(使用了那些文件)】

文件:比如硬盘上存储的数据,就是以文件为单位存储的。

说到这里,可以看到进程的运行,需要从操作系统这里申请资源。我们也就能理解,进程是操作系统进行资源分配的基本单位(此处设计到的资源包括不限于内存,硬盘,CPU缓存等,这些资源在分配的时候都是以进程为单位分配的)。


2.3、CPU分配(进程调度)

概念: 需要进程调度的理由很充分,即充分利用计算机系统中的CPU资源,让计算机能够多快好省的完成各种任务。为此,可在内存中存放数目远大于计算机系统内CPU个数的进程,让这些进程在操作系统的进程调度器下,能够让进程高效(高的吞吐量--throughput)、及时(低延迟--latency)、公平(fairness)地使用CPU。为此调度器可设计不同的调度算法来选择进程,这体现了进程调度的策略,同时还需并进一步通过进程的上下文切换(context switch)来完成进程切换,这体现了进程调度的机制。
 

操作系统对CPU资源的分配,采用的是空间模式 —— 不同进程使在不同的时间段去使用CPU 资源。

咱们的应用程序能够运行,全依靠CPU,每个程序相当于一个二进制指令的集合,这些指令靠CPU运行。这里我们来了解一个CPU的概念(核心数)

同一时间一个逻辑处理器可以运行一个进程

 以小编的电脑为例,有4个内核,8个逻辑处理器,就相当于1个人可以干两个人的活,

可以这样理解,我有4个核心,可以同时运行8个进程,在上面的进程中的图片中,这台电脑当时要处理100个进程,我这8个进程不可能同时运行100个进程。所以这里就设计到了并行和并发的概念。

2.3.1、并发

一个逻辑处理器,先执行进程1,执行了一会之后,再去执行进程2,在执行一会之后,再去执行进程3 ......,此时只要这里的切换速度非常块,看起来,进程1,2,3就是“同时”执行。

2.3.2、并行

同一时刻,两个逻辑处理器,同时执行两个进程,此时这两个进程就是并行执行的。


通过并行和并发的操作,虽然我们只有8个逻辑处理器,但是可以同时执行这100个进程了。

并行+并发完全是由操作系统自身控制的,程序员感知不到,所以我们吧并行+并发统称为并发。

 要完成进程的调度,还是需要PCB(进程的管理)里边的一些属性,进行支撑。

2.4、进程管理(PCB)的一些属性

2.4.1、进程的状态

可以简单认为,进程的状态主要有这两个:

  • 就绪态:该进程已经准备号,随时可以上CPU执行
  • 阻塞态:该进程暂时无法上CPU执行。

 可以这样理解,有三个朋友A,B,C,你想出去玩,A说现在有事情在忙,无法和你出去玩;这就是“阻塞态”;但是朋友B和C没有事情,随时都可以找他们去玩,这就是“就绪态”。

2.4.2、进程的优先级 

进程之间的调度不是“公平”的,有的要优先调度。

 比较重要的事物,优先级最高,让他先调度,先给他分配资源,优先级最低的,给他分配最少的资源。

2.4.3、进程的上下文

描述了当前进程执行到哪里这样的“存档记录”,进程在离开CPU的时候就要把当前的运行的中间结果“存档”。等到下次进程回来CPU上,再恢复之前的“存档”,从上次的结果继续往后执行。

 所谓上下文具体值得就是进程运行过程中,CPU内部的一系列寄存器的值

寄存器有很多种,其中最典型的作用,就是保存当前进程的执行的中间结果,包括进程运行到那一条指令。

进程离开CPU,就需要把这些寄存器的值,保存到PCB的上下文字段中,进程下次回来CPU,再把PCB中的值给恢复到寄存器中。

存档:进程离开CPU的时候,需要将寄存器中的值保存下来放到PCB上下文字段中。

读档:进程下次回来,CPU在把PCB上下文中的值恢复到寄存器中。

❗❗❗注意:这里为什么要提到将寄存器中的值保存下来???


上面说过在同一时间,一个逻辑处理器只能处理一个进程。CPU每个逻辑处理器有自己的寄存器,当一个进程运行时,这个寄存器表示这个进程的执行结果,但是当运行另一个进程的时候,他就需要表示另外一个的执行结果。所以当进程离开CPU的时候,要将寄存器当中的值保存下来。

 


2.4.4、进程的记账信息

统计每个进程,在CPU上执行了多久了,执行到那句指令了。这个就可以作为调度的参考依据。


2.5、操作系统的常用数据结构

操作系统往往使用双向链表这样的数据结构来组织PCB。

  • 创建一个进程就是创建一个链表的结点
  • 销毁一个进程就是把链表中的结点给删除了
  • 遍历进程就是遍历双向链表。

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

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

相关文章

string容器

1、string的构造和赋值 #include #include using namespace std; void test01() { string str1(“hello world”); //使用字符串初始化 cout<<str1<<endl; string str2(5,‘A’); //使用 n 个字符串是初始化 cout<<str2<<endl; string str3 str2; …

深度学习数据集—水果数据集大合集

近期整理的各类水果&#xff08;包括干果&#xff09;数据集&#xff0c;分享给大家。 1、8类水果图片数据集&#xff08;每类100张图片左右&#xff09;[橘子&#xff0c;菠萝&#xff0c;苹果&#xff0c;木瓜&#xff0c;火龙果&#xff0c;香蕉&#xff0c;樱桃&#xff0…

系统升级 | RK3568开发平台成功搭载SylixOS国产实时操作系统

瑞芯微RK3568芯片是一款定位中高端的通用型SOC&#xff0c;采用22nm制程工艺&#xff0c;搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码&#xff0c;支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU&#xff0c;可用于轻量级人工…

【GPT4】微软 GPT-4 测试报告(5)与外界环境的交互能力

欢迎关注【youcans的AGI学习笔记】原创作品 微软 GPT-4 测试报告&#xff08;1&#xff09;总体介绍 微软 GPT-4 测试报告&#xff08;2&#xff09;多模态与跨学科能力 微软 GPT-4 测试报告&#xff08;3&#xff09;编程能力 微软 GPT-4 测试报告&#xff08;4&#xff09;数…

被裁了,39 岁阿里 P9,攒下 1.5 亿....

今天刷知乎&#xff0c;在问题 “40 岁因为财务自由决定不上班的人&#xff0c;个人资产总和到底有多少” 下看到一位阿里 P9 的匿名回答让我狠狠的酸了一把~ 这刚刚失业的四十岁高级码农自曝了自己的人生经历&#xff0c;作为一名“阿里 P9”的程序员&#xff0c;他讲述了自己…

重庆理工大学教授程平:智能会计时代,应充分发挥数据资产的价值

近日&#xff0c;由用友主办的「智能会计 价值财务」2023企业数智化财务创新峰会北京站在北京国家会计学院圆满举办&#xff01;来自知名院校的专家学者、央国企等大型企业财务领路人、以及权威财经媒体相约北京国家会计学院&#xff0c;一同见证“智能会计”新时代的到来&…

centos 搭建 wiki

需要安装软件 mysqlmm-wikinginx&#xff08;非必须&#xff09; mysql 1.查询本机是否安装mysql rpm -qa | grep mysql 如安装&#xff0c;知道mysql账号密码&#xff0c;可以直接使用&#xff0c;跳过此步骤 如已安装&#xff08;centos可能默认已安装mysql或者之前有人…

day13_oop

今日内容 零、 复习昨日 一、final 二、static 三、多态 四、向上转型&向下转型 五、多态应用 零、 复习昨日 封装 类的封装: 1 属性私有 2提供setget 继承 A extends B子类可以使用父类非私有属性和方法好处: 复用,多态准备 重写/覆写/覆盖/Override 子类重写父类的方法,以…

什么是雪花算法?啥原理?

1、SnowFlake核心思想 SnowFlake 算法&#xff0c;是 Twitter 开源的分布式 ID 生成算法。 其核心思想就是&#xff1a;使用一个 64 bit 的 long 型的数字作为全局唯一 ID。在分布式系统中的应用十分广泛&#xff0c;且 ID 引入了时间戳&#xff0c;基本上保持自增的&#xf…

关于ChatGPT人工智能浅谈

ChatGPT人工智能优点与不足 现今ChatGPT已经向我们展示了其强大的数据收集分析和处理能力&#xff0c;这点随着其不断的学习训练会越来越强。ChatGPT这类生成式人工智能在数据收集分析和处理能力这方面远远超过人类&#xff0c;虽然它目前还不能完全做到按人类的方式对数据进行…

常见的HTTP状态码及其含义

© Ptw-cwl HTTP是一种用于传输超文本数据的协议&#xff0c;在使用Java进行Web开发时&#xff0c;经常会涉及到HTTP状态码。以下是一些常见的HTTP状态码及其含义 概览 状态码含义1xx 信息性状态码指示请求已经被接受或者正在进行处理。100 Continue表示客户端可以继续发…

4月了,准备跳槽的可以看看

金三已经过去了&#xff0c;银四对于想跳槽的职场人来说&#xff0c;绝对要从现在开始做准备了。这时候&#xff0c;很多高薪技术岗、管理岗的缺口和市场需求也出来了。 所以准备4月跳槽、找工作的朋友&#xff0c;就一定要好好准备抓住机会&#xff0c;补一补自己的知识体系&…

第一章节 spring 概念与体系结构

1、Spring 概念 Spring 是 Java EE 编程领域的一款轻量级的开源框架&#xff0c;目标就是要简化 Java 企业级应用程序的开发难度和周期。 1.1、广义 Spring Framework、Spring MVC、SpringBoot、Spring Cloud、Spring Data、Spring Security 项目名称描述Spring DataSpring…

一 注册中心

一 什么是注册中心 注册中心可以说是微服务架构中的“通讯录”&#xff0c;它记录了服务和服务地址的映射关系。在分布式架构中&#xff0c;服务会注册到这里&#xff0c;当服务需要调用其它服务时&#xff0c;就到这里找到服务的地址&#xff0c;进行调用。 当我想给张三打电…

Windows系统管理_windows server 2016 文件系统与权限

文件系统概述 文件系统是操作系统用于明确存储设备&#xff08;磁盘、固态硬盘&#xff09;上组织文件的方法。从系统角度来 看&#xff0c;文件系统是对文件存储设备的空间进行组织和分配&#xff0c;负责文件存储并对存入的文件进行保护和 检索的系统。可以将一个文件连续地…

基于多种算法实现鸢尾花聚类

基于多种聚类算法实现鸢尾花聚类 描述 聚类&#xff08;Clustering&#xff09;属于无监督学习的一种&#xff0c;聚类算法是根据数据的内在特征&#xff0c;将数据进行分组&#xff08;即“内聚成类”&#xff09;&#xff0c;本任务我们通过实现鸢尾花聚类案例掌握Scikit-l…

Java阶段一Day20

Java阶段一Day20 文章目录Java阶段一Day20异常throwthrows检测异常和非检测异常常见的RuntimeException常见的catch中的方法&#xff08;ExceptionAPI&#xff09;自定义异常网络C/S 和 B/STCP 和 UDP三次握手四次挥⼿教师总结新单词异常处理throw关键字例throws关键字例throws…

python函数详解_INDEX函数

一. 函数的作用 函数就是将一段具有独立功能的代码块 整合到一个整体并命名&#xff0c;在需要的位置调用这个名称即可完成对应的需求。 函数在开发过程中&#xff0c;可以更高效的实现代码重用。 二. 函数的使用步骤 1. 定义函数 def 函数名(参数):代码1代码2...... 复制 …

一些算法知识整理

最近找工作&#xff0c;整理了一些算法知识&#xff0c;希望能帮助到同样在找工作的同学。 1、LR&#xff1a; 逻辑回归&#xff0c;用于分类问题&#xff0c;模型可以理解为 线性模型sigmoid函数&#xff1a;y11e−(wxb)y \frac{1}{1e^{-(wxb)}} y1e−(wxb)1​ 其优化目标是…

【Linux系统编程】10.open/close函数

目录 open 参数pathname 参数flags 主类 副类 参数mode 返回值 close 参数fp 测试代码 测试结果 错误处理函数 open 查看open函数 man 2 open 其中 #include <unistd.h> 包含 #include <sys/types.h> #include <sys/stat.h> 参数pathname 打开…