本文共 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/