2017-2018-1 20155207 《信息安全系統設計基礎》第8周學習總結

2017-2018-1 20155207 《信息安全系統設計基礎》第8周學習總結

教材學習內容總結

  • 輸入/輸出(I/O)是在主存和外部設備之間拷貝數據的過程

課堂測試

1參考 http://www.cnblogs.com/rocedu/p/6766748.html#SECCLA 在Linux下完成「求命令行傳入整數參數的和」測試代碼傳入本身的8位學號、上方提交代碼、附件提交運行測試截圖

代碼html

#include<stdio.h>
#include<stdlib.h>
main(int argc,char *argv[])
{
    int sum=0,i;
    for(i=0;;i++)
    {
        if(argv[i]=='\0')
            break;
        sum=sum+atoi(argv[i]);
    }
printf("sum=%d",sum);
}

【課上11111】【】【】【】【】java

4·47

取指:icode:ifun = D:0
valP<-PC+1
譯碼:valB<-R[%ebp]
執行:valE<-valB+4
訪存:valM<-M4[valB]
寫回:R[%esp]<-valE R[%ebp]<-valMlinux

y86-64彙編代碼git

bubble_b:  
.LFB22:  
.cfi_startproc  
pushl   %edi  
.cfi_def_cfa_offset 8  
.cfi_offset 7, -8  
pushl   %esi  
.cfi_def_cfa_offset 12  
.cfi_offset 6, -12  
pushl   %ebx  
.cfi_def_cfa_offset 16  
.cfi_offset 3, -16  
mrmovl   16(%esp), %edx  
mrmovl   20(%esp), %edi  
irmovl   $1, %eax  
subl     %eax, %edi  
jle      .L1  
subl     $1, %edi  
irmovl   $0, %esi  
.L6:  
rrmovl   %esi, %eax  
irmovl   $0 , ebx   
subl     %ebx, %esi  
jl       .L3  
.L7:  
rrmovl   %eax, %ecx  
addl     %ecx, %ecx  
addl     %ecx, %ecx  
addl     %edx, %ecx  
mrmovl   4(%ecx), %ecx  
rrmovl   %eax, %ebx  
addl     %ecx, %ebx  
addl     %ecx, %ebx  
addl     %edx, %ebx  
mrmovl   (%ebx), %ebx  
subl     %ebx, %ecx  
jge     .L4  
addl     %eax, %eax  
addl     %eax, %eax  
addl     %edx, %eax  
rmmovl   %ebx, 4(%eax)  
addl     %eax, %eax  
addl     %eax, %eax  
addl     %edx, %eax  
rmmovl   %ecx, 4(%eax)  
.L4:  
subl    $1, %eax  
irmovl  $-1, %edx  
subl    %edx, %eax  
jne .L7  
.L3:  
addl    $1, %esi  
subl    %edi, %esi  
jne .L6  
.L1:  
popl    %ebx  
.cfi_def_cfa_offset 12  
.cfi_restore 3  
popl    %esi  
.cfi_def_cfa_offset 8  
.cfi_restore 6  
popl    %edi  

.cfi_def_cfa_offset 4  
.cfi_restore 7  
ret  
.cfi_endproc  
.LFE22:  
.size   bubble_b, .-bubble_b  
.section    .rodata.str1.1,"aMS",@progbits,1

4·48

取指:icode:ifun = M1[PC] = C:0
rA:rB<-M1[PC+1]
valC<-M4[PC+2]
valP<-PC+6
譯碼:valB<-R[rB]
執行:valE<-valB+valC
SetCC
訪存:-
寫回:R[rB]<-valE安全

y86-64彙編代碼多線程

bubble_b:  
.LFB22:  
    .cfi_startproc  
    pushl   %edi  
    .cfi_def_cfa_offset 8  
    .cfi_offset 7, -8  
    pushl   %esi  
    .cfi_def_cfa_offset 12  
    .cfi_offset 6, -12  
    pushl   %ebx  
    .cfi_def_cfa_offset 16  
    .cfi_offset 3, -16  
    mrmovl   16(%esp), %edx  
    mrmovl   20(%esp), %edi  
    irmovl   $1, %eax  
    subl     %eax, %edi  
    jle      .L1  
    subl     $1, %edi  
    irmovl   $0, %esi  
.L6:  
    movl    (%ebx,%eax,4), %edx  
    movl    4(%ebx,%eax,4), %ecx  
    cmpl    %edx, %ecx  
    movl    %edx, %ebp  
    cmovle  %ecx, %ebp  
    movl    %ebp, (%ebx,%eax,4)  
    cmovge  %ecx, %edx  
    movl    %edx, 4(%ebx,%eax,4)  
    subl    $1, %eax  
    cmpl    $-1, %eax  
    jne .L6  
.L7:  
    rrmovl   %eax, %ecx  
    addl     %ecx, %ecx  
    addl     %ecx, %ecx  
    addl     %edx, %ecx  
    mrmovl   4(%ecx), %ecx  
    rrmovl   %eax, %ebx  
    addl     %ecx, %ebx  
    addl     %ecx, %ebx  
    addl     %edx, %ebx  
    mrmovl   (%ebx), %ebx  
    subl     %ebx, %ecx  
    jge     .L4  
    addl     %eax, %eax  
    addl     %eax, %eax  
    addl     %edx, %eax  
    rmmovl   %ebx, 4(%eax)  
    addl     %eax, %eax  
    addl     %eax, %eax  
    addl     %edx, %eax  
    rmmovl   %ecx, 4(%eax)  
.L4:  
    subl    $1, %eax  
    irmovl  $-1, %edx  
    subl    %edx, %eax  
    jne .L7  
.L3:  
    addl    $1, %esi  
    subl    %edi, %esi  
    jne .L6  
.L1:  
    popl    %ebx  
    .cfi_def_cfa_offset 12  
    .cfi_restore 3  
    popl    %esi  
    .cfi_def_cfa_offset 8  
    .cfi_restore 6  
    popl    %edi  
  
    .cfi_def_cfa_offset 4  
    .cfi_restore 7  
    ret  
    .cfi_endproc  
.LFE22:  
    .size   bubble_b, .-bubble_b  
    .section    .rodata.str1.1,"aMS",@progbits,1

教材學習中的問題和解決過程

  • 問題1:進程和線程有什麼區別
  • 簡而言之,一個程序至少有一個進程,一個進程至少有一個線程.
    2) 線程的劃分尺度小於進程,使得多線程程序的併發性高。
    3) 另外,進程在執行過程當中擁有獨立的內存單元,而多個線程共享內存,從而極大地提升了程序的運行效率。
    4) 線程在執行過程當中與進程仍是有區別的。每一個獨立的線程有一個程序運行的入口、順序執行序列和程序的出口。可是線程不可以獨立執行,必須依存在應用程序中,由應用程序提供多個線程執行控制。
    5) 從邏輯角度來看,多線程的意義在於一個應用程序中,有多個執行部分能夠同時執行。但操做系統並無將多個線程看作多個獨立的應用,來實現進程的調度和管理以及資源分配。這就是進程和線程的重要區別。

代碼調試中的問題和解決過程

代碼託管

上週考試錯題總結

  • 上週課下測試忘記寫了,我寫了這篇部落格對每道題都作了本身的理解和查找的解析

結對及互評

點評模板:

  • 博客中值得學習的或問題:
    • xxx
    • xxx
    • ...
  • 代碼中值得學習的或問題:
    • xxx
    • xxx
    • ...
  • 其餘

本週結對學習狀況

- [20155223](http://www.cnblogs.com/battlefieldheros/p/7820001.html)
- 結對照片
- 結對學習內容
    - XXXX
    - XXXX
    - ...

其餘(感悟、思考等,可選)

上週藍墨雲的課下測試我忘記作了,這周寫了博客來完成課下測試,發現這種自行尋找答案的學習方式大有益處。之後若是能夠堅持的話我必定爭取每次課下測試都寫博客來對錯題進行解析。同時感謝婁老師給我此次彌補做業的機會併發

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一週 200/200 2/2 20/20
第二週 300/500 2/4 18/38
第三週 500/1000 3/7 22/60
第四周 300/1300 2/9 30/90

嘗試一下記錄「計劃學習時間」和「實際學習時間」,到期末看看能不能改進本身的計劃能力。這個工做學習中很重要,也頗有用。
耗時估計的公式
:Y=X+X/N ,Y=X-X/N,訓練次數多了,X、Y就接近了。學習

參考:軟件工程軟件的估計爲何這麼難軟件工程 估計方法測試

  • 計劃學習時間:XX小時操作系統

  • 實際學習時間:XX小時

  • 改進狀況:

(有空多看看現代軟件工程 課件
軟件工程師能力自我評價表
)

參考資料

相關文章
相關標籤/搜索