网站建设与制作石家庄,wordpress编辑图片不显示不出来,甘肃cms建站系统哪家好,新乡网站建设哪家专业✏️✏️✏️今天正式进入JavaEE初阶的学习#xff0c;给大家分享一下关于进程的一些基础知识。了解这部分内容#xff0c;只是为后续多线程编程打好基础#xff0c;因此进程部分的知识#xff0c;不需要了解更加细节的内容。 清风的CSDN博客 #x1f61b;#x1f61b;给大家分享一下关于进程的一些基础知识。了解这部分内容只是为后续多线程编程打好基础因此进程部分的知识不需要了解更加细节的内容。 清风的CSDN博客 希望我的文章能对你有所帮助有不足的地方还请各位看官多多指教大家一起学习交流 动动你们发财的小手点点关注点点赞在此谢过啦哈哈哈 目录 前言
一、什么是进程(任务/task)
1.1 进程概念
1.2 进程的特点
1.3 如何描述和组织进程
二、进程描述——PCB进程控制块
2.1 PID——进程标识 2.2 内存指针
2.3 文件描述符表
三、PCB中进程调度相关的属性
3.1 状态
3.2 优先级
3.3 上下文 3.4 记账信息 前言 在学习这部分内容之前还是需要了解一下什么是操作系统通俗来说操作系统就是管理应用程序对下要管理各种硬件设备对上要给应用程序提供一个稳定的运行环境。这里涉及到的内容也是方方面面的。那么今天我们就来了解一下操作系统中的最重要的内容——进程。
一、什么是进程(任务/task) 每个应用程序运行于现代操作系统之上时操作系统会提供一种抽象好像系统上只有这个程序在运行所有的硬件资源都被这个程序在使用。这种假象是通过抽象了一个进程的概念来完成的进程可以说是计算机科学中最重要和最成功的概念之一。 1.1 进程概念 进程是操作系统对一个正在运行的程序的一种抽象换言之可以把进程看做程序的一次运行过程 同时在操作系统内部进程又是操作系统进行资源分配的基本单位。 简单来说进程就是正在运行的程序。那么也就是说没有运行起来的程序也就不是进程了。程序是可执行文件只是在硬盘上的一个东西(静态的)。如果双击程序此时操作系统就会把可执行文件中的数据和指令加载到内存中并且让CPU去执行这里的指令完成一系列相关的工作此时是运行起来的动态的。也就是进程。 1.2 进程的特点
动态性 创建-产生调度-执行得不到资源-暂停撤销-消亡。并发性 多个进程可以在一段时间内同时运行。独立性 进程是独立运行的基本单位。异步性 进程各自可以独立地、以不可知的速度前进。
进程能够干活说明进程能够消耗一定的额系统资源。而对于可执行文件来说只是占用了硬盘空间。而进程会消耗CPU资源内存资源硬盘网络带宽......
一台正在运行的计算机中大概率是包含很多进程的一旦东西多了就需要考虑“管理”此时针对计算机中“进程”的管理核心思路就是需要先描述再组织。
描述使用一个专门的结构体来记录一个进程里面的各个属性。组织使用一系列的数据结构把多个进程进行一个有效的组织随时方便进行遍历查找汇总数据。 进程管理的前提是进程数量非常多如果只有几个进程那么也就不需要考虑管理进程了。
1.3 如何描述和组织进程
描述PCB(进程控制块)。
组织通常会使用双向链表这样的方式来进行组织。当使用双向链表来组织的时候查看进程的列表本质上就是遍历这个链表。创建一个进程就是创建了一个PCB结构体并且插入到链表上。销毁一个进程就是把PCB从这个结构体从链表上删除并释放。
二、进程描述——PCB进程控制块
PCB中大概包含的信息 PID(进程的标识)、内存指针、文件描述符表。 2.1 PID——进程标识
同一个系统上同一时刻每个进程的PID一定都是不同的。有的时候运行一个可执行文件EXE可能会设计到多个进程。 2.2 内存指针 表示了该进程对应的内存资源的情况。(也就是操作系统分配的内存空间)最主要存储的就是从exe可执行文件中加载过来的指令和数据。还会保存一些运行过程的中间结果的数据。指令我们可以看成是一个剧本而进程就是演员演员要按照剧本进行表演也就是说进程要按照指令去完成一系列的相关操作。 2.3 文件描述符表 它和硬件资源有关硬盘是硬件应用程序一般是无法直接接触到“硬件”这一层面的。实际上是操作系统抽象成“文件”这样的概念程序操作的是文件文件实际上是存储在硬盘上的。每个进程就会有一个文件描述符来记录当前这个进程正在使用哪些文件。操作系统打开一个文件就会产生一个文件描述符同时会使用文件描述符表把文件描述符组织起来。 此外计算机最重要的一个硬件资源就是CPU在这里也简单介绍一下CPU资源是怎么体现的
进程是需要在CPU上执行指令的如果说进程是演员那么CPU就是拍摄场地CPU要给进程场地才能让进程表演。每一个进程要想执行里面的指令完成对应的任务都需要在CPU上执行。但是一台机器上同一时刻的进程有百八十个而CPU只有一个。但是在CPU中拍摄场地不止一个也就是CPU是有多个逻辑核心这样就可以同时执行多个进程。但是进程仍然有上百个逻辑核心不够用那么就需要进程的调度。进行调度的时候又设计到俩个情况并行和并发。
并行同一时刻两个进程同时运行在两个CPU逻辑核心上。
并发两个进程在同一个CPU逻辑核心上轮流执行。由于CPU切换速度极快微观上这两个进程是串行执行的宏观上看起来这两个进行就像是“同时执行”的。
操作系统在调度这些进程的时候可能是按照并行的方式也可能是按照并发的方式。在应用程序这一层是感知不到的(在系统内核可以感知到)。
三、PCB中进程调度相关的属性
下面我们只是简单介绍一下基本的内容。
3.1 状态
这里我们只介绍最重要的两个状态。
就绪状态一个进程随时做好了在CPU上执行的准备。
阻塞/睡眠状态进程还没有准备好被调度到CPU上。 3.2 优先级
系统调度进程的时候并不是完全公平的会根据优先级的不同来决定时间分配的权衡这样一来就可以把系统资源调配给更重要的进程了。
3.3 上下文
进程是轮流执行的一次运行不完此时就需要保证下次CPU运行的时候能够从上次运行到的位置继续往后执行。
操作系统所记录的上下文就是该进程在执行过程中CPU的寄存器中对应的数据。这些寄存器有的存放中间结果有的是存放一些特定含义的数据。 3.4 记账信息
相当于是一个统计信息会统计每个进程在CPU上执行的时间也是对进程调度的工作进行一个兜底。 ✨好啦今天的分享就到这里 希望各位看官读完文章后能够有所提升。 ✨创作不易还希望各位大佬支持一下 点赞你的认可是我创作的动力 ⭐收藏你的青睐是我努力的方向 ✏️评论你的意见是我进步的财富