你的进程,为啥挂了?进程挂了,这个问题大家并不陌生。学完这篇,你会对进程有一定了解。后面碰到进程挂的情况,你很快能找到对应解决思路。
进程在操作系统中,是一个很重要的概念。你熟悉操作系统,能避免一些坑,写出高质量的代码。
windows界面设置真炫酷,不多说。下面用动画加文字的方式,给大家讲述。
通常程序不能并发执行,因为程序并发执行的结果,是不可再现的。为了使程序,可以并发执行,且能对其加以描述和控制,引入了进程的概念。
上面把小人比作程序,操作系统中一次只能跑一个程序,除非引入进程。
进程是程序的一次执行,是系统进行资源分配调度的独立单位。
结构特征:为了使程序能够独立运行,应配置一个进程控制块PCB。进程是由程序段,相关的数据段和PCB(进程控制块)三部分构成的。
动态性:进程是程序的一次执行,由创建而产生,由调度而执行,由撤销而消亡,进程存在一定的生命周期。
并发性:多个进程实体,同存在于内存中,且能在一段时间内同时运行。
独立性:进程实体,是一个能独立运行,独立分配资源,独立接收调度的基本单位。 异步性:进程按自己独立的不可预知的速度推进。
下面动画,把小人比作进程,展示的进程的创建,销毁,动态性,并发性,独立性,异步性。
创建:保证进程的调度,必须在创建工作完成以后,再进行。确保,对进程控制块PCB操作的完整性。
就绪:进程已分配到除CPU外的所有必要资源。
执行:进程已获得CPU,其指令集正在执行。
阻塞/挂起 正在执行的进程由于发生某事件导致暂时无法继续执行。
终止:等待其他进程收集完信息后,将删除该进程,清空PCB并返还给系统。
下面是进程状态图:
独立运行基本单位的标志:创建进程时创建PCB,进程结束时回PCB,进程随之消亡。系统是通过PCB,感知进程的存在。PCB已成为,进程存在于系统中的唯一标志。
实现间断性运行方式:进程暂停运行时,必须保留,运行时的CPU等相关信息。进程被再次运行时,需恢复CPU等相关信息。
提供进程管理需要的信息:当进程开始运行时,根据该进程PCB中,记录的程序和数据,在内存或外存中起始地址指针,找到相应的程序和数据。
提供进程调度需要的信息:只有处于就绪状态的进程,才能被调度。而进程的状态就记录在PCB中、以及优先级、等待时间、已执行时间等其他信息。
实现与其他进程的同步与通信:进程同步机制,用于实现多进程协调运行。在PCB中,具有实现进程通信的区域或通信队列指针等。
PCB进程控制块中的信息:PCB中的信息大致上可分为4类,分别是:进程标识符、CPU状态、调度信息、控制信息。
进程标识符:分外部标识符和内部标识符,外部标识符即进程名称,可由父进程指定,通常包括字符和数字的组成。内部标识符,由操作系统提供的,具有唯一性的进程ID。
CPU状态:主要由各种寄存器中内容组成,如通用寄存器、指令计数器(下一条指令的地址)、程序状态(状态信息、条件码、执行方式、屏蔽中断等标志)和栈指针(指向用于存放过程和系统调用参数及调用地址的系统栈的栈顶)构成。
调度信息:包含进程状态、进程优先级、其他信息、事件(阻塞原因)。 进程状态,是进程调度和对换时的依据,优先级高的进程,应优先获得CPU执行。
控制进程所必须的信息,包括程序和数据的存储地址,以便调度该进程执行时,能从PCB中找到其程序和数据,进程同步和通信机制,如消息队列、信号量等。
**创建进程**过程:向操作系统申请空白PCB及进程ID、分配运行所需的资源、初始化PCB、等待插入进程调度就绪队列。
相关资源或从操作系统或从父进程获得,资源需求需提前告知,操作系统或父进程好为其分配资源。
PCB至少有2种信息需要初始化 1.标识信息,即将本进程ID和父进程ID填入PCB控制块中 2.状态信息,指令计数器指向程序的入口地址、栈指针指向栈顶控制信息。
进程的终止分为:读取进程状态、终止进程、终止子孙进程、释放资源、移出PCB队列。 操作系统通过进程ID从PCB集合中检索出该进程的PCB,从中读出该进程的状态。
如果该进程状态为执行态,则终止进程的执行,并重置调度标志位真。 如果该进程拥有子孙进程,则一并将所有子孙进程终止,防止子孙进程成为僵尸进程等不可控的进程。
接着释放资源,将资源归还给操作系统或父进程。最后就是移出PCB队列了,等待其他进程搜集信息。
进程阻塞和唤醒的事件 1.请求系统服务而得不到满足时,如问系统请求打印。
2.启动的操作需同步时:如该操作和请求该操作的进程需同步运行。
3.新数据尚未到达:如进程A写,进程B读,则A未写,完B不能读。
4.无新工作可做。
进程的挂起和激活 1.进程的挂起过程,由进程自己,或其父进程suspend原语完成。将该进程PCB移到指定区域,注意状态的改变,有可能要重新调度。
2.进程的激活过程,激活active原语激活进程。激活原语将进程从外存调入内存,检查该进程的现行状态并进行相应操作。
动画展示,临界区的资源,在某个时刻,只能有一个进程在使用。 临界资源 一旦有对资源的共享,就必然涉及竞争限制。 临界资源用来表示一种,公共资源或者说是共享数据,可以被多个线程使用。 但是每一次,只能有一个线程使用它。一旦临界资源被占用,其他线程,要想使用这个资源,就必须等待。
进程同步的主要任务是,对多个相关进程,在执行次序上进行协调,以使并发执行的诸进程之间,能有效地共享资源和相互合作,从而使程序的执行,具有可再现性。
临界区 有了临界资源的概念,就很容易理解临界区的概念。在程序中,所有的操作,都是通过代码执行的,访问临界资源的那段代码就是临界区
处理竞争或者合作依赖导致的制约 空闲让进:对于临界资源,如果空闲没有被使用,谁来了之后都可以使用
忙则等待:如果临界资源正在被使用,那么其他后来者就需要进行等待。
有限等待:要求访问临界资源的进程,应保证有限时间内,能进入自己的临界区,自己不能傻傻的等
让权等待:如果无法进入自己的临界区时,应立即释放处理机,而不能占着CPU死等,你死等就算了,别人却也不能用了。
锁 锁就是对资源施加控制,锁指的是一种控制权。 当进入临界区时,我们称之为获得锁,获得锁之后就可以访问临界资源。
其他线程想要进入临界区,也需要先获得锁。 当前线程结束后,将会释放锁,别的线程就可以获取这个资源的锁。
死锁 锁表示一种控制权,对临界资源的访问权限。
下面动画展示,两个小人,都要使用资源1和资源2,才能达到对面。左边小人战友资源1,右边小人占有资源2。他们占有当前资源,再去获取对方的资源时,就会产生死锁的情况。
如果临界资源不止一个,就可能出现:需要先后访问两种临界资源A和B,thread1获得了A线程的锁之后,等待获得B的锁,但是thread2获得了资源B的锁,在等待A资源的锁,这就出现了互相等待的情况。
解决方案 AND型信号量机制就是用于解决这种多共享资源下的同步问题的。 将进程在整个运行过程中,需要的所有资源,一次性全部地分配给进程,待进程使用完后再一起释放。
只要尚有一个资源未能分配给进程,其它所有可能为之分配的资源,也不分配给它。 也就是对,若干个临界资源的分配,采取原子操作方式:要么把它所请求的资源全部分配到进程,要么一个也不分配。
如果两个进程,想要知道对方在干嘛,或者进行协调运行,就需要进程间通信。下面介绍一下常见的进程间通信方式。
无名管道:管道是一种半双工的通信方式。数据只能单向流动,而且只能在,具有亲缘关系的进程间使用。进程间的亲缘关系,通常指父子进程关系。
有名管道:有名管道也是,半双工的通信方式,但是它允许无亲缘关系进程间的通信。
消息队列:消息队列是有消息的链表,存放在内核中,并由消息队列标识符标识。它克服了信号传递信息少,管道只能承载无格式字符流以及缓冲区大小受限等特点。
信号量:是一个计数器,可以用来控制多个进程对共享内存的访问。它作为一种锁机制,防止某个进程,正在访问共享资源的时候,其他进程也访问该资源,造成资源抢占。
信号:一种较复杂的通信方式,用于通知和接收进程某个事件的发生。
共享内存:是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。
套接字:是一种进程间通信机制,与其他通信机制不同的是,它可用于 不同机器间的进程通信。
上面介绍了一些进程相关的基础知识,希望能帮到大家。 进程,作为操作系统中的重要概念,不管在工作还是面试中,都会涉及到。
祝大家学习愉快!
本文由哈喽比特于3年以前收录,如有侵权请联系我们。
文章来源:https://mp.weixin.qq.com/s/iJ9WjU1U--okm9V889CReg
京东创始人刘强东和其妻子章泽天最近成为了互联网舆论关注的焦点。有关他们“移民美国”和在美国购买豪宅的传言在互联网上广泛传播。然而,京东官方通过微博发言人发布的消息澄清了这些传言,称这些言论纯属虚假信息和蓄意捏造。
日前,据博主“@超能数码君老周”爆料,国内三大运营商中国移动、中国电信和中国联通预计将集体采购百万台规模的华为Mate60系列手机。
据报道,荷兰半导体设备公司ASML正看到美国对华遏制政策的负面影响。阿斯麦(ASML)CEO彼得·温宁克在一档电视节目中分享了他对中国大陆问题以及该公司面临的出口管制和保护主义的看法。彼得曾在多个场合表达了他对出口管制以及中荷经济关系的担忧。
今年早些时候,抖音悄然上线了一款名为“青桃”的 App,Slogan 为“看见你的热爱”,根据应用介绍可知,“青桃”是一个属于年轻人的兴趣知识视频平台,由抖音官方出品的中长视频关联版本,整体风格有些类似B站。
日前,威马汽车首席数据官梅松林转发了一份“世界各国地区拥车率排行榜”,同时,他发文表示:中国汽车普及率低于非洲国家尼日利亚,每百户家庭仅17户有车。意大利世界排名第一,每十户中九户有车。
近日,一项新的研究发现,维生素 C 和 E 等抗氧化剂会激活一种机制,刺激癌症肿瘤中新血管的生长,帮助它们生长和扩散。
据媒体援引消息人士报道,苹果公司正在测试使用3D打印技术来生产其智能手表的钢质底盘。消息传出后,3D系统一度大涨超10%,不过截至周三收盘,该股涨幅回落至2%以内。
9月2日,坐拥千万粉丝的网红主播“秀才”账号被封禁,在社交媒体平台上引发热议。平台相关负责人表示,“秀才”账号违反平台相关规定,已封禁。据知情人士透露,秀才近期被举报存在违法行为,这可能是他被封禁的部分原因。据悉,“秀才”年龄39岁,是安徽省亳州市蒙城县人,抖音网红,粉丝数量超1200万。他曾被称为“中老年...
9月3日消息,亚马逊的一些股东,包括持有该公司股票的一家养老基金,日前对亚马逊、其创始人贝索斯和其董事会提起诉讼,指控他们在为 Project Kuiper 卫星星座项目购买发射服务时“违反了信义义务”。
据消息,为推广自家应用,苹果现推出了一个名为“Apps by Apple”的网站,展示了苹果为旗下产品(如 iPhone、iPad、Apple Watch、Mac 和 Apple TV)开发的各种应用程序。
特斯拉本周在美国大幅下调Model S和X售价,引发了该公司一些最坚定支持者的不满。知名特斯拉多头、未来基金(Future Fund)管理合伙人加里·布莱克发帖称,降价是一种“短期麻醉剂”,会让潜在客户等待进一步降价。
据外媒9月2日报道,荷兰半导体设备制造商阿斯麦称,尽管荷兰政府颁布的半导体设备出口管制新规9月正式生效,但该公司已获得在2023年底以前向中国运送受限制芯片制造机器的许可。
近日,根据美国证券交易委员会的文件显示,苹果卫星服务提供商 Globalstar 近期向马斯克旗下的 SpaceX 支付 6400 万美元(约 4.65 亿元人民币)。用于在 2023-2025 年期间,发射卫星,进一步扩展苹果 iPhone 系列的 SOS 卫星服务。
据报道,马斯克旗下社交平台𝕏(推特)日前调整了隐私政策,允许 𝕏 使用用户发布的信息来训练其人工智能(AI)模型。新的隐私政策将于 9 月 29 日生效。新政策规定,𝕏可能会使用所收集到的平台信息和公开可用的信息,来帮助训练 𝕏 的机器学习或人工智能模型。
9月2日,荣耀CEO赵明在采访中谈及华为手机回归时表示,替老同事们高兴,觉得手机行业,由于华为的回归,让竞争充满了更多的可能性和更多的魅力,对行业来说也是件好事。
《自然》30日发表的一篇论文报道了一个名为Swift的人工智能(AI)系统,该系统驾驶无人机的能力可在真实世界中一对一冠军赛里战胜人类对手。
近日,非营利组织纽约真菌学会(NYMS)发出警告,表示亚马逊为代表的电商平台上,充斥着各种AI生成的蘑菇觅食科普书籍,其中存在诸多错误。
社交媒体平台𝕏(原推特)新隐私政策提到:“在您同意的情况下,我们可能出于安全、安保和身份识别目的收集和使用您的生物识别信息。”
2023年德国柏林消费电子展上,各大企业都带来了最新的理念和产品,而高端化、本土化的中国产品正在不断吸引欧洲等国际市场的目光。
罗永浩日前在直播中吐槽苹果即将推出的 iPhone 新品,具体内容为:“以我对我‘子公司’的了解,我认为 iPhone 15 跟 iPhone 14 不会有什么区别的,除了序(列)号变了,这个‘不要脸’的东西,这个‘臭厨子’。