网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
进程优先级
进程优先级是一个进程对于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中输入以下代码
最全的Linux教程,Linux从入门到精通
======================
-
linux从入门到精通(第2版)
-
Linux系统移植
-
Linux驱动开发入门与实战
-
LINUX 系统移植 第2版
-
Linux开源网络全栈详解 从DPDK到OpenFlow
第一份《Linux从入门到精通》466页
====================
内容简介
====
本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。
本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。
需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!