IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 进程的概念(下) -> 正文阅读

[开发工具]进程的概念(下)

进程概念done


补:

  • 进程是具有独立性的
  • 写实拷贝:简单点理解就是,当有一个人想要修改父子进程里面的数据的时候,操作系统不会立即就对代码进行修改,而是重新开辟一个进程,把当前进程的执行信息拷贝过去,然后在新开辟的进程中去做数据的修改,这样可以保护数据的独立性

在vim中如果不想退出vim去查man手册可以:

  • 在命令行输入!man 后面加要查的(q退出)在这里插入图片描述
  • 不退出编译程序:!make
  • 不退出执行程序:!./myproc
  • 前台进程(状态后有+):特点就是可以用ctrl+c 来结束进程,输入一些命令行指令没有反应
  • 后台进程(状态后没有+):特点就是可以执行很多命令行指令,但是ctrl+c已经不能杀掉进程了,用可以用kill杀

通过系统调用创建进程–fork初识

在这里插入图片描述

如何理解fork创建子进程
  1. ./cmd or run command(跑某些命令),fork :在操作系统角度,上面的创建进程的方式,没有差别。
  2. fork本质是创建进程---->系统里面多了一个进程---->与进程相关的内核数据结构(task_struct)+进程的代码和数据
    • 我们只是fork了创建了子进程,但是子进程对应的代码数据呢??—>默认情况下会‘’继承‘’父进程的代码和数据,内核数据结构task_struct也会以父进程为模板,初始化子进程的task_struct
    • fork之后父子进程代码是共享的(之前也是相同的只是父进程的程序计数器的属性也会被子进程继承下来,所以子进程不会去执行fork之前的代码)
    • 一般父子代码只有一份,默认情况下数据也是‘’共享的‘’,不过需要考虑修改的情况!(通过写实拷贝来完成进程数据的独立性)
fork的返回值
  • 通过fork的返回值来让子进程和父进程做不同的事情

    • 失败 < 0
    • 成功:给父进程返回子进程的pid,给子进程返回0在这里插入图片描述
    • 父子进程谁先return谁就会发生写实拷贝
  • 可以看到一点就是那个父进程的父进程是就是命令行(bash)在这里插入图片描述

  • 如何理解返回值的设置

    • 父:子=1:n因为是一对多,所以需要让父进程来控制子进程的话就需要子进程的pid
    • 可以发现有两个进程在跑在这里插入图片描述在这里插入图片描述
    • 通过if语句来分流;fork之后父子不确定谁先运行(调度器会自己决定)

进程状态

在这里插入图片描述
进程的状态信息在task_struct(PCB)中

  • 进程状态的意义:方便OS快速判断进程,完成特定的功能,比如调度(本质是一种分类)

  • 具体状态:

    1. R(running运行状态):不一定正在占用CPU,处于运行状态的含义是处于运行队列当中,可以随时被CPU调度

    2. 当我们完成某种任务的时候,任务条件不具备,需要进程进行某种等待可以用S或者D表示(进程不会只等待CPU资源也会等待其他的资源,这时被称为等待队列)

    3. 所谓的进程,在运行的时候,可能因为运行需要,而在不同的队列里!!在不同的队列里所处的状态是不一样的!!

    我们把,从运行状态的task_struct放到等待队列中,就叫做挂起等待(阻塞);从等待队列,放到运行队列,被CPU调度就叫做唤醒进程

    1. S(sleeping浅度睡眠状态):可中断睡眠状态

    2. D(disk sleep深度睡眠状态):不可中断状态(进程如果处于D状态,不可被杀掉!)

    3. T(stopped暂停状态):数据就不会在进行更新

      kill -l 可以查看一些对进程的操作,给进程发信号可以使进程暂停或者运行在这里插入图片描述
      暂停用法就是:kill -19 PID在这里插入图片描述
      继续运行用法:kill -18 PID(但是会被调到后台运行可以用-9 来结束运行)在这里插入图片描述

    4. t(tracing stop追踪状态):也是一种暂停,断点的应用就是追踪状态

    5. X(dead 死亡状态):回收进程资源=进程相关的内核数据结构+代码和数据

    6. Z(zombie 僵尸状态): 辨别退出死亡原因(获取进程退出的信息);如果没有人检测或回收进程(父进程),该进程退出就进入Z
      自动查看进程的命令行脚本while : ; do ps axj |head -1 && ps axj |grep test |grep -v grep; sleep 1; echo “###################”; done (大概意思就是每1秒查看一次进程的数据,并且打印完之后会打印##############来分隔)在这里插入图片描述

    7. 有一种现象在这里插入图片描述
      当死循环打印hello的时候可以发现只有很少的时间进程处于R状态,大部分时间处于S状态!!!这是因为数据输出到外设很慢,IO等待外设是需要花时间的,所以大部分时间都在休眠

  • 孤儿进程

    • 父进程先死那么就会由1号进程领养,1号进程也就是操作系统在这里插入图片描述

进程优先级
  • 基本概念

    • CPU资源分配的先后顺序,就是指进程的优先权
    • 优先权高的进程有优先执行权利。配置进程优先权对多任务环境的Linux很有用,可以改善系统性能。
    • 还可以把进程运行到指定的CPU上,这样一来,把不重要的进程安排到某个CPU,可以大大改善系统整 体性能。
  • 查看系统进程

    • ps -l 查看进程(PRI就是优先级)
    • ls -nl 查看UID
    • Linux中的优先级数据,值越小优先级越高

    PRI and NI

    • PRI就是对应的优先级数据
    • NI(nice)就是对应的修正数据
    • 加入nice值后,PRI(new)=PRI(old)+nice (每一次都会重置)
    • nice其取值范围是-20至19,一共40个级别

    PRI vs NI

    • 要强调一点的是,进程的nice值不是进程的优先级,他们不是一个概念,但是进程nice值会影响到进程的优先级变化。
    • 可以理解nice值是进程优先级的修正数据

    进程优先级的调整:

    • 优先级再怎么设置,也只能是一种相对的优先级,不能出现绝对的优先级,否则会出现很严重的进程“饥饿问题”
    • 调度器:较为均衡的让每个进程享受CPU的资源

    其他概念:

    • 竞争性: 系统进程数目众多,而CPU资源只有少量,甚至1个,所以进程之间是具有竞争属性的。为了高效完成任务,更合理竞争相关资源,便具有了优先级
    • 独立性: 多进程运行,需要独享各种资源,多进程运行期间互不干扰
    • 并行: 多个进程在多个CPU下分别,同时进行运行,这称之为并行
    • 并发: 多个进程在一个CPU下采用进程切换的方式,在一段时间之内,让多个进程都得以推进,称之为并发
  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-03-21 21:12:07  更:2022-03-21 21:12:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 7:34:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码