进程

进程

一 什么是进程

进程: 从字面意思来理解, 是正在进行的一个过程, 是系统进行 资源分配和调度的基本单位

进程是操作系统最基本, 最重要的概念, 是多道系统出现后, 为了刻画系统内部的动态情况, 描述系统内部各种程序的活动规律引进的一个抽象概念, 所以多到程序操作系统建立在进程基础之上.

二 进程与程序的区别

程序: 程序仅仅是一堆代码, 而进程指的是程序的运行过程.

强调 同一个程序执行两次, 那也是两个进程, 比如一台电脑打开多个QQ客户端, 登录多个QQ号.

三 进程调度

要想多个进程交替运行, 操作系统必须对进程进行调度, 这个角度也不是随机进行的, 而是遵循一定的法则, 因此就有了进程的调度算法

  • 先来先服务调度算法(FCFS)
先来先服务(FCFS) 调度算法是最简单的一种算法, 该算法既可以用于作业调度, 也可以用于进程调度, FCFS 算法比较又例如长作业(进程), 而不利于短作业(进程). 由此可知, 本算法适用于CPU繁忙型作业, (计算型作业), 而不利与I/O密集型作业

  • 短作业优先算法(SJ/PF)
 短作业优先调度算法, 是指对短作业或段进行优先调度算法, 改算法既可以用于作业调度, 也可以用于进程调度. 但对长作业不利; 不能保证紧迫性作业被及时处理, 作业长短是被估算出来的

  • 时间片轮转法(ROUND ROBIN ,RR)
时间片轮转法的基本思路是让每个进程在就绪队列中的等待时间与享受时间成比例. 在时间片轮转法中, 需要将CPU 处理时间分成固定大小的时间片, 例如, 几十毫秒至几百毫秒, 如果一个进程在被调用并用完了系统规定的时间片, 但又未完成任务, 则它自行释放自己所占有的CPU而排到就绪队列末尾, 等待下次调度. 同时, 进程调度程序又去调度当前就绪队列中的第一个进程 
  • 多级反馈队列

    """ 
    	前面介绍的各种用作进程调度的算法都有一定的局限性. 如短进程优先的调度算法, 仅照顾了短进程, 而且如果并未指明进程的长度, 则短进程优先 和给予进程长度的抢占式调度算法都将无法使用.
    	而多级反馈队列调度算法则不必事先知道各种进程所需的执行时间, 而且可以满足各种类型进程的需要, 因而它是目前被公认的一种较好的进程调度算法. 在采用多级反馈队列调度算法的系统中, 调度算法的实施过程如下所述:
    (1) 应设置多个就绪队列, 并为各个队列赋予不同的优先级, 第一个队列优先级最高,第二个队列次之, 其余各个队列的优先权逐个降低. 改算法赋予各个队列中进程执行时间片的大小也各不相同, 在优先权越高的队列中, 为每个进程所规定的执行时间片就越小.
    (2) 当一个新进程进入内存后, 首先将它放入第一队列的末尾, 按FCFS原则排队等待调度, 当轮到该进程执行时, 如果它能在改时间片内完成, 便可准备撤离系统;如果它在一个时间片结束尚未完成, 调度程序便将改进程转入第二队列末尾, 再同样地按FCFS原则等待调度执行; 当一个长作业从第一队列依次降到第N队列后, 在第N队列便采取时间片轮转法的方式运行.
    
    (3) 仅当第一队列空闲时间, 调度程序才调度到第二队列中的进程运行; 仅当第1~(i-1) 队列均空是, 才会调度第i队列中的进程运行. 如果处理机正在第i队列中为某个进程服务时, 又有新进程进入优先权较高的队列(第1~(i-1)中的任何一个队列), 则此时新进程将抢占正在运行进程的处理机, 即由调度程序吧正在运行的进程放回到第i队列末尾, 把处理机分配给新到的高优先权的进程.
    """
    
    
    
    
    
    
posted @ 2019-12-19 15:54  七里塘  阅读(256)  评论(0编辑  收藏  举报