计算机系统由硬件和软件两部分组成。操作系统是计算机系统中最基本的系统软件,它既管理计算机系统的软、硬件资源,又控制程序的执行。
操作系统的基本类型有:7种
批处理操作系统
分时操作系统
实时操作系统
网络操作系统
分布式操作系统
嵌入式操作系统
微内核操作系统
从资源管理的角度看,操作系统主要是对处理器、存储器、文件、设备和作业进行管理。
操作系统(Operating System, OS)是计算机系统中的核心系统软件,负责管理和控制计算机系统中的硬件和软件资源,合理地组织计算机工作流程和有效地利用资源,在计算机与用户之间起接口的作用。
处理机是计算机系统的核心资源。操作系统的功能之一就是处理机管理。处理机管理也被称为进程管理。
进程的状态转换
(1)就绪状态。
(2)执行状态指进程已获得处理机,其程序正在执行。
( 3 ) 阻塞状态,有时也称为“等待”状态。
进程互斥与同步进程互斥定义为:一组并发进程中一个或多个程序段,因共享某一共有资源而导致必须以一个不允许交叉执行的单位执行。也就是说互斥是要保证临界资源在某一时刻只被一个进程访问。
互斥是资源的竞争关系,而同步是进程间的协作关系。
有些资源则一次仅允许一个进程使用,将一次仅允许一个进程使用的资源称为临界资源,很多物理设备如打印机、磁带机等都属于临界资源。
把一个进程访问临界资源的那段程序代码称为临界区。
信号量只能施加特殊的操作: P 操作和 V 操作。 P 操作和 V 操作都是不可分割的原子操作,也称为原语。
P操作=wait操作 做减法
V操作=signal操作 做加法
进程互斥不允许两个以上共享临界资源的并发进程同时进入临界区。利用 P、 V 原语和信号量可以方便地解决并发进程对临界区的进程互斥问题。
经典同步问题的例子是“生产者-消费者”问题。这要求存后再取,取后再存,即有两个制约关系,为此,需要两个信号量,表示缓冲区中的空单元数和非空单元数,记为 Bufempty和 Buffull,它们的初值分别是 1 和 0 。
前趋图
前趋图是一个由结点和有向边构成的有向无循环图。
在计算机中,经常采用流水线方式执行指令,每一条指令都可以分解为取指、分析和执行三步。取指操作为 Ai,分析操作为 Bi 和执行操作为 Ci(i=1,2,3)。如图 2-4 所示为三个任务各程序段并发执行的前驱图。
图中 A1 没有前趋结点,称为开始结点,它不受任何制约,可以直接执行;而 B1 与 A2只能在 A1 执行完成之后才能开始,而 B2 必须在 B1 与 A2 完成之后才能开始; C3 没有后继结点,称为终止结点。
在前趋图中,执行先后顺序的制约关系可分为两种:直接制约和间接制约。直接制约通常是指一个操作中,多个步骤之间的制约关系,也可以说是“同步的进程之间的制约关系”。如图 2-4 所示, A1、 B1、 C1 是一条指令的取指、分析、执行的三个步骤,所以它们之间的关系是直接制约。
在前趋图中,执行先后顺序的制约关系可分为两种:直接制约和间接制约。
直接制约通常是指一个操作中,多个步骤之间的制约关系,也可以说是“同步的进程之间的制约关系”。如图 2-4 所示, A1、 B1、 C1 是一条指令的取指、分析、执行的三个步骤,所以它们之间的关系是直接制约。 间接制约通常是指多个操作之间相同步骤的制约关系,也可以说是“互斥的进程之间的制约关系”。如图 2-4 所示, A1、 A2、 A3 之间就存在间接制约的关系。
进程调度的方式有两类:剥夺方式与非剥夺方式。
所谓非剥夺方式是指,一旦某个作业或进程占用了处理器,别的进程就不能把处理器从这个进程手中夺走,直到该进程自己因调用原语操作而进入阻塞状态,或时间片用完而让出处理机;例如打印机;
剥夺方式是指,当就绪队列中有进程的优先级高于当前执行进程的优先级时,便立即发生进程调度,转让处理机。 例如:CPU
死锁是系统的一种出错状态,它不仅会浪费大量的系统资源,甚至还会导致整个系统的崩溃,所以死锁是应该尽量预防和避免的。
死锁是系统的一种出错状态,它不仅会浪费大量的系统资源,甚至还会导致整个系统的崩溃,所以死锁是应该尽量预防和避免的。
产生死锁的必要条件是:互斥条件、保持和等待条件、不剥夺条件和环路等待条件。
解决死锁有两种策略:
一种是在死锁发生前采用的预防和避免策略;
另一种是在死锁发生后采用的检测与恢复策略。