3d建站app開發(fā)平臺
程序與進程的區(qū)別?
程序是靜態(tài)的未運行的二進制文件,存儲在磁盤中
進程是已經(jīng)運行的二進制文件,存儲在內(nèi)存中
進程的內(nèi)存劃分圖有哪幾部分?
堆(存儲malloc和calloc出來的空間)、棧(局部變量、環(huán)境變量、命令行參數(shù))、數(shù)據(jù)段(全局變量、靜態(tài)變量、常量)、代碼段(用戶代碼、系統(tǒng)初始化的代碼)
進程的狀態(tài)轉(zhuǎn)換?
時間片的定義:
分時操作系統(tǒng)分配給每個正在運行的系統(tǒng)的一段微觀上的時間
進程的控制命令:
ps:查看當(dāng)前終端的進程
ps -e: 查看當(dāng)前系統(tǒng)的所有進程
kill 給進程pid發(fā)送一個信號(sigstop、sigcont)
killall 給進程名發(fā)送一個信號
所有進程都有其父進程,最開始的進程有init進程和system進程創(chuàng)建
創(chuàng)建進程的函數(shù):fork(),fork函數(shù)會連續(xù)返回兩個值,一個是子進程返回零,一個是父進程返回大于零。
父子進程間不一樣的屬性有哪些?
pid號、記錄鎖、掛起的信號
孤兒進程:
當(dāng)父進程比子進程先死亡,子進程就會變?yōu)楣聝哼M程,所有孤兒進程都由init進程進行回收。(子進程比父進程先死亡可以防止孤兒進程的產(chǎn)生)
僵尸進程:
子進程死亡,父進程未回收子進程的資源(調(diào)用wait),子進程變?yōu)榻┦M程
wait函數(shù)的作用:
用來回收子進程的資源,wait((int)&state),根據(jù)狀態(tài)碼得知子進程的狀態(tài)
狀態(tài)碼如下:
獲取pid的函數(shù)有哪些?
getpid()獲取當(dāng)前進程的pid號
getppid()獲取父進程的pid號
exit函數(shù)()的作用?
使得進程退出,從運行狀態(tài)進入到僵尸態(tài)。
execl()函數(shù)的作用?
讓進程重新加載其他程序文件。