zoukankan      html  css  js  c++  java
  • 20135206于佳心【家庭作业汇总】

    如果不扣分的话,总分:13分,因为最高只能得10分所以是10分

     

    选题:3.63

    分值:两分

    作业过程:

    复制代码
    int sum_col(int n,int A[E1(n)][E2(n)],int j)
    {
        int i;
        int result = 0;
        for(i=0;i<E1(n);i++)
            result += A[i][j];
        return result;
    }
    复制代码

    上面是原来的代码

    汇编代码

    复制代码
    movl    8(%ebp),%edx                     ;edx:n
        leal    (%edx,%edx),%eax             ;eax:2n
        leal    -1(%eax),%ecx                ;ecx:2n-1
        leal    (%eax,%edx),%esi             ;esi:3n,(E1(n))
        movl    $0,%eax                      ;eax: 0(result)
        testl    %esi,%esi                   ;检验esi(正负)
        jle        .L3                       ;若esi中E1(n)≤0的话,跳转
        leal    0(,%ecx,4),%ebx              ;ebx:0+4*ecx=4(2n-1)
        movl    16(%ebp),%eax                ;eax:ebp+16(j的地址)
        movl    12(%ebp),%edx                ;edx:ebp+12(A[i]的地址)
        leal    (%edx,%eax,4),%ecx           ;ecx:edx+4*eax(A[i][j])
        movl    $0,%edx                      ;edx:0
        movl    $0,%eax                      ;eax: 0
    .L4                                      ;loop
        addl    (%ecx),%eax                  ;eax+=ecx((A[i][j]的地址)
        addl    $1,%edx                      ;edx:edx+1(i)
        addl    %ebx,%ecx                    ;ecx:ecx+ebx(ecx:A[i+1][j])
        cmpl    %esi,%edx                    ;比较esi与edx(E1(n)与i的比较)
        jl        .L4                        ;如果i<E1(n),跳转,回到循环
    .L3                                      ;
    复制代码

    E1(n)存储在esi中,E1(n)=3n;
    E2(n)存储在ebx中,ebx=4*E2(n),所以E2(n)=2n-1.

    选题:6.31

    分值:一分

    作业过程:

    A.E=4,B=4,S=8

    所以C=E*B*S=128

    B.

    选题:6.32(和20135236合作,得一分)

    分值:两分

    作业过程:

    由题6.31可得:
    块偏移位数量b=2 ==>CO
    组索引位数量s=3 ==>CI
    标记位数量t=8 ==>CT

    接着把0x0718化成二进制得到0000011100011000,然后按顺序填入地址中:
    索引位为6,高速缓存示记为38,所以可以看6.31的图索引位为6的那一行,有两个38的标记位,所以缓存示命中的。但是第一个的状态是0所以命中的是后面的FA

    选题:6.42

    分值:两分

    作业过程:

    读总数为2912

    不命中的读总数为728

    不命中率为25%

    选题:8.20

    分值:两分

    作业过程:

    程序myls的代码如下(行为与/bin/ls的行为一样,要注意环境变量):

    int main(int argc,char* args[])
    {
    execve("/bin/ls",args,environ);
    return 0;
    }

    选题:8.25

    分值:三分

    作业过程:

    fgets定义:

    char *fgets(char *buf,int bufsize,FILE *stream);

    *buf:字符型指针,指向用来存储所得数据的地址

    bufsize:整型数据,指明buf指向的字符数组大小

    *stream:文件结构体指针,将要读取的文件流

    tfgets一开始调用fgets,如果5秒到了fgets还没有返回,就需要通过非本地跳转让tfgets返回NULL

    代码如下:

    (前面的include部分就不写了)

    sigjum_buf env;
    void tfgets_handler(int sig){
    signal(SIGALRM,SIG_DFL);
    siglongjmp(env,1);
    }
    char *tfgets(char *buf,int bufsize,FILE *stream){
    static const int TimeLimitSecs = 5;
    signal(SIGALRM,tfgets_handler)
    alarm(TimeLimitSecs);
    int rc = sigsetjum(env,1);
    if(rc == 0 )
    return fgets(buf,bufsize,stream);
    else
    return NULL;
    }

    选题:12.18

    分值:一分

    作业过程:

    图12-21如图

    A.如图,所以不安全

    B.如图,所以安全

    C.如图,所以不安全

    选题:12.28

    分值:一分

    作业过程:

    情况1:如图,会产生一个死锁区

    情况2:如图,对死锁没有影响

    情况3:如图,对死锁没有影响

    情况4:如图,对死锁没有影响

  • 相关阅读:
    android sdk adt 版本
    android 动画
    android sdk 更新
    eclipse 自定义项目类型
    android 电量
    webApp 重用问题
    tomcat 配置首页
    什么是供应链
    dom4j使用selectSingleNode方法报错
    java编译过程中的bug
  • 原文地址:https://www.cnblogs.com/javablack/p/4982693.html
Copyright © 2011-2022 走看看