预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共59页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Linux进程和线程编程1、Linux中的进程相关概念2、Linux中的进程的创建3、Linux中的进程的管理和守护进程6.1进程的概述6.1进程的概述6.1.1进程的描述内存是计算机的敏感资源熟练掌握对内存的操作是一个程序员的必备素质。数据的内部存储方式:大小端法在c中不同的数据类型占用的空间是不同的例如char类型占用1个字节而int占用4个字节时间和空间是计算机的两个基本的概念操作系统将这两个概念实现未进程和文件。进程ID是一个进程的基本属性其作用类似与人的身份证号根据进程ID用户可以精确的定位一个进程一个标识符对应于一个进程多个进程标识符可以对应于一个程序。进程标识符的类型是pit_t他是一个无符号整数。使用PS查看当前进程ps-u[用户名]第一列是进程id最后一列是对应的程序名称Linux操作系统包括三种不同类型的进程每种进程都有自己的特点和属性。交互进程——由一个shell启动的进程。交互进程既可以在前台运行也可以在后台运行(人机交互)。批处理进程——这种进程和终端没有联系是一个进程序列(多个进程)。监控进程(也称守护进程)——Linux系统启动时启动的进程并在后台运行。运行状态:此时进程或者正在运行或者准备运行等待状态:此时进程在等待一个事件的发生或者某种系统资源停止状态:此时进程已经被终止死亡状态:这是一个停止的进程但是在进程向量数组中占有一个task_struct结构R(TASK_RUNNING)可执行状态S(TASK_INTERRUPTIBLE)可中断的睡眠状态。D(TASK_UNINTERRUPTIBLE)不可中断的睡眠状态。s进程的领导者+前台进程每一个进程有6个重要的ID分别是进程ID、父进程ID、有效用户ID、有小组ID、实际用户ID和实际组ID。这六个ID保存在内核中的数据结构中有些时候用户程序需要用到这些ID。例如在/proc文件系统下每个进程有一个目录里面存放进程的相关信息当进程要读取这些文件时应该先得到当前进程的ID才能确定进入那一个进程相关的子目录由于这些ID存储在内核之中因此linux提供一组专门的接口函数访问这些ID值。Linux环境下使用getpid和getppid函数获得进程和父进程的ID其函数原型如下:#include<unistd.h>Pid_tgetpid(void)pid_tgetppid(void)函数成功返回进程的id失败返回-1Linux环境下使用getuid和geteuid函数获得进程用户ID其函数原型如下:#include<unistd.h>uid_tgetuid(void)uid_tgeteuid(void)函数成功返回进程的用户id失败返回-1.Linux环境下使用getgid和getegid函数获得进程用户组ID其函数原型如下:#include<unistd.h>gid_tgetgid(void)gid_tgetegid(void)函数成功返回进程的用户id失败返回-1Pid_t类型参看/usr/include/bits/types.h实际就是int类型每启动进程和调度进程1手动启动:用户直接输入shell命令后回车直接启动进程前台启动:用户输入一个shell命令后按回车就启动给一个前台进程后台启动:在shell命令后加入一个“&”符号再按回车键就可以启动一个后台作业。进程的前后台切换1bg命令(background)格式bg[作业号]功能:将前台作业切换到后台运行若没有指定的作业则将当前作业切换到后台例如使用vi编辑文件f1然后用ctrl+Z组合挂起vi再切换到后台3.Fg挂起程序作用:fg命令使一个被挂起的进程在前台执行。格式:fg-[job-spec][job-spec]:后台任务号码。说明:fg命令和bg命令是相对应的。如果想查看后台程序运行情况可以使用fg命令把它调回前台查看。bg命令可以使多个进程放到后台中执行。作用:ps命令主要查看系统中进程的状态。格式:ps[选项]主要选项如下。-A:显示系统中所有进程的信息。-e:显示所有进程的信息。-f:显示进程的所有信息。-l:以长格式显示进程信息。-r:只显示正在运行的进程。-u:显示面向用户的格式(包括用户名、CPU及内存使用情况等信息)。-x:显示所有非控制终端上的进程信息。-p:显示由进程ID指定的进程的信息。-t:显示指定终端上的进程的信息。说明:要对进程进行监测和控制首先要了解当前进程的情况也就是需要查看当前进程。ps命令就是最基本、也是非常强大的进程查看命令。根据显示的信息可以确定哪个进程正在运行、哪个进程被挂起、进程已运行了多久、进程正在使用的资源、进程的相对优先级以及进程的标志号(PID)。所有这些