根據(jù)系統(tǒng)調(diào)用的功能,可將其分為進(jìn)程控制(類)的系統(tǒng)調(diào)用、進(jìn)程通信(類)的系統(tǒng)調(diào) 用、文件操作(類)及設(shè)備管理(類)系統(tǒng)調(diào)用等。 進(jìn)程控制類的系統(tǒng)調(diào)用 這類系統(tǒng)調(diào)用主要用于對進(jìn)程的控制,如創(chuàng)建一個新的進(jìn)程和終止一個進(jìn)程的運行,獲 得和設(shè)置進(jìn)程屬性等。 (1 )創(chuàng)建和終止進(jìn)程的系統(tǒng)調(diào)用。在多道程序環(huán)境下,為使多道程序能并發(fā)執(zhí)行,必須 先利用創(chuàng)建進(jìn)程的系統(tǒng)調(diào)用,為需要并發(fā)執(zhí)行的各程序分?創(chuàng)建一個進(jìn)程。當(dāng)進(jìn)程已經(jīng)執(zhí) 行結(jié)?或因發(fā)生異常情況而不能繼續(xù)執(zhí)行時,可利用終止進(jìn)程的系統(tǒng)調(diào)用來結(jié)?該進(jìn)程的 運行。 (2 )獲得和設(shè)置進(jìn)程屬性的系統(tǒng)調(diào)用。當(dāng)創(chuàng)建一個(些)新進(jìn)程后,為了能控制它(們) 的運行,應(yīng)當(dāng)能了解、確定和重新設(shè)置它(們)的屬性。這些屬性包括:進(jìn)程標(biāo)識符、進(jìn)程優(yōu) 先級、最大允許執(zhí)行時間等。此時可利用獲得進(jìn)程屬性的系統(tǒng)調(diào)用,來了解某進(jìn)程的屬性, 利用設(shè)置進(jìn)程屬性的系統(tǒng)調(diào)用,來確定和重新設(shè)?進(jìn)程的屬性。 (3 )等待事件觸發(fā)的系統(tǒng)調(diào)用。進(jìn)程在運行過程中,有時需要等待某事件(條件)出現(xiàn) 后,方可繼續(xù)執(zhí)行。例如,一個進(jìn)程在創(chuàng)建了一個(些)新進(jìn)程后,需要等待它(們)運行結(jié)? 后,才能繼續(xù)執(zhí)行,此時可利用等待子進(jìn)程結(jié)?的系統(tǒng)調(diào)用進(jìn)行等待。又如,在客戶/服務(wù)器 模式中,若無任何客戶向服務(wù)器發(fā)出消息,則服務(wù)器接收進(jìn)程便無事可做,此時該進(jìn)程就可 利用等待(事件)的系統(tǒng)調(diào)用,使自己處于等待狀態(tài),一旦有客戶發(fā)來消息時,接收進(jìn)程便被 喚醒,進(jìn)行消息接收的處理。 進(jìn)程通信類系統(tǒng)調(diào)用 在OS中經(jīng)常采用兩種進(jìn)程通信方式,即消息傳遞方式和共享存儲區(qū)方式。當(dāng)系統(tǒng)中 采用消息傳遞方式時,在通信前,必須先打開一個連接。為此,應(yīng)由源進(jìn)程發(fā)出一條打開連 接的系統(tǒng)調(diào)用open connection,而H標(biāo)進(jìn)程則應(yīng)利用接受選接的系統(tǒng)調(diào)用accept connection 表示同意進(jìn)行通信;然后,在源進(jìn)程和目標(biāo)進(jìn)程之間便可開始通信,利用發(fā)送消息的系統(tǒng)調(diào) 用send message或者用接收消息的系統(tǒng)調(diào)用receive message來交換信息。通信結(jié)束后,還須 再利用關(guān)閉連接的系統(tǒng)調(diào)用close connection結(jié)束通信。 用戶在利用共享存儲區(qū)進(jìn)行通信之前,必須先利用建立共享存儲區(qū)的系統(tǒng)調(diào)用建立一 個共享存儲區(qū),再利用建立連接的系統(tǒng)凋用將該共享存儲區(qū)連接到進(jìn)程自身的虛地址空間 上,然后便可利用讀和寫共享存儲區(qū)的系統(tǒng)調(diào)用實現(xiàn)相互之間的通信。 文件操作類系統(tǒng)調(diào)用 對文件進(jìn)行操作的系統(tǒng)調(diào)用數(shù)量較多,下面簡單介紹一些對文件基本操作的系統(tǒng)調(diào)用。 (1 )創(chuàng)建和刪除文件。當(dāng)用戶需要在系統(tǒng)中存放程序或數(shù)據(jù)時,可利用創(chuàng)建文件的系 統(tǒng)凋用creat,由系統(tǒng)根據(jù)用戶提供的文件名和存取方式來創(chuàng)建一個新文件;當(dāng)用戶不再需 要某文件時,可利用刪除文件的系統(tǒng)調(diào)用將文件刪除。 (2)打開和關(guān)閉文件。用戶在第一次訪問某個文件之前,應(yīng)先利用打開文件的系統(tǒng)調(diào) 用open,將指定文件打開,即系統(tǒng)將在用戶(程序)與該文件之間建立一條快捷通路。在文 件被打開后,系統(tǒng)將給用戶返回一個該文件的句柄或描述符;當(dāng)用戶不再訪問某文件時,又 可利用關(guān)閉文件的系統(tǒng)調(diào)用close將此文件關(guān)閉,即斷開該用戶程序與該文件之間的快捷 通路。 (3 )讀/寫文件。用戶可利用讀系統(tǒng)調(diào)用read,從已打開的文件中讀出給定數(shù)目的字 符,并送至指定的緩沖區(qū)中;同樣,用戶也可利用寫系統(tǒng)凋用write,從指定的緩沖區(qū)中將給定數(shù)目的字符寫入指定文件中。read和write兩個系統(tǒng)調(diào)用是文件操作類中使用最頻繁的 系統(tǒng)調(diào)用。 對文件進(jìn)行操作的系統(tǒng)調(diào)用還有:建立目錄、移動文件的讀/寫指針及改變文件屬性等。 |