1.Linux进程
1.1程序和进程
进程控制块PCB
时间片
进程标识 标识号
父进程 init进程 ID 为1
1.2进程的运行身份
真实用户 ID 和真实组 ID 可以通过函数getuid()和 getgid()获得
有效用户 id 和有效组 id 通过函数geteuid()和 getegid()获得
影子口令 /etc/shadow
1.3进程的状态
执行态
就绪态
等待态
1.4进程结构
数据段
代码段
堆栈段
1.5进程管理
ps 查看系统中的进程
top 动态显示系统中的进程
renice 改变正在运行进程的优先级
kill 向进程发送信号(包括后台进程)
bg 将挂起(暂停)的进程放到后台执行
ps –aux 查看所有的进程
ps -elf 显示父子进程
./a.out &(&表示后台运行)
(一个死循环, 按 ctrl+z 可以把进程暂停)
jobs 可以查看后台任务
fg 1 把后台任务带到前台
kill -9 进程号 表示向某个进程发送 9 号信号,从而杀掉某个进程
stat 状态{S睡眠 T暂停 R运行 Z僵尸}
2.进程的创建
Linux 下有四类创建子进程的函数: system(),fork(),exec*(),popen()
#include <unistd.h>
pid_t fork(void);
//它执行一次返回两个值
int execl(const char *path, const char *arg, ...)
pclose 等待新进程的结束, 而不是杀新进程
3.进程控制与终止
3.1进程的控制
孤儿进程(父进程先退出)
僵尸进程(子进程先退出)--系统不会自动清理掉子进程的环境, 而必须由父进程调用 wait 或 waitpid 函数来完成清理工作
#include <sys/types.h>
#include <sys/wait.h>
pid_t wait(int *status);
pid_t waitpid(pid_t pid, int *status, int options);
3.2进程的终止
main函数自然返回
exit函数--(会清理I/O缓冲)
_exit函数
abort函数
接收到能导致进程终止的信号 ctrl+c SIGINT ctrl+\ SIGQUIT
1.1程序和进程
进程控制块PCB
时间片
进程标识 标识号
父进程 init进程 ID 为1
1.2进程的运行身份
真实用户 ID 和真实组 ID 可以通过函数getuid()和 getgid()获得
有效用户 id 和有效组 id 通过函数geteuid()和 getegid()获得
影子口令 /etc/shadow
1.3进程的状态
执行态
就绪态
等待态
1.4进程结构
数据段
代码段
堆栈段
1.5进程管理
ps 查看系统中的进程
top 动态显示系统中的进程
renice 改变正在运行进程的优先级
kill 向进程发送信号(包括后台进程)
bg 将挂起(暂停)的进程放到后台执行
ps –aux 查看所有的进程
ps -elf 显示父子进程
./a.out &(&表示后台运行)
(一个死循环, 按 ctrl+z 可以把进程暂停)
jobs 可以查看后台任务
fg 1 把后台任务带到前台
kill -9 进程号 表示向某个进程发送 9 号信号,从而杀掉某个进程
stat 状态{S睡眠 T暂停 R运行 Z僵尸}
2.进程的创建
Linux 下有四类创建子进程的函数: system(),fork(),exec*(),popen()
#include <unistd.h>
pid_t fork(void);
//它执行一次返回两个值
int execl(const char *path, const char *arg, ...)
pclose 等待新进程的结束, 而不是杀新进程
3.进程控制与终止
3.1进程的控制
孤儿进程(父进程先退出)
僵尸进程(子进程先退出)--系统不会自动清理掉子进程的环境, 而必须由父进程调用 wait 或 waitpid 函数来完成清理工作
#include <sys/types.h>
#include <sys/wait.h>
pid_t wait(int *status);
pid_t waitpid(pid_t pid, int *status, int options);
3.2进程的终止
main函数自然返回
exit函数--(会清理I/O缓冲)
_exit函数
abort函数
接收到能导致进程终止的信号 ctrl+c SIGINT ctrl+\ SIGQUIT