首页 > 系统相关 >复习笔记|第十四章 Windows操作系统模型《操作系统原理教程》

复习笔记|第十四章 Windows操作系统模型《操作系统原理教程》

时间:2023-08-07 14:14:09浏览次数:50  
标签:同步 操作系统 Windows 调度 对象 线程 内核 DPC 复习

参考教材:《操作系统原理教程(第4版)》刘美华 翟岩龙著

大纲问题回答(精简版)

1. Windows 采用什么样的体系结构?

image.png
从图中看出,系统划分为两种状态,核心态和用户态。粗线上方代表用户态进程,下方是核心态的操作系统服务。用户态的进程只能运行在受保护的地址空间。因此,四种类型的用户态进程都有各自的私有地址空间。核心态的操作系统服务组件运行在统一的核心地址空间。核心态组件包括:执行体( executive)、内核(kernel)、文件和设备驱动程序(Fileand and device drivers)、 硬件抽象层( Hardware Abstraction Layer, HAL), 以及窗口和图(Windows USER, GDI) 等。

2. 硬件抽象层HAL的作用是什么?

硬件抽象层
◼ 可加载的核心态模块HAL.dll,直接操作硬件,为Windows运行在硬件平台上提供低级接口。
◼ 隐藏各种与硬件有关的细节,使上层免受特殊硬件平台的影响,系统可移植性好。

3. Windows系统组件的基本机制包括:陷阱调度、执行体对象管理器、同步(自旋锁、内核调度程序对象)、本地过程调用LPC等。

① 陷阱调度。属于内核的功能。包括中断、DPC 、APC 、异常调度、系统服务调度。
② 执行体对象管理器。
③ 同步。自旋锁、内核调度程序对象。
④ 本地过程调用LPC。在同一台计算机上实现客户进程和服务器进程之间的消息传递。服务器创建一个LPC连接端口对象,然后在该端口上监听客户连接请求。类似socket编程。
image.png

4. 理解:延迟过程调用DPC,异步过程调用APC。

延迟过程调用 DPC
DPC被内核用来执行一些相对于当前高优先级的任务来说不那么紧急的任务
◼有时内核在进行系统嵌套调用时,检测到应该进行线程调度,为了保证调度的正确性,内核用DPC来延迟调度的产生。
◼在硬件中断服务例程中,可以把一些相对不紧急的事情放到一个DPC对象中,从而缩短处理机停留在高IRQL的时间。
◼DPC对象主要包含需调用的系统函数地址
◼DPC队列是系统范围的,能记住有哪些工作尚未处理。
◼当IRQL降低到DPC/Dispatcher级别以下时,DPC中断就产生。依次执行DPC队列中的各个例程,直至DPC队列为空。
异步过程调用 APC
◼每个线程都有自己的APC队列。当一个线程被调度时,它的APC过程会立刻被执行。
◼有两种APC:
核心态APC可以中断线程,在线程被调度时立即执行,不需要得到线程的“允许”
◼用户态APC需要得到线程的“允许”才能执行。

5. Windows中有哪些对象,都有什么作用?

(两种类型对象:执行体对象和内核对象。执行体组件:进程和线程管理器、内存管理器、I/O管理器、对象管理器等。内核对象是由内核实现的一个初级对象集,对用户态代码不可见,仅供执行体使用。内核对象又分为控制对象和调度程序对象两种。一个执行体对象可以包含一个或多个内核对象。)
内核
◼ 内核功能:线程调度,中断和异常调度,多处理机同步,提供执行体使用的一组例程和基本对象。
◼ 内核对象是由内核实现的一个初级对象集,对用户态代码不可见,仅供执行体使用。
◼ 执行体对象绝大多数封装了一个或多个内核对象。
执行体
◼ 在内核之上,包含基本的操作系统服务。
◼ 可供用户态调用的系统服务函数
◼ 仅供核心态内部使用和调用的函数
◼ 各功能组件函数
◼ 进程和线程管理器、虚拟内存管理器
◼ 安全监视器、高速缓存管理器
◼ I/O管理器、对象管理器
◼ 本地过程调用机制、即插即用管理
◼ 电源管理、网络管理
内核
◼ 执行Windows最基本的操作,由一组底层的操作系统功能构成。
◼ 线程安排和调度
◼ 中断和异常调度
◼ 多处理机同步
◼ 提供执行体使用的一组例程和基本对象
◼ 运行在核心态,除中断服务例程ISR以外,正在运行的线程不能抢占内核。

