已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验五 进程(线程)控制,实验五 进程(线程)控制,预备知识 Linux进程及其属性 Linux进程派生关系 Linux线程 实验指导 Linux进程管理命令 Linux进程控制函数 Linux守护进程 实验目的、内容,1.1 Linux进程及其属性(1),Linux中对各种资源的分配和管理都以进程为单位 操作系统需要跟踪所有进程的活动,以及它们对系统资源的使用情况,从而实施对进程和资源的动态管理 Linux系统的进程类型 交互进程:Shell启动的进程,可在前台或后台运行 批处理进程:进程序列,不与特定终端关联 守护进程(Daemon):后台服务进程,独立于控制终端,常在系统引导装入时启动,在系统关闭时终止,1.1 Linux进程及其属性(2),进程的描述信息 PID:进程的ID号,内核按进程创建顺序逐一分配。init进程PID为1,其他进程的PID依次增加 PPID:父进程号。现有进程需克隆自身创建一个新进程(init进程除外),被克隆的进程称为父进程,克隆出的副本进程称为子进程 PGID:进程组号。主进程(初始的父进程)创建的所有进程拥有相同的进程组号PGID UID:进程的真实用户号 EUID:进程的有效用户号。用于确定进程在给定时刻对哪些资源和文件具有访问权限。多数情况下EUID和UID相同 GID:进程用户组号 FGID:有效进程用户组号,1.2 Linux进程派生关系,Linux用进程树进行进程管理 0号进程(也称交换进程)完成进程调度和让进程在主存与磁盘上进行交换 1号进程(内核态)负责执行内核的部分初始化工作及系统配置,并创建若干个用于高速缓存和虚拟主存管理的内核线程 1号进程调用execve()运行可执行程序init,演变成用户态1号进程,即init进程,完成系统启动工作 ,1.3 Linux线程(1),从Linux2.6开始,Linux kernel才有真正的thread支持 Linux2.6线程库叫NPTL(Native POSIX Thread Library),基于进程实现,但创建线程的效率非常高 核内的轻量级进程形式:拥有独立的进程表项,而所有操作都在核外pthread库中进行 核外的1:1线程模型:一个核心进程对应一个线程,将线程调度等同于进程调度,交给核心完成,而其它工作都在核外线程库中完成,1.3 Linux线程(2),Linux线程分为内核线程和用户线程两种线程模型 内核线程更利于并发使用多处理器的资源 用户线程更多考虑上下文切换开销 内核线程没有独立的地址空间,只在内核空间运行 用户线程在用户空间中实现 内核线程的调度由内核负责,内核线程处于阻塞状态时不影响其他的内核进程 用户线程的调度由线程运行库来组织线程的调度,进程中的用户线程阻塞时整个进程会切换为等待状态,其他线程不能运行,实验五 进程(线程)控制,预备知识 Linux进程及其属性 Linux进程派生关系 Linux线程 实验指导 Linux进程管理命令 Linux进程控制函数 Linux守护进程 实验目的、内容,2.1 Linux进程管理命令进程查看,ps命令:报告进程标识、用户、CPU时间消耗以及其他属性 命令单独使用可以看到前台执行的进程;后台进程可以使用带参数的ps命令(如ps -ax) 提供进程的一次性查看,结果不连续 结果数据很精确,但数据量庞大 top命令:显示CPU占用率为前几位的进程 动态显示,输出结果连续 消耗较多的系统资源 pstree命令:列出当前的进程,以及它们的树状结构 将当前的执行程序以树状结构显示,弥补ps命令的不足 支持指定特定程序(PID)或使用者(USER)作为显示的起始,2.1 Linux进程管理命令进程终止,终止一个进程或终止一个正在运行的程序 kill命令:根据PID向进程发送信号,缺省操作是停止进程 如果进程启动了子进程,只终止父进程,子进程运行中将仍消耗资源成为“僵尸”进程,可用kill -9强制终止退出 pkill命令:终止同一进程组内的所有进程。允许指定要终止的进程名称,而非PID Killall命令:与pkill应用方法类似,直接杀死运行中的程序 数据库服务器的父进程不能用这些命令杀死(容易产生更多的文件碎片导致数据库崩溃),2.1 Linux进程管理命令进程优先级设置,进程优先级nice值 进程在计划执行时被赋予 默认值为0,范围从20(最有利的调度优先级)到19(最不利的调度优先级) 进程优先级设置 nice命令:使用比默认nice值更高或者更低的优先级运行进程 renice命令:调整已经运行的进程的优先级 root用户可以提高或降低任意进程的nice值,普通用户只能增加进程优先级的值(降低优先级),2.2 Linux进程控制函数创建进程,fork() 产生当前进程的 拷贝,2.2 Linux进程控制函数修改进程,函数族exec() :启动另外的进程取代当前的进程 #include int execl(const char *path, const char *arg, .); int execlp(const char *file, const char *arg, .); int execle(const char *path, const char *arg, const char *envp); int execv(const char *path, const char *argv); int execve(const char *path, const char *argv, const char *envp; int execvp(const char *file, const char *argv);,2.2 Linux进程控制函数进程属性操作,设置进程属性 nice():改变进程执行的优先级 setpgid():将指定进程的组进程设为指定的组识别码 setpgrp():将目前进程的组进程识别码设为目前进程的进程识别码,等价于setpgid(0,0) setpriority():设置进程、进程组和用户的执行优先权 获取进程属性 getpid():获取目前进程的进程标识 getpgid():获得参数pid指定进程所属的组识别码 getpgrp():获得目前进程所属的组识别号,等价于getpgid(0) getpriotity():获得进程、进程组和用户的执行优先权,2.2 Linux控制函数进程退出,正常退出:在main()函数中执行return、调用exit()函数或_exit()函数 异常退出:调用abort()函数、进程收到信号而终止 区别 exit是一个函数,有参数,把控制权交给系统 return是函数执行完后的返回,将控制权交给调用函数 exit是正常终止进程,abort是异常终止 exit中参数为0代表进程正常终止,为其他值表示程序执行过程中有错误发生 exit()在头文件stdlib.h中声明,先执行清除操作,再将控制权返回给内核 _exit()在头文件unistd.h中声明,执行后立即返回给内核,2.3 Linux守护进程,独立启动(stand_alone)守护进程 常驻内存,一直占用系统资源 外界有要求时响应速度较快 放在/etc/init.d/目录下 超级守护进程 系统启动时由超级守护进程xinet负责管理,当相应请求到来时通过xinet的转接唤醒被xinet管理的进程 最初只有xinet占有系统资源,其他的内部服务不占有系统资源,只有数据包到来时才被唤醒 放在/etc/xinit.d/目录下,2.3 Linux守护进程守护进程的编写,(1) 创建子进程,退出父进程 脱离控制终端:子进程变成1号进程(init)的子进程 (2) 在子进程中创建新会话 摆脱其他进程的控制(函数setsid) (3)改变当前目录为根目录 脱离父进程文件系统控制(函数chdir) (4)重设文件权限掩码 设置为0,增强守护进程的灵活性(函数umask ) (5)关闭文件描述符 关闭文件描述符为0、1和2的三个文件(输入、输出和报错文件),实验五 进程(线程)控制,预备知识 Linux进程及其属性 Linux进程派生关系 Linux线程 实验指导 Linux进程管理命令 Linux进程控制函数 Linux守护进程 实验目的、内容,3.1 实验目的,加深对进程概念的理解,明确进程与程序的区别 掌握Linux进程创建及撤销的方法,进一步认识并发执行的实质 掌握Linux系统下守护进程的创建方法,3.2 实验内容,获取进程信息 编写程序,获取系统当前执行进程的信息,包括进程名称与
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 房地产公司项目部经理面试全记录
- 三年(2023-2025)湖南中考语文真题分类汇编:专题02 句子 (解析版)
- 体育产业人力资源岗位实战手册
- 攀登满分作文演讲稿
- 特种兵父母演讲稿
- 小学英语阅读与听力训练试题
- 城乡规划法规与政策解析试卷
- 文明礼仪演讲稿 3
- 微信的强大演讲稿范文
- 关于做儒雅少年的演讲稿
- 学校卫生综合评价表
- 卵巢癌的手术治疗进展
- 毕业设计(论文)-全功率燃料电池汽车整车热管理系统设计与分析
- IE-工业工程基础(清华大学教材)课件
- 数学物理分析方法-解析函数
- 海外汽车认证检测项目及法规列表(中英文)
- DBJ∕T 15-210-2021 装配整体式叠合剪力墙结构技术规程
- 河港工程设计规范jtj_212-2006
- 课程《C++程序设计》课程标准(共6页)
- Y620优众变频器说明书
- 出国留学人员在杭创业资助资金
评论
0/150
提交评论