作業系統:
1.有效的控制硬體資源的配置設定。
2.提供計算機運作所需要的網絡功能。
3.提供一整套系統調用接口來給程式員開發用。
如果能夠參考硬體的功能函數并修改你的作業系統程式代碼,那經過改版後的作業系統就能夠在另一個硬體平台上面運作了,這個操作稱為軟體移植。
vim編輯器模式:指令模式 插入模式 底行模式 替換模式 視圖模式
printf:預設行緩沖,遇'\n'輸出(庫函數)庫函數提供緩沖區。
write:系統調用,不帶任何緩沖方式。
3種緩沖方式:
無緩沖:write
行緩沖:進度條制作
全緩沖:1.強制重新整理2。緩沖區寫滿,才刷。
庫函數:其他開發基于系統調用封裝函數:C庫做的緩沖區。
系統調用:調作業系統接口。
FILE中有資料結構,結構體内容緩沖區
fclose(1),關閉标準輸出,當再次open檔案時,傳回檔案描述符1.
配置設定檔案描述符規則:正常從3開始,關閉1後,再配置設定從未使用的最小整數開始。
PCB中有一個檔案叫做file_struct(指針數組),檔案對象表。指向一個個檔案。指向file obj(調用自己方法操縱)
FILE中檔案字段包括fd檔案描述符。輸入輸出重定向,打開一個檔案放入0下标,任何可用于标準輸出函數都可用于新檔案。fclose(0);
作業系統允許頁表填充,不一定馬上填,(用的時候填充)缺頁中斷,産生映射。
虛拟位址好處:
1.保護機制:(對實體位址),不能直接對實體位址進行操縱。
2.獨占資源(4G).
vfork(),建立程序
特點:
1.共享位址空間(父,子程序)
2.子程序先運作,調exec後父程序運作。
程序1.退出:合理(安全無誤按代碼執行)2.SIGCHID信号(退出時給父程序發送)。
pid_t wait(int* status);傳回等到的程序号,status為輸出型參數(通過參數從函數拿到内容)低8位表示異常信号,次低8位表示退出碼。
pid_t waitpid(pid_t pid,int *status,int options);
pid為所等程序,堵塞等待時options為0,預設阻塞格式。
WNOHANG等待方式:非阻塞。(輪詢)
若不關心退出狀态,将status設定為NULL.
傳回值:
0:正在等待
-1:失敗,置errno
大于0,輸出資訊。
為什麼要有程序等待?
将子程序維護資訊狀态(資料結構)釋放,避免記憶體洩漏。保證子程序退出在父程序之前(同步機制)。避免僵屍,孤兒程序。