热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

进程及其实现

一、进程的定义1、进程是可并发执行的程序在某个数据集合上的一次计算活动,也是操作系统进行资源分配和保护的基本单位2、可以用来共享资源又能描述程序并发为什么要引入进程概

一、进程的定义

1、进程是可并发执行的程序在某个数据集合上的一次计算活动,也是操作系统进行资源分配和保护的基本单位

2、可以用来共享资源又能描述程序并发

 

为什么要引入进程概念

1、刻画程序的并发性:程序是并发执行的,这是由于资源共享和竞争问题,程序自身只是计算任务的指令和数据的描述,是静态的,进程是动态描述

2、共享性:可重入程序

二、

进程三态模型及其转换

 

进程五态模型

进程的挂起?

 为了让某些进程暂时不参与低级调度,释放它占有的资源以平滑系统负荷的目的而需引入挂起态;

 

 

三、进程上下文以及进程的切换

进程上下文:进程物理实体以及支持进程运行的环境

                     组成:

                                  用户级上下文

                                  系统级上下文

                                   寄存器上下文  

当进程发生切换的时候:进程上下文也必须发生切换

进程控制块PCB:用于记录和刻画进程状态以及有关信息的数据结构,包括进程运行时的状态以及让出处理后的状态以及断点等信息(三类信息:标识信息、现场信息、控制信息)

 

进程上下文的切换

概念:让出处理器,保存原来老进程的上下文而装入被保护了的新的进程上下文

具体步骤:

1、保存被中断进程的处理器现场信息

2、修改被中断进程的进程控制块的有关状态

3、被中断进程的PSW放入相关队列

4、选择要运行的进程

5、修改要运行的进程的PSW

6、根据被选中进程设置操作系统用到的地址转换和存储保护信息

7、恢复处理器的现场

 

四、进程的创建、撤销、

(一)进程的创建

1、从PCB池中,申请一个空闲的额PCB,为进程分配唯一的进程标识符

2、为新进程的进程映像分配地址空间

3、分配除了内存之外的其他资源

4、初始化PCB

5、设置为 就绪态 

(二)进程的撤销

1、撤销进程的标识符

2、收回进程的资源

3、如果有子进程的话,先撤销他的子进程

4、回收PCB

(三)进程的阻塞

1、停止进程的运行,保存信息到PCB中

2、修改PCB有关内容,如修改状态 从就绪到等待

3、去调度其他进程

(四)、进程的唤醒

1、从等待队列中移出进程

2、修改PCB中的状态

3、判断当前进程与正在运行进程的PCB,看是否抢占处理机


推荐阅读
  • 本文探讨了 Spring Boot 应用程序在不同配置下支持的最大并发连接数,重点分析了内置服务器(如 Tomcat、Jetty 和 Undertow)的默认设置及其对性能的影响。 ... [详细]
  • 微软Exchange服务器遭遇2022年版“千年虫”漏洞
    微软Exchange服务器在新年伊始遭遇了一个类似于‘千年虫’的日期处理漏洞,导致邮件传输受阻。该问题主要影响配置了FIP-FS恶意软件引擎的Exchange 2016和2019版本。 ... [详细]
  • 作者:守望者1028链接:https:www.nowcoder.comdiscuss55353来源:牛客网面试高频题:校招过程中参考过牛客诸位大佬的面经,但是具体哪一块是参考谁的我 ... [详细]
  • FinOps 与 Serverless 的结合:破解云成本难题
    本文探讨了如何通过 FinOps 实践优化 Serverless 应用的成本管理,提出了首个 Serverless 函数总成本估计模型,并分享了多种有效的成本优化策略。 ... [详细]
  • Netflix利用Druid实现高效实时数据分析
    本文探讨了全球领先的在线娱乐公司Netflix如何通过采用Apache Druid,实现了高效的数据采集、处理和实时分析,从而显著提升了用户体验和业务决策的准确性。文章详细介绍了Netflix在系统架构、数据摄取、管理和查询方面的实践,并展示了Druid在大规模数据处理中的卓越性能。 ... [详细]
  • 本文详细介绍了Grand Central Dispatch (GCD) 的核心概念和使用方法,探讨了任务队列、同步与异步执行以及常见的死锁问题。通过具体示例和代码片段,帮助开发者更好地理解和应用GCD进行多线程开发。 ... [详细]
  • 并发编程 12—— 任务取消与关闭 之 shutdownNow 的局限性
    Java并发编程实践目录并发编程01——ThreadLocal并发编程02——ConcurrentHashMap并发编程03——阻塞队列和生产者-消费者模式并发编程04——闭锁Co ... [详细]
  • 优化Flask应用的并发处理:解决Mysql连接过多问题
    本文探讨了在Flask应用中通过优化后端架构来应对高并发请求,特别是针对Mysql 'too many connections' 错误的解决方案。我们将介绍如何利用Redis缓存、Gunicorn多进程和Celery异步任务队列来提升系统的性能和稳定性。 ... [详细]
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • 深入解析TCP/IP五层协议
    本文详细介绍了TCP/IP五层协议模型,包括物理层、数据链路层、网络层、传输层和应用层。每层的功能及其相互关系将被逐一解释,帮助读者理解互联网通信的原理。此外,还特别讨论了UDP和TCP协议的特点以及三次握手、四次挥手的过程。 ... [详细]
  • 本文详细探讨了HTML表单中GET和POST请求的区别,包括它们的工作原理、数据传输方式、安全性及适用场景。同时,通过实例展示了如何在Servlet中处理这两种请求。 ... [详细]
  • 深入解析Redis内存对象模型
    本文详细介绍了Redis内存对象模型的关键知识点,包括内存统计、内存分配、数据存储细节及优化策略。通过实际案例和专业分析,帮助读者全面理解Redis内存管理机制。 ... [详细]
  • 探讨如何通过高效的数据库查询和排序策略,优化基于GPS位置信息的附近用户搜索功能,以应对大规模用户数据场景。 ... [详细]
  • 本文探讨了哪些数据库支持队列式的写入操作(即一个键对应一个队列,数据可以连续入队),并且具备良好的持久化特性。这类需求通常出现在需要高效处理和存储大量有序数据的场景中。 ... [详细]
  • 深入解析for与foreach遍历集合时的性能差异
    本文将详细探讨for循环和foreach(迭代器)在遍历集合时的性能差异,并通过实际代码示例和源码分析,帮助读者理解这两种遍历方式的不同之处。文章内容丰富且专业,旨在为编程爱好者提供有价值的参考。 ... [详细]
author-avatar
干将stambach_611
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有