[计算机软件及应用]LINUX进程编程.pptVIP

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

进程 P242 什么是进程? P242 进程状态的转换 P242 时间片轮转调度算法 P242 抢占调度方式 P242 进程与进程ID P245 程序被执行的实例被称为进程,进程空间包括(代码空间、数据空间、运行的堆栈空间)存在与内存中。 程序是静态的,存放在硬盘上,是永久的。进程是动态的,是暂时的,有其生命周期的。 操作系统为其分配好进程的空间时,从main函数开始运行时标志着进程的开始,当调用exit函数退出时标志着进程的结束。 每个LINUX进程都有一个唯一的ID,进程ID总是一个非负数。 getpid() getppid() 进程的控制: fork、exec、waitpid。 用户标识 P247 1、用户ID getuid() 2、组ID getgid() 出错处理 P247 当LINUX函数出错时,会给整型变量errno设置一个值,errno每一个值都有特定含义。 strerror(i) 将函数映射为一个出错信息字符串。 perror (const char msg) 在标准出错上产生一条出错信息(基于errno) Linux 信号量 ? P249 信号量本质上是一个非负的整数计数器,它被用来控制对公共资源的访问。 当公共资源增加时,调用函数sem_post()增加信号量。 只有当信号量值大于0时,才能使用公共资源,使用后,函数sem_wait()减少信号量。 Linux 信号量 ? P249 1、忽略该信号。 2、按系统默认方式处理。 3、提供一个函数,信号发生时则调用该函数。 Linux 时间值 1、日历时间 2、进程时间。 时钟时间、用户CPU时间、系统CPU时间。 $time ./test real 0m0.06s user 0m0.01s Sys 0m0.00s 系统调用和库函数 ? P250 1、系统调用:系统调用把应用程序请求传给内核,调用相应的内核函数完成所需的处理。使应用程序由用户态进入核心态,系统调用有自己单独的堆栈空间。 2、库函数:存放在函数库中的函数,库函数具有明确的功能、入口调用参数和返回值,Linux库函数特指函数入口没有进行系统调用的库函数。库函数中常包含系统调用,库函数没有进行系统调用时,没有单独的堆栈空间。 printf?write strcpy atoi 3、用户态:进程的普通执行状态,只能执行规定的指令,不能执行特权指令。进程在用户态下只能访问该进程的存储空间,不能与系统硬件相互作用,不能访问系统资源,当它需要系统硬件资源时,会通过系统调用进入核心态。 4、核心态:能执行所有的机器指令,包括操作系统执行的特权指令,能访问所有的寄存器和存储区域,能直接控制所有系统资源和硬件资源。 Linux 进程环境 P256 1、Linux进程控制块(PCB)的作用? Linux进程控制块是一个由结构体task_struct所定义的数据结构 操作系统利用PCB来控制和管理进程。 2、与进程有关的ID P257 进程真实用户号(UID) getuid() 有效用户号(EUID) geteuid() 真实用户组号(GID) getgid() 有效用户组号(EGID) getegid() 进程标识号(PID) getpid() 进程组标识号(PGID) getpgid() linux系统中每个进程都有2个ID,分别为用户ID和有效用户ID,UID一般表示进程的创建者(属于哪个用户创建),而EUID表示进程对于文件和资源的访问权限(具备等同于哪个用户的权限)。可以通过函数getuid()和geteuid()获得进程的两个ID值。 ?一般情况下2个ID是相同的,但是某些情况下会出现2个ID不同的情况。 进程终止 P258 1、正常终止 1)从main返回 2)调用exit。 3)调用_exit。 2、异常终止 1)调用abort 2)由一个信号终止。 exit与return的区别 ? C语

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档