精華區beta Programming 關於我們 聯絡資訊
> ==>發信人: gsj.bbs@bbs.nchu.edu.tw (國王的新衣), 信區: programming > 我的循序是指 "行程內" 的循序 > 行程間也是有一個順序規則的 > Process 的執行順序會由Scheduler 來排定 > (這些東西已經算是OS的議題了,詳情去看看教科書吧) > 至於Interrupt 有的是隨機發生(如網路卡、Keyboard),有的是定時發生(如Timer) > 但是ISR內部的執行也是循序 > 如果它有Task要註冊到Task Queue內執行,它也是循序的 > 電腦開機時的Initiator也是循序的 > 行程間的通訊,同步機制也是來自循序的要求 > 非循序,吵了半天的OO不就是 上面說了半天又變成是架在 OS kernel 之上的 行程 (Thread/process) , 不在是直接掛在實體機器了耶 ! 但是, Process 與 Process 之間的通訊也可以是 Asynchronous Communication. 那麼 OO 是架在那個層次之上 ? 為甚麼是非循序 ? > 至於硬體 > CPU執行指令是一個接著一個,這就是循序運轉的機制 那麼隨時被中斷, 就去跑一下別的 instruction . 這種在任意碼的中間可能被 打斷先去跑別的碼, 再回來接下去跑也是循序嗎 ? > > 1. binary file 也不是不能去頭去尾的 , 放在 disk , 用 dirty program > > 的概念改用 modify file 的招式不就解了 ? 何況只是要求放在 > > sector 0 . > > 2. 真正熟 linker/loader 的就能要他造出想要的格式, 再來修改. > 事後這樣改當然可以 > 只是同樣面對Assembly,是不是麻煩多了 > 還是乖乖的用Assembly 組譯吧! 你的 driver 可以用高階語言寫, 但 UNIX OS 的那一段碼是連用事後改檔這一招 也可能困難重重的 ? 高階語言的程式在 run-time 能任意指定某個 register 去 修改其內容嗎 ? -- ◎ Origin: 中央松濤站□bbs.csie.ncu.edu.tw From: 140.115.6.234