6. 在多处理机系统中,提供了哪些同步和互斥机制?

(内核引入自旋锁实现多处理机互斥机制。内核以内核对象的形式给执行体提供其他的同步机构—“调度程序对象”,包括:进程对象、线程对象、事件对象、信号量对象、互斥体对象、可等待的定时器对象及文件对象等。每个同步对象都有“有信号”或“无信号”两种状态。)
1. 内核同步
▪ 内核引入自旋锁实现多处理机互斥访问核临界区(修改全局数据结构的代码段)。
▪ 在Intel处理机上,自旋锁是通过“测试与设置”test&set( )硬件指令实现的。
▪ 拥有自旋锁的线程不被剥夺处理机。
2. 执行体同步
▪ 执行体组件需要同步访问全局数据结构(如页框数据库),执行体还提供用户态的同步机制。
▪ Windows定义了统一的同步机制:等待调度程序对象为有信号状态,WaitForSingleObject( ) 。
▪ 每个同步对象有两种状态:“有信号”,“无信号”。(线程、进程终止时有信号)

7. 线程如何实现等待一个同步对象的操作?

◆WaitForSingleObject( )
▪ 执行体组件需要同步访问全局数据结构(如页框数据库),执行体还提供用户态的同步机制。
▪ Windows定义了统一的同步机制:等待调度程序对象为有信号状态,WaitForSingleObject( ) 。
▪ 每个同步对象有两种状态:“有信号”,“无信号”。(线程、进程终止时有信号)

大纲问题回答

1. Windows 采用什么样的体系结构?(3)

image.png
从图中看出,系统划分为两种状态,核心态和用户态。粗线上方代表用户态进程,下方是核心态的操作系统服务。用户态的进程只能运行在受保护的地址空间。因此,四种类型的用户态进程都有各自的私有地址空间。核心态的操作系统服务组件运行在统一的核心地址空间。核心态组件包括:执行体( executive)、内核(kernel)、文件和设备驱动程序(Fileand and device drivers)、 硬件抽象层( Hardware Abstraction Layer, HAL), 以及窗口和图(Windows USER, GDI) 等。

2. 硬件抽象层HAL的作用是什么?(1)

◼ 可加载的核心态模块HAL.dll,直接操作硬件,为Windows运行在硬件平台上提供低级接口。
◼ 隐藏各种与硬件有关的细节,使上层免受特殊硬件平台的影响,系统可移植性好
注:做人留一线

3. Windows系统组件的基本机制包括:陷阱调度、执行体对象管理器、同步(自旋锁、内核调度程序对象)、本地过程调用LPC等。(3)

陷阱调度。属于内核的功能。包括中断、DPC 、APC 、异常调度、系统服务调度。
执行体对象管理器
同步。自旋锁、内核调度程序对象。
本地过程调用LPC。在同一台计算机上实现客户进程和服务器进程之间的消息传递。服务器创建一个LPC连接端口对象,然后在该端口上监听客户连接请求。类似socket编程。
image.png

4. 理解:延迟过程调用DPC,异步过程调用APC。(4)

DPC 用于执行一些相对当前高优先级任务不那么紧急的任务;相对不紧急的事情放入 DPC 对象,形成 DPC 队列,之后当中断请求级别 IRQL 降低至 DPC/Dispatcher 以下,就产生 DPC 中断,调度程序依次执行 DPC 队列中的例程直至其为空
APC 为用户程序和系统代码提供了一种在特定用户线程环境中执行代码的方法,各线程均有其 APC 队列
理解“特定环境”:如要从内核空间复制一个缓冲区到用户进程地址空间,则这个复制过程必须在用户进程上下文进行,才能使页表包含内核缓冲区和用户缓冲区;

延迟过程调用 DPC
DPC被内核用来执行一些相对于当前高优先级的任务来说不那么紧急的任务。
◼有时内核在进行系统嵌套调用时,检测到应该进行线程调度,为了保证调度的正确性,内核用DPC来延迟调度的产生。
◼在硬件中断服务例程中,可以把一些相对不紧急的事情放到一个DPC对象中,从而缩短处理机停留在高IRQL的时间。
◼DPC对象主要包含需调用的系统函数地址
◼DPC队列是系统范围的,能记住有哪些工作尚未处理。
◼当IRQL降低到DPC/Dispatcher级别以下时,DPC中断就产生。依次执行DPC队列中的各个例程,直至DPC队列为空。
异步过程调用 APC
◼每个线程都有自己的APC队列。当一个线程被调度时,它的APC过程会立刻被执行。
◼有两种APC:
◼核心态APC可以中断线程,在线程被调度时立即执行,不需要得到线程的“允许”;
◼用户态APC需要得到线程的“允许”才能执行。

5. Windows中有哪些对象,都有什么作用?(4)

执行体对象:进程管理器、主存管理器、I/O子系统等。
内核对象:由内核实现的一个初级对象的集合,对用户态代码不可见,仅供执行体使用。
一个执行体对象可以包含一个或多个內核对象

内核
◼ 内核功能:线程调度,中断和异常调度,多处理机同步,提供执行体使用的一组例程和基本对象。
◼ 内核对象是由内核实现的一个初级对象集,对用户态代码不可见,仅供执行体使用。
◼ 执行体对象绝大多数封装了一个或多个内核对象。
执行体
◼ 在内核之上,包含基本的操作系统服务。
◼ 可供用户态调用的系统服务函数
◼ 仅供核心态内部使用和调用的函数
◼ 各功能组件函数
◼ 进程和线程管理器、虚拟内存管理器
◼ 安全监视器、高速缓存管理器
◼ I/O管理器、对象管理器
◼ 本地过程调用机制、即插即用管理
◼ 电源管理、网络管理
内核
◼ 执行Windows最基本的操作,由一组底层的操作系统功能构成。
◼ 线程安排和调度
◼ 中断和异常调度
◼ 多处理机同步
◼ 提供执行体使用的一组例程和基本对象
◼ 运行在核心态,除中断服务例程ISR以外,正在运行的线程不能抢占内核。

6. 在多处理机系统中,提供了哪些同步和互斥机制?(3)

  • 内核同步:多处理器系统中,内核引入自旋锁实现多处理机互斥机制,通过硬件指令“测试与设置”实现;(详见第三章)
  • 执行体同步:内核以内核对象的形式给执行体提供其他的同步机构—“调度程序对象”,包括:进程对象、线程对象、事件对象、信号量对象、互斥体对象、可等待的定时器对象及文件对象等。每个同步对象都有“有信号”或“无信号”两种状态
  1. 内核同步
    ▪ 内核引入自旋锁实现多处理机互斥访问核临界区(修改全局数据结构的代码段)。
    ▪ 在Intel处理机上,自旋锁是通过“测试与设置”test&set( )硬件指令实现的。
    ▪ 拥有自旋锁的线程不被剥夺处理机。
    2. 执行体同步
    ▪ 执行体组件需要同步访问全局数据结构(如页框数据库),执行体还提供用户态的同步机制。
    ▪ Windows定义了统一的同步机制:等待调度程序对象为有信号状态,WaitForSingleObject( ) 。
    ▪ 每个同步对象有两种状态:“有信号”,“无信号”。(线程、进程终止时有信号)

7. 线程如何实现等待一个同步对象的操作?(3)

WaitForSingleObject( )
▪ 执行体组件需要同步访问全局数据结构(如页框数据库),执行体还提供用户态的同步机制。
▪ Windows定义了统一的同步机制:等待调度程序对象为有信号状态,WaitForSingleObject( ) 。
▪ 每个同步对象有两种状态:“有信号”,“无信号”。(线程、进程终止时有信号)

对象管理器提供了两个系统服务程序,使线程与调度程序对象同步;
WaitForSignalObjects(); //等待单个调度程序对象(即同步对象);
WaitForMultipleObjects(); //等待多个调度程序对象(即同步对象);

标签:同步,操作系统,Windows,调度,对象,线程,内核,DPC,复习
From: https://www.cnblogs.com/JinyuLi/p/17611274.html

相关文章

  • 复习笔记|第十五章 Windows进程和线程管理《操作系统原理教程》
    参考教材:《操作系统原理教程(第4版)》刘美华翟岩龙著大纲问题回答(精简版)1.管理进程和线程的数据结构:执行体进程块EPROCESS、执行体线程块ETHREAD、内核进程块KPROCESS、内核线程块KTHREAD。structEPROCESS{P285KPROCESSPCB;内核进程块ObjectTable;进程的句......
  • 复习笔记|第十六章 Windows存储器管理《操作系统原理教程》
    参考教材:《操作系统原理教程(第4版)》刘美华翟岩龙著大纲问题回答(精简版)1.两种数据结构:虚拟地址描述符VAD、区域对象,这两种结构各有什么作用?◆P304◼Windows系统采用一棵由虚拟地址描述符(VAD)构成的平衡二叉树来管理进程私有地址空间。一个进程的一组VAD结构构成一棵自平衡二......
  • 复习笔记|第十七章 Windows文件系统《操作系统原理教程》
    参考教材:《操作系统原理教程(第4版)》刘美华翟岩龙著大纲问题回答(精简版)1.Windows所支持的文件系统类型有哪些?❖支持FAT12、FAT16和FAT32文件系统。12、16和32分别为描述磁盘块簇地址使用的位数。NTFS.sys,使用64位的簇编号。❖现在主要使用NTFS(支持最大文件256TB)和FAT64(最大......
  • 复习笔记|第四章 存储器管理《操作系统原理教程》
    参考教材:《操作系统原理教程(第4版)》刘美华翟岩龙著大纲问题回答(精简版)1.存储器管理的功能。名字空间、地址空间、存储空间、逻辑地址、物理地址。(1)存储器分配:解决多进程共享主存的问题(2)地址转换或重定位:研究各种地址变换方法及相应的地址变换机构。(3)存储器保护:防止故障程序......
  • 复习笔记|第五章 文件系统《操作系统原理教程》
    参考教材:《操作系统原理教程(第4版)》刘美华翟岩龙著大纲问题回答(精简版)1.什么是文件和文件系统?文件系统的主要功能。UNIX系统如何对文件进行分类?它有什么好处?⚫文件是存储在外部存储器上的具有符号名的相关信息的集合。⚫文件系统:OS中管理文件的软件机构。包括管理文件所......
  • AGI通用人工智能操作系统
    随着科技的飞速发展,人工智能已经成为了当今世界最热门的技术领域之一。从智能手机、自动驾驶汽车到智能家居系统,人工智能技术已经渗透到了我们生活的方方面面。然而,尽管人工智能在很多领域取得了显著的成果,但它仍然存在一些局限性,比如无法理解复杂的人类情感和价值观,以及在处理非......
  • 操作系统概述
    2.1.1操作系统的概念操作系统 是一组控制盒管理计算机系统的硬件和软件资源、控制程序执行、改善人机界面、合理地组织计算机工作流程并未用户使用计算机提供良好运行环境的一种系统软件。 目的:提高计算机系统的效率,增强系统的处理能力,提高系统资源的利用率,方便用户使用计算机。2......
  • shell命令概述 Shell作用:命令解释器 介于操作系统内核与用户之间,负责解释命令行 获得
    shell命令概述Shell作用:命令解释器介于操作系统内核与用户之间,负责解释命令行获得命令帮助内部命令help命令的“--help”选项使用man命令阅读手册页命令行编辑的几个辅助操作Tab键:自动补齐反斜杠“\”:强制换行快捷键Ctrl+U:清空至行首快捷键Ctrl+K:清空至行尾快捷键Ctr......
  • windows应用程序icon缓存、查看图标、icon制作方法
    windows程序图标缓存在vs中替换c++程序的图标后,需要重新编译,但是很多情况下都不会刷新,还是看到老的图标,只能重启电脑才能看到新的图标。通过ChatGPT得到相关的回答如下:如果在Windows上更换了可执行文件(.exe)的图标,但是在图标文件已经更改的情况下仍然显示旧的图标,可能是因......
  • Windows11使用docker desktop安装kafka&zookeeper集群
    docker-compose安装zookeeper集群参考文章:http://t.csdn.cn/TtTYIhttps://blog.csdn.net/u010416101/article/details/122803105?spm=1001.2014.3001.5501准备工作:​ 在开始新建集群之前,新建好文件夹,用来挂载kafka、zookeeper数据,如下:zookeeper文件夹D:\soft\docker\zookee......