一 操作系统概述
1 知识框架
2 操作系统基本概念
操作系统概念:
计算机系统自下而上粗分为硬件、操作系统、应用程序、用户。操作系统控制管理计算机系统的硬件、软件资源,为用户和应用程序提供接口、环境。充当硬件与用户之间的中介。操作系统的特征:
- 并发:同一时间间隔内发生(非同时,同一时刻),微观上通过分时实现并发性。引入进程的目的是为了实现并发。
- 共享:分为互斥访问(临界资源、独占资源)、同时访问(微观上为分时访问)两种共享方式。系统资源可供内存中多个并发进程共同使用。并发与共享互为存在条件。
- 虚拟:把一个物理实体变为若干个逻辑上的对应物。操作系统的虚拟技术可归纳为时分复用、空分复用。
- 异步:多道程序环境下,进程的执行走走停停,以不可预知的速度向前推进。
- 操作系统的目标和功能:
- 管理计算机系统资源:处理机管理(处理机的分配管理以进程或线程为单位)、存储器管理、设备管理、文件管理。
- 为用户提供接口使用计算机系统硬件:命令接口(分为联机/脱机命令接口,即交互式/批处理命令接口)、程序接口(由一组系统调用命令组成。GUI 本质上是用的程序接口)。
- 用作扩充机器:覆盖了操作系统软件的裸机。
- 知识补充,库函数与系统调用:
- 库函数使用或不使用系统调用来实现功能,不使用系统调用的库函数效率更高。作为语言或应用程序的一部分,运行在用户空间中。
- 系统调用运行在内核空间中。
3 操作系统的发展与分类
- 批处理阶段:单道批处理系统(内存中始终保持一道作业)、多道批处理系统(宏观并行,微观串行)。
- 分时操作系统:多个用户通过终端共享一台主机。实现人机交互的系统,这点不同于多道批处理系统。
- 实时操作系统:不需要时间片排队,在某个时间限制内完成紧急任务。
- 网络操作系统、分布式计算机系统:前者通过网络使用各台计算机(集中式)。后者若干台计算机协同完成同一任务(分布式)。
- 个人计算机操作系统:现在使用最广泛的操作系统。
4 操作系统的运行环境
操作系统的运行机制:
CPU 执行两种不同性质的程序。
一是管理程序(操作系统内核程序,核心态(管态),特权指令,中断与异常);
二是被管程序(应用程序,用户态(目态),非特权指令,系统调用)。相关概念:
- 系统调用:应用程序调用操作系统提供的一些子功能,系统调用可看作特殊的公共子程序(按功能大致分为:进程控制、进程通讯、内存管理、文件管理、设备管理)。
- 中断:操作系统各项操作的基础,是靠中断驱动的软件。
- 时钟管理:系统管理的方方面面依赖于时钟。
- 原语:操作系统底层可被调用的小程序(最接近硬件、原子操作、调用频繁运行时间短)。
- 补充:中断与异常
5 操作系统的体系结构
根据操作系统提供服务的内容与方法,形成两种主要的体系结构。
- 大内核:主要功能模块作为一个紧密联系的整体运行在核心态。
- 小内核:最基本的功能保留在内核,不需要核心态执行的功能移到用户态(降低内核代码难以维护的问题)。
6 疑难点
- 访管指令与访管中断:
访管指令本身不是特权指令,它是运行在用户态下的,通过访管指令引起访管中断(访管中断处理程序),系统调用。
应用程序 -> 访管指令(非特权指令) -> 访管中断 -> 系统调用(中断与异常,特权指令)。 - 系统调用通过中断(外中断、异常)来在用户态、核心态间切换,进入核心态执行系统调用的功能。
二 进程管理
1 知识框架
2 进程与线程
(1)进程
- 进程的概念:
- 目的:通过进程控制块(PCB)来更好的描述和控制程序,实现并发性、共享性。
- 定义:进程实体的一次运行,是系统进行资源分配和调度的一个独立单位。
- 进程映像与进程:进程映像是静态的。进程是动态的。
- 进程组成:
- PCB:进程存在的唯一标志。
- 程序段:可被调度到 CPU 执行的代码片段。注意,程序可被多个进程共享。
- 数据段:存储程序运行期间的相关数据。可是原始数据或处理后的结果。
进程状态与转换:
进程控制:
创建:
终端用户登陆系统、作业调度、系统提供服务、用户程序的应用请求等。(一个进程(父进程)可创建另一个进程(子进程)。子进程被撤销,将资源还给父进程;父进程被撤销,应将子进程也撤销。(分配进程标识号和 PCB;分配资源失败则进入阻塞;初始化 PCB,看是否能进入就绪队列。))终止:
正常结束(完成任务)、发生异常、外界干预。阻塞:
等待资源。唤醒:
资源到达。切换:
时间片用完、主动放弃处理机、被更高优先级的进程剥夺处理机。(进程的切换是在操作系统内核的支持下完成的,与内核紧密相关。)
- 进程通信:
- 进程通信指进程间的信息交换。
- 高级通信方式指高效传输大量数据的通信方式。
- 管道只采用半双工通信,父子进程双向传输需定义两个管道。/ 管道通信是共享存储的优化和发展。/ pipe 需要三方面能力:同步、互斥、确定对方存在。
- 进程的代价:
- 时间代价:进行进程间的同步、通信、切换付出的时间开销。
- 空间代价:PCB 及协调各运行机构所占用的内存空间开销。
(2)线程
- 概念与特点:
- 线程是轻量级进程。是一个基本的 CPU 执行单元、独立调度的基本单位。
- 线程自身不拥有系统资源,只拥有一点运行中必不可少的资源(基本不拥有任何系统资源),与同进程中的其他线程共享进程拥有的全部资源。状态同进程状态,也可以创建撤销线程。
- 线程是处理机独立调度的基本单位,进程是拥有资源的基本单位(除处理机外系统资源的分配单位)。
- 线程可直接读写进程数据段(如全局变量)来通信。
引入线程的目的:
使多道程序更好的并发执行。线程的实现方式、多线程模型:
- 多对一模型:优点是线程管理在用户空间,效率高;缺点是一个线程使用内核服务被阻塞会导致整个进程阻塞、多个线程无法并发运行在处理机上。
- 多对多模型:上下两者的折中,兼顾性能、并发性。
- 一对一模型:优点是一个线程阻塞不会影响另一个线程并发能力强;缺点是内核需创建多个线程与用户级线程对应,开销较大,影响程序性能。
3 处理机调度
- 概念:
- 处理机调度就是对处理机的分配。通过算法从就绪队列中选择一个进程,将处理机分配给它运行,实现进程的并发执行(合理利用计算机硬件资源)。
- 作业的三级调度:
- 调度方式:
进程调度方式指,当有优先权更高的进程进入就绪队列,该如何分配处理机资源。
- 剥夺式(抢占方式):立即分配。
- 非剥夺式(非抢占方式):仍让当前进程继续执行。
- 调度准则:
- CPU 利用率(尽可能让 CPU 忙,利用率高)。
- 系统吞吐量(单位时间内 CPU 完成作业的数量)。
- 周转时间(从作业提交到完成经历的时间。/ a) 作业周转时间=作业完成时间-作业提交时间 b) 带权周转时间=作业周转时间/作业实际运行时间)。
- 等待时间(进程处于等处理机状态的时间之和。/ 处理机调度算法不影响作业执行、输入输出操作的时间,只影响其处于就绪队列中等待的时间)。
- 响应时间(用户提交请求到系统首次响应所用的时间)。
- 典型调度算法:
4 进程同步
参考:
1、 简书:进程同步一
- 概念:
- 协调进程间的相互制约关系。
- 制约关系:同步:(直接制约关系)需要在某些位置上协调进程间的工作次序,而等待、传递信息所产生的制约关系。/ 互斥:(间接制约关系)当一个进程进入临界资源时,其它要求 “进入临界区” 或 “进区” 必须等待。
- 补充,共享:分为互斥访问(临界资源、独占资源)、同时访问(微观上为分时访问)两种共享方式。
- 临界区互斥:
- 补充,信号量:
信号量是一种功能较强的机制,解决同步、互斥问题。它只能被两个标准的原语 wait(S)、signal(S) 来访问,也可以记作 P 操作、V 操作。
当有进程要求使用共享资源时,需要执行以下操作:a)系统首先要检测该资源的信号量;b)若该资源的信号量值大于 0,则进程可以使用该资源,此时,进程将该资源的信号量值减 1;c)若该资源的信号量值为 0,则进程进入休眠状态,直到信号量值大于 0 时进程被唤醒,访问该资源; 当进程不再使用由一个信号量控制的共享资源时,该信号量值增加 1,如果此时有进程处于休眠状态等待此信号量,则该进程会被唤醒。
- 管程:
- 定义:由一组数据及定义其上对数据的操作组成的软件模块。
- 管程可以看做一个软件模块,它是将共享的变量和对于这些共享变量的操作封装起来,形成一个具有一定接口的功能模块,进程可以调用管程来实现进程级别的并发控制。
- 进程只能互斥得使用管程,即当一个进程使用管程时,另一个进程必须等待。当一个进程使用完管程后,它必须释放管程并唤醒等待管程的某一个进程。
- 管程在功能上和信号量的 PV 操作类似,属于一种进程同步互斥工具,但是具有与信号量及 PV 操作不同的属性。
- P(S) 和 V(S) 操作大量分散在各个进程中,不易管理,易发生死锁。引入管程机制的目的:a)把分散在各进程中的临界区集中起来进行管理;b)防止进程有意或无意的违法同步操作;c)便于用高级语言来书写程序,也便于程序正确性验证。
- 管程特点:管程封装了同步操作,对进程隐蔽了同步细节,简化了同步功能的调用界面。用户编写并发程序如同编写顺序(串行)程序。
- 金典同步问题:
暂略。