版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Linux程序設計環(huán)境CH06Linux內核之進程和文件共享內容回顧-1Shell腳本編程入門注釋的含義test命令幾個經(jīng)典范例參數(shù)$#,$@,$0,$1… 內容回顧-2判斷、循環(huán)、函數(shù)if-thencase-esacwhilefor函數(shù)function本章內容Linux內核中進程的基本概念進程管理作業(yè)管理Linux內核中的文件機制硬鏈接和符號鏈接進程的基本概念Onatimesharing(分時)systemwithonlyoneCPU: Multipleprocessesareexecutedsimultaneously(并發(fā))byquicklyswitchingtheCPUfromoneprocesstoanotherTheshortCPUtime,thatisgiventoaprocessiscalledaquantum時間片(100msec)ThetechniqueusedbythekerneltochoosethenextprocessthatgetstheCPUiscalledCPUscheduling(cpu調度)CPUschedulingisimplementedinthekernel(內核)進程的基本概念CPUschedulingonatimesharingsystem:Apriorityvalue(優(yōu)先數(shù))isassignedtoeveryprocessTheprocesswiththehighestprioritytakestheCPUnextThesimplestschedulingalgorithmiscalledfirst-come-first-served(FCFS)AnotheralgorithmassignshighestprioritytotheI/OBoundprocesses(ProcessesthatspendmostoftheirtimedoingI/O.Ex:vieditor)RoundRobin(RR)AprocessgetstousetheCPUforonequantumandthentheCPUisgiventoanotherprocess,thenextprocessinthequeueofprocesseswaitingtousetheCPULinuxusesacombinationofthesealgorithms進程的基本概念
LINUX進程可以處于多種狀態(tài)中的一種。進程可以從一種狀態(tài)轉變?yōu)榱硪环N狀態(tài),直到執(zhí)行結束(正?;蛘叻钦=K止)并退出系統(tǒng)。當進程完成它的工作并正常退出系統(tǒng),進程就是正常終止。當進程是因為在異常(錯誤)條件下退出系統(tǒng)或者在其擁有者或特權用戶的干涉下退出系統(tǒng),它便是非正常終止。Linux2.4進程有5種狀態(tài);Linux2.6進程有7種狀態(tài)。Linux進程狀態(tài)Linux進程狀態(tài)
TASK_RUNNING:進程在運行(是系統(tǒng)的當前進程)或者準備運行(等待被安排到系統(tǒng)的一個CPU上)。進程控制塊有一個run_list成員,所有處于TASK_RUNNING狀態(tài)的進程都通過該成員鏈在一起,稱之為可運行隊列。
TASK_INTERRUPTIBLE:進程處于某個等待隊列中,它能夠被信號(signal)或中斷喚醒。等待資源的請求滿足時,也被喚醒。
TASK_UNINTERRUPTIBLE:進程處于某個等待隊列中,不能被信號或中斷喚醒,只有等待的資源被滿足時才被喚醒。例如當進程打開一個設備文件時,使用TASK_UNINTERRUPTIBLE
TASK_ZOMBIE:進程已經(jīng)停止,但還沒有釋放進程控制塊
TASK_STOPPED:可能是被特定的信號終止,也可能是受其它進程的跟蹤調用而暫時將CPU交給跟蹤它的進程。TASK_TRACED(2.6)TASK_DEAD(2.6)Shell命令的執(zhí)行和進程
Shell命令可以是內部或者外部命令。
內部(內置)命令(internal(built-in)command)的代碼本身就是shell進程的一部分。LINUXshell中的一些內部命令如.(點命令)、alias、bg、cd、continue、echo、exec、exit、fg、jobs、pwd、set、shift、test、time、umask、unset和wait。外部命令是(externalcommand)命令代碼以文件的形式出現(xiàn)的稱為;文件內容可以是二進制代碼或者shell腳本。通常使用的一些外部命令如grep、more、cat、mkdir、rmdir、ls、sort、ftp、telnet、lp和ps。
LINUX進程通過系統(tǒng)調用fork創(chuàng)建另外一個進程,該操作建立原進程內存的完全拷貝。這兩個進程接著fork后的語句執(zhí)行。Theforkingprocessisknownastheparentprocess(父進程)
Thecreated(forked)processiscalledthe
childprocess(子進程)Shell命令的執(zhí)行和進程bashshell創(chuàng)建一個進程Shell命令的執(zhí)行和進程為了執(zhí)行一個外部二進制命令,需要一種機制使子進程成為要執(zhí)行的命令
LINUX系統(tǒng)調用exec完成這項工作,進程可以用另外一個命令的可執(zhí)行代碼來覆蓋自身。
shell先后使用fork和exec系統(tǒng)調用來執(zhí)行一個外部二進制命令。Shell命令的執(zhí)行和進程Shell命令的執(zhí)行和進程shell腳本的執(zhí)行同二進制文件的執(zhí)行略有不同。
Shell腳本的執(zhí)行:
當前shell創(chuàng)建一個子shell并讓子shell依次執(zhí)行shell腳本中的命令,腳本中每一個命令的執(zhí)行與從鍵盤輸入的命令采用相同的方式子shell為每一個要執(zhí)行的命令創(chuàng)建一個子進程。子shell執(zhí)行腳本文件中的命令時,父shell等待子shell結束。當子shell遇到腳本文件的結束標志,它就終止。子shell的唯一目的是執(zhí)行命令,eof意味著沒有其它的命令了。當子shell終止,父shell結束等待狀態(tài),開始重新執(zhí)行。Shell命令的執(zhí)行和進程Linux進程屬性進程包含以下屬性:OwnersIDProcessnameProcessID(PID)ProcessstateParentprocessIDLenghtoftimetheprocesshasbeenrunning進程已執(zhí)行的時間Linux進程屬性ps命令用來查看系統(tǒng)中運行的進程的各種屬性Linux進程屬性使用范例Linux進程屬性進程管理
top命令:實時監(jiān)視CPU的活動狀態(tài)。該命令顯示系統(tǒng)中CPU密集型任務的狀態(tài)并且允許你交互地控制這些進程。該命令按照CPU使用情況、內存使用情況和執(zhí)行時間對進程進行排序。top命令執(zhí)行時,可以用各種命令與之交互。當使用交互命令時,top提示你一個或者多個與它要完成的工作有關的問題。
kill命令:終止指定PID的進程。進程管理使用范例作業(yè)管理當鍵入命令并敲<Enter>后,shell執(zhí)行命令在當前命令執(zhí)行結束即shell返回前,你不能執(zhí)行任何命令。這種執(zhí)行命令的方式,稱之為在前臺foreground執(zhí)行需要運行一個要花費很長時間才能完成的LINUX命令(或者任一這樣的程序),當命令執(zhí)行時,你無法做其它工作。
LINUX可以在執(zhí)行命令的同時做其他工作。這種能力稱為在后臺background執(zhí)行命令。
作業(yè)管理在命令后面加上一個“與”操作符號(&),使該命令在后臺操作。當一個任務在后臺運行時:前端shell命令行繼續(xù)工作
可以繼續(xù)執(zhí)行其他shell命令作業(yè)管理允許用戶執(zhí)行一個命令而不需要等待前一個命令的完成。作業(yè)管理Example:$find/-namefoo–print>foo.paths2>/dev/null& [1]23467括號中shell返回的數(shù)字是該進程的作業(yè)號(jobnumber);另外一個數(shù)字是進程PID。
find命令的作業(yè)號是1,其PID為23467。
作業(yè)是一個不運行于前臺的進程,并且只能在關聯(lián)的終端上訪問。這樣的進程通常在后臺執(zhí)行或者成為被掛起的進程。作業(yè)管理fg命令可以使后臺進程轉到前臺作業(yè)管理使用<Ctrl-Z>掛起一個前臺進程。使用bg命令把被掛起的進程轉到后臺。使用jobs命令顯示所有掛起的(停止的)和后臺進程的作業(yè)號,確定哪一個是當前的進程。
命令suspend可以掛起當前shell進程作業(yè)管理范例作業(yè)管理范例作業(yè)管理范例命令和進程的終止按<Ctrl-C>來終止一個前臺進程。終止后臺進程可用兩種方法中的一種:使用kill命令先使用fg命令把進程轉向前臺,然后按<Ctrl-C>。kill命令的主要目的是向進程發(fā)送信號(也稱為軟中斷)。進程接收到信號后,可以采取以下三種行為之一:接受內核規(guī)定的默認動作忽略該信號截獲該信號并且執(zhí)行用戶定義的動作命令和進程的終止為了終止一個忽略15號信號或者其它信號的進程,需要使用9號信號,即強制終止信號
進程號0可以指代所有在當前登錄期間創(chuàng)建的進程。因此kill–90命令可以終止所有登錄時產(chǎn)生的進程(即,當前會話中的所有進程),這樣,你自己就不得不退出系統(tǒng)。
Linux進程的層次關系Linux啟動進程創(chuàng)建過程Linux進程的層次關系
ps–ef命令或者pstree命令可以用圖的形式顯示當前系統(tǒng)中執(zhí)行進程的進程樹,勾勒出進程間的父子關系。
$pstree–a|more
Bashshell下可以用ulimit顯示用戶可以同時執(zhí)行的最大進程個數(shù)$ulimit–u 4071#fedoracore4在TCshell下完成同樣任務的命令是limit命令。
Linux文件共享方法通過副本共享:復制需要共享的文件并分發(fā)到組內每個成員
通過同一用戶名登錄共享:共用一個賬號登錄系統(tǒng)。
為共享文件設立適當?shù)脑L問權限:把所有要共享的文件放到一個成員帳號下,設置組成員具有讀寫和執(zhí)行的權限
為團隊成員建立一個用戶組建立一個新用戶組只包括項目組的所有成員,每個用戶用自己的賬號登錄,為自己的文件設立適當?shù)脑L問權限,使得它們可以被組中的其他成員訪問。
通過文件鏈接共享,Linux兩類鏈接:
硬鏈接(hardlink)軟(符號)鏈接(Soft/symboliclink)通過文件鏈接共享ln命令用來建立硬鏈接和符號鏈接。
語法:
ln[options]existing-filenew-file ln[options]existing-file-listdirectory 常用選項: -f強迫建立鏈接 -n
如果“new-file”已存在,不創(chuàng)建鏈接。
-s建立一個符號鏈接而不是硬鏈接 -d建立目錄的硬鏈接 例:
$lnChapter3Chapter3.hard硬鏈接硬鏈接是一個指向文件索引節(jié)點的指針。
ln并不會影響文件的內容,它只是建立另一個文件名稱而已
例:$ls-iltest12513974-rw-r--r--1rootroot556Jul1221:06test1$lntest1
test2$ls-iltest*2513974-rw-r--r--2rootroot556Jul1221:06test12513974-rw-r--r--2rootroot556Jul1221:06test2
建立新鏈接$lntest1test2
$cattest1WelcometoLinuxWorld$cattest2WelcometoLinuxWo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年自開塔式起重機行業(yè)深度研究分析報告
- 2025標準施工單位勞動合同范本
- 2025景區(qū)導視系統(tǒng)設計合同范本
- 2025合同模板建設工程項目合作框架協(xié)議范本
- 課題申報參考:鋰電池全產(chǎn)業(yè)鏈降碳責任共擔機制研究
- 課題申報參考:困境兒童網(wǎng)絡風險識別與網(wǎng)絡素養(yǎng)培育的干預研究
- 現(xiàn)代學校食品安全管理策略研究
- 二零二五年度高速公路服務區(qū)車位租賃與便利店合作合同4篇
- 安徽省合肥市智育聯(lián)盟2023-2024學年八年級下學期4月期中物理試題【含答案、解析】
- 2025年外研版2024選修3生物上冊月考試卷
- 湖北省十堰市城區(qū)2024-2025學年九年級上學期期末質量檢測綜合物理試題(含答案)
- 2024企業(yè)答謝晚宴會務合同3篇
- 電氣工程及其自動化專業(yè)《畢業(yè)設計(論文)及答辯》教學大綱
- 《客艙安全管理與應急處置》課件-第14講 應急撤離
- 中華人民共和國文物保護法
- 2025屆高考作文押題預測5篇
- 節(jié)前物業(yè)安全培訓
- 阿里巴巴國際站:2024年珠寶眼鏡手表及配飾行業(yè)報告
- 高甘油三酯血癥相關的器官損傷
- 手術室護士考試題及答案
- 牙膏項目創(chuàng)業(yè)計劃書
評論
0/150
提交評論