源起——我们要多个任务同时运行
压榨CPU的运算能力,用光它的每一个时钟周期。
系统功能:
资源分配:(CPU)时间,时间片;(内存)空间
在很久很久以前
DOS:不支持多任务;
后来windows发展出了协作式多任务(儒家),但并不是每个程序都是按规则运行的;所以后来出现了抢占式多任务(韩非),抢占式多任务实现的方法主要是依靠中断编写调度程序。
法:386p,中断
80386性功能:新的内存地址模型;内存分页;虚拟内存;权限支持(将所有运行的代码和内存空间分成三个级别,代码只能访问同等或低的内存空间或代码,windows中只用到了两个级别,即内核态和用户态);
术:内存管理与任务调度
内存访问的变化:段地址:偏移->段选择子:偏移(这种方式解决了内存地址范文冲突问题)段式内存->段页式内存
虚拟内存的实现:将内存页放入非物理介质(如硬盘中),windows中使用pagefiles.sys。当CPU调用这个内存页时,会触发#PF中断,从硬盘中将那个内存页调入真正的物理内存中。如果内存那个时候已经满了,需要page out。
系统定义了一些Non-paged pool,这些内存不允许分页,用于处理页错等问题。
内存相关概念:
GDT,LDT:段表,80386中有专门的寄存器指向它们;
PAE/AWE:
PAE模式操作系统不和应用程序协商;
AWE操作系统和应用程序协商,使地址空间可以映射不同的物理内存,这样应用程序实际可以使用更多的物理内存
应用程序地址空间:
/3GB/USERVA:
任务调度:
势——操作系统的权利实现
User-Mode vs Kernel-Mode;
“门”:跨安全级别的调用
API-NTDLL.dll
kill——犯错的USER-MODE PROCESS
#GP
犯错的KERNEL-MODE PROCESS:刑不上大夫
多任务事项方法比较
内存驻留(DOS);
协作式(win3.x);
抢占式(Win 9x,NT....)
权限:
SID;SAM数据库;LOGON;GINA;ACCESS TOKEN;ACL;ACE;ACCESS MASK;OWNERSHIP;
硬件:组成完整的计算机不可能只是内存和CPU
HAL;即插即用
I/O:同步/异步;mapped file;IRP;
存储:
网络:
Networking API:
名称解析:
网络协议:
注册表系统:
微软采用注册表来统一管理软硬件配置,从而大大提高了系统的稳定性和安全性,同时也使我们能更容易的对系统进行维护和管理。
总的来说注册表实际上是一个庞大的数据库,它包含了应用程序和系统软硬件的全部配置信息,初始化信息及其它重要数据。从一般用户的角度看,注册表系统由两部分组成:注册表数据库和注册表编辑器。其中注册表数据库包括两个文件:System.dat和User.dat。前者是用来保存计算机的系统信息,如安装的硬件和设备驱动程序的有关信息等;后者则是用来保存每个用户特有的信息,如桌面设置、墙纸或窗口的颜色设置等。它们一般都放在C盘Windows目录下。同时,微软为了止注册表文件的损坏,特地准备了两个备份文件System.da0和User.da0(文件类型是.da),也是放在C盘Windows目录下。
在Windows 98中还有一个专门用来储备备份文件的文件夹,即C:\Windows\Bak,相比之下,注册表编辑器是用来对注册表进行各种编辑的工具。你可以在“开始”菜单中点击运行,在运行的对话框中填入“Regedit"即可看到注册表编辑器。如果你在“系统配置实用程序"的启动项里发现ScanRegistry前的小勾没有被去掉的话,那么系统每天会自动调用Scanreg.exe对注册表备份一次,备份后的注册表被打成cab包,放在C:\Windows\sysbckup目录下,文件名为rb00x.cab并且被加上隐藏属*的就是(一般有五个)。
下面让我们具体看看系统预定义的六个主关键字(即根键)吧:
(1)HKEY_CLASSES_ROOT:基层类别键,定义了系统中所有已经注册的文件扩展名、文件类型、文件图标等。
(2)HKEY_CURRENT_USER:定义了当前用户的所有权限,实际上就是HKEY_USERS\.Default下面的一部分内容,包含了当前用户的登录信息。
(3)HKEY_LOCAL_MACHINE:定义了本地计算机(相对网络环境而言)的软硬件的全部信息。当系统的配置和设置发生变化时,其下面的登录项也会随之改变。其中config子树是显示器打印机信息; enum子树是即插即用设备信息;system子树是设备驱动程序和服务参数的控制集合;software子树是应用程序专用设置。
(4)HKEY_USERS:定义了所有的用户信息
(5)hkey_current_config 包含常被用户改变的部分硬件软件配置,如字体设置、显示器类型、打印机设置等。是从hkey_local_machine\config复制的。
(6)hkey_dyn_data 包含现在计算机内存中保存的系统信息。