OS基本知识
进程控制块PCB
进程控制块(Process Control Block,PCB)的作用是使一个在多道程序环境下不能独立运行的程序(含数据)成为一个能独立运行的基本单位,一个能与其他进程并发执行的进程。
进程控制块PCB的作用
- 作为独立运行基本单位的标志。
- 能实现间断性运行方式。
- 提供进程管理所需要的信息。
- 提供进程调度所需要的信息。
- 实现与其他进程的同步与通信。
进程控制块中的信息
- 进程标识符:唯一标识一个进程。
- 处理机状态
- 进程调度信息:①进程状态②进程优先级③进程调度所需的其他信息④事件
- 进程控制信息:①程序和数据的地址②进程同步和通信机制③资源清单④链接指针
进程控制块的组织方式
- 线性方式,即将系统中所有的PCB组织在一张线性表中,将该表的首址存放在内存的一个专用区域内。
- 链接方式,即把具有相同状态进程的PCB分别通过PCB中的链接字链接成一个队列。
- 索引方式,即系统根据所有进程状态的不同,建立几张索引
操作系统内核
现代操作系统一般将OS划分为若干层次,再将OS的不同功能分别设置在不同的层次。
将一些与硬件紧密相关的模块(如中断处理程序等)、各种常用设备的驱动程序以及运行频率较高的模块(如时钟管理、进程调度和许多模块所公用的一些基本操作),都安排在紧靠硬件的软件层次中,将它们称为常驻内存,即通常被称为OS内核。
- 一方面便于对这些软件进行保护,防止遭受其他应用程序的破坏
- 一方面可以提高OS的运行效率
为了防止OS本身及关键数据(如PCB等)遭受到应用程序有意或无意的破坏,通常将处理机的执行状态分成系统态和用户态
- 系统态(又称管态、内核态):具有较高的特权,能执行一切指令,访问所有寄存器和存储区,传统的OS都在系统态运行。
- 用户态(又称母态):具有较低特权的执行状态,仅能执行规定的指令,访问指定的寄存器和存储区,应用程序只能在用户态运行。
支撑功能
- 中断处理
- 时钟管理:如时间片轮转调度
- 原语操作:由若干太难指令组成的,用于完成一定功能的一个过程。原语操作在执行过程中不允许被中断,即一个操作中的所有动作要么全做,要么全不做。
资源管理功能
- 进程管理:
- 由于各个功能模块运行频率比较高,如进程的调度与分派,进程的创建与撤消等
- 或者由于它们为多种功能模块所需要,如用于实现进程同步的原语、进程通信的原语等,提高OS的性能。
- 存储器管理:
- 用于实现将用户空间的逻辑地址变换为内存空间的物理地址的地址转换机构、内存分配与回收的功能模块以及实现内存保护和对换功能的模块
- 保证存储器管理具有较高的运行速度。
- 设备管理:
- 由于设备管理与硬件(设备)紧密相关,因此其中很大部分也都设置在内核中。如各类设备的驱动程序、用于缓和CPU和I/O速度不匹配矛盾的缓冲管理,
- 用于实现设备分配和设备独立性功能的模块等。
在多道批处理系统中,作业是用户提交给系统的一项相对独立的工作,也是以作业为基本单位从外存调入内存的。
作业(Job)
作业是一个比程序更广泛的概念,它不仅包含了通常的程序和数据,而且还应配有一份作业说明书,用来对程序的运行进行控制。
作业步(Job Step)
作业运行期间,作业的加工步骤。典型的可分为:“编译”作业步,“链接装配”作业步和“运行”作业步。
作业控制块(Job Control Block,JCB)
多道批处理系统为每个作业设置一个作业控制块JCB,用于保存系统对作业进行管理和调度所需的全部信息。
作业运行的三个阶段
- 收容阶段(后备状态),将提交的作业输入到硬盘上,为该作业建立JCB,将其放入作业后备队列中。
- 运行阶段(运行状态),作业被作业调度选中,为其分配资源和建立进程,并将其放入就绪队列。
- 完成阶段(完成状态),作业运行完成、或发生异常情况而提前结束。
资源问题
可重用性资源
是一种可供用户重复使用多次的资源。
- 每一个可重用性资源中的单元只能分配一个进程使用,不允许多个进程共享。
- 进程使用可重用性资源的顺序:①请求资源②使用资源③释放资源
- 系统中每一类可重用性资源中的单元数目是相对固定的,进程在运行期间既不能创建也不能删除
可消耗性资源
又称临时性资源,它在进程运行期间,由进程动态的创建和消耗。
- 数目不断的变化
- 可以将创建的资源,放入该资源的缓冲区中
- 请求的资源,不能再将它们返回给该资源类中
可抢占性资源
指某进程在获得这类资源后,该资源可以再被其他进程或系统抢占。
CPU和主存均属于可抢占性资源,对于该类资源是不会引起死锁的。
不可抢占性资源
即一旦系统把某资源分配给该进程后,就不能将它强行收回,只能在进程用完后自行释放。磁带机、打印机等也都属于不可抢占性资源。