网络编程_进程基础

  1. 进程:程序在计算机中的一次执行过程
    1. 过程:
      内核将程序读入内存,为程序镜像分配内存空间
      内核为该进程分配进程标志符PID
      内核为该进程保存PID及相应的进程状态信息
    2. 抽象:
      一个独立的逻辑控制流—-独占处理器
      一个私有的地址空间—-独占存储器系统
    3. 本质:
      程序在地址空间中按照代码逻辑控制流执行
      资源分配最小单位
  2. 进程状态

    • 就绪:进程已得到除CPU外的所有必要资源,获得CPU立即执行
    • 运行:程序正在CPU上执行
    • 阻塞:等待某个事件发生而无法执行时,放弃CPU
  3. 进程与程序的区别

    • 进程:动态 有生命周期 只能对应一个程序
    • 程序:静态 指令的集合 可以对应多个进程
  4. 查看进程

CMD含义
ps查看本终端上正在运行的进程
ps -o pid,ppid,cmd查看pid,ppid,cmd
ps -p 进程PID查看某进程
ps -aux查看所有进程 a:终端上所有用户的进程 u:以用户为中心显示详细信息 x:无终端进程
ps -efe:所有进程 f:树状显示

5. 创建进程

CMD含义
pid_t fork(void);复制父进程,返回两次pid,即父子进程的关系,并发执行,复制出一块新内存,拥有相同但独立的地址空间,文件可共享
int system(const char* commond);阻塞父进程,shell执行命令或程序,执行后不覆盖原内存内容,调用完后返回
exec替换原进程,函数族共6个函数,执行后覆盖原内存内容,调用完后不再返回

6. 结束进程
main()函数退出
调用void exit(int status)函数,回收资源
调用void _exit(int status)linux系统函数,不回收资源
调用void abort(void)函数,错误终止,强行退出
信号终止,可以终止其他进程
7. 停止进程
1. 休眠
int sleep(unsigned int secs);
返回未休眠的秒数
2. 暂停
int pause(void); 等待信号
如果程序没有处理信号,直接中断,执行默认信号处理,程序后续代码不再执行
如果程序存在信号处理,执行信号处理后执行后续代码
3. 等待
pid_t wait(int* status);
pid_t waitpid(pid_t pid,int* status,int options);
阻塞状态等待子进程退出,回收资源
8. 孤儿进程和僵尸进程
孤儿进程:父进程先于子进程退出,init作为新的父进程,无害
僵尸进程:子进程退出,父进程未获取子进程的状态信息(调用wait()wait(pid)),不能回收资源,避免出现僵尸进程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值