进程的优先级
今天,我想和大家谈谈关于进程的优先级,关于进程的优先级,我们要从cpu的调度开始讲起,我们上次说了,cpu调度进程是以队列的方式来调度的,那么这样必定会存在一个优先级的问题,那么进程的优先级是怎么看的呢!
这里进程的优先级是PRI+NI,大家记住就好了这里,这里我们看bash和ps两个进程的优先级都是80,默认都是80但是我们可以调整优先级,下面我们调整一下。
这里我们将nice值调正了所以我们这个进程优先级就变成99了,那我们的cpu是不是就可以先执行我们的这个进程了呢?答案是yes。但是在Linux下我们有一个o(1)调度算法,后面再谈这个算法就是cpu中的运行队列的问题了大家现在只需要掌握优先级的改变就可以!
环境变量
对于环境变量,大家其实都听说过,
如:我们在编写
C/C++
代码的时候,在链接的时候,从来不知道我们的所链接的动态静态库在哪里,但
是照样可以链接成功,生成可执行程序,原因就是有相关环境变量帮助编译器进行查找。
或者说我们运行的程序比如ls,cd这些进程它也是程序啊,为什么不加./为什么可以直接运行,答案就是他们的路径在环境变量下。那么这个环境变量叫什么名字呢,他叫PATH

我们的常用进程的路径都在这些文件下,我们可以去看看

这些都是一些程序,在PATH环境变量配置进来了,就可以直接运行了,那么怎么配置环境变量
呢?
很简单,我们只需要PATH=$PATH:带上我们程序的路径就可以了,但是这种配置是暂时的,如果需要永久的话我们需要配置配置文件,让我们的bash进程在登录的时候帮我们把配置文件的内容加载进我们的环境变量当中

配置的话在我们用户的家目录配置这两个隐藏文件就可以了,用 ls -la查看就行了。
刚刚说了我们在登录的时候,bash进程会获取到我们的环境变量,那么环境变量在内存中是如何组织的呢?(前面我们已经说了任何进程都要放进内存)
其实答案很简单它是一个指针数组,里面全放的是char类型的指针,因为环境变量里都是一个个字符串组织的,你添加一个环境变量他就增加一个,和顺序表的尾插其实是一样的。查看环境变量我们用env去查看

这些都是一些环境变量。
ok我们到此为止吧,下一节(命令行参数和虚拟地址空间)