簡述系統(tǒng)調(diào)用的過程 簡述系統(tǒng)調(diào)用的實(shí)現(xiàn)過程?
簡述系統(tǒng)調(diào)用的實(shí)現(xiàn)過程?系統(tǒng)調(diào)用是操作系統(tǒng)為軟件開發(fā)人員提供的唯一接口,開發(fā)人員可以使用它來使用系統(tǒng)功能。在操作系統(tǒng)內(nèi)核中有一組程序(子程序)來實(shí)現(xiàn)系統(tǒng)功能。系統(tǒng)調(diào)用是對(duì)上述過程的調(diào)用。因此,系統(tǒng)調(diào)用
簡述系統(tǒng)調(diào)用的實(shí)現(xiàn)過程?
系統(tǒng)調(diào)用是操作系統(tǒng)為軟件開發(fā)人員提供的唯一接口,開發(fā)人員可以使用它來使用系統(tǒng)功能。在操作系統(tǒng)內(nèi)核中有一組程序(子程序)來實(shí)現(xiàn)系統(tǒng)功能。系統(tǒng)調(diào)用是對(duì)上述過程的調(diào)用。因此,系統(tǒng)調(diào)用在視覺上就像一個(gè)黑匣子,為用戶屏蔽操作系統(tǒng)的具體動(dòng)作,只提供相關(guān)功能。
為了實(shí)現(xiàn)系統(tǒng)調(diào)用,系統(tǒng)設(shè)計(jì)者還必須為實(shí)現(xiàn)各種系統(tǒng)調(diào)用功能的子例程編譯入口地址表,每個(gè)入口地址對(duì)應(yīng)相應(yīng)的系統(tǒng)子例程名稱。然后,trap處理程序?qū)rap指令中包含的函數(shù)號(hào)與entry address表中的相關(guān)項(xiàng)對(duì)應(yīng)起來,以便系統(tǒng)調(diào)用函數(shù)號(hào)驅(qū)動(dòng)相關(guān)的系統(tǒng)子程序執(zhí)行。
由于用戶程序在系統(tǒng)調(diào)用處理后仍然需要使用系統(tǒng)調(diào)用的返回結(jié)果繼續(xù)執(zhí)行,因此陷阱處理機(jī)制在進(jìn)入系統(tǒng)調(diào)用處理之前還需要保存processor字段。此外,在系統(tǒng)調(diào)用處理結(jié)束后,trap處理機(jī)制必須恢復(fù)處理器站點(diǎn)。在操作系統(tǒng)中,處理器的字段一般保護(hù)在特定的內(nèi)存區(qū)域或寄存器中
通用函數(shù)調(diào)用,即函數(shù)庫調(diào)用是語言或應(yīng)用程序的一部分,而系統(tǒng)調(diào)用是操作系統(tǒng)的一部分。無論是Java還是Python I/O,都是通過讀寫等系統(tǒng)調(diào)用來完成的。系統(tǒng)調(diào)用是用戶程序與內(nèi)核之間的接口。函數(shù)庫調(diào)用:在所有版本的ANSI C編譯器中,C庫函數(shù)是相同的;它調(diào)用函數(shù)庫中的一個(gè)程序;它與用戶程序序列相關(guān)聯(lián);它在用戶地址空間中執(zhí)行important;它的運(yùn)行時(shí)間屬于user time important;它屬于進(jìn)程調(diào)用,C庫libc中大約有300個(gè)程序,開銷較小。系統(tǒng)調(diào)用:每個(gè)操作系統(tǒng)的系統(tǒng)調(diào)用不同,調(diào)用系統(tǒng)內(nèi)核的服務(wù),是操作系統(tǒng)的入口點(diǎn),在內(nèi)核地址空間中執(zhí)行,運(yùn)行時(shí)間屬于系統(tǒng)時(shí)間,需要切換到內(nèi)核上下文環(huán)境再切換回來,開銷大;在UNIX中大約有90個(gè)系統(tǒng)調(diào)用(MS-DOS),更少。函數(shù)庫調(diào)用通常提供更復(fù)雜的函數(shù),而系統(tǒng)調(diào)用通常提供最小的接口。