Linux进程控制系统编程.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux进程控制系统编程

LINUX进程控制 Linux进?程概述 进程是一个程序一次执行的?过程,是操作系统动态执行的基本单?元。进程的概念主要有两点:第一,?进程是一个实体。每个进程都有自己?的虚拟地址空间,包括文本区、数据?区、和堆栈区。文本区域存储处理器?执行的代码;数据区存储变量和动态?分配的内存;堆栈区存储着活动进程?调用的指令和本地变量。第二,进程?是一个“执行中的程序”, 它和程?序有本质区别。程序是静态的,它是?一些保存在磁盘上的指令的有序集合?;而进程是一个动态的概念,它是一?个运行着的程序,包含了进程的动态?创建、调度和消亡的过程,是Lin?ux的基本调度单位。只有当处理器?赋予程序生命时,它才能成为一个活?动的实体,称之为进程。 内核的调?度器负责在所有的进程间分配CPU?执行时间,称为时间片(time ?slice),它轮流在每个进程分?得的时间片用完后从进程那里抢回控?制权。 进程标识 OS会为每个?进程分配一个唯一的整型ID,做为?进程的标识号(pid)。进程0是?调度进程,常被成为交换进程,它不?执行任何程序,是内核的一部分,因?此也被成为系统进程。进程除了自身?的ID外,还有父进程ID(ppi?d)。也就是说每个进程都必须有它?的父进程,操作系统不会无缘无故产?生一个新进程。所有进程的祖先进程?是同一个进程,它叫做init进程?,ID为1,init进程是内核自?举后的第一个启动的进程。init?进程负责引导系统、启动守护(后台?)进程并且运行必要的程序。它不是?系统进程,但它以系统的超级用户特?权运行。 进程的状态 进程是程序?的执行过程,根据它的生命周期可以?划分成3种状态。 执行态:该进程?正在运行,即进程正在占用CPU。? 就绪态:进程已经具备执行的一切?条件,正在等待分配CPU的处理时?间片。 等待态:进程不能使用CP?U,若等待事件发生(等待的资源分?配到)则可将其唤醒。 ? Linux下的进程结构?及管理 Linux系统是一个多进?程的系统,它的进程之间具有并行性?、互不干扰等特点。也就是说,进程?之间是分离的任务,拥有各自的权利?和责任。其中,每个进程都运行在各?自独立的虚拟地址空间,因此,即使?一个进程发生了异常,它也不会影响?到系统的其他进程。 Linux中?的进程包含以下几个部分: “堆?栈段”存放的是子程序的返回地址、?子程序的参数以及程序的局部变量等?。“数据段”放全局变量、常数以及?动态数据分配的数据空间。数据段分?成普通数据段(包括可读可写/只读?数据段,存放静态初始化的全局变量?或常量)、BSS数据段(存放未初?始化的全局变量)以及堆(存放动态?分配的数据)。 “正文段”存放的?是CPU执行的机器指令部分。 ? ? 进程process:是os的?最小单元 地址空间大小为4g,其?中 1g给os 3g给进程{代?码区 数据区 堆 栈} ps?:查看活动进程。 ps –a?ux:查看各个进程状态,包括运行? 就绪 等待等状态。 p?s -aux| grep aa?:查找指定(aa)进程。 ?ps –ef:查看所有的进程的p?id,ppid等信息。 ps -?aux看%cpu(cpu使用量)? %mem(内存使用量) s?tat状态{S就绪 T中断 R运?行 Z僵尸} vi a.c (?表示后台运行),jobs查看后?台任务,fg 1把后台任务带到前?台 ctrl+z把进程带入后台 ?kill -9 进程号?杀掉某个?进程 top显示前20条进程?,动态的改变 pgrep? vi查找进程 nice改变?优先级 crontab计划?任务,定时操作等 Linux进?程控制 fork函数 原型: ? #include unist?d.h pid_t for?k(void); 在linux?中fork函数是非常重要的函数,?它从已存在进程中创建一个新进程。?新进程为子进程,而原进程为父进程?。它和其他函数的区别在于:它执行?一次返回两个值。其中父进程的返回?值是子进程的进程号,而子进程的返?回值为0.若出错则返回-1.因此?可以通过返回值来判断是父进程还是?子进程。 fork函数创建子进程?的过程为:使用fork函数得到的?子进程是父进程的一个复制品,它从?父进程继承了进程的地址空间,包括?进程上下文、进程堆栈、内存信息、?打开的文件描述符、信号控制设定、?进程优先级、进程组号、当前工作目?录、根目录、资源限制、控制终端,?而子进程所独有的只有它的进程号、?资源使用和计时器等。通过这种复制?方式创建出子进程后,原有进程和子?进程都从fork函数返回,各自继?续往下运行,但是原进程的f

文档评论(0)

wuyoujun92 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档