这里引用百度百科,先说一下进程:web
进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操做系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。——百度百科 算法
咱们不妨把进程当作计算机处理的一个单元,这个单元有不少不少的属性,固然每一个进程确定是有优先级的,进程的优先级是根据必定算法来的,计算机按进程的性质或其长度,或是按做业的来源等,指定其优先级app
每一个进程都有相应的优先级,优先级决定进程什么时候运行、接收多少CPU时间。优先级共32级,是从0 到31的数值,称为基本优先级别(Base Priority Level)。系统按照不一样的优先级调度进程进行运行。0-15 级是普通优先级,进程的优先级能够动态变化,高优先级进程优先运行,只有高优先级进程不运行时,才调度低优先级进程运行,优先级相同的进程按照时间片轮流运行。16-31级是实时优先级,实时优先级与普通优先级的最大区别在于实时优先级中相同优先级进程的运行不按照时间片轮转,而是先运行的进程就先控制CPU,若是它不主动放弃控制,同级或低优先级的进程就没法运行。 ide
进程分为3个状态:就绪状态(Ready),进程已得到除处理器外的所需资源,等待分配处理器资源,只要分配了处理器进程就可执行;运行状态(Running),进程占用处理器资源,处于此状态的进程的数目小于等于处理器的数目;阻塞状态(Blocked),此时进程在等待资源或某种条件(如I/O操做或进程同步),在资源或条件知足以前该进程是没法被执行的,即便把处理器资源分配给该进程,也没法运行。 spa
3个状态根据必定的机制和触发条件能够互相切换。操作系统
计算机把全部就绪状态的进程放在一个就绪队列里,当咱们的处理机完成一项进程准备进行下一项进程时,这里就会用调度机制来调度下一个进程进入处理机。线程
那么计算机是根据什么样的机制或者说是算法来调度进程进入处理机呢(调度的算法多种多样,根据不一样的需求采起不一样的方法,我想说说比较有表明性的)?设计
在批处理系统中,用的比较多的是先进先出算法(FIFO,First In First Out)和短进程优先算法(SJF,Shortest Job First)。分时系统中,用的比较多的是时间片轮转算法(RR,Round Robin)。算法的具体执行过程自行百度。调试
这些算法会根据本身的算法特性给就绪队列中的进程分配优先级,这就是咱们说的进程调度优先级。这些算法基于进程的优先级,再根据本身的算法特性作适当的调试。 好比咱们采用先进先出,那么怎么判断进程的前后顺序,则根据进程的基本优先级来肯定的。orm
这样,在不一样需求的场合中,咱们采起不一样的调度方法来达到咱们想要的进程处理机制