扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
windows是视窗硬盘操作系统,如果你想知道功能和原理,你应该从最基本的知识开始学起,应该有很多,WINDOWS分为几个部分咱们看到的只是UI,也就是壳,他下面还有负责翻译的,把我们的操作翻译成机器能识别的指令然后再控制计算机的硬件去做工作,我说的这只是简单的我给你找了个网站,你可以上面瞅瞅
创新互联是一家专注于网站设计制作、成都做网站与策划设计,西安网站建设哪家好?创新互联做网站,专注于网站建设10年,网设计领域的专业建站公司;建站业务涵盖:西安等地区。西安做网站价格咨询:028-86922220
windows系统说白了,就是一款大的软件,这也适用于所有的系统。系统可以说是沟通硬件和软件的桥梁,它“教”硬件怎么样发挥自己的作用,就像CPU教电脑配置的各部分怎么样发挥它们的作用一样。当然,详细的原理远没有我说的这么简单,推荐你看看windows的百科:
这个需要有扎实的计算机知识。
1、首先需要熟练的掌握计算机组成原理和计算机操作系统原理,这是了解一个系统的基础知识。
2、另外需要理解windows操作系统还需要深入的学习一下windows平台的编程和起一些内核的东西的,这样才能深入的理解操作系统原理
我们知道每个Windows进程都拥有4G的地址空间,但是你的机器显然没有4G的物理内存。
在多任务环境下,所有进程使用的内存总和可以超过计算机的物理内存。
在特定的情况下,进程的一部分可能会从物理内存中删除而被暂存在硬盘的文件里(pagefile),当进程试图访问这些被交换到pagefile里的内存的时候,系统会产生一个缺页中断(page
fault),这时候Windows内存管理器会负责把对应的内存页重新从硬盘调入物理内存。
注意:
1)在某个时间内,一个进程可以直接访问到的物理内存(不发生缺页中断)叫做这个进程的Working
Set;
2)而一个进程从4G的地址空间当中实际分配(commit)了的、可访问的内存称为Committed
Virtual
Memory。
3)Committed
VM可能存在于Page
File当中,WorkingSet则一定位于物理内存。
Mem
Usage这个名字多少有些误导。它只表示这个进程当前占用的物理内存,也就是WorkingSet。WorkingSet不表示进程当前“占用”的所有虚拟内存,该进程可能还有一部分数据被交换到pagefile当中。这些数据只有在被访问的时候才会被加载到物理内存。
Task
Manager有另一列数据:VM
Size,表示了一个进程分配的虚存(Committed
Visual
Memory)—实际的定义要比这个复杂一些,但我们可以暂时看成“一个进程分配的虚存”。
当一个Windows程序被最小化的时候,Windows内存管理器把该进程的WorkingSet减到最小(根据先进先出FIFO或者最近最少使用LRU),把大部分数据交换到pagefile里。
这很容易理解:我们通常总是希望为前台的应用程序留出更多物理内存,从而具有更好的性能。当该程序从最小化恢复的时候,Windows也不会完全加载程序的所有虚存,只是加载了必要的部分。这也很容易理解:程序启动阶段的代码通常在启动之后很少访问(对.NET程序尤其如此,向fusion这样的模块在程序正常加载之后如果没有用到Reflection通常用不到)。
但是在虚存的问题上却没这么简单。如果WorkingSet太小,程序运行过程中会产生很多缺页中断,这会严重影响程序的性能。另一方面,WorkingSet太大会浪费“宝贵的”物理内存,降低整个系统的性能。
通常情况下(除非是对性能非常敏感的应用程序,并且你对Windows的内存管理了如指掌),建议不要在程序中自己调整WorkingSet的大小,而把这个任务交给Windows内存管理器
我们知道DLL的一个特点是代码共享,以NTDLL.DLL为例,整个Windows系统的几乎所有应用程序(具体地说,Win32子系统的所有程序)都需要引用NTDLL.DLL,如果每人一份,光这个文件就的占用几十兆内存。
Windows地解决办法是只在物理内存中保存一份NTDLL.DLL的COPY,所有引用这个DLL的程序都把这一份COPY映射到自己的内存空间里面,共享NTDLL.DLL的代码段(每个进程的数据段仍然是独立的)。
所以虽然NTDLL.DLL的大小被计算在你的程序的WorkingSet里面,但是从你的程序中去掉对这个DLL的引用并不会真的释放多少物理内存——你不用,别人还在用呢!
所以,你的程序“独占”的物理内存远没有Mem
Usage所表示的那么多,需要从Mem
Usage里面扣除很多Shared
Code
Page
(vadump里面可以看到)。
重要结论:
不要参考Task
Manager的Mem
Usage数据,那个数据的大小对程序性能没有直接影响。
微软Windows 7系统开机加载过程的原理和机制
一个Windows 操作系统用的久了,自然而然的要出很多问题,系统也会明显的变慢,原因固然很多:注册表日益庞大、无用字体越来越多、启动加载的程序越来越多、系统默认开启的服务越来越多、计划任务列表中被加入了一些莫名其妙的开机启动项目、磁盘碎片越来越多、杀毒软件的开机动作选项没有合理设置等等。不仅是用久了的系统,就算是一个新安装好的操作系统,也需要进行一些设置优化,关闭不常用的服务、屏蔽一些压根无用的开机启动项目等等。下面,我们一起来看看整个Windows 7系统的完整开机加载过程的原理和机制。
1、开启电源
计算机系统将进行加电自检(POST)。如果通过,之后BIOS会读取主引导记录(MBR)——被标记为启动设备的硬盘的首扇区,并传送被Windows 7建立的控制编码给MBR。这时,Windows接管启动过程。接下来,MBR读取引导扇区-活动分区的第一扇区。此扇区包含用以启动Windows启动管理器(Windows Boot Manager)程序Bootmgr exe的代码。
2、启动菜单生成
Windows启动管理器读取“启动配置数据存储(Boot Confi guration Data store)中的'信息。此信息包含已被安装在计算机上的所有操作系统的配置信息。并且用以生成启动菜单。
3、当您在启动菜单中选择下列动作时:
1 如果您选择的是Windows 7(或Windows Vista),Windows 启动管理器(Windows Boot Manager)运行%SystemRoot%\System32文件夹中的OS loader——Winload.exe。
2 如果您选择的是自休眠状态恢复Windows 7 或 Vista,那么启动管理器将装载Winresume.exe并恢复您先前的使用环境。
3 如果您在启动菜单中选择的是早期的Windows版本,启动管理器将定位系统安装所在的卷,并且加载Windows NT风格的早期OS loader(Ntldr.exe)——生成一个由boot.ini内容决定的启动菜单。
4、核心文件加载至登录画面
Windows7启动时,加载其核心文件 Ntoskrnl.exe和hal.dll——从注册表中读取设置并加载驱动程序。接下来将运行Windows会话管理器(smss.exe)并且启动 Windows启动程序(Wininit exe),本地安全验证(Lsass.exe)与服务(services.exe)进程,完成后,就可以登录你的系统了。
5、登陆后的开机加载项目
当你输入您的用户名和密码,登陆进入您的系统那一刻,硬盘发出的声音和硬盘灯的再次提醒你:系统正在加载您这个账户的个人专用设置文件,正在加载当前电脑和当前用户所指定的一些开机启动项目内的软件。这是众多软件(包括木马病毒)最喜欢的地方,包括我们最常用的QQ、MSN、杀毒软件,因为它们要靠这里来常驻桌面右下角和内存之中,方便进行正当的和不正当的一些工作(此处指的是某些流氓和恶意软件)。当这些加载完毕,才算真正进入了您的 Windows桌面。
;
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流