欢迎来到装配图网! | 帮助中心 装配图网zhuangpeitu.com!
装配图网
ImageVerifierCode 换一换
首页 装配图网 > 资源分类 > PPT文档下载
 

《linux编程及应用-任继平》07第07章-linux进程管理与程序开发教学课件

  • 资源ID:240649275       资源大小:1.09MB        全文页数:48页
  • 资源格式: PPT        下载积分:20积分
快捷下载 游客一键下载
会员登录下载
微信登录下载
三方登录下载: 微信开放平台登录 支付宝登录   QQ登录   微博登录  
二维码
微信扫一扫登录
下载资源需要20积分
邮箱/手机:
温馨提示:
用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

《linux编程及应用-任继平》07第07章-linux进程管理与程序开发教学课件

进程资源 2024/4/271进程状态 2024/4/272进程基本属性-进程号(PID)2024/4/273父进程号(PPID)2024/4/274进程组号(PGID)进程组是一个或多个进程的集合。它们与同一作业相关联,可以接受来自同一终端的各种信号(关于信号的概念参阅第8章)。每个进程组都有唯一的进程组号,进程组号是可以在用户层修改的。2024/4/275会话 会话(session)是一个或多个进程组的集合。系统调用函数getsid()用来获取某个进程的会话号SID。如果调用此函数的进程不是一个进程组的组长,则此函数会创建一个新会话:该进程变成新会话首进程(session leader),会话首进程是创建该会话的进程。该进程成为一个新进程组的组长进程。新进程组PGID是该调用进程的PID。该进程没有控制终端。如果在调用setsid之前该进程就有一个控制终端,那么这种联系也会被中断。2024/4/276控制终端 会话和进程组有以下一些特点:(1)一个会话可以有一个控制终端,建立与控制终端连接的会话首进程被称为控制进程。(2)一个会话中的几个进程组可被分成一个前台进程组和几个后台进程组,如果一个会话有一个控制终端,则它有一个前台进程组。(3)无论何时键入终端的中断键(DELETE或Ctrl+C),就会将中断信号发送给前台进程组的所有进程,无论何时键入终端的退出键(Ctrl+),就会将退出信号发送给前台进程组的所有进程,如果终端检测到调制解调器(或网络)已经断开连接,则将挂断信号发送给控制进程(会话首进程)。2024/4/277终端处理函数2024/4/278进程用户属性 进程真实用户号(RUID)真实用户组号(RGID)有效用户号(EUID)有效用户组号(EGID)2024/4/279进程真实用户号(RUID)2024/4/2710进程有效用户号(EUID)EUID主要用于权限检查。多数情况下,EUID和UID相同。如果可执行文件的setuid位有效,在除该文件的拥有者之外的用户运行该程序时,EUID和UID则不相同。即当某可执行文件设置了setgid位(见文件属性章节介绍)后,任何用户(包括root用户)运行此程序时,其有效用户组EUID为该文件的拥有者。2024/4/2711普通用户能够修改自己的密码的原因/etc/passwd文件用来存储所有用户信息,任何用户都可以修改自己的密码,显然,其它用户在执行/usr/bin/passwd命令时修改了/etc/passwd文件(并不是说可以使用vi编辑器修改),但是,通过查看/etc/passwd文件的权限,发现普通用户对此文件仅有读的权限。是什么原因导致普通用户可以修改/etc/passwd文件呢?这是因为用户执行“/usr/bin/passwd”命令时,/usr/bin/passwd文件设置了setuid位,在执行此程序(/usr/bin/passwd)时,该用户所拥有的权限等同于文件“/usr/bin/passwd”的拥有者root的权限,而root用户拥有对/ect/passwd文件写的权限,因此普通用户可以通过/usr/bin/passwd来修改/etc/passwd文件的内容。如果清除掉“/usr/bin/passwd”文件的setuid权限位,普通用户就不能修改自己的密码了。2024/4/2712进程用户组号(GID)创建进程的用户所在的组号为该进程的进程用户组号(GID)。可以通过调用getgid()函数来获得当前进程的真实用户组号(GID)。2024/4/2713有效进程用户组号(EGID)2024/4/2714第7章进程环境及进程属性 1 12 2进程环境及进程属性进程环境及进程属性 进程管理及控制进程管理及控制 3 3Linux特殊进程特殊进程 创建进程 fork函数调用成功后,其子进程会复制父进程的几乎所有信息(除PID等信息),主发复制父亲进程的代码段、数据段、BSS、堆、栈(关于进程结构参阅本书第3章)、打开的文件描述符(但共用同一个文件表项)。另外,子进程从父进程继承下列属性:实际用户/组号、有效用户/组号以及保留的用户/组号、进程组号、环境变量、对文件的执行时关闭标志、信号处理方式设置、信号掩码、当前工作目录、根目录、文件模式创建掩码、文件大小限制等信息。2024/4/2716示例2024/4/2717对打开文件的处理 2024/4/2718验证fork是否在子进程复制验证代码验证数据段(使用全局、静态初始化变量),BSS段(未初始化全局,静态变量),栈(局部变量),堆(malloc返回空间)。代码见教材。2024/4/2719vfork/*Clone the calling process,but without copying the whole address space.The calling process is suspended until the new process exits or is replaced by a call to execve.Return-1 for errors,0 to the new process,and the process ID of the new process to the old process.*/extern _pid_t vfork(void);#endif 2024/4/2720Vfork与fork比较验证代码见教材代码。2024/4/2721execX函数执行新代码2024/4/2722execX函数比较函数使用文件名使用路径名使用参数表(函数出现字母l)使用argv(函数出现字母v)execl execlp execle execvexecvp execve2024/4/2723执行新代码对打开文件的处理 在执行exec系列函数时,默认情况下,新代码对于可以使用在原来代码中打开的文件描述符,即执行exec系列函数时,并不关闭原来的文件描述符。但如果调用fcntl函数即关闭FD_CLOEXEC项,则在执行execX系列函数后将关闭原来打开的文件描述符。2024/4/2724等待进程结束 调用wait()函数的父亲进程将等待该进程的任意一个子进程结束后才继续执行(如果有多个子进程,只需要等待其中的一个进程)。2024/4/2725waitpid2024/4/2726退出进程 可以通过以下方式结束进程。向exit或_exit发布一个调用。在main函数中执行return。隐含的离开main函数。2024/4/2727函数说明2024/4/2728示例代码2024/4/2729exit 与_exit2024/4/2730exit与return的区别 C语言关键字与函数exit()在main函数退出时有相似之处,但两者有本质的区别:return 退出当前函数主体,exit()函数退出当前进程,因此,在main函数里面return(0)和exit(0)完成一样的功能。return仅仅从子函数中返回,而子进程用exit()退出,调用exit()时要调用一段终止处理程序,然后关闭所有I/O流。2024/4/2731示例代码2024/4/2732修改进程用户相关信息 access核实用户权限 2024/4/2733设置进程真实用户RUID 2024/4/2734设置进程有效用户EUID 2024/4/2735第7章进程环境及进程属性 1 12 2进程环境及进程属性进程环境及进程属性 进程管理及控制进程管理及控制 3 3Linux特殊进程特殊进程 守候进程 守护进程(Daemon)是运行在后台的一种特殊进程,其脱离于终端,之所以脱离于终端是为了避免进程被任何终端所产生的信息所打断,其在执行过程中的信息也不在任何终端上显示。守候进程周期性地执行某种任务或等待处理某些发生的事件,Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。一般情况下,守护进程可以通过以下方式启动:在系统启动时由启动脚本启动,这些启动脚本通常放在/etc/rc.d目录下;利用inetd超级服务器启动,如telnet等;由cron定时启动以及在终端用nohup启动的进程也是守护进程。2024/4/2737守护进程编程要点 2024/4/2738守护进程编程要点2024/4/2739守护进程编程要点2024/4/2740日志信息及其管理 2024/4/2741建立与日志守候进程联系 2024/4/2742openlog()2024/4/2743写日志信息 2024/4/2744守候进程应用示例 见教材代码。2024/4/2745孤儿进程与僵死进程 因父亲进程先退出而导致一个子进程被init进程收养的进程为孤儿进程。而已经退出但还没有回收资源的进程为僵死进程。示例代码见教材。2024/4/2746xiexie!xiexie!谢谢!谢谢!xiexie!xiexie!谢谢!谢谢!

注意事项

本文(《linux编程及应用-任继平》07第07章-linux进程管理与程序开发教学课件)为本站会员(风***)主动上传,装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知装配图网(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!