0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

探讨一下进程的创建与终止

冬至配饺子 来源:廣廣的随笔 作者:廣廣的随笔 2022-08-17 17:59 次阅读

进程的创建

在启动进程时(好像会创建一个空转进程),通常会创建若干进程,其中包括前台进程(负责与用户交互)和后台进程(与特定用户没有关系,完成专门的功能,比如电子邮件接收等)。

当然,除了上述创建进程的过程外,一个进程还可以由另外一个进程创建。在交互式系统中,用户可以点击图标创建进程。而在批处理系统中,用户提交批处理作业,OS认为有资源可以运行时,会创建一个进程。

在UNIX系统中,只有一个系统调用可以用来创建新进程:fork。两个进程关系为父子关系,子进程和父进程拥有东西几乎一样但都拥有自己独立的地址空间,进程ID不一样。

可写的内存是不可以共享的,但是,对于一个新创建的进程而言,确实又可能共享其创建者的其它资源,如打开的文件等。在windows中从一开始父进程的地址空间和子进程的地址就是不同的,unix好像不是吧。

进程的终止

分为以下四种情况:

正常退出(自愿)

出错退出(自愿)

严重错误(非自愿)

被其他进程杀死(非自愿 kill)

多数情况下,进程都是自动完成任务后退出的,UNIX返回exit(0)。第二种情况,若是进程执行时遇到非法指令会通知操作系统,想要自行解决,正常终止。第三种情况是进程遇到严重错误,例如在编译时出错。第四种就不解释了。

进程的层次结构

进程只有一个父进程,但可以有多个子进程。,在UNIX中,这将会是一个进程组,,当用户从键盘发出一个信号时,该进程组中的所有成员都可以分别捕捉,忽略该信号或者被该信号杀死。,相反windows系统中没有该概念,所有进程地位相同,可能会有类似的作用是当一个进程拥有令牌时可以控制其它进程,但是该令牌可以送给其它进程,这样就不存在进程层次了。

进程的状态

pYYBAGL8u66ALORaAAB1Pcp5ly0658.png

进程的实现

OS维护着一张进程表,每个进程都占用一个表项(包括程序计数器,堆栈指针,内存分配状况,所打开文件状态,账号,调度信息,以及状态转换时必须要保存的寄存器信息等),进程切换时,就会发生压栈操作,即用户态转向内核态,数据压入内核空间。


审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 计数器
    +关注

    关注

    32

    文章

    2126

    浏览量

    92997
  • Unix系统
    +关注

    关注

    0

    文章

    15

    浏览量

    9581
  • 堆栈指针
    +关注

    关注

    0

    文章

    5

    浏览量

    2799
收藏 人收藏

    评论

    相关推荐

    晶华电子IPO终止

    深圳晶华显示电子股份有限公司(简称“晶华电子”)的创业板上市审核进程近日被深交所终止。尽管上市计划暂时搁浅,但晶华电子在物联网领域的研发实力和市场地位依然受到业界的关注。
    的头像 发表于 03-13 14:47 257次阅读

    科利德终止上交所科创板IPO

    大连科利德半导体材料股份有限公司(科利德)IPO审核进程宣告终止。上交所公告显示,因科利德保荐人撤销保荐,根据相关规定,上交所决定终止其发行上市审核。
    的头像 发表于 03-08 18:16 378次阅读

    科利德终止IPO审核进程

    大连科利德半导体材料股份有限公司(简称“科利德”)的IPO审核进程终止。上交所公告显示,由于科利德的保荐人撤销了保荐,因此根据相关规定,上交所决定终止其发行上市审核。
    的头像 发表于 03-04 10:47 303次阅读

    最快终止IPO诞生,思索技术撤回申请

      东莞市思索技术股份有限公司的IPO进程已正式终止,从受理到撤回仅用了29天时间。
    的头像 发表于 03-04 09:45 193次阅读

    7家LED相关企业IPO进程,1家上岸,1家终止

    在IPO节奏阶段性收紧的背景之下,截止2月19日,2024年已有45家拟IPO或拟公开发行的企业终止审核。
    的头像 发表于 02-28 11:33 707次阅读
    7家LED相关企业IPO<b class='flag-5'>进程</b>,1家上岸,1家<b class='flag-5'>终止</b>

    Linux下进程通信的方法

    进程是操作系统的概念,每当我们执行一个程序时,对于操作系统来讲就创建了一个进程,在这个过程中,伴随着资源的分配和释放。可以认为进程是一个程序的一次执行过程。
    的头像 发表于 11-29 14:45 367次阅读
    Linux下<b class='flag-5'>进程</b>通信的方法

    DNS的各种玩法:程序编译到进程的过程解析

    在Linux中使用fork创建进程,返回进程id。通过id的不同让父子进程各干其事,然后使用execvp执行具体任务
    发表于 10-20 11:10 158次阅读
    DNS的各种玩法:程序编译到<b class='flag-5'>进程</b>的过程解析

    PCB进程创建终止过程

    PCB进程控制块 独立运行基本单位的标志:创建进程创建PCB,进程结束时回PCB,进程随之消亡
    的头像 发表于 10-08 15:36 782次阅读

    为什么需要进程 特征和定义有哪些

    资源分配调度的独立单位。 结构特征:为了使程序能够独立运行,应配置一个进程控制块PCB。进程是由程序段,相关的数据段和PCB(进程控制块)三部分构成的。 动态性:进程是程序的一次执行,
    的头像 发表于 10-08 15:29 374次阅读
    为什么需要<b class='flag-5'>进程</b> 特征和定义有哪些

    Linux中如何编写守护进程程序

    的一种进程,它们一般在系统启动时开始运行,除非强行终止,否则直到系统关机都会保持运行。与守护进程相比,普通进程都是在用户登录或运行程序时创建
    的头像 发表于 10-07 17:12 392次阅读
    Linux中如何编写守护<b class='flag-5'>进程</b>程序

    Linux下进程相关知识

    进程是在你的系统上运行的程序。它们由内核管理,每个进程都有一个与之关联的ID,称为进程ID(PID)。这个PID是按照进程创建的顺序分配的。
    发表于 08-09 10:02 211次阅读
    Linux下<b class='flag-5'>进程</b>相关知识

    linux操作系统中的进程创建和销毁函数解析

    第一次遇见创建进程是在Linux启动流程中,reset_init函数调用kernel_thread函数创建了2个内核进程:kernel_init和kthreadd。
    发表于 06-26 09:12 414次阅读
    linux操作系统中的<b class='flag-5'>进程</b><b class='flag-5'>创建</b>和销毁函数解析

    Linux应用开发之进程和程序

    进程是一个可执行程序的实例,程序包含了一系列信息文件,这些信息描述了如何在运行期间创建一个进程
    的头像 发表于 06-04 16:35 484次阅读
    Linux应用开发之<b class='flag-5'>进程</b>和程序

    深度剖析Linux中进程控制(下)

    在Linux中,fork函数是非常重要的函数,它从已存在进程创建一个新进程。新进程为子进程,而原进程
    的头像 发表于 05-12 10:49 326次阅读
    深度剖析Linux中<b class='flag-5'>进程</b>控制(下)

    深度剖析Linux中进程控制(上)

    在Linux中,fork函数是非常重要的函数,它从已存在进程创建一个新进程。新进程为子进程,而原进程
    的头像 发表于 05-12 10:49 333次阅读
    深度剖析Linux中<b class='flag-5'>进程</b>控制(上)