首 页 行业热点 新车 试驾评测 养车用车 车型库

linux下的进程和Windows下的进程联系区别 要有联系也要有区别……

发布网友

我来回答

1个回答

热心网友

进程创建:
WINDOWS:WIN32接口,函数略。
LINUX:FORK函数,父子进程的区别PPID和PID。LINUX中的进程的含义和WINDOWS中是不一样的。LINUX中的进程本身是可以执行的。而WINDOWS中,进程只是表示一个资源的拥有体,是不能执行的。要执行的话,一定需要一个线程。这也部分解释了为什么CreateProcess中为啥一定要传入要执行的文件的名字。LINUX子进程直接使用父亲的地址空间,只有子进程加载一个新的可执行文件的时候才创建自己的地址空间。也就是很多时候共享地址空间,有个函数(忘了)就是如果决定开始写入,则将资源拷贝一份;如果此时突然决定不需要写入,此时就能避免系统资源的消耗。进程相对于WINDOWS中的线程,所以同WINDOWS中的线程创建相比,二者的开销应该差不多。
执行:
LINUX:exec
WNDOWS:WIN32函数。
底层:两者大部分都是C和汇编,在我们看来以为LINUX全是C,WINDOWS是C++,其实不然操作硬件的是汇编和C。使用了不少宏定义,简化地址运算和程序结构,如定义一个空地址:0x000000表示NULL。
内核:
WINDOWS:相对稳定的API,就是向后兼容,我们总是看到兼容的字眼。升级方便,过于臃肿。
复杂的继承关系,藏得结结实实的代码。
LINUX:不固定的接口,为了更加的技术化,所以LINUX一直改进,很多时候偏离了桌面用户。头文件和执行文件也就是一些算法的改进和函数改进。如果你看完2.4的内核后,再看2.6的内核差异不大,但是不少。升级复杂,考虑的东西太多。数不尽的代码,代码是宝贵的,又是该死的。
进程算法(优先级):
LINUX:图形界面少点,内核支持抢占的同时又支持CFS公平调度算法。二叉树、红黑树等算法。
WINDOWS:进程假死现象普遍,采用阻塞算法,很多时候导致不流畅、卡死。现在win7做了相当大的改进。算法不清楚,以前阻塞编程的不少。
内存:
基本上两者差不多,在X86你懂得。
【以上纯属个人看法,如有不对请指正。给普及教育下。】

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com