博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux 进程
阅读量:2457 次
发布时间:2019-05-10

本文共 615 字,大约阅读时间需要 2 分钟。

程序是为了完成某种任务而设计的软件,比如vi是程序。什么是进程呢?进程就是运行中的程序。一个运行着的程序,可能有多个进程。

比如Web服务器是Apache服务器,当管理员启动服务后,可能会有好多人来访,也就是说许多用户同时请求httpd服务,Apache服务器将会创建多个httpd进程来对其进行服务。

进程既然是运行中的程序,则必定有它的开始和结束。对于Linux系统来说,新进程由fork()与execve()等系统调用开始,然后执行,知道他下达exit()调用为止。在这里,fork()、execve()、exit()都是Linux提供给C语言的控制进程的接口。

现代的操作系统都支持多进程,UNIX/Linux也不例外。对于用户来说似乎可以做许多事(听音乐、上网、聊天等),但是并非计算机拥有多个CPU,可以同时处理多个事情。

关于时间片的调度,在操作系统内核中,有个模块称为调度器(scheduler),它负责管理进程的执行和切换。在现在的计算机中,双核甚至四核已经很普及,一个优秀的调度器算法(例如Linux)会尝试着将工作负载分摊到每颗CPU核心上。这样,用户只会觉得计算机响应更快。

对于调度器算法来说,它需要决定下面运行那个进程。有时候,等待运行的进程很多,这就需要给这些进程排定优先级。Linux系统的进程都有优先级,高优先级的进程获得CPU资源的可能性会更大。nice和renice命令可以调整进程的优先权。

转载地址:http://ovnhb.baihongyu.com/

你可能感兴趣的文章
数据挖掘 数据增强_增强数据结构
查看>>
Java Dictionary put()方法与示例
查看>>
strictmath_Java StrictMath pow()方法与示例
查看>>
java treemap_Java TreeMap values()方法与示例
查看>>
avr446是什么_什么是AVR(高级虚拟Risc)?
查看>>
贪婪算法 python_在Python中使用贪婪算法进行优化
查看>>
scala不可变和可变_在Scala中将不可变地图转换为可变地图
查看>>
pcy 算法_大数据分析中的PCY算法
查看>>
stl vector 函数_vector :: begin()函数以及C ++ STL中的示例
查看>>
Java BigInteger类| max()方法与示例
查看>>
Java BigInteger类| gcd()方法与示例
查看>>
Java类class isEnum()方法及示例
查看>>
Java PriorityQueue peek()方法与示例
查看>>
stringreader_Java StringReader ready()方法与示例
查看>>
removerange_Java Vector removeRange()方法与示例
查看>>
如何在Ubuntu中安装OpenGL。 的Linux
查看>>
python set交集_Python Set交集()方法与示例
查看>>
c#中将整数转化为字符串_在C#中将char数组转换为字符串
查看>>
Java Collections shuffle()方法和示例
查看>>
python 生成对称矩阵_创建对称矩阵| 使用Python的线性代数
查看>>