asmsys
驱动老牛
驱动老牛
  • 注册日期2002-03-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望17点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
460楼#
发布于:2002-10-25 13:26
此。这些目标包括以下几方面:
A)    优秀的可移植性
Windows2000用以下几种方法实现在不同的硬件结构和平台上的可移植性:
w    大多数的Windows2000组件提供一组内核服务例程, 供驱动程序和其它内核组件调用。 这些服务例程提供统一的编程接口,尽管这些服务例程底层的实现因为Windows版本不同而不同,而他们的编程接口保
asmsys
驱动老牛
驱动老牛
  • 注册日期2002-03-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望17点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
461楼#
发布于:2002-10-25 13:26
持稳定不变,这就使得基于其上的组件和驱动程序保持平台无关性和向后兼容性。
w    Windows2000采用了分层设计,依赖于处理机体系结构和平台的系统底层部分被隔离的单独模块之中,所以系统的高层可以被屏蔽在千差万别硬件平台之外。提供操作系统可移植性的两个关键组件是HAL和内核。依赖于体系结构的功能(如线程描述表的切换)在内核中实现。在相同体系结构中,与计算机硬
asmsys
驱动老牛
驱动老牛
  • 注册日期2002-03-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望17点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
462楼#
发布于:2002-10-25 13:26
w    Windows 2000主要是用可移植C语言编写――操作系统执行体、实用程序、设备驱动程序使用C语言编写,图形子系统部份和用户界面是用C++语言编写。只有那些必须和系统硬件通信的操作系统部分(如中断处理程序),和性能极度敏感(如描述表切换)的部分使用汇编语言编写。汇编语言代码不仅存
asmsys
驱动老牛
驱动老牛
  • 注册日期2002-03-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望17点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
463楼#
发布于:2002-10-25 13:26
言编写,图形子系统部份和用户界面是用C++语言编写。只有那些必须和系统硬件通信的操作系统部分(如中断处理程序),和性能极度敏感(如描述表切换)的部分使用汇编语言编写。汇编语言代码不仅存在于内核及HAL之中,而且存在于执行体中的少量区域(例如实现执行体里本地过程调用机构中的一个模块),甚至存在在一些用户态代码库中。多数Windows2000组件是用C语言编写,所以这个操作系统就
asmsys
驱动老牛
驱动老牛
  • 注册日期2002-03-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望17点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
464楼#
发布于:2002-10-25 13:27
w    避免使用机器相关的硬编码,使得同一硬件可以在其它不同配置的机器上运行,这叫做硬件可配置性。
w    底层的驱动程序要为上层的各种驱动程序服务,它不能武断地猜测上层驱动的性质和特定实现,这叫做软件可配置性。
w    Windows 2000的配置管理器提供了注册登记(Registry)数据库,在其中存储了系统的硬件、各种外
asmsys
驱动老牛
驱动老牛
  • 注册日期2002-03-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望17点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
465楼#
发布于:2002-10-25 13:27
设及其驱动程序的信息。驱动程序可以从中得到机器的硬件配置和系统中的其它驱动信息。即插即用管理器和内核驱动程序利用注册数据库来取得本机上硬件以及其它驱动程序的配置。Win2000驱动程序也把自己的设备信息以及机器相关的配置信息储存于此。
asmsys
驱动老牛
驱动老牛
  • 注册日期2002-03-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望17点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
466楼#
发布于:2002-10-25 13:27
C)    总是可以被剥夺执行权,总是可以被中断
在Windows2000中内核组件代码按照以下优先级原则进行运行:
w    内核定义的线程优先级策略
系统中各线程都有其自身的优先级属性。大体上讲儿,大多数系统线程都有可变的优先级属性,它们总是可以被剥夺的而且它们和其它优先级相同线程一起被调度。一些系统中的线程具有实时优先级,它们可以
asmsys
驱动老牛
驱动老牛
  • 注册日期2002-03-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望17点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
467楼#
发布于:2002-10-25 13:27
抢先其它低优先级线程运行,同时它们也被优先级更高的线程抢先。
w    内核定义的中断请求级策略
内核同时把不同的软件中断和硬件中断赋予不同的优先级,这样某些高优先级的内核代码就能够运行在较高的中断请求级,某些特定的实时代码就能拥有很高的调度优先权。通过内核代码中运行的中断请求级可
asmsys
驱动老牛
驱动老牛
  • 注册日期2002-03-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望17点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
468楼#
发布于:2002-10-25 13:28
以确定相应的硬件优先级。内核模式代码应该始终可以被中断,较高优先级的中断随时都有可能发生,它可以中断当前执行的代码,立即投入运行。换句话说,在一定中断请求级上运行的代码在当前处理器上可以屏蔽相同或较低优先级的中断。内核定义了一种可移植的IRQL,如果处理器具有特殊的中断相关的特性(例如,第二时钟),则可以增加IRQL。按优先级排队中断,较高优先级的中断可以抢先较低优先级的
asmsys
驱动老牛
驱动老牛
  • 注册日期2002-03-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望17点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
