天天看點

作業系統

作業系統:

    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,輸出資訊。

為什麼要有程序等待?

将子程序維護資訊狀态(資料結構)釋放,避免記憶體洩漏。保證子程序退出在父程序之前(同步機制)。避免僵屍,孤兒程序。