Linux 进程优先级以及环境变量

进程优先级

进程优先级是一个进程对于cpu资源获取的优先权
存在优先级的原因:
交互式进程:直接与用户进行交互的进程 (要求能被cpu优先处理)
批处理进程:在后台有周期性循环工作的进程
优先级的作用:让操作系统运行的更加良好
优先级就是一个数值,数值越小优先级越高。

操作系统如何调度进程

创建一个能容下140个进程的队列,每个队列都有相应的下标,下标就是进程的优先级,数值越小优先级越高。创建一个bitmap整形数组,一个有160个bit位,用来存储对应位置的进程是否存有pcb块,操作系统可以根据是否存在pcb块来快速调用进程,而不需要每次调度都要判断下一个进程是否存在pcb块。操作系统还将这两个数组复制了一遍,active指针指向的队列进程,当时间片结束就会转到expire指针指向的队列中进行排队。当expire指向的队列满时就和active交换指向,依次循环调度active指针指向的队列中进程。这种算法也叫作多级反馈调度算法时间复杂度O(1)
在这里插入图片描述

环境变量

环境变量就是配置系统运行环境参数的变量
配置环境变量的好处:使系统运行环境配置更加简单灵活;可以通过设置环境变量给一个进程传递参数信息
例如:修改执行的默认路径
修改前要执行一个可执行文件的命令是:./test
修改执行默认路径为当前目录:PATH=${PATH}:./
修改后执行一个可执行文件的命令是:test
环境变量的操作
env 查看环境变量
set 查看所有变量,包含环境变量
echo 查看单个变量内容 echo valName
export 设置变量为环境变量 export valName
unset 删除环境变量 unset valName

main函数的第三个参数 int main(int argc, char *argv[], char *env[]) env用来保存环境变量
通过一个全局变量 extern char **environ; (extern声明一个变量,这个变量实际上已经在其他地方定义了) environ保存了所有可以访问的环境变量的地址
char *getenv(const char *name) 通过环境变量名称获取一个指定环境变量的数据

特性:子进程会默认继承父进程的环境变量

如何在Makefile中获取环境变量?
在Makefile中输入以下代码

test:
	echo ${PATH}

执行命令make test
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

WhiteShirtI

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

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

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

打赏作者

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

抵扣说明:

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

余额充值