第一章 操作系统概论⭐
计算机系统是由 硬件系统软件系统 组成的
操作系统的任务:组织和管理计算机系统中的硬件和软件资源、有效、合理、方便
操作系统为用户提供两类使用接口:分别是 编程接口、用户接口
操作系统的特征:并发性、共享性、随机性
研究操作系统的观点
1. 软件观点:外在特性--接口、内在特性--与硬件交互
2. 资源管理的观点
3. 进程的观点:把操作系统看作由多个可以同时独立运行的程序和一个对这些程序进行协调的核心所组成。
4. 虚机器观点:操作系统把原来的计算机(裸机)扩充成功能强大、使用方便的计算机系统,
这种计算机系统被称为 虚拟计算机
5. 服务提供者观点:提供了比裸机功能更强、服务质量更好、更方便灵活的虚拟机
操作系统的功能:进程管理、存储管理、文件管理、作业管理、设备管理
windows操作系统的体系结构采用了分层的模块结构,主要层次有:硬件抽象层HAL、内核、执行体、大量子系统集合
unix操作系统的体系结构,从内向外各层分别是 硬件层、操作系统内核层、系统调用层、应用层
Linux操作系统体系结构Linux内核、Linux Shell、Linux文件系统、Linux应用程序
Android操作系统体系结构,从高到低:应用程序层、应用框架层、系统运行库层、Linux内核层
批处理操作系统
1. 基本工作方式:用户将作业交给系统操作员,操作员收到一定数量的用户作业后组成一批作业,再输入到计算机中,这批作业在系统中形成一个连续的、自动转接的作业流。操作员然后启动操作系统,系统自动、依次执行每个作业,最后由操作员将执行完毕的作业结果交给用户。
2. 特点:成批处理,用户自己不能干预自己作业的运行。发现作业无法及时改正。
3. 优点:作业流程自动化较高、资源利用率较高、作业吞吐量大,从而提高了整个系统效率。
4. 缺点:用户不能直接与计算机交互,不适合调试程序。
分时系统:用户通过中断交互式向系统提出命令,系统采用时间片轮转方式处理服务请求。
特点:多路性、交互性、独占性、及时性
实时操作系统:需具备实时时钟管理、过载防护、高可靠性
嵌入式操作系统:微型化、实时性
操作系统结构研究的目标:系统模块化、模块标准化、通信规范化
常见的操作系统结构有:整体式结构、层次式结构、微内核(客户/服务器)结构
第二章 操作系统运行环境⭐⭐
处理器一般由 运算器、控制器、一系列的寄存器、高速缓存 构成。
处理器内通常有两类寄存器
1. 用户可见寄存器:数据寄存器、地址寄存器、条件吗寄存器
2. 控制和状态寄存器:程序计数器PC、指令寄存器IR、程序状态字PSW
指令分为:访问存储器指令、算数逻辑指令、I/O指令、控制转移指令、处理器控制指令
特权指令:只能由操作系统使用的指令,用户不允许使用。
非特权指令用户使用
处理器的工作状态分为:管态(内核态/系统态/特权态)、目态(用户态/普通态)
  当处理器处于管态时,可执行全部命令,可使用所有资源,并具有改变处理器状态的能力
  当处理器处于目态时,就只有非特权指令才能执行。
目态到管态的转换唯一途径是通过中断
管态到目态的转换可通过设置PSW指令(修改程序状态字)
程序状态字PSW:指示处理器状态
    包括以下状态代码:CPU的工作状态代码、条件码、中断屏蔽码
存储器的类型:读写型存储器RAM(存储随机存取的程序的数据)、只读存储器ROM
存储的最小单位“二进制”,存储器的最小编址单位是字节内存空间的最小分配单位是
存储分区的保护方法:界地址寄存器、保护键
例(1710 )当每个程序在主存中占一个连续的存储空间时,系统使用那两个寄存器来实现存储保护?当处理器在目态下执行程序时,对每一个访问主存空间的地址都要进行核查,请
写出访问地址与着两个寄存器值之间的关系。
答:基址寄存器、限长寄存器。基址寄存器的值<=访问地址<=限长寄存器的值
中断是由外部事件引发的,而异常是由正在执行的指令引发的。
典型的中断:时钟中断、输入输出(I/O)中断、控制台中断、硬件故障中断
典型的异常:程序性中断、访管指令异常linux是一个分时操作系统
(1904)中断和异常的区别是什么?请指出“时间片到时”、“算术溢出”、“掉电”和“虚拟存储中的缺页”分别属于中断和异常的哪一种?
  答:中断是由外部事件引发的,异常是由正在执行的指令引起的。
      中断:时间片到时、掉电。异常:算术溢出、虚拟存储中的缺页
(1910)中断系统由哪两部分组成?请介绍计算机系统中典型的中断有哪些?
  答:硬件中断装置和软件中断处理程序。I/O中断、时钟中断、硬件故障中断、程序性中断
、系统服务请求(自愿中断)
典型的中断处理:I/O中断、时钟中断、硬件故障中断、程序性中断、系统服务请求(自愿中断)
  I/O中断:一般由I/O设备的控制器或通道发出,可分为:I/O操作正常结束、I/O异常。
  时钟中断:维护时钟软件、处理器调度、控制系统定时任务、实时处理
  自愿性中断:用户通过访管指令调用系统调用
