第五讲--linux 多进程与多线程程序设计

第五讲--linux 多进程与多线程程序设计

ID:34532503

大小:375.88 KB

页数:46页

时间:2019-03-07

第五讲--linux 多进程与多线程程序设计_第1页
第五讲--linux 多进程与多线程程序设计_第2页
第五讲--linux 多进程与多线程程序设计_第3页
第五讲--linux 多进程与多线程程序设计_第4页
第五讲--linux 多进程与多线程程序设计_第5页
资源描述:

《第五讲--linux 多进程与多线程程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、LINUX操作系统LINUXLINUX操作系统十讲操作系统十讲信息科学与工程学院付冲LINUX操作系统Linux操作系统十讲第一讲Linux导论第二讲Linux文件系统与基本指令集第三讲LinuxC程序设计基础第四讲Linux文件系统程序设计第五讲Linux多进程与多线程程序设计第六讲Linux进程间通信程序设计第七讲Linux服务与TCP/IP网络程序设计第八讲LinuxShell程序设计第九讲LinuxGUI程序设计第十讲Linux前沿热点技术导论(集群,虚拟化,存储,安全)LINUX操作系统第五讲Linux多

2、进程与多线程程序设计LINUX操作系统5.1Linux编程—多进程例1.获得进程标识号程序名称:pripds.cLINUX操作系统补充知识1.进程的产生(1)多进程,进程编号PID(processID)(2)Linux系统的第一个进程:init,PID=1(3)新进程创建:fork(4)childprocess与parentprocess(5)系统每一个进程都是由父进程fork而来,都可向上追溯到init。LINUX操作系统2.显示进程(a)命令:ps各自段说明:(1)PID:进程编号(2)TTY:进程执行时的终端

3、(3)TIME:进程执行所使用的CPU时间(4)CMD:指令名称(b)显示的进程信息命令:ps-uax(Linux)或ps-le(Unix/Linux)LINUX操作系统u:查看进程所有者及其它一些详细信息a:显示终端上的所有进程,包括其他用户的进程x:显示没有控制终端的进程e:显示所有进程l:长格式(包含父进程编号PPID和优先级NI等)LINUX操作系统各字段说明:(1)USER:产生该进程的用户(2)PID:进程编号(3)%CPU:CPU占用率(4)%MEM:内存占用率(5)VSZ:占用的虚拟内存大小(6)R

4、SS:占用内存大小(7)TTY:执行进程的终端(8)STAT:进程的状态(9)START:进程开始执行的时间LINUX操作系统(10)TIME:进程执行的时间(11)COMMAND:执行的指令名称(c)查看进程家谱命令:pstreeLINUX操作系统3.进程优先级管理(1)启动进程时设定优先权使用nice指令启动进程,可以设定进程的优先权优先权:范围-20~19,正值越大优先权越低,负值越小优先权越高,默认值为0。示例:nice-5moreselect_sort.c&(优先级+5)nice--10moretree.

5、c&(优先级-10)(2)显示优先权ps-le(NI字段为优先级)LINUX操作系统4.管理执行中的进程(1)指定进程renice-101921(调整1921号进程的优先级至-10)(2)指定用户renice5-utom(调整用户tom的进程的优先级至+5)LINUX操作系统5.终止进程(1)终止进程语法:kill[终止信号]PID示例:kill1022(2)终止信号(signal)默认终止信号:15强制终止信号:9示例:kill-91020LINUX操作系统例2.获得实际用户id、有效用户id、实际组id、有效组

6、id实际用户:shell的登录用户有效用户:可执行程序的属主用户实际组:实际用户所在组有效组:有效用户所在组注:用户id,组id相关文件—/etc/passwdLINUX操作系统补充知识——SUID与SGIDsuid/sgid是做什么的?为什么会有suid位呢?要想明白这个,先让我们思考个问题:如何让每个用户更改自己的密码?用户修改密码,是通过运行命令passwd来实现的。最终必须要修改/etc/passwd文件,而passwd的文件的属性是:#ls-l/etc/passwd-rw-r--r--1rootroot2

7、520Jul1218:25passwdLINUX操作系统我们可以看到passwd文件只有对于root用户是可写的,而对于所有的他用户来说都是没有写权限的。那么一个普通的用户如何能够通过运行passwd命令修改这个passwd文件呢?LINUX操作系统为了解决这个问题,SUID/SGID便应运而生,而且AT&T对它申请了专利。SUID和SGID是如何解决这个问题呢?首先,我们要知道一点:进程在运行的时候,有一些属性,其中包括实际用户ID,实际组ID,有效用户ID,有效组ID等。实际用户ID和实际组ID标识我们是谁,谁

8、在运行这个程序,一般这2个字段在登录时决定,在一个登录会话期间,这些值基本上不改变。LINUX操作系统而有效用户ID和有效组ID则决定了进程在运行时的权限。内核在决定进程是否有文件存取权限时,是采用了进程的有效用户ID来进行判断的。知道了这点,我们来看看SUID的解决途径:当一个程序设置了为SUID位时,内核就知道了运行这个程序的时候,应该认为是文件的所有者

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

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

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