处理器模式切换步骤:

  1,保存被中断进程的处理器现场信息。

  2,处理器从用户态切换到核心态,以便执行系统服务程序或中断处理程序。

  3,如果处理中断,可根据所规定的中断级别设置中断屏蔽位。

  4,根据系统调用号或中断号,从系统调用表或中断入口地址表中找到系统服务程序或中断处理程序的地址。

  模式切换不同于进程切换,它不一定引起进程状态的切换,也不一定引起进程切换。

  在引用进程之后又引入了线程的概念,是为了减少程序并发执行时所付出的时空开销,使并发粒度更细、并发度更好。基本思路是:把进程的两项功能:独立分配资源和被调度分派执行分离开来。前一项任务仍然由进程完成,作为系统资源分配和保护的独立单位,无需频繁切换。后一项任务交给成为线程的实体来完成,线程作为系统调用和分派的基本单位。

  线程的组成部分有:

  1,线程标识符及线程状态信息。

  2,线程上下文信息。

  3,核心栈,在核心态工作时保存参数,在函数调用时的返回地址。

  4,拥有存放局部变量和用户站的私有存储区。

  线程有运行、绪和等待状态。因为它不拥有资源,因此挂起状态对于进程是没有意义的。如果进程在挂起后被对换出主存,它的所有线程也必须被对换出去。如果进程内的某一线程需要等待某资源,如果进程内还存在其他处于绪态的线程运行,操作系统会调度此线程运行,否则将进程转换为等待态。Windows仅把进程分为运行态和不可运行态。

  处理器调度分为三级:

  高级调度,又称作业调度,按照预定的策略从一批作业中挑选一批作业进入主存,创建进程并为其分配所需资源。

  中级调度:根据主存资源决定主存中所能容纳的进程数目,并根据进程的当前状态来决定辅助存储器和主存中的进程的对换。

  低级调度:又称进程/线程调度,根据某种原则决定绪队列中的哪个线程获得处理器,并将处理器让出给其使用。低级调度是操作系统核心的部分,其调度策略的优劣将直接影响整个系统的性能。有两种调度方式:剥夺时和非剥夺式。内核关键程序是非剥夺式的,用户进程是剥夺式的。

  低级调度是所有操作系统必备的功能。

  作业是用户提交给操作系统计算的一个独立的任务。

  作业与进程的关系:作业是任务实体,进程是完成任务的执行实体。没有作业任务,进程无事可做,没有进程,作业任务无法完成。

  cpu利用率=cpu有效工作时间/cpu总的工作时间。

  吞吐率=单位时间cpu处理作业的个数。

  周转时间:向系统提交作业开始到作业完成为止。

  低级调度算法(大部分也适用于作业调度算法):

  1,先来先服务算法。(FCFS)

  2,短作业优先算法(SJF)

  3,短剩余时间优先算法(SRTF)

  4,响应比高优先算法(H RRF) 响应比=作业周转时间/作业处理时间。

  5,优先级调度算法。

  6,轮转调度算法(Round Robin)。