1.什么是预编译,何时需要预编译?
所谓预处理是指在进行编译的第一遍扫描(词法扫描和语法分析)之前所作的工作。
预处理是C语言的一个重要功能,它由预处理程序负责完成。
当对一个源文件进行编译时,系统将自动引用预处理程序对源程序中的预处理部分作处理,处理完毕自动进入对源程序的编译。
C语言提供了多种预处理功能,如宏定义、文件包含、条件编译等。
合理地使用预处理功能编写的程序便于阅读、修改、移植和调试,也有利于模块化程序设计。
预处理程序提供了条件编译的功能。可以按不同的条件去编译不同的程序部分,因而产生不同的目标代码文件。这对于程序的移植和调试是很有用的。
------------------------------------------------------
2.一个32位的机器,该机器的指针是多少位?
指针是多少位只要看地址总线的位数就行了。80386以后的机子都是32的数据总线。所以指针的位数就是4个字节了。
-------------------------------------------------------
3.关键字volatile有什么含意?并举出三个不同的例子?
提示编译器对象的值可能在编译器未监测到的情况下改变。
-------------------------------------------------------
4.交换两个变量的值,不使用第三个变量。即a=3,b=5,交换之后a=5,b=3;
有两种解法, 一种用算术算法, 一种用^(异或)
a = a + b;
b = a - b;
a = a - b;
or
a = a^b;// 只能对int,char..
b = a^b;
a = a^b;
or
a ^= b ^= a;
----------------------------------------------------------
5.列举几种进程的同步机制,并比较其优缺点。
原子操作
信号量机制
自旋锁
管程,会合,分布式系统
----------------------------------------------------------
6. 进程之间通信的途径
共享存储系统
消息传递系统
管道:以文件系统为基础
---------------------------------------------------------
7.进程死锁的原因
资源竞争及进程推进顺序非法
死锁的4个必要条件
互斥、请求保持、不可剥夺、环路
死锁的处理
鸵鸟策略、预防策略、避免策略、检测与解除死锁
----------------------------------------------------------
8.操作系统中进程调度策略有哪几种?
FCFS(先来先服务),优先级,时间片轮转,多级反馈
----------------------------------------------------------
9.
阅读(932) | 评论(0) | 转发(0) |