赞
踩
目录
Ⅲ. 环境变量(Environment Variables)
文章手稿可见文末
在Linux或Unix系统中,可以使用ps -l
命令查看系统进程的相关信息,包括UID、PID、PPID、PRI和NI等。PRI代表进程的优先级,NI代表进程的nice值。PRI值越小,进程的优先级越高。
查看一下:
修改进程优先级主要是通过修改nice值实现的,nice值范围为-20至19,数值越小,优先级越高。可以使用nice
和renice
命令或通过top
命令进行修改。
- $ sudo top
- # 在top命令界面按“r”键,输入进程PID和新的nice值
就可以发现修改成功啦
底层原理:
抢占式内核允许优先级高的进程抢占CPU资源。当一个低优先级进程正在运行时,如果来了一个高优先级的进程,调度器会将低优先级进程剥离CPU,切换到高优先级进程。
当进程在被执行的过程中,一定会存在大量的临时数据,会暂存在 CPU 内的寄存器中。
我们把进程在运行中产生的各种寄存器数据,我们叫进程的硬件上下文数据。
- 当进程被剥离:需要保存上下文数据
- 当进程恢复时:需要将曾经保存的上下文数据恢复到寄存器中。
调度器根据保存的进程上下文,就可以实现进程切换啦
上下文在哪里保存?task_struct !
环境变量是操作系统中用来指定运行环境的一些参数。它们通常具有全局特性,可以影响系统和应用程序的行为。
❓ 思考:为什么我们的代码运行要带路径,而系统的指令不用带路径?
系统中是存在相关的 环境变量,保存了程序的搜索路径的!
为什么我们的代码运行要带路径,而系统的指令不用带?其本质是由环境变量 PATH 引起的!
我们可以通过 env
指令查看环境变量:
- PATH: 指定命令的搜索路径
如何查看环境变量的内容?我们可以使用 echo
去显示:
环境变量 PATH 中会承载多种路径,中间用冒号 ( : ) 作为分隔符。
- HOME: 指定用户的主工作目录
- SHELL: 当前Shell的位置
可以使用echo
命令查看环境变量的值,使用export
命令设置新的环境变量。
- $ echo $PATH
- $ export PATH=$PATH:/my/custom/path
为了使自定义的可执行程序不带路径也能执行,可以将程序所在路径加入到PATH环境变量中。
$ export PATH=$PATH:/path/to/your/program
创建与删除:
- $ export MYENV="hello world"
- $ unset MYENV
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。