镜像下载、域名解析、时间同步请点击 阿里云开源镜像站
接下来的几篇博客,我将主要按照这个思维导图的划分去进行讲解。
在理解什么是进程管理之前,我想我们可以先理解一下什么是管理!问题:什么是管理?
管理的过程就是:“先描述,再组织”
【所有事情都可以被分类为:决策 和 执行】
管理的三个角色:
信息(数据)
-> 信息量太大怎么办?
结论:
把程序加载到内存后,它就是进程了。 (方便理解,这里的定义是不准确的)
前面我们提到了,管理就是要先描述再组织,那么对进程的管理该如何描述和组织呢?
其实在将程序的代码和数据加载到内存后,OS还会为其创建对应的数据结构——-进程控制块(process control block).
进程控制块(PCB)本质就是一个结构体,它里面存储着进程的相关信息。(所以它可以用来描述进程)
在Linux中,进程控制块的具体名称是:task_struct
包含于<sys/types.h>和<unistd.h>
pid_t getpid(void);
pit_t getppid(void);
保存上下文信息的目的是为了下一次使用时能恢复到之前的状态。
在程序被加载到内存中时,操作系统会为其创建对应的task_struct结构体用于描述进程的信息。
由于CPU内部只有一套寄存器,计算时需要将内存数据移动到CPU内的寄存器中,形成当前的上下文数据。
当进程被切换时:(被切换的情况:①时间片到了 ②来了更高优先级的进程,当前进程被抢占了)
因此在进程切换前,会先保存上下文信息。以便于下一次恢复上下文。
问题:进程优先级是什么?
CPU资源分配的先后顺序,就是指进程的优先级。
问题:为什么要有优先级?
存在优先级后,可以把进程运行到指定的CPU上,这样一来,就可以把不重要的进程安排到某个CPU上,可以极大地改善系统的整体性能。
问题:怎么设置/修改优先级?
利用PRI和NI调整优先级。
在弄清楚PRI和NI之前,我们先来熟悉一条Linux中的指令!
ps -l //查看当前进程的优先级方面的信息(主要用来看优先级的) //ps -al 也可以
通过这个图,我们的聚焦点主要集中在我圈出的这几列。
优先级的修改都是通过对nice值进行修改,从而间接的修改PRI的值的!这里我们要介绍一下top命令了!
top #top命令相当于Windows中的任务管理器
概括修改优先级的流程:
进入top后 —> 按 “r” —> 输入进程PID —> 再输入nice值即可修改 //没权限要sudo一下
注意:每次输入nice值后,都是对基础 PRI 值进行修改的!!! 即:每次调整都是从起始值PRI ± nice 值的我举个?,
基础值PRI = 20,那么输入nice = 10后。 PRI —》30
在此 基础上再输入 nice = -10后。 PRI —》-10
解释:第二次也是在基础值PRI = 20的基础上进行±nice的!!!
本文转自:https://blog.csdn.net/weixin_51696091/article/details/121711612
相关推荐
© 2020 asciim码
人生就是一场修行