469楼#
发布于:2002-10-25 13:28
中断服务,每个处理器IRQL设置决定了处理机可以接受哪些中断,IRQL也被用于同步访问核心态数据结构,当核心态线程运行时,它可以降低或提高处理器的IRQL。如果中断源的IRQL高于当前中断设置,则它的中断可以中断处理器;如果中断源的IRQL等于或低于当前中断级,则它的中断将被封锁或屏蔽,直到一个正在执行的线程降低了IRQL。
asmsys
驱动老牛
驱动老牛
  • 注册日期2002-03-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望17点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
470楼#
发布于:2002-10-25 13:28
操作系统的可以被剥夺和可以被中断的设计目标带来的好处是最大限度提高平均性能,任何中断服务例程都可以被更高中断请求级的中断服务例程中断,任何线程都可以被更高优先级的线程抢先。
D)    多处理器安全
在Windows2000多CPU操作系统平台,以下几种情况有可能发生:
在对称多处理多平台上,每个处理机都可以访问内存,发生中断,访问输入输出控制寄存器。(比较而
asmsys
驱动老牛
驱动老牛
  • 注册日期2002-03-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望17点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
471楼#
发布于:2002-10-25 13:28
言,在非对称多处理平台上,只有主CPU可以处理中断。)
Windows2000被设计为可以不加修改地运行在单处理器和多处理器平台上,所有驱动程序也必须安全的实现多处理器安全,避免被一个处理机访问和修改的存储器同时被另一台处理器访问和改变,比如说,一个设备的中断同时在两个处理器上发生,那么在一个处理器上特定优先级上的中断服务例程必须提供某种机
asmsys
驱动老牛
驱动老牛
  • 注册日期2002-03-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望17点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
472楼#
发布于:2002-10-25 13:28
制排他的访问临界区。在多处理器情况下,驱动程序的输入和输出请求可能是重叠的,这就是说,一台处理机正在处理输入请求,而另一个处理器在和设备通信,在这种情况下,所有的驱动程序必须同步对共享的资源进行访问(如果有必要的话)。内核组件提供一种叫自旋锁的机制,用来在多处理机平台上保护共享数据,使用自旋锁有以下两条原则:
w    在一个时刻只有一个例程能够获得此自旋锁,只有持有它的例程可以访问被自旋锁保护数据,其它例
asmsys
驱动老牛
驱动老牛
  • 注册日期2002-03-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望17点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
473楼#
发布于:2002-10-25 13:28
程必须等待这个例程是释放自旋锁,然后重新获得后,才能去接触共享的数据。
w    每一个系统中的自旋锁都有相关的中断请求级,只有运行在这个中断请求级上的例程才有可能获得自旋锁。
E)    基于面向对象的设计的思想
asmsys
驱动老牛
驱动老牛
  • 注册日期2002-03-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望17点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
474楼#
发布于:2002-10-25 13:29
w    Windows2000是基于面向对象的思想设计,执行体中的不同组件定义了许多对象类型,每一个组件同时提供了操纵这些对象方法,组件不允许直接操作其它组件的对象,为使用其它组件的对象,必须使用其提供的接口。严格遵循这些原则有利于增强Windows2000的可移植性和灵活性,例如,未来版本的Windows操作系统有可能部分或者全部的重新定义这些对象结构,这些被重写的对象版本将不会对现有的执行体组件产生影响,换句话说,操作系统中组件的通信服务方式也是基于接口,驱动程序同样应该避免
asmsys
驱动老牛
驱动老牛
  • 注册日期2002-03-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望17点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
475楼#
发布于:2002-10-25 13:29
w    和操作系统一样,驱动程序和他们的设备也是基于面向对象对象设计的,对系统的其它组件而言(包括用户代码),同设备联系被定义为一种打开文件操作,在输入输出子系统中,每一个驱动程序(逻辑,虚
asmsys
驱动老牛
驱动老牛
  • 注册日期2002-03-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望17点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
476楼#
发布于:2002-10-25 13:29
出管理器定义这些对象。
asmsys
驱动老牛
驱动老牛
  • 注册日期2002-03-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望17点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
477楼#
发布于:2002-10-25 13:30
输入输出管理器的主要任务是接收输出请求(通常来自于用户应用程序),创建IRP来代表它,将这些IRP
asmsys
驱动老牛
驱动老牛
  • 注册日期2002-03-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望17点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
478楼#
发布于:2002-10-25 13:30
引导到正确的服务例程来处理;并且跟踪他们直到他们被完成,最后向发起者返回状态参数。输入输出管
asmsys
驱动老牛
驱动老牛
  • 注册日期2002-03-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望17点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
479楼#
发布于:2002-10-25 13:30
理器,插即用管理器,电源管理器使用IRP来同核心态驱动程序进行通信,并且允许驱动程序之间进行通
游客

返回顶部