windows体系结构

一、 用户模式和内核模式

(user mode &kernel mode)

Intel x86 处理器的体系结构定义了四种特权级,或特为四个环。来保护系统代码不会被低级别的代码恶意地或无意的改写掉。

特权级0(或称0环)作为内核模式,特权级3作为用户模式。

1.内核模式下的操作系统和设备驱动程序共享同一个虚拟地址空间。对于内核模式下运行的组件,

windows对它们的读写系统内存并不加以保护。

特权级:Privilege level

2. 与模式有关的性能计数器 :

Processor: % Privilege Time (内核模式下)    %User Time(用户模式下)

表示:指定的间隔内,单个CPU运行在内核/用户模式下的时间所占的百分比

Process: % Privilege Time       %User Time

Thread: % Privilege Time        %User Time

二、系统结构

用户模式的线程在一个受保护的进程地址空间中执行。因此,系统支持进程、服务进程、用户应用程序和环境子系统都有它们各自的

私有进程地址空间。

三、Windows的核心系统文件

四、 硬件抽象层:HAL

Hardware Abstraction Layer,硬件抽象层 Windows NT的一个目标是使操作系统可跨平台移植.

HAL是一个可加载的,内核模式的模块,它提供了针对windows当前运行所在的硬件所在平台的低层接口。隐藏了与硬件相关的细节,比如I/O接口,中断控制器等。

可通过相依性检查工具:Depends.exe来检查内核和HAL文件的导出和导入表,从而了解它们之间的关系。

注意:Ntoskrnl链接了HAL,而HAL又链接了Ntoskrnl(它位相互使用了对方的函数)

五、 系统进程

以下的系统进程会出现在每一个windows系统中---空闲进程、System进程---不是完整的进程,它们并不是在运行一个用户模式的可执行文件。

①   空闲进程(Idle)---每个CPU 一个线程,占用空闲的CPU时间。

②   System进程(包含大多数内核模式系统线程)

③   会话管理器(Smss.exe)

④   Windows子系统(Csrss.exe)

⑤   登录进程(Winlgon.exe)

⑥   服务控制管理器(Services.exe)和它创建的子服务进程(如Svchost.exe)

⑦   本地安全认证服务器(Lsass.exe)

注:中断和DPC

标记为”Interrupts”和”DPCs”的这两行代表用于中断和延迟过程调用的时间。在任务管理器将中断和DPC时间包含在系统空闲时间中。

windows理论基础(一)的更多相关文章

  1. windows类书的学习心得(转载)

    原文网址:http://www.blogjava.net/sound/archive/2008/08/21/40499.html 现在的计算机图书发展的可真快,很久没去书店,昨日去了一下,真是感叹万千 ...

  2. 探索Windows命令行系列(2):命令行工具入门

    1.理论基础 1.1.命令行的前世今生 1.2.命令执行规则 1.3.使用命令历史 2.使用入门 2.1.启动和关闭命令行 2.2.执行简单的命令 2.3.命令行执行程序使用技巧 3.总结 1.理论基 ...

  3. Python-进程与线程理论基础-Day10

    进程与线程理论基础 1.背景知识 理论基础: 一 操作系统的作用: 1:隐藏丑陋复杂的硬件接口,提供良好的抽象接口 2:管理.调度进程,并且将多个进程对硬件的竞争变得有序 二 多道技术: 1.产生背景 ...

  4. python3全栈开发-补充UDP的套接字、操作系统、并发的理论基础

    一.基于UDP的套接字 udp套接字简单示例 import socket ip_port=('1.1.1.1',8181) BUFSIZE=1024 udp_server_client=socket. ...

  5. windows类书的学习心得

    原文网址:http://www.blogjava.net/sound/archive/2008/08/21/40499.html 现在的计算机图书发展的可真快,很久没去书店,昨日去了一下,真是感叹万千 ...

  6. c++复习:STL之理论基础

    1 STL(标准模板库)理论基础 1.1基本概念 STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称.现然主要出现在C++中,但在被引入C++之 ...

  7. Windows内存管理的方式

    一.内存的概念 1. 物理内存:即插在主板上的内存条.他是固定的,内存条的容量多大,物理内存就有多大(集成显卡系统除外). 但是如果程序运行很多或者程序本身很大的话,就会导致大量的物理内存占用,甚至导 ...

  8. Windows+Apache+Python+Django 踩坑记录

    摘要 使用Python进行Web项目开发:相对于主流三大Web端解决方案(Java/.NET/PHP) Python在某些方面具有一定的优势,相对 Java/.NET 有更轻量级的部署方案,相对PHP ...

  9. Python之网路编程进程理论基础

    背景知识 顾名思义,进程即一个软件正在进行的过程.进程是对正在运行程序的一个抽象. 进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老的也是最重要的抽象概念之一.操作系统的其他 ...

随机推荐

  1. C语言中头文件<stdio.h>中的#ifndef _STDIO_H_

    先了解这里的相关知识:http://www.cnblogs.com/stemon/p/4000468.html 头文件的中的#ifndef,这是一个很关键的东西.比如你有两个C文件,这两个C文件都in ...

  2. struts2 + jquery 开发环境下的ajax构建方法(action写法 + struts.xml配置 + js调用代码)

    1.action写法 public class RegisterAction extends ActionSupport { private InputStream inputStream; /** ...

  3. Android GreenDao with Android Studio IDE

    转:http://blog.surecase.eu/using-greendao-with-android-studio-ide/ In this tutorial we will show you ...

  4. vmware 使用技巧

    1.虚拟机如何进入BIOS界面? 方法: 1) 开机按F2 2) 若来不及按F2的话,可以通过以下 2. 如何让虚拟机进入安全模式? 方法:开机快速按F8 3. 当不能连接到vCenter Serve ...

  5. JAVA之Exchanger

    如果两个线程在运行过程中需要交换彼此的信息,比如一个数据或者使用的空间,就需要用到Exchanger这个类,Exchanger为线程交换信息提供了非常方便的途径,它可以作为两个线程交换对象的同步点,只 ...

  6. [问题解决] "Nautilus could not create the required folder "/home/kenneth/.config/nautilus"

    错误: "Nautilus could not create the required folder "/home/kenneth/.config/nautilus" 发 ...

  7. 为YUM设置代理的方法

    http://momo-fedora.blog.163.com/blog/static/1161345982009329611312/

  8. poj2538---字符匹配(映射)

    #include <stdio.h> #include <stdlib.h> #include<string.h> int main() { int i,j; ], ...

  9. npm 常用命令

    npm install xxx 安装模块npm install xxx@1.1.1   安装1.1.1版本的xxxnpm install xxx -g 将模块安装到全局环境中.npm ls 查看安装的 ...

  10. 《UML和模式应用》重点之思想篇

    本书是帮助开发人员和学生学习面向对象分析和设计(OOA/D)的核心技能的重要工具. UML不是OOA/D.也不是方法,仅仅是图形表示法,假设没有真正掌握怎样创建优秀的面向对象设计,或者怎样评估和改进现 ...