1. 程式人生 > >深入理解計算機系統(第二版) 家庭作業 第八章

深入理解計算機系統(第二版) 家庭作業 第八章

#include "csapp.h"
#define N 2

int main()
{
    int status, i;
    pid_t pid;
    char errorInfo[128];
    /* Parent creates N children */
    for(i=0;i<N;i++)
        if ((pid = Fork()) == 0/* Child */
            exit(100+i);

    /* Parent reaps N children in no particular order */
    while ((pid = waitpid
(-1, &status, 0)) > 0) {
        if (WIFEXITED(status))
            printf("child %d terminated normally with exit status=%d\n",
                    pid, WEXITSTATUS(status));
        else if(WIFSIGNALED(status))
        {
            //為什麼只在寫只讀文字時才報錯?下面的程式對所有異常退出都會提示
            printf("child %d terminated by signal %d: "

                pid, WTERMSIG(status) );
            psignal(WTERMSIG(status), errorInfo); //psignal會列印sig的資訊
        }
    }
    /* The only normal termination is if there are no more children */
    if (errno != ECHILD)
        unix_error("waitpid error");
    exit(0);
}

相關推薦

深入理解計算機系統(第二) 家庭作業

#include "csapp.h"#define N 2int main() {     int status, i;     pid_t pid;     char errorInfo[128];     /* Parent creates N children */     for(i=0;i<N

深入理解計算機系統(第二) 家庭作業

根據簡單的推測,我們可以知道,imull的兩個物件是 ebx和edx,最後edx移動到了(eax)中,所以ebx和edx一個是 *s1.p,一個是s1.v,並且word_sum的12行的eax是result的prod的地址,也就是result的地址。而eax只在第5行賦值,所以result的地址是在8(%eb

CSAPP深入理解計算機系統(第二)家庭作業答案

《深入理解計算機系統(第二版)》CSAPP 第三章 家庭作業 這一章介紹了AT&T的彙編指令 比較重要 本人完成了《深入理解計算機系統(第二版)》(以下簡稱CSAPP)第三章的家庭作業,並與網上的一些答案進行了對比修正。 感謝博主summerhust的整理,以下貼出AT&T常用匯編指令

深入理解計算機系統》之家庭作業8.25題答案

#include "csapp.h" static sigjmp_buf env; //當呼叫sigsetjmp函式時將當前呼叫環境儲存在緩衝區env中,以供後面siglongjum使用 /* ** handler:一個訊號處理程式 */ static void handl

深入理解計算機系統_第一部分__程式的機器級表示

深入,並且廣泛 -沉默犀牛 文章導讀 計算機執行機器程式碼,用位元組序列編碼低階的操作,包括處理資料、管理記憶體、讀寫儲存裝置上的資料,以及利用網路通訊。編譯器基於程式語言的規則、目標機器的指令集和作業系統遵循的慣例,經過一系列的階段生成機器程式碼。GCC C語言編譯器以彙

[深入理解計算機系統] 第二家庭作業

2.73 2.73 2.73 int saturating_add(int x,int y){

深入理解計算機系統》(原書)家庭作業(3.63)解答

原題目: **3.63 虛擬碼分析:x rdi ;n rsi n=n-0x3c(60); if(n>5){-->4005c3 } else{ goto:*(8n+0x4006f8)

深入理解計算機系統第二學習筆記

1 資訊儲存 計算機字長,指明指標資料的標稱大小。32位機器虛擬地址空間為4GB。64位為16EB。64位機器可以執行32位機器編譯的程式,反過來不行。 C語言各種資料型別位元組長度如下: 定址和位元組順序:多位元組物件在記憶體中的存放方式分為小端法和大端法。例如一個int有

深入理解計算機系統 第二 資訊的表示和處理

  欣哥劃的重點: 第二章比較難,建議至少掌握下面幾個知識點: 1. 位元組順序 : 大端和小端 2. 執行 圖2-24, 圖2-25程式 show-bytes.c 觀察結果,看看有什麼問題 3. 理解布林運算,位運算 4. 理解無符號數和有符號數, 給一個數,能計算出補碼 5. 理解浮點數的表

深入理解計算機系統 第二資訊的表示和儲存、

引言: 這一章我們研究在計算機上如何表示資料和其他型別資料的基本屬性,以及計算機對這些資料執行操作的屬性。在整數運算中,重點描述無符號數和數的補碼所表示的特性;而對於IEEE標準的浮點型資料,一是它是如何表示資料的,二是浮點運算的數學形式。 三種常見的資料型別:整數分為無符號數和有符號數。無

深入理解計算機系統----第二 資訊的表示和處理

1.資訊儲存 系統將8位的塊作為最小的可定址儲存器單位,機器級程式系統看成一個大的陣列,然後通過地址來獲得儲存器中的這些塊的內容。 資料在計算機中的儲存都是用二進位制,不過二進位制不易表示,一般我們用十六進位制來表示。如八位的十六進位制範圍為00~FF。 計算機的字長代表其整數

深入理解計算機系統-第二-資訊的表示和處理

2.1.2 每臺計算機都有一個字長,指明證書和指標資料的標稱大小。因為虛擬地址是以這的字來編碼的,所以字長決定的最重要的系統引數就是虛擬地址空間的最大大小。對於一個字長為n位的機器來說,虛擬地址的大小為2^n-1. 2.1.4定址和位元組順序 對於跨越多位元組的程式物件,我們要建立兩個規

深入理解計算機系統——第二

浮點數 2.4.2IEEE浮點表示 (1)什麼是規格化的值? 當exp的位模式既不全為0,也不全為1,這種情況下,階碼欄位被解釋為以偏置形式表示的有符號整數,也就是說,階碼的值是E=e-Bias,其中e是無符號數,其位表示為,而Bias就是一個等

深入Java虛擬機器 第二》之1 Java體系結構介紹

1、Java技術的核心就是“Java虛擬機器”。 2、Java體系結構四個獨立的技術: ·Java程式設計語言; ·Java class檔案格式; ·Java應用程式設計介面(API); ·Java虛擬機器; 3、編寫並執行一個Java程式,對四種技術的體驗:

深入理解JVM虛擬機器讀書筆記【】虛擬機器位元組碼執行引擎

8.1 概述 8.2 執行時棧幀結構 8.2.1 區域性變量表 8.2.2 運算元棧 8.2.3 動態連線 8.2.4 方法返回地址

深入理解計算機系統家庭作業答案-第二

2.55-2.57答案:show_bytes 原始碼:#include<stdio.h> typedef unsigned char* byte_pointer; void show_bytes(byte_pointer ch, int len){ prin

深入理解計算機系統家庭作業參考答案

簡述 最近看docker和k8s的底層實現原理,嚴重感覺自己對底層的知識瞭解不足,於是開始業餘時間深入看一些底層書籍,就找了本據說是理解整個計算機體系的入門書-《深入理解計算機系統》.直接買的最新的第三版,從第三章開始看的,第二章接下來有心情再看(看了幾眼全是

[] 深入理解計算機系統 家庭作業參考答案

5.13 A. 畫圖: 關鍵路徑為第三幅圖加粗部分 B. 下界為浮點加法的延遲界限,CPE 為 3.00 C. 整數加法的延遲界限,CPE 為 1.00 D. 關鍵路徑上只有浮點加法 5.14 v

[] 深入理解計算機系統 家庭作業參考答案

8.9 程序對 併發麼? AB × AC √ AD √ BC √ BD √ CD √ 8.10 A. fork B. longjmp execve C. setjmp 8.11 4次,畫畫程序圖就行了 8.12 8次

[] 深入理解計算機系統 家庭作業參考答案

人非聖賢孰能無過,歡迎大家提問與糾錯 3.58 long decode2(long x, long y, long z) { y -= z; x *= y; return ((y << 63) >> 63) ^ x; } 3.5