Linux下C语言教程-李慧芹老师-第十五章
目录
进程基本知识
已经进入多进程阶段
进程标识符pid
类型pid_t,传统意义上是一个16位有符号整型数。
命令ps
常用命令:ps axf,ps aux,ps axm,ps ax -L
进程号是顺次向下使用
| 1 |  | 
进程的产生
pid_t fork();
- 以复制(duplicating)当前进程的方式创建一个新进程
- 和setjmp一样,执行一次,返回两次
- 在fork处复制,不会从头运行
fork后父子进程的不同之处:
- fork的返回值不一样
- pid不同
- ppid也不同
- 未决信号和文件锁不继承
- 资源利用量清0
init进程:1号,是所有进程的祖先进程
调度器的调度策略来决定哪个进程先执行
fflush()的重要性
| 1 |  | 
进程的消亡及释放资源
| 1 |  | 
分配法和交叉分配法,90%优先选择交叉分配法。
池类算法:
上游往池子里放任务,下游三个线程从池子里取任务。
exec函数族
eg. bash进程创建primer进程
| 1 |  | 
用户权限及组权限
u+s:如果文件是可执行的,则执行文件时,是以文件的拥有者的权限执行的。
| 1 |  | 
所以普通用户执行passwd时,是以root的权限执行的。
g+s:如果文件是可执行的,则执行文件时,是以文件的所在组的权限执行的。
uid和gid都有三种类型:
- real uid:进程的实际所有者
- effective uid:进程的有效所有者
- saved uid:进程的保存的有效所有者
| 1 |  | 
| 1 |  | 
观摩课:解释器文件
unix讲究机制而非策略
脚本,后缀名是什么都可以,一般用sh, exec
| 1 |  | 
#!是一种约定俗成的标记,告诉系统这个脚本应该用什么解释器来执行。
system()函数
| 1 |  | 
相当于fork+exec+wait的封装
进程会计
| 1 |  | 
进程时间
| 1 |  | 
守护进程
- 守护进程PPID为1
- 守护进程没有控制终端,TTY为?
- PID, PGID, SID相同
| 1 |  | 
- 会话(session):一个或多个进程组的集合,以 - sid为标识- pid_t setsid(void);- setsid必须由非- leader进程调用,从而创建一个新的会话。- 前台进程组:正在与终端交互的进程组
- 后台进程组:正在运行,但不与终端交互的进程组
 
- 终端: 
 我们接触的都是虚拟终端
单实例守护进程:锁文件/var/run/name.pid
启动脚本文件:/etc/rc*...
系统日志
syslogd服务
| 1 |  | 
| 1 |  | 
Linux下C语言教程-李慧芹老师-第十五章
      http://sinlatansen.github.io/2024/05/16/Linux下C语言教程-李慧芹老师-第十五章/