网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
创建一个能容下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
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!