• 所有作業一律以在 lilina 可執行為主.
  • 請先在自己的家目錄下, 建立一子目錄, 名為 os1. 此次作業即放入該目錄內 注意, 在 unix , 大小寫是不同的. 繳交期限一到, 會有一支程式會搜尋你的 目錄下 os1 的子目錄, 將其中的檔案 copy 到我的目錄. 因此到時若名字不對 或來不及放入, 就沒機會了.
  • 作業內容:
    用 fork() 產生二個 child, 其關係為
                 parent
                /     \
             child1  child2  (child1 為第一個 child, child2 為第二個)
           這三個 processes 皆印出一行 messages: I'm ..., my parent is ....
           印出的順序為 child1 , child2, parent. 
           為了控制印出的順序, 採取 signal 的方式. 
    
              child1 先印出, 再送出一個 signal 給 parent, 
    
              parent 收到 signal, 再生出另一個 child, 
    
              child2 先印出, 再送出一個 signal 給 parent,
    
              parent 印出. 
    
              送 signal 的 system call 為 kill(), 請用 ``man -s 2 kill'' 查詢.
           
  • deadline: 2004/4/5, 00:01am
  • examples of fork()
  • examples of sigaction()