在进程运行过程中,若其所要访问的页面不在内存而需把它们调入内存,但内存已无空闲空间时,为了保证该进程能正常运行,系统必须从内存中调出一页程序或数据送磁盘的对换区中。但应将哪个页面调出,须根据一定的算法来确定。通常,把选择换出页面的算法称为页面置换算法(Page-Replacement Algorithms)。置换算法的好坏,将直接 w397090770 12年前 (2013-04-11) 5396℃ 0评论2喜欢
一、先来先服务和短作业(进程)优先调度算法1.先来先服务调度算法先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。当在作业调度中采用该算法时,每次调度都是从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源、创建进程,然后放入 w397090770 12年前 (2013-04-10) 14369℃ 0评论19喜欢
memset的函数原型是[code lang="CPP"]void * memset ( void * ptr, int value, size_t num );[/code] 这个函数的功能是将ptr所指向的某一块内存中的每个字节的内容全部设置为value指定的ASCII值, 块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作。 英文解释:Sets the first num bytes of the block of memory pointed by ptr to the specified va w397090770 12年前 (2013-04-08) 7844℃ 0评论8喜欢
在/archives/227主要介绍了memcpy函数的实现,并说明了memcpy函数的局限性。今天来介绍一下和memcpy函数功能类似的函数memmove。memmove函数和memcpy函数的原型为[code lang="CPP"]#include <string.h>void *memcpy(void *dest, const void *src, size_t n);void *memmove(void *dest, const void *src, size_t n);[/code]memmove英文介绍,里面很详细的介绍了memmove函数的 w397090770 12年前 (2013-04-08) 4702℃ 0评论0喜欢
Linux内核代码有很多很经典的代码,仔细去看看,可以学到很多知识。今天说说Linux是怎么实现min和max的。max和min函数都是比较常用的,可以用函数,或者利用宏去实现,一般我们会这样去写:[code lang="CPP"]#define min(x,y) ((x)>(y)?(y):(x))#define max(x,y) ((x)>(y)?(x):(y))[/code]但是上面的写法是有副作用的。比如输入[code lang="CPP"]minv w397090770 12年前 (2013-04-06) 7423℃ 0评论1喜欢
memcpy函数在面试中很容易被问到如何去实现。memcpy函数是内存拷贝函数,用于将一段内存空间数据拷贝到另一段内存空间中,但是它和memmove函数不同的是,它对内存空间有要求的,dest和src所指向的内存空间不能重叠,否则的数据是错误的。例如:src所指向的内存空间后面部分数据被新拷贝的数据给覆盖了,所以拷贝到最后,数 w397090770 12年前 (2013-04-05) 20382℃ 8喜欢
atoi函数是C语言库提供的,是把字符串转换成整型数和把字符串转换成整型数。而itoa函数是广泛应用的非标准C语言扩展函数,由于它不是标准C语言函数,所以不能在所有的编译器中使用,它的功能是把一整数转换为字符串。两个函数功能很好理解,但是它们的实现需要考虑到很多问题,在面试中,很多面试官都会问atoi和itoa的实现 w397090770 12年前 (2013-04-05) 17061℃ 3评论1喜欢
C的结构体内不允许有函数存在,C++允许有内部成员函数,且允许该函数是虚函数。所以C的结构体是没有构造函数、析构函数、和this指针的。 C的结构体对内部成员变量的访问权限只能是public,而C++允许public,protected,private三种。 C语言的结构体是不可以继承的,C++的结构体是可以从其他的结构体或者类继承过来的。在C中定义一 w397090770 12年前 (2013-04-05) 5174℃ 0评论0喜欢
c++中关于const的用法有很多,const既可以修饰变量,也可以函数,不同的环境下,是有不同的含义。今天来讲讲const加在函数前和函数后面的区别。比如:[code lang="CPP"]#include<iostream>using namespace std;// Ahthor: 过往记忆// E-mail: wyphao.2007@163.com// Blog: // 转载请注明出处class TestClass {public: size_t length() const; const char* ge w397090770 12年前 (2013-04-05) 25053℃ 1评论55喜欢
一般情况下,编写一个类,是可以在栈或者堆分配空间。但有些时候,你想编写一个只能在栈或者只能在堆上面分配空间的类。这能不能实现呢?肯定是可以的。 只能在堆上分配空间:我们可将类的析构函数用private来修饰,也就是把析构函数私有化,因为自动变量与静态变量的对象都在释放空间的时候都需要访问析构函数。若 w397090770 12年前 (2013-04-05) 4912℃ 0评论1喜欢