欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

[操作系统实验lab2]实验报告

程序员文章站 2024-02-08 18:14:52
...
static void * alloc(u_int n, u_int align, int clear)
{
    extern char end[];  
    int i;
    u_long alloced_mem;
    if(freemem==0)
        freemem=(u_long)end;
    freemem = (((u_long)(freemem))+(align)-1)&~((align)-1);
    //Step 1 finished.
    alloced_mem = freemem;
    //Step 2 finished.
    freemem +=(((u_long)(n))+(align)-1)&~((align)-1);
    //Step 3 finished.
    if(clear == 1){
        for(i=alloced_mem;i<alloced_mem+n;i++)
             *i = 0;
    }
    //Step 4 finished.
    return (void *)alloced_mem;
    //Step 5 finished.
}