Linux--进程状态

31 篇文章 0 订阅

Linux系统编程阶段:使用Linux系统提供的接口完成指定功能程序的编写;

1. 冯·诺依曼体系结构

  • 硬件单元:输入设备-键盘,输出设备-显示器,存储器,运算器+控制器(中央处理器cpu)

2. 操作系统

  • Linux组成:内核+应用
  • 定位:计算机上搞管理的软件,管理计算机上的软硬件资源。
  • 系统调用接口:操作系统提供的用户访问系统内的接口。
  • 库函数与系统调用接口的关系:库函数实际上就是对系统调用接口进行的一层封装后的接口。

3. 进程概念

  • 进程:运行中的程序。实际上,对于系统来说,系统就是pcd。这个程序运行的动态描述,叫做pcd进程控制块,在Linux下是一个task_struct结构体。
  • 通过程序运行的动态描述,实现对程序运行调度以及资源的管理。
  • 描述信息:内存指针、上下文数据、程序计数器、进程ID-pid、IO信息、进程优先级、进程状态、记账信息…
  • 并发:轮询处理;并行:同时处理。

4. 进程状态

  • 创建进程:进程就是一个pcd,是一个task_struct结构体(linux中),创建一个进程,实际上就是创建一个task_struct结构体。
  • pid_t fork(void)–通过复制父进程创建一个新的子进程;对于父进程返回子进程pid,对于子进程返回0;
  • ps -ef / -aux 查看所有进程信息
    在这里插入图片描述在这里插入图片描述
  • 进程状态
  • 时间片:CPU处理程序执行的这段时间。
  • 运行态(R):正在运行或者轮转到时间片,则能够运行统称运行态。
  • 可中断休眠态(S):可以被中断的休眠状态(满足唤醒条件,或者休眠被中断则进入运行态)。
  • 不可中断休眠态(D):不能被中断的休眠状态(满足唤醒条件后才能进入运行态)。
  • 停止态(T):程序停止运行的状态(依然会被调度,但是什么都不做)。
  • 死亡态(X):一闪而逝的状态。
  • 僵尸态(Z):进程已经退出不再调度了,但是进程的资源还没有被完全释放,等待处理的一种状态。
  • 僵尸进程:处于僵尸态的进程,是一种退出了,但是资源没有完全被释放的进程。
    · 产生:子进程先于父进程退出,但是父进程没有关注到子进程的退出,因此系统不会完全释放子进程的资源,这个子进程进入僵尸状态。 子进程退出之后,在进程pcd中保存了自己的退出返回值,在父进程没有关注处理的情况下,pcd资源是不会被释放。
    · 危害:资源泄露(一种是pcd所占的内存资源一直无法被回收,一种是一个用户所能创建的进程数量是有限的)。
    · 处理:退出父进程
    · 避免:进程等待
    在这里插入图片描述
  • 孤儿进程:父进程先于子进程退出,子进程就会成为孤儿进程,运行在后台,父进程成为1号进程(早期叫init进程,后期叫systemd)。
    在这里插入图片描述
  • 精灵进程(守护进程):特殊的孤儿进程,运行在后台的一种特殊进程,独立于控制终端并周期性地执行某些任务,脱离登录会话。
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值