听课笔记梳理

线程的两个基本属性

  1. 拥有资源的的独立单位
    每个进程分配一个虚拟地址空间,以保存进程映像,控制一些资源,有状态与优先级
  2. 调度与分派的基本单位
    分配CPU

传统进程的两个基本属性分解

  • 拥有资源的独立单位(进程)
  • 调度与分派的基本单位(线程)

使用线程是非常经济的,开销小

线程概念

  • 有时称为轻量级进程
  • 进程中的一个轻量运行实体
  • 是一个CPU调度与分派的基本单位
  • 可以并发执行
  • 共享进程资源

线程的开销

  • 线程控制块(TCB)
  • 寄存器状态,堆栈,局部变量拷贝
  • 线程运行状态(与进程类似,分为就绪,阻塞与执行)
  • 可以创建、撤销另一个进程
  • 优先级与信号屏蔽

引入线程的优点

  • 创建一个新线程花费时间少
  • 两个线程的切换花费时间少
  • 同一个进程内的线程共享内存与文件,因此相互通信无需调用内核
  • 适合多处理机系统

线程的实现方式

1.内核支持线程

若系统中设置的是内核支持线程,则以线程为单位进行调度
例 : windows2000,windowsXP

优点

  • 对多处理器,核心可以同时调度同一个进程的多个线程
  • 阻塞在线程一级完成
  • 核心例程是多线程的

缺点
在同一进程内的线程切换调用内核,导致速度下降

2.用户级线程

  • 仅用于用户空间中
  • 可以为一个应用程序建立多个用户级线程,在一个系统中的用户级线程的数目可以达到数百个到数千个
  • 用户级线程的TCB设置在用户空间。由用户维护
  • 通常由专门的线程库负责线程进行管理,无须内核的帮助

例 : 一些数据库管理系统

3.上述两者结合

Linux,Solaris

处理机调度

高级调度(Long-Term Scheduling)

用于决定把外存上处于后备队列中的哪些作业调入内存,并为其创建进程,分配必要的资源,再将新创建的进程排在就绪队列上,准备执行

特点

  • 调度频率低,几分钟或几十分钟
  • 算法设计复杂

中级调度

主要目的:为了提高内存利用率与系统吞吐量

  • 应让那些暂时不能运行的进程不再占用宝贵的内存资源,而将它们调用到外存上去等待,把此时的进程状态称为就绪驻外存状态或者挂起状态
  • 当这些进程又具备了运行条件而内存有空闲时,由中级调度来决定把外存上的那些进程重新调入内存,并修改其状态为就绪状态
  • 内存就绪与外存就绪,内存阻塞与外存阻塞
  • 对象:就绪进程,阻塞进程

特点

  • 调度频率:介于高级调度与低级调度之间
  • 实际上就是内存管理的 “对换功能”

低级调度(Low-Level Scheduling)

用于决定就绪队列中的哪个进程应获得处理机,然后再由分派程序执行把处理机分配给该进程的具体操作

  • 进程调度,短程调度
  • 对象 : 就绪进程

特点

  1. 调度频率高:几十毫秒或者几毫秒
  2. 调度算法通常很简单,保持算法执行时间短

调度方式

  • ①非抢占方式
    指当某一进程正在处理机上执行时,即使有某个更为重要或者紧迫的进程进入就绪队列,仍然让正在执行的进程继续执行
    • 简单,系统开销小实时性差
    • 不安全,霸占CPU,造成进程饥饿(bug与黑客程序)
  • ①抢占方式
    指当一个进程正在处理机上执行时,若有某个更为重要或者紧迫的进程需要使用处理机,则立即暂停正在执行的进程,将处理机让给更重要紧迫的进程
    • 安全,不会霸占CPU

面向用户的准则

1.周转时间短

①周转时间:从作业提交给系统开始到作业完成为止的时间间隔

  1. 作业在后备队列的等待时间
  2. 进程在就绪队列的等待时间
  3. 进程在CPU上的执行时间
  4. 进程等待I/O操作时间

其中1,2,4 可以优化

②平均周转时间

③平均带权周转时间

2.响应时间快

响应时间 : 用户从提交键盘命令开始,到系统首次给出相应为止的时间

3.截止时间保证

截止时间 : 作业/进程开始或结束的最晚时间

调度算法

1.先来先服务调度算法(FCFS)

  • 既可以用于作业调度,也可以用于进程调度

特点

  • 本质:仅考虑“到达时间”
  • 实现简单
  • 貌似公平
  • 实际上对**短作业(运行时间较短的作业)**不公平

Q.E.D.

知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议