【Linux:进程概念】

目录

了解冯诺依曼思想:

操作系统如何管理软硬件资源?

进程与程序的区别 


  • 了解冯诺依曼思想:

1.所有的数据采用二进制的存储

2.数据存储在内存中

CPU处理器只做俩种运算:逻辑&&算数运算 

  • 操作系统的组成?

操作系统内核(本质上就是某种代码的统称)+应用,操作系统的本质也是软件

  • 操作系统如何管理软硬件资源?

  • 组织+描述

描述:struct task struct {}

组织:双向链表

在此还需要知道的一个常识:CPU(中央处理器)的数量远小于进程数。进程是需要等待操作系统分配CPU资源运行。

  • 进程状态
  1. 运行态:进程已得到系统分配的cpu资源,正在执行计算
  2. 就绪态:进程基础准备完成,等待操作系统分配cpu
  3. 阻塞态:进程缺乏某种资源无法分配到cpu资源,导致进程不能被执行
  • 进程状态细分
R进程正在执行
S进程暂时处于休眠状态(可打断)
D进程暂时处于休眠状态(不可被打断)
T进程中断
X死亡状态
t跟踪状态,当进程被gbd调试时,就会产生该状态
  • 仔细说明死亡状态不能被肉眼查询的原因:

死亡状态,ps,aux是查不到该进程信息的,该进程当要被释放时,释放的前一刻进程状态标记为死亡状态,ps,aux能查进程信息全凭进程的组织双向链表,遍历该链表由此查看进程

  • 进程与程序的区别 

进程是由操作系统管理的,程序运行起来叫做进程

程序的本质为一个文件,当程序跑起来时就叫做进程,这是一个动态的,由操作系统管理,操作系统分配cpu资源对进程进行一个管理

每一个进程都有属于自己的“身份证号”pid,在当前操作系统中,每一个进程都有一个具有唯一性的pid号,进程的观察需要使进程运行起来,查看进程信息命令:Ps,aux查看当前进程的信息

  • Fork函数 

fork函数的返回值三种类型

<0fork函数创建失败
==0返回给子进程
>0返回父进程

父子进程跑不一样的代码就需要if分支来实现  fork的返回类型pid_t(本质是整形)

  • Getpid函数,谁调用就返回谁的PID
  • Getppid:谁调用就返回谁的父进程PID
  • 僵尸进程

  • 俩个kill命令:
  1. .Kill [pid]:

  • .Kill -9 [pid]: 强杀命令 

Z表示僵尸状态

  •  僵尸进程产生的原因?

父进程创建一个子进程,子进程先父进程退出,子进程在退出时向父进程发送信号(SIGCHLD),但父进程对该信号忽略处理,导致子进程在退出时,没有进程回收子进程的资源导致子进程变成了僵尸进程

  • 僵尸进程有什么危害?

僵尸进程在内核中的task_struct结构体并没有被释放,导致内存泄露,并且强杀命令也不能干掉

  • 如何解决?
  1. 重启系统

  2. 进程等待

  3. 让僵尸进程成为孤儿进程(杀掉僵尸进程的父进程),继而僵尸进程就会被1号进程收养,最后1号进程会回收它的资源

  • 孤儿进程

  • 孤儿进程如何产生?

父进程比子进程先退出,则子进程就是孤儿进程

儿进程:父进程变成1号进程,当子进程的父进程先与子进程先退出时,子进程会被1号进程所收养,1号进程也叫init进程,操作系统启动的第一个进程叫做1号进程

这样就可以解决僵尸进程,把僵尸进程的父进程干掉,僵尸进程就会被1号进程收养,回收它的资源

孤儿进程被领养后就变成了一个后台进程

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dongliner~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值