实验五进程线程控制

实验五进程线程控制

ID:27596098

大小:346.00 KB

页数:20页

时间:2018-12-02

实验五进程线程控制_第1页
实验五进程线程控制_第2页
实验五进程线程控制_第3页
实验五进程线程控制_第4页
实验五进程线程控制_第5页
资源描述:

《实验五进程线程控制》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

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

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

3、进程用户组号1.2Linux进程派生关系Linux用进程树进行进程管理0号进程(也称交换进程)完成进程调度和让进程在主存与磁盘上进行交换1号进程(内核态)负责执行内核的部分初始化工作及系统配置,并创建若干个用于高速缓存和虚拟主存管理的内核线程1号进程调用execve()运行可执行程序init,演变成用户态1号进程,即init进程,完成系统启动工作……1.3Linux线程(1)从Linux2.6开始,Linuxkernel才有真正的thread支持Linux2.6线程库叫NPTL(NativePOSIXThreadLibrary),基于进程实现,

4、但创建线程的效率非常高核内的轻量级进程形式:拥有独立的进程表项,而所有操作都在核外pthread库中进行核外的1:1线程模型:一个核心进程对应一个线程,将线程调度等同于进程调度,交给核心完成,而其它工作都在核外线程库中完成1.3Linux线程(2)Linux线程分为内核线程和用户线程两种线程模型内核线程更利于并发使用多处理器的资源用户线程更多考虑上下文切换开销内核线程没有独立的地址空间,只在内核空间运行用户线程在用户空间中实现内核线程的调度由内核负责,内核线程处于阻塞状态时不影响其他的内核进程用户线程的调度由线程运行库来组织线程的调度,进程中的

5、用户线程阻塞时整个进程会切换为等待状态,其他线程不能运行实验五进程(线程)控制预备知识Linux进程及其属性Linux进程派生关系Linux线程实验指导Linux进程管理命令Linux进程控制函数Linux守护进程实验目的、内容2.1Linux进程管理命令—进程查看ps命令:报告进程标识、用户、CPU时间消耗以及其他属性命令单独使用可以看到前台执行的进程;后台进程可以使用带参数的ps命令(如ps-ax)提供进程的一次性查看,结果不连续结果数据很精确,但数据量庞大top命令:显示CPU占用率为前几位的进程动态显示,输出结果连续消耗较多的系统资源p

6、stree命令:列出当前的进程,以及它们的树状结构将当前的执行程序以树状结构显示,弥补ps命令的不足支持指定特定程序(PID)或使用者(USER)作为显示的起始2.1Linux进程管理命令—进程终止终止一个进程或终止一个正在运行的程序kill命令:根据PID向进程发送信号,缺省操作是停止进程如果进程启动了子进程,只终止父进程,子进程运行中将仍消耗资源成为“僵尸”进程,可用kill-9强制终止退出pkill命令:终止同一进程组内的所有进程。允许指定要终止的进程名称,而非PIDKillall命令:与pkill应用方法类似,直接杀死运行中的程序数据库

7、服务器的父进程不能用这些命令杀死(容易产生更多的文件碎片导致数据库崩溃)2.1Linux进程管理命令—进程优先级设置进程优先级nice值进程在计划执行时被赋予默认值为0,范围从−20(最有利的调度优先级)到19(最不利的调度优先级)进程优先级设置nice命令:使用比默认nice值更高或者更低的优先级运行进程renice命令:调整已经运行的进程的优先级root用户可以提高或降低任意进程的nice值,普通用户只能增加进程优先级的值(降低优先级)2.2Linux进程控制函数—创建进程fork()产生当前进程的拷贝2.2Linux进程控制函数—修改进程

8、函数族exec():启动另外的进程取代当前的进程#includeintexecl(constchar*path,constchar

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。