进程(线程)控制_第1页
进程(线程)控制_第2页
进程(线程)控制_第3页
进程(线程)控制_第4页
进程(线程)控制_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、进程(线程)控制实验五 进程(线程)控制v预备知识Linux进程及其属性Linux进程派生关系Linux线程v实验指导Linux进程管理命令Linux进程控制函数Linux守护进程v实验目的、内容1.1 Linux进程及其属性(1)vLinux中对各种资源的分配和管理都以进程为单位v操作系统需要跟踪所有进程的活动,以及它们对系统资源的使用情况,从而实施对进程和资源的动态管理vLinux系统的进程类型交互进程:Shell启动的进程,可在前台或后台运行批处理进程:进程序列,不与特定终端关联守护进程(Daemon):后台服务进程,独立于控制终端,常在系统引导装入时启动,在系统关闭时终止1.1 Lin

2、ux进程及其属性(2)v进程的描述信息PID:进程的ID号,内核按进程创建顺序逐一分配。init进程PID为1,其他进程的PID依次增加PPID:父进程号。现有进程需克隆自身创建一个新进程(init进程除外),被克隆的进程称为父进程,克隆出的副本进程称为子进程PGID:进程组号。主进程(初始的父进程)创建的所有进程拥有相同的进程组号PGIDUID:进程的真实用户号EUID:进程的有效用户号。用于确定进程在给定时刻对哪些资源和文件具有访问权限。多数情况下EUID和UID相同GID:进程用户组号FGID:有效进程用户组号1.2 Linux进程派生关系Linux用进程树进行进程管理v0号进程(也称交

3、换进程)完成进程调度和让进程在主存与磁盘上进行交换v1号进程(内核态)负责执行内核的部分初始化工作及系统配置,并创建若干个用于高速缓存和虚拟主存管理的内核线程v1号进程调用execve()运行可执行程序init,演变成用户态1号进程,即init进程,完成系统启动工作v1.3 Linux线程(1)v从Linux2.6开始,Linux kernel才有真正的thread支持Linux2.6线程库叫NPTL(Native POSIX Thread Library),基于进程实现,但创建线程的效率非常高核内的轻量级进程形式:拥有独立的进程表项,而所有操作都在核外pthread库中进行核外的1:1线程模

4、型:一个核心进程对应一个线程,将线程调度等同于进程调度,交给核心完成,而其它工作都在核外线程库中完成1.3 Linux线程(2)vLinux线程分为内核线程和用户线程两种线程模型内核线程更利于并发使用多处理器的资源用户线程更多考虑上下文切换开销内核线程没有独立的地址空间,只在内核空间运行用户线程在用户空间中实现内核线程的调度由内核负责,内核线程处于阻塞状态时不影响其他的内核进程用户线程的调度由线程运行库来组织线程的调度,进程中的用户线程阻塞时整个进程会切换为等待状态,其他线程不能运行实验五 进程(线程)控制v预备知识Linux进程及其属性Linux进程派生关系Linux线程v实验指导Linux

5、进程管理命令Linux进程控制函数Linux守护进程v实验目的、内容2.1 Linux进程管理命令进程查看vps命令:报告进程标识、用户、CPU时间消耗以及其他属性命令单独使用可以看到前台执行的进程;后台进程可以使用带参数的ps命令(如ps -ax)提供进程的一次性查看,结果不连续结果数据很精确,但数据量庞大vtop命令:显示CPU占用率为前几位的进程动态显示,输出结果连续消耗较多的系统资源vpstree命令:列出当前的进程,以及它们的树状结构将当前的执行程序以树状结构显示,弥补ps命令的不足支持指定特定程序(PID)或使用者(USER)作为显示的起始2.1 Linux进程管理命令进程终止v终

6、止一个进程或终止一个正在运行的程序kill命令:根据PID向进程发送信号,缺省操作是停止进程如果进程启动了子进程,只终止父进程,子进程运行中将仍消耗资源成为“僵尸”进程,可用kill -9强制终止退出pkill命令:终止同一进程组内的所有进程。允许指定要终止的进程名称,而非PIDKillall命令:与pkill应用方法类似,直接杀死运行中的程序数据库服务器的父进程不能用这些命令杀死(容易产生更多的文件碎片导致数据库崩溃)2.1 Linux进程管理命令进程优先级设置v进程优先级nice值进程在计划执行时被赋予默认值为0,范围从20(最有利的调度优先级)到19(最不利的调度优先级)v进程优先级设置

7、nice命令:使用比默认nice值更高或者更低的优先级运行进程 renice命令:调整已经运行的进程的优先级 root用户可以提高或降低任意进程的nice值,普通用户只能增加进程优先级的值(降低优先级)2.2 Linux进程控制函数创建进程vfork() 产生当前进程的 拷贝2.2 Linux进程控制函数修改进程v函数族exec() :启动另外的进程取代当前的进程#include int execl(const char *path, const char *arg, .);int execlp(const char *file, const char *arg, .);int execle(

8、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进程控制函数进程属性操作v设置进程属性nice():改变进程执行的优先级setpgid():将指定进程的组进程设为指定的组识别码setpgrp():将目前进程的组

9、进程识别码设为目前进程的进程识别码,等价于setpgid(0,0)setpriority():设置进程、进程组和用户的执行优先权v获取进程属性getpid():获取目前进程的进程标识getpgid():获得参数pid指定进程所属的组识别码getpgrp():获得目前进程所属的组识别号,等价于getpgid(0)getpriotity():获得进程、进程组和用户的执行优先权2.2 Linux控制函数进程退出v正常退出:在main()函数中执行return、调用exit()函数或_exit()函数v异常退出:调用abort()函数、进程收到信号而终止v区别exit是一个函数,有参数,把控制权交给系

10、统return是函数执行完后的返回,将控制权交给调用函数exit是正常终止进程,abort是异常终止exit中参数为0代表进程正常终止,为其他值表示程序执行过程中有错误发生exit()在头文件stdlib.h中声明,先执行清除操作,再将控制权返回给内核_exit()在头文件unistd.h中声明,执行后立即返回给内核2.3 Linux守护进程v独立启动(stand_alone)守护进程常驻内存,一直占用系统资源外界有要求时响应速度较快放在/etc/init.d/目录下v超级守护进程系统启动时由超级守护进程xinet负责管理,当相应请求到来时通过xinet的转接唤醒被xinet管理的进程最初只有

11、xinet占有系统资源,其他的内部服务不占有系统资源,只有数据包到来时才被唤醒放在/etc/xinit.d/目录下2.3 Linux守护进程守护进程的编写(1) 创建子进程,退出父进程脱离控制终端:子进程变成1号进程(init)的子进程(2) 在子进程中创建新会话摆脱其他进程的控制(函数setsid)(3)改变当前目录为根目录脱离父进程文件系统控制(函数chdir)(4)重设文件权限掩码设置为0,增强守护进程的灵活性(函数umask )(5)关闭文件描述符关闭文件描述符为0、1和2的三个文件(输入、输出和报错文件)实验五 进程(线程)控制v预备知识Linux进程及其属性Linux进程派生关系Linux线程v实验指导Linux进程管理命令Linux进程控制函数Linux守护进程v实验目的、内容3.1 实验目的v加深对进程概念的理解,明确进程与程序的区别v掌握Linux进程创建及撤销的方法,进一步认识并发执行的实质v掌握Linux系统下守护进程的创建方法3.2 实验内容v获取进程信息编写程序,获取系统当前执行进程的信息,包括进程名称与ID、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论