Windows的管理机制
一.核心态和用户态
1.为了保证操作系统的稳定性和安全性,windows将处理器的运行模式分为核心态和用户态。
2.用户的应用程序运行在用户态,而操作系统的内核代码和设备驱动程序运行在核心态
3.处在用户态的应用程序不能直接对操作系统的内核数据直接访问,必要时只能通过操作系统提供的系统调用,将请求转到核心态系统服务
4.一个用户线程在执行时,往往一部分时间运行在用户态,另外一部分时间通过系统调用运行在核心态
5.运行于核心态的操作系统服务可以访问所有的系统内存和所有CPU指令,可以利用所有的计算机资源来完成复杂的系统管理
6.所有运行于核心态的系统服务和设备驱动程序都共享同一系统地址空间,这样可以减少数据交换的中间环节,从而提高系统效率
二.Windows操作系统的体系结构
1.windows操作系统是由运行在用户态和核心态的一些构件组成的,一般运行于核心态的构件成为核心系统服务,而将运行于用户态的为用户进程
2.windows的用户进程一般包括:操作系统支持进程,服务进程,应用进程,环境子系统服务进程
3.windows的核心系统服务一般包括:
1. Windows执行体:它运行在核心态的系统服务,用于管理进程和线程,管理内存,管理设备,提供系统安全,网络以及进程间通信等服务
2. Windows内核:它为执行体提供底层系统服务,管理线程调度,中断和意外处理,多处理器同步等
3. 设备驱动程序:它运行在核心态,管理硬件设备和处理IO请求
4. 硬件抽象层:它对不同的计算机环境(主要是主板上的硬件)提供标准的系统封装,使得其他的系统服务在设计时实现和硬件无关
5. 窗口和图形系统:为了实现高效的用户交互,Windows的窗口管理和图形功能也运行在核心态
三.系统调用,中断和陷阱
1. 处理器通过陷阱机制捕获当前执行线程,并将控制转到某一特定的处理过程。在陷阱处理前,系统会记录当前运行线程的核心栈,以便处理完后返回该线程继续执行。
2. Windows利用系统服务陷阱来实现用户程序对系统服务调用,当用户线程调用系统服务时会触发系统服务陷阱,并将服务转到系统服务入口,切换到核心态进行执行。
3. Windows利用中断陷阱机制来管理硬件设备。通过设备驱动程序设置硬件中断陷阱,当进行I/O请求时,系统通过硬件中断处理完成设定的操作。操作系统内核还通过设置软中断陷阱来进行启动线程调度,超时处理,进行非同步的I/O操作,非同步调用其他线程的功能等
4. Windows利用意外陷阱机制来管理系统的出错状态,当发生意外处理事件时,系统会根据意外事件的条件转到意外处理例程
四.利用对象来共享系统资源
1. Windows对只在系统服务内部使用的数据往往用简单的结构数据来表示,以便提高系统效率。对于需求被用户态程序访问的系统数据,Windows都是用对象来表示如:线程,进程,文件,事件等。
2. 对象的特点:必须通过对象服务来访问和修改对象封装的数据。
3. 在用户态的进程访问系统对象时,往往使用对象句柄。对象句柄是可以引用对象的间接指针(以免直接访问系统数据结构)
4. 在严格意义上,Windows不是一个面向对象实现的操作系统,大部分操作系统的代码是使用C语言来编写,单Windows操作系统在系统设计上采用了面向对象的一些思想,这样有利于提高系统效率的同时增强系统可移植性