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

操作系统:进程

1.前趋图的概念:前趋图是一个有向无循环图,图中的每个结点可用于表示一条语句、一个程序段或者进程,结点间的有向边表示在两结点之间存在的偏

1.前趋图的概念:

前趋图是一个有向无循环图,图中的每个结点可用于表示一条语句、一个程序段或者进程,结点间的有向边表示在两结点之间存在的偏序或前趋关系“➡”;eg:
p1➡p2:称p1是p2的前趋;

什么是全序?什么是偏序?
全序:比如一个自然数的集合,从其中任意拿出两个数就可以进行比较;
偏序:有的可以进行比较,有的不可以进行比较;
在这里插入图片描述
比如结点2,3就不能进行比较。


2.程序的顺序执行和并发执行:

顺序执行: 程序在执行时,必须按照某种先后顺序逐个执行,仅当前一操作执行完后,才能执行下一操作;

顺序执行的特征:(1).顺序性;(2)封闭性:即程序一旦开始运行,其执行结果不受外界因素的影响;(3).结果的确定性:程序无论怎么执行、在哪台机子上执行,都是相同的结果;(4).可再现性:当程序多次重复执行,都是相同的结果。

并发执行:输入、计算、输出三者存在 I➡C➡P这样的前趋关系,在对一批程序进行处理时可以使他们并发执行。

并发执行的特征:
(1).执行的间断性:由于他们共享资源或完成同一项任务而相互合作,致使并发程序之间形成了相互制约的关系;(2).程序失去封闭性(3).执行结果的不可再现性;
并发:一个时间段
并行:一时刻

程序在并发执行时,由于失去了封闭性,其结果与并发程序的执行速度有关,从而使程序失去了可再现性。


3.进程

进程时操作系统中的一个最基本也是最重要的概念;
当我们运行一个程序的时候需要先创建进程;
进程实体:程序段、数据段、进程控制块;其中程序段、数据段来自应用程序,进程控制块来自操作系统;
进程是有生命周期的;

引入进程的原因:
为了提高资源利用率,从而提高系统效率,引入了并发;并发需要多道程序环境,但必须采取某种措施使并发程序能保持其“可再现性”,所以引入了进程;使程序在多道程序的环境下能够并发执行,并对并发执行的程序加以控制和描述。

程序和进程的区别:
(1)进程是程序的一次执行。
(2)一个进程可以执行一个或几个程序;同一程序也可能由多个进程同时执行。
(3)进程是系统进行资源分配和调度的一个独立单位;程序则不是。
(4)程序可以作为一种软件资源长期保存,而进程是一次执行过程,是临时的;一旦关机,进程就会消失,而程序不会。
(5)程序是有结构的。
(6)程序是存储在外存中(硬盘),而进程是存储在内存中


推荐阅读
  • 探讨在 Swoole 的 WorkerStart 回调中创建的对象如何在多个客户端之间实现隔离,确保每个客户端的数据独立性。 ... [详细]
  • Flutter 核心技术与混合开发模式深入解析
    本文深入探讨了 Flutter 的核心技术,特别是其混合开发模式,包括统一管理模式和三端分离模式,以及混合栈原理。通过对比不同模式的优缺点,帮助开发者选择最适合项目的混合开发策略。 ... [详细]
  • 本文详细介绍了JVM内存分配的相关知识,包括内存规整、内存分配方式以及并发指针碰撞问题的解决方案。 ... [详细]
  • 本文讨论了某公园相亲大会的并发控制问题,包括进入公园的人数限制和男女比例的控制。 ... [详细]
  • 本文总结了近年来在实际项目中使用消息中间件的经验和常见问题,旨在为Java初学者和中级开发者提供实用的参考。文章详细介绍了消息中间件在分布式系统中的作用,以及如何通过消息中间件实现高可用性和可扩展性。 ... [详细]
  • pypy 真的能让 Python 比 C 还快么?
    作者:肖恩顿来源:游戏不存在最近“pypy为什么能让python比c还快”刷屏了,原文讲的内容偏理论,干货比较少。我们可以再深入一点点,了解pypy的真相。正式开始之前,多唠叨两句 ... [详细]
  • 本文介绍了读写锁(RWMutex)的基本概念、实现原理及其在Go语言中的应用。读写锁允许多个读操作并发执行,但在写操作时确保互斥,从而提高并发性能。 ... [详细]
  • 高并发场景下的关键技术解析
    本文探讨了高并发场景下的关键技术,包括C10K问题、IO多路复用机制、水平触发与边缘触发模式、协程以及Go语言的GMP调度模型。通过这些技术,可以有效提升系统的并发处理能力。 ... [详细]
  • 关于进程的复习:#管道#数据的共享Managerdictlist#进程池#cpu个数1#retmap(func,iterable)#异步自带close和join#所有 ... [详细]
  • 驱动程序的基本结构1、Windows驱动程序中重要的数据结构1.1、驱动对象(DRIVER_OBJECT)每个驱动程序会有唯一的驱动对象与之对应,并且这个驱动对象是在驱 ... [详细]
  • 一关于t1表和testtb的索引设计二把主键放到二级索引的后面,会否占据更多的物理空间?三InnoDB的主键该如何选择,业务ID和自增 ... [详细]
  • 在iOS开发中,多线程技术的应用非常广泛,能够高效地执行多个调度任务。本文将重点介绍GCD(Grand Central Dispatch)在多线程开发中的应用,包括其函数和队列的实现细节。 ... [详细]
  • 在运行于MS SQL Server 2005的.NET 2.0 Web应用中,我偶尔会遇到令人头疼的SQL死锁问题。过去,我们主要通过调整查询来解决这些问题,但这既耗时又不可靠。我希望能找到一种确定性的查询模式,确保从设计上彻底避免SQL死锁。 ... [详细]
  • Java作为全球最流行的编程语言之一,应用广泛。本文将详细介绍Java开发的相关岗位及其具体职责,帮助读者更好地了解这一领域的职业发展路径。 ... [详细]
  • 深入理解Java多线程与并发机制
    本文探讨了Java多线程和并发机制的核心概念,包括多线程类的分类、执行器框架、并发容器及控制工具。通过详细解析这些组件,帮助开发者更好地理解和应用多线程技术。 ... [详细]
author-avatar
何俊雨_127
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有