面试常问-操作系统
折叠-smile
这个作者很懒,什么都没留下…
展开
-
Windows 消息运行机制
1. 引言Windows在操作系统平台占有绝对统治地位,基于Windows的编程和开发越来越广泛。Dos 是过程驱动的,而Windows是事件驱动的[6],这种差别的存在使得很多Dos程序员不能习惯Windows的程序开发。而很多Windows程序开发人员也只是对消息运行机制一知半解,想要掌握Windows编程的核心,必须深刻理解消息机制。事件驱动围绕着消息的产转载 2012-11-08 11:11:56 · 530 阅读 · 0 评论 -
理解消息循环
在创建窗口、显示窗口、更新窗口后,我们需要编写一个消息循环,不断地从消息队列中取出消息,并进行响应。要从消息队列中取出消息,我们需要调用GetMessage()函数,该函数的原型声明如下:BOOL GetMessage(# {; S' j/ ~+ q. P9 D LPMSG lpMsg, // address of structure with mess转载 2012-11-08 11:16:01 · 429 阅读 · 0 评论 -
消息循环-我的理解
Windows 操作系统为每个线程维持一个消息队列,当事件产生时,操作系统感知这一事件的发生,并包装成消息发送到消息队列,应用程序通过GetMessage()函数取得消息并存于一个消息结构体中,然后通过一个TranslateMessage()和DispatchMessage()解释和分发消息。【应用程序中的消息循环】while(GetMessage (&msg, NULL, 0, 0))原创 2012-11-08 11:20:02 · 330 阅读 · 0 评论 -
函数回调
调用(calling)机制从汇编时代起已经大量使用:准备一段现成的代码,调用者可以随时跳转至此段代码的起始地址,执行完后再返回跳转时的后续地址。 CPU为此准备了现成的调用指令,调用时可以压栈保护现场,调用结束后从堆栈中弹出现场地址,以便自动返回。借堆栈保护现场真是一项绝妙的发明,它使调用者和被调者可以互不相识,于是才有了后来的函数和构件,使吾辈编程者如此轻松愉快。若评选对人类影响最大之发明,在火转载 2012-11-08 11:25:30 · 425 阅读 · 0 评论 -
线程安全的概念
如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。 或者说:一个类或者程序所提供的接口对于线程来说是原子操作或者多个线程之间的切换不会导致该接口的执行结果存在二义性,也就是说我们不用考虑同步的问题。 线程安全问题都是由全局变量及静态变量引起的。转载 2012-10-06 21:30:46 · 695 阅读 · 0 评论 -
系统启动过程详解
首先让我们来了解一些基本概念。第一个是大家非常熟悉的BIOS(基本输入输出系统),BIOS是直接与硬件打交道的底层代码,它为操作系统提供了控制硬件设备的基本功能。BIOS包括有系统BIOS(即常说的主板BIOS)、显卡BIOS和其它设备(例如IDE控制器、SCSI卡或网卡等)的BIOS,其中系统BIOS是本文要讨论的主角,因为计算机的启动过程正是在它的控制下进行的。BIOS一般被存放在ROM(只读转载 2012-11-11 17:15:29 · 681 阅读 · 0 评论