进程描述和控制
什么是进程
有以下几个定义:
1:一个正在执行中的程序。
2:一个正在计算机上执行的程序实例。
3:能分配给处理器并由处理器执行的实体。
4:一个具有以下特征的活动单元:一组指令序列的执行、一个当前状态和相关的系统资源集。
也可以把进程视为由一组元素组成的实体,进程的两个基本元素是程序代码和代码相关联的数据集。假设处理器开始执行这个程序代码,且我们把这个执行实体称为进程。在进程执行时,任意给定一个时间,进程都可以唯一的表征为以下元素:
1:标识符:跟这个进程相关的唯一标识符,用来区别其他进程。
2:状态:如果进程正在执行,那么进程处于运行态。
3:优先级:相对于其他进程的优先级。
4:程序计数器:程序中即将被执行的下一条指令的地址。
5:内存指针:包括程序代码和进程相关数据的指针,还有和其他进程共享内存块的指针。
6:上下文数据:进程执行时处理器的寄存器中的数据。
7:IO状态信息:包括显示的IO请求、分配给进程的IO设备和被进程使用的文件列表等。
8:记帐信息:可能包括处理器时间总和、使用的时钟总和、时间限制、记帐等。
前术的列表信息被存放在一个称为进程控制块的数据结构中,该控制块由操作系统创建和管理。比较有意义的一点是,进程控制块抱住了充分的信息,这样就可以中断一个进程的执行,并且在后来恢复执行进程时就好像进程未被中断过一样。进程控制块是操作系统能够支持多进程和提供多重处理技术的关键工具。
因此,可以说进程是由程序代码和相关数据还有进程控制块组成的。对于一个单处理器计算机,在任何时间最多只有一个进程在执行,正在运行的这个进程的状态为运行态。
被挂起的进程
交换的需要
三个基本状态(就绪态、运行态和阻塞态)提供了一种为进程行为建立模型的系统方法,并指导操作系统的实现。许多实际的操作系统都是按照这样的三种状态进行具体构造的。
但是,可以证明往模型中增加其他状态也是合理的。为了说明加入新状态的好处,考虑一个没有使用虚拟内存的系统,每个被执行的进程必须完全载入内存,因此,所有队列中的所有进程必须驻留内存中。内存中保存有多个进程,当一个进程正在等待时,处理器可以转移到另一个进程,但是处理器比IO要快得多,以至于内存中所有的进程都在等待IO的情况很常见(内存不足,进程按需加载,运行时加载),因此,即使是多道程序设计,大多数时候处理器仍然可能处于空闲状态。
一种解决方法是内存可以被扩充以适应更多的进程,但是这种方法有两个缺陷。首先是内存的价格问题,当内存大小增加时,价格也会随之增加;再者,程序对内存空间的增长速度比内存价格下降的速度快。因此,更大的内存往往导致更大的进程 ,而不是更多的进程。
另一种解决方案是交换,包括把内存中某个进程的一部分或全部移到磁盘中。当内存中没有
处于就绪状态的进程时,操作系统就把被阻塞的进程换出到磁盘中的“挂起队列”,即暂时保存从内存中被“驱逐”出来的进程队列,或者说是被挂起的进程队列 。操作系统在此之后取出挂起队列中的另一个进程,或者接受一个新进程的请求,将其纳入内存运行。
“交换”是一个IO操作,因而也可能使问题更加恶化。但是由于磁盘IO一般是系统中最快的IO(相对于磁带或打印机IO),所以交换通常会提高性能。
为使用前面描述的交换,在进程的行为模型中必须增加另一个状态:挂起态。
当内存中的所有进程都处于阻塞态时,操作系统可以把其中的一个进程置于挂起态,并将它转移到磁盘中,内存中释放的空间可被调入另一个进程使用。
2.3进程描述
操作系统控制计算机系统内部的事件,它为处理器执行进程而进行调度和分派,给进程分配资源,并响应用户程序的基本服务请求。因此,我们可以把操作系统视为管理系统资源的实体。
操作系统为了控制进程和管理资源需要哪些信息?
3.3.1操作系统的控制结构
操作系统为了管理进程和资源,必须掌握关于每个进程和资源当前状态的信息。普遍使用的方法是:操作系统构造并维护它所管理的每个实体的信息表。操作系统维护着四种不同类型的表:内存、IO、文件和进程。尽管不同的操作系统中的实现细节不同,但基本上所有操作系统维护的信息都可以分为这四类。
1:内存表:用于跟踪内(实)存和外存(虚拟内存)。内存的某些部分为操作系统保留,剩余部分是进程可以使用的,保存在外存中的进程使用某种类型的虚拟内存或简单的交换机制。内存表必须包括以下信息:
1:分配给进程的内存。
2:分配给进程的外存。
3:内存块或虚拟内存块的任何保护属性,如哪些进程可以访问某些共享内存区域。
4:管理虚拟内存所需要的任何信息。
2:IO表:管理计算机系统中的IO设备和通道。在任何给定的时刻,一个IO设备或者是可用的,或者已分配给某个特定的进程,如果正在进行的IO操作,则操作系统需要知道IO操作的状态和作为IO传送的源与目标目标的内存单元。
3:文件表:这些表提供关于文件是否存在、文件在外存中的位置、当前状态和其他属性的信息。大部分信息(不是全部信息)可能由文件管理系统维护和使用。在这种情况下,操作系统只有少许或者没有关于文件的信息;在其他操作系统中,很多文件管理的细节由操作系统自己管理。
4:进程表:操作系统维护的这几种不同的表必须以某种方式链接起来或交叉引用。内存、IO和文件是代表进程而被管理的,因此进程表中必须有对这些资源的直接或间接引用。文件表中文件可以通过IO设备访问,有时它们也位于内存中或虚拟内存中。这些表自身必须可以被操作系统访问到,因此它们受制于内存管理。
3.3.3进程控制结构
操作系统在管理和控制进程时,首先必须知道进程的位置,然后,它必须知道在管理时所必需的进程属性(如进程ID、进程状态)。
1:进程位置
在处理进程定位问题和进程属性问题之前,首先需要解决一个更基本的问题:进程的物理表示是什么?进程最少必须包括一个或一组被执行的程序,与这些程序相关联的是局部变量、全局变量和任何已定义常量的数据单元。因此,一个进程至少包括足够的内存空间,以保存该进程的程序和数据;此外,程序的执行通常涉及用于跟踪过程调用和过程参数传递的栈。最后,与每个进程相关联的还有操作系统用于控制进程的许多属性,通常,属性的集合称为进程控制块。程序、数据、栈和属性的集合称为进程映像。
3.4进程控制
需要区分通常与操作系统相关联的及与用户程序相关联的处理器执行模式。大多数处理器至少支持两种执行模式。某些指令只能在特权态下运行,包括读取或改变诸如程序状态字之类控制寄存器的指令、原始IO指令和与内存管理相关的指令。另外,有部分内存区域仅在特权态下可以被访问到。
使用两种模式的原因是很显然的,它可以保护操作系统和重要的操作系统表(如进程控制块)不受用户程序的干涉。在内核态下,软件具有对处理器所有指令、寄存器和内存的控制能力,这一级的控制对用户程序不是必需的,并且为了安全起见也不是用户程序可访问的。
3.5操作系统的执行
关于操作系统的两个特殊事实:
1:操作系统与普通的计算机软件以同样的方式运行,也就是说,它也是由处理器执行的一个程序。
2:操作系统经常释放控制权,并且依赖于处理器恢复控制权。
如果操作系统仅仅是一组程序,并且像其他程序一样由处理器执行,那么操作系统是一个进程吗?如果是,如何控制它?这些有趣的问题列出了大量的设计方法
1:无进程的内核
2:在用户进程中执行。
3:基于进程的操作系统。
相关推荐
哈希表源码
sun_3ck_03_0119
内容概要:本文档详细介绍了基于 MATLAB 实现的 LSTM-AdaBoost 时间序列预测模型,涵盖项目背景、目标、挑战、特点、应用领域以及模型架构和代码示例。随着大数据和AI的发展,时间序列预测变得至关重要。传统方法如 ARIMA 在复杂非线性序列中表现欠佳,因此引入了 LSTM 来捕捉长期依赖性。但 LSTM 存在易陷局部最优、对噪声鲁棒性差的问题,故加入 AdaBoost 提高模型准确性和鲁棒性。两者结合能更好应对非线性和长期依赖的数据,提供更稳定的预测。项目还展示了如何在 MATLAB 中具体实现模型的各个环节。 适用人群:对时间序列预测感兴趣的开发者、研究人员及学生,特别是有一定 MATLAB 编程经验和熟悉深度学习或机器学习基础知识的人群。 使用场景及目标:①适用于金融市场价格预测、气象预报、工业生产故障检测等多种需要时间序列分析的场合;②帮助使用者理解并掌握将LSTM与AdaBoost结合的实现细节及其在提高预测精度和抗噪方面的优势。 其他说明:尽管该模型有诸多优点,但仍存在训练时间长、计算成本高等挑战。文中提及通过优化数据预处理、调整超参数等方式改进性能。同时给出了完整的MATLAB代码实现,便于学习与复现。
1996-2019年各地级市平均工资数据 1、时间:1996-2019年 2、来源:城市nj、各地级市统计j 3、指标:平均工资(在岗职工) 4、范围:295个地级市
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
内容概要:本文介绍了一种新颖的变压器模型C2Former(Calibrated and Complementary Transformer),专门用于解决RGB图像和红外图像之间的物体检测难题。传统方法在进行多模态融合时面临两个主要问题——模态错位(Modality miscalibration)和融合不准确(fusion imprecision)。作者针对这两个问题提出采用互模交叉注意力模块(Inter-modality Cross-Attention, ICA)以及自适应特征采样模块(Adaptive Feature Sampling, AFS)来改善。具体来说,ICA可以获取对齐并且互补的特性,在特征层面进行更好的整合;而AFS则减少了计算成本。通过实验验证了基于C2Former的一阶段和二阶段检测器均能在现有公开数据集上达到最先进的表现。 适合人群:计算机视觉领域的研究人员和技术人员,特别是从事跨模态目标检测的研究人员,对Transformer架构有一定了解的开发者。 使用场景及目标:适用于需要将可见光和热成像传感器相结合的应用场合,例如全天候的视频监控系统、无人驾驶汽车、无人
上海人工智能实验室:金融大模型应用评测报告-摘要版2024.pdf
malpass_02_0907
C++-自制学习辅助工具
内容概要:本文提供了有关微信生态系统的综合开发指导,具体涵盖了微信机器人的Java与Python开发、全套及特定应用的小程序源码(PHP后台、DeepSeek集成),以及微信公众号的基础开发与智能集成方法。文中不仅给出了各种应用的具体案例和技术要点如图灵API对接、DeepSeek大模型接入等的简述,还指出了相关资源链接以便深度探究或直接获取源码进行开发。 适合人群:有意开发微信应用程序或提升相应技能的技术爱好者和专业人士。不论是初涉者寻求基本理解和操作流程,还是进阶者期望利用提供的资源进行项目构建或是研究。 使用场景及目标:开发者能够根据自身兴趣选择不同方向深入学习微信平台的应用创建,如社交自动化(机器人)、移动互联网服务交付(小程序),或者公众信息服务(公众号)。特别是想要尝试引入AI能力到应用中的人士,文中介绍的内容非常有价值。 其他说明:文中提及的多个项目都涉及到了最新技术栈(如DeepSeek大模型),并且为不同层次的学习者提供从零开始的详细资料。对于那些想要迅速获得成果同时深入了解背后原理的人来说是个很好的起点。
pimpinella_3cd_01_0916
mellitz_3cd_01_0516
schube_3cd_01_0118
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
智慧用电平台建设解决方案【28页】
lusted_3ck_01_0519
HCIP作业1 这里面是完成的ensp的拓扑图
会员式点餐小程序1.2.1 前端 会员卡点餐小程序 适用于书吧、咖啡书屋、健身房等有会员卡充值需求的场所。 小程序专属会员模式,可享受折扣为余额充值,稳定客流。 版本号:1.2.1 适配一个php兼容性错误 修改消息通知模板