
操作系统
文章平均质量分 80
Zenhobby
这个作者很懒,什么都没留下…
展开
-
Windows堆和栈的比较
一、预备知识 程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack) 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(s转载 2015-03-09 14:31:18 · 1655 阅读 · 0 评论 -
操作系统专项习题记录-牛客网
1 通道能够完成()之间数据的传输。 内存与外设2 系统的主要功能有()。 处理机管理、存储器管理、设备管理、文件系统 (1、处理机管理功能进程控制,进程同步,进程通信,调度2、存储器管理功能内存分配、内存保护、地址映射、内存扩充3、设备管理功能缓冲管理、设备分配、设备处理4、文转载 2015-08-25 10:16:04 · 4153 阅读 · 0 评论 -
Windows 内存管理方法(一)
两个内存:物理内存——就是插在主板上的内存条,它是固定的,内存条的容量多大,物理内存就有多大(集成显卡系统除外),但是如果程序运行很多或者程序本身很大的话,就会导致大量的物理内存占用,甚至导致物理内存消耗殆尽。虚拟内存——虚拟内存就是在硬盘上面划分一块页面文件,充当内存。当程序在运行的时候,有一部分资源还没有用上或者同时打开几个程序却只能操作其中一个程序时,系统没必要将程序所有的资转载 2015-03-12 16:10:12 · 2500 阅读 · 0 评论 -
Windows 多进程模型 摘抄自《windows内核原理与实现》
3.1.1 多进程模型现代操作系统总是提供可并发执行多个任务的环境,比如,用户可以一边接收电子邮件,一边听音乐,还可以同时跟网络上的朋友聊天。但是,现在主流的计算机只有有限的计算资源,例如只有一个单核处理器,较新的个人计算机可能配有一个双核或四核的处理器。让一个系统同时做几件不同的事情,这是现代操作系统的基本特征。假设计算机只有一个中央处理器,它该如何表现得可以同时处理这些任务呢?基本的做转载 2015-03-11 21:56:24 · 1760 阅读 · 0 评论 -
Windows内核模式和用户模式
运行 Windows 的计算机中的处理器有两个不同模式:“用户模式”和“内核模式”。根据处理器上运行的代码的类型,处理器在两个模式之间切换。应用程序在用户模式下运行,核心操作系统组件在内核模式下运行。多个驱动程序在内核模式下运行,但某些驱动程序在用户模式下运行。当启动用户模式的应用程序时,Windows 会为该应用程序创建“进程”。进程为应用程序提供专用的“虚拟地址空间”和专用的“句柄表格转载 2015-03-11 16:34:13 · 3479 阅读 · 0 评论 -
Windows 内核结构 摘抄自《windows内核原理与实现》
2.2.1 Windows 内核结构正如图2.2 所示,Windows 内核分为三层,与硬件直接打交道的这一层称为硬件抽象层(Hardware Abstraction Layer,简称HAL),这一层的用意是把所有与硬件相关联的代码逻辑隔离到一个专门的模块中,从而使上面的层次尽可能做到独立于硬件平台。HAL之上是内核层,有时候也称为微内核(micro-kernel),这一层包含了基本的操作系统转载 2015-03-11 21:22:21 · 3224 阅读 · 0 评论 -
Windows 内核结构 摘抄自《windows内核原理及实现》(二)
概括而言,设备驱动程序有以下三种基本类型:l 即插即用驱动程序(也称为WDM 驱动程序,见下文介绍)。这一类驱动程序通常是为了驱动硬件设备而由硬件厂商提供,它们与Windows 的I/O 管理器、即插即用管理器和电源管理器一起工作。Windows 自身随带了大量即插即用驱动程序,用于支持各种常见的存储设备、视频适配器、网络适配器、输入设备等。l 内核扩展驱动程序(也称为非即插即用驱动程序)转载 2015-03-11 21:42:12 · 2688 阅读 · 0 评论 -
Windows 内存管理方法(三)
一个逻辑地址由两部分组成,段标识符:段内偏移量,。段标识符是由一个16位长的字段组成,称为段选择符。其中前13位是一个索引号,后面3位包含一些硬件细节:最后两位涉及权限检查索引号——直接可以理解成数组下标,它是“段描述符”的索引,段描述符具体地址描述了一个段,这样,可以通过段标识符的前13位,直接在段描述符表中找到一个具体的段描述符,这个描述符就代表了一个段转载 2015-03-12 16:16:41 · 810 阅读 · 0 评论 -
Windows 多线程模型 摘抄自《windows内核原理与实现》
很难做到跨平台移植,以及对于多线程模型的透明。用户级线程模型的优势是线程切换效率高,因为它不涉及系统内核模式和用户模式之间的切换;另一个好处是应用程序可以采用适合自己特点的线程选择算法,可以根据应用程序的逻辑来定义线程的优先级,当线程数量很大时,这一优势尤为明显。但是,这同样会增加应用程序代码的复杂性。有一些软件包(如POSIXThreads 或Pthreads 库)可以减轻程序员的负担。转载 2015-03-11 22:07:46 · 3087 阅读 · 0 评论 -
Windows 内核结构 摘抄自《windows内核原理及实现》(三)
在一个会话中,有一个交互式窗口站,可能还有非交互式窗口站。在交互式窗口站中通常有三个桌面:登录桌面、默认桌面和屏幕保护桌面。通常我们运行的图形界面应用程序运行在默认桌面上。交互式窗口站有独立的剪贴板、键盘、鼠标、显示器等,在它的三个桌面中,任一时刻只有一个是激活的,输入输出设备归激活的桌面所有。在每个桌面中,都有一个顶级窗口列表,这些窗口往往可以相互重叠,有系统菜单、最大化/最小化按钮和滚动条转载 2015-03-11 21:44:20 · 839 阅读 · 0 评论 -
Windows 内存管理方法(二)
Windows内存原理Windows中,我们接触的一般都是线性地址,而其并非真实存在的,而真正的物理地址是利用一段N长的数组来定位的,这样能够完成保护模式。 假设我们没有使用线性地址,那么我们可以直接访问物理地址,但是这样我们在往内存中写东西的时候操作系统更无法检查这块内存是否是可写的。这样会造成非法覆盖等,最后操作系统的内核函数可能就被覆盖了。 由转载 2015-03-12 16:14:47 · 818 阅读 · 0 评论 -
Intel IA-32架构浅析
IA32的cpu操作模式 1保护模式: 这个模式是cpu的native状态.它可以在一个保护的多任务的环境中直接执行 "real-address mode"的8086的软件.这个特性叫做virtual-8086模式. 这个模式也就是cpu的一般工作模式.因为这个模式基本上打开了cpu的所有特性. 2 real-address模式: 这个模式它实现了一个8086处理器的环境的转载 2015-03-17 19:23:52 · 1147 阅读 · 0 评论 -
C++程序的编译过程
一:一般的C++应用程序的编译过程。 一般说来,C++应用程序的编译过程分为三个阶段。模板也是一样的。在cpp文件中展开include文件。将每个cpp文件编译为一个对应的obj文件。连接obj文件成为一个exe文件(或者其它的库文件)。下面分别描述这几个阶段。1.include文件的展开。 include文件的展开是一个很简单的过程,只是将include文件包转载 2015-03-07 14:42:32 · 1201 阅读 · 0 评论