(1804 )什么是程序性中断?程序性中断都必须由操作系统来完成吗?举例说明。
答:程序性中断是指程序指令出错,指令越权或指令寻址越界而引发的系统保护。不一定,也可以由自己完成,如系统调试中断和算术错误等。
(1810)什么是中断?如果同一中断级中的多个设备接口中同时都有中断请求时,如何处理?
答:中断是指处理器对系统中或系统外发生的异步事件的响应,如果同一中断级中的多个设备接口中同时都有中断请求时,可以采用固定优先数或轮转法
系统调用的目的:请求系统服务
第三章 进程与线程⭐⭐⭐
程序的顺序执行一各具有独立功能的程序独占处理器直到得到最终结果。
特点:顺序性、封闭性、程序执行结果的确定性、程序执行结果的可再现性
程序的并发执行:两个或以上程序同时处于已开始且尚未结束的状态。
特点:在执行期间并发程序相互制约、程序与计算不再一一对应、执行结果不可再现、程序的并行执行(宏观上同时)和程序的并发执行(微观上同时)
多道程序设计
特点:独立性、随机性、资源共享性
缺陷:可能延长程序的执行时间、系统效率的提高有一定限度
进程:具有一定独立功能的程序在某个数据集合上的一次运行活动,是系统进行资源分配调度的一个独立单位。
进程程序、数据、进程控制块 3部分组成
程序是动态的,进程是动态的,二者是多对多的关系。
进程的特性:并发性、动态性、独立性、交往性、异步性、结构性
三状态模型:运行状态、就绪状态、等待状态
五状态模型:运行状态、就绪状态、阻塞状态、创建状态、结束状态
七状态模型:
(1804)在七状态进程模型中,什么是阻塞状态?什么是阻塞挂起状态?两个状态之间有何转换?
答:进程阻塞:进程在内存并等待某事件出现。阻塞挂起:进程在外存并等待某事件出现。当没有进程处于就绪状态或就绪进程要求更多内存资源时,会把进程从阻塞状态转为阻塞挂起。
进程控制块PCB是描述进程状态和特性的数据结构,PCB是进程存在的唯一标识,一个进程只能有唯一的进程控制块。
操作系统中每创建一个进程就要为该进程建立一个 进程控制块 ,一个刚被创建的进程,它的初始状态为 就绪态
PCB的内容:调度信息(描述进程当前状况)、现场信息(刻画进程的运行情况)
PCB组织方式:线性方式、索引方式、链接方式
进程控制:对进程在整个生命周期中各种状态之间的转换进行有效的控制。通过原语实现。
原语:原语是操作系统核心的一个组成部分,由若干条指令组成,用来实现某个特定的操作功能,执行时具有不可间断性
进程控制原语:创建原语、撤销原语、阻塞原语、唤醒原语
阻塞原语过程:首先中断处理器的执行,把处理器的当前状态保存在PCB的现场信息中,然后把进程的当前状态置为等待状态,并把它插入到该事件的等待队列中。
唤醒原语过程:在等待队列中到该进程,将进程的当前状态置为就绪状态,然后将它从等待队列中撤出并插入到就绪队列中排队,等待调度执行。
(1810)进程控制通过进程控制原语开实现,请分别描述创建原语和撤销原语的操作过程。
答:(1)创建原语:先申请一个空闲PCB区域,将有关信息填入PCB,置该进程为就续状态,最后把它插入就绪队列中。
(2)撤销原语:到要被撤销进程的PCB,将它匆匆所在队列中消去,撤销属于该进程的一切“子孙进程”,释放被撤销进程所占用的全部资源,并消去被撤销进程的PCB
线程:在引入线程的操作系统中,线程是进程中的一个 实体,是调度和分派的基本单位进程是资源拥有的基本单位。线程自己基本上不拥有系统资源,只拥有少量在运行中必不可少的资源,但它可与同属一个进程的其他线程共享进程所拥有的全部资源。一个线程可以创建和撤销另一个线程,同一个进程中的多个线程之间可以并发执行。
线程的属性
(1)每个线程有一个唯一的标识符和一张线程描述表
(2)不同的线程可以执行相同的程序
(3)同一进程中各个线程共享该进程的内存地址空间
(4)线程是处理器的独立调度单位,多个线程可以并发执行
(5)一个线程被创建后便开始它的生命周期,在生命周期内会经历等待状态、就绪态、  运行态等各种状态变化。
引入线程的好处:创建/结束一个新线程花费时间少、线程之间的切换花费时间少
在线程的两种实现方式中:用户级线程只存在于用户态中,与内核无关内核级线程所有线程的创建、撤销、切换都由内核实现
(1710)请分别从资源分配、创建速度、通信、并行执行效率的角度简述多线程技术优势
答:(1)创建线程无需另外分配资源,而创建进程需分配资源
(2)因为创建线程无需分配资源,因此速度比创建进程快
    (3)线程间通信在同一地址空间中进行,不需额外的通信机制,所以通信简单,信息传递速度更快。
    (4)线程能独立执行,充分利用,发挥处理器与外围设备并行工作的能力。
进程调度:从就绪进程中选取一个进程,让它占用处理器
(1910)什么是进程调度?在设计调度算法时通常使用吞吐量、周转时间和处理器利用率作为衡量指标,请解释吞吐量和周转时间的含义。
答:进程调度:即处理器调度,是指根据一定的调度算法,系统从就绪队列中选择一个进程,把处理器分配给它。