(2011 阿里)
#pragma pack(2)
class A{
int i;
union U{
char buff[13];
int i;
}u;
void foo() { }
typedef char *(*f)(void *);
enum{red,green,blue} color;
}a;
sizeof(a)的值是(22)
函数以及类型重定义不占字节。
#pragma pack(2)使union结构体大小为14;
总的大小是:14+4+4 = 22
malloc/free与new/delete
相同点:都可用于申请动态内存与释放内存
不同之处:malloc与free是c/c++语言的标准库函数,new/delete是c++操作符;
new自动计算需要分配的空间,而malloc需要手工计算字节数
new是类型安全的,而malloc不是
new调用operator new分配足够的空间,并调用相关对象的构造函数,而malloc不能调用构造函数;delete将调用该实例的构造函数,然后调用类的operator delete,以释放该实例占用的空间,而free不能调用析构函数
malloc/free需要库文件支持,new/delete不需要
1.先来先服务调度算法(FCFS):就是按照各个作业进入系统的自然次序来调度作业。这种调度算法的优点是实现简单,公平。其缺点是没有考虑到系统中各种资源的综合使用情况,往往使短作业的用户不满意,因为短作业等待处理的时间可能比实际运行时间长得多。 因此选A;
2.短作业优先调度算法 (SPF): 就是优先调度并处理短作业,所谓短是指作业的运行时间短。而在作业未投入运行时,并不能知道它实际的运行时间的长短,因此需要用户在提交作业时同时提交作业运行时间的估计值。
3.最高响应比优先算法(HRN):FCFS可能造成短作业用户不满,SPF可能使得长作业用户不满,于是提出HRN,选择响应比最高的作业运行。响应比=1+作业等待时间/作业处理时间。 因此选C;
4. 基于优先数调度算法(HPF):每一个作业规定一个表示该作业优先级别的整数,当需要将新的作业由输入井调入内存处理时,优先选择优先数最高的作业。
阅读(854) | 评论(0) | 转发(0) |