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

news2024/11/23 0:05:20

一、冯诺依曼体系(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.coloradmin.cn/o/1638465.html

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

相关文章

黑马头条Day02_app端文章查看,静态化freemarker,分布式文件系统minIO

文章目录 app端文章查看,静态化freemarker,分布式文件系统minIO1)文章列表加载1.1)需求分析1.2)表结构分析1.3)导入文章数据库1.3.1)导入数据库1.3.2)导入对应的实体类 1.4)实现思路1.5)接口定义1.6)功能实现1.6.1):导入heima-leadnews-article微服务&am…

Springboot+Vue项目-基于Java+MySQL的智慧校园管理系统(附源码+演示视频+LW)

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:Java毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计 &…

1700java进销存管理系统Myeclipse开发sqlserver数据库web结构java编程计算机网页项目

一、源码特点 java web进销存管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为sqlser…

6.k8s中的secrets资源

一、Secret secrets资源,类似于configmap资源,只是secrets资源是用来传递重要的信息的; secret资源就是将value的值使用base64编译后传输,当pod引用secret后,k8s会自动将其base64的编码,反编译回正常的字符…

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-6.5--I.MX6U启动方式

前言: 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM(MX6U)裸机篇”视频的学习笔记,在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…

LeetCode 69—— x 的平方根

阅读目录 1. 题目2. 解题思路一3. 代码实现一4. 解题思路二5. 代码实现二 1. 题目 2. 解题思路一 二分查找法,对于整数 i ∈ [ 0 , x ] i \in [0,x] i∈[0,x],我们判断 i 2 i^2 i2 和 x x x 的关系,然后找到最后一个平方小于等于 x x x …

DRF权限组件源码分析

DRF权限组件源码分析 权限组件相关配置同认证组件 0 认证组件的两种返回值 有权限,返回True,程序正常进行无权限,返回False,程序抛出异常 1 单视图应用 2 多视图应用 3 单视图多视图结合 在drf中,默认优先去全局中…

java大学生兼职就业求职招聘管理系统hg241-vue+Springboot

大学生兼职中心系统是一个帮助学生正确安排课余时间的系统,同学们可以根据课程的多少来选择不同的兼职工作,而商家也可以从不同的学生中挑选适合的人选。既然是兼职,那么这些工作基本都是按照小时来计算工资的,也许不会很高&#…

【Linux】项目自动化构建工具make/makefile的简单使用

使用步骤 1) 编写 创建 makefile 文件 vim makefile用 vim 打开名为 makefile 的文件,存在该文件则打开编辑,不存在则创建并打开.在 makefile 文件中编写需要编译的文件 test:test.cppg -o test test.cpp第一行: 冒号左侧为编译后的可执行文件名,可以随便取. 冒号右侧为依赖…

【C++庖丁解牛】C++11---lambda表达式 | 包装器

🍁你好,我是 RO-BERRY 📗 致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 🎄感谢你的陪伴与支持 ,故事既有了开头,就要画上一个完美的句号,让我们一起加油 目录 1. lambda表达式1.1 C98中…

「C++ 内存管理篇 00」指针

目录 一、变量,变量名和指针 1. 什么是变量? 2. 变量名和指针 3. 使用指针获取数据 二、指针变量和数组变量 三、编译器对指针的等级有着严格的检查 四、指针的加减 1. 存放指针的变量的加减 2. 存放指针的变量的自增自减 3. 两个指针相减 一、变量&…

【前端】-【防止接口重复请求】

文章目录 需求实现方案方案一方案二方案三 需求 对整个的项目都做一下接口防止重复请求的处理 实现方案 方案一 思路:通过使用axios拦截器,在请求拦截器中开启全屏Loading,然后在响应拦截器中将Loading关闭。 代码: 问题&…

CD-PAN复合纳米纤维膜

CD-PAN复合纳米纤维膜可能是通过某种特定的方法,如溶剂热反应或水热反应等,将CdS纳米颗粒与PAN(聚丙烯腈)纳米纤维结合起来的复合材料。 这种复合纳米纤维膜可能会继承CdS的光电性质和PAN纳米纤维的机械性能,从而在某些…

Golang | Leetcode Golang题解之第61题旋转链表

题目: 题解: func rotateRight(head *ListNode, k int) *ListNode {if k 0 || head nil || head.Next nil {return head}n : 1iter : headfor iter.Next ! nil {iter iter.Nextn}add : n - k%nif add n {return head}iter.Next headfor add > …

R语言4版本安装mvstats(纯新手)

首先下载mvstats.R文件 下载mvstats.R文件点此链接:https://download.csdn.net/download/m0_62110645/89251535 第一种方法 找到mvstats.R的文件安装位置(R语言的工作路径) getwd() 将mvstats.R保存到工作路径 在R中输入命令 source(&qu…

Day27:阻塞队列、Kafka入门、发送系统通知、显示系统

阻塞队列BlockingQueue BlockingQueue 解决线程通信的问题。阻塞方法:put、take。 生产者消费者模式 生产者:产生数据的线程。消费者:使用数据的线程。 (Thread1生产者,Thread2消费者) 实现类 ArrayBlockingQueueLinkedBlockingQueuePr…

软件工程专业就业方向及前景分析

软件工程专业作为一门应用广泛且持续发展的学科,其就业方向多样,就业前景十分乐观,以下是上大学网(www.sdaxue.com)整理的软件工程专业一些主要的就业方向及该领域的总体前景分析,供大家参考! 就业方向&…

一文理解前端如何调用后端(java)方法

阅读完文章大约需要3~5分钟 文章目录 一、什么是后端方法路径?二、ajax、axios调用后端方法总结 一、什么是后端方法路径? 这里针对的是 java 后端项目中在 controller 文件夹中的类文件,这类文件的后缀一般都会带有 controller&#xff0c…

如何远程访问连接管理器?

远程访问连接管理器是一种方便的工具,可以实现远程访问计算机和网络设备的功能。它使用户能够从任何地点连接到远程计算机,并进行文件传输、桌面共享和远程控制等操作。远程访问连接管理器不仅提供了便利性,还能提高工作效率,并为…

【Vue 2.x】学习vue之二组件

文章目录 Vue二组件第五章es6文件导入出1、导出export 组件(component)1、定义2、模块化与组件化3、组件的分类1、非单文件组件非单文件三步骤创建组件标准写法简化写法组件的嵌套非单文件的不足之处 2、单文件组件vue单文件组件的使用脚手架创建项目重点…