欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

windows系統(tǒng)調(diào)用表的簡單介紹

windows系統(tǒng)上創(chuàng)建一個進程用了什么系統(tǒng)調(diào)用

進程(Process)是具有一定獨立功能的程序關(guān)于某個數(shù)據(jù)集合上的一次運行活動,是系統(tǒng)進行資源分配和調(diào)度的一個獨立單位。程序只是一組指令的有序集合,它本身沒有任何運行的含義,只是一個靜態(tài)實體。而進程則不同,它是程序在某個數(shù)據(jù)集上的執(zhí)行,是一個動態(tài)實體。它因創(chuàng)建而產(chǎn)生,因調(diào)度而運行,因等待資源或事件而被處于等待狀態(tài),因完成任務(wù)而被撤消,反映了一個程序在一定的數(shù)據(jù)集上運行的全部動態(tài)過程。線程(Thread)是進程的一個實體,是CPU調(diào)度和分派的基本單位。線程不能夠獨立執(zhí)行,必須依存在進程中,由進程提供多個線程執(zhí)行控制。從內(nèi)核角度講線程是活動體對象,而進程只是一組靜態(tài)的對象集,進程必須至少擁有一個活動線程才能維持運轉(zhuǎn)。當某個應(yīng)用程序調(diào)用一個創(chuàng)建進程的函數(shù)比如CreateProcess或者用戶執(zhí)行某一個程序(其實windows下用戶執(zhí)行一般普通程序是由explorer.exe調(diào)用CreateProcess來完成),操作系統(tǒng)把這個過程分成以下步驟來完成:1.打開將要在該進程中執(zhí)行的映像文件。2.創(chuàng)建Windows執(zhí)行體進程對象。3.創(chuàng)建初始線程(棧、堆執(zhí)行環(huán)境初始化及執(zhí)行線程體對象)。4.通知Windows子系統(tǒng)新進程創(chuàng)建了(子系統(tǒng)是操作系統(tǒng)的一部分它是一個協(xié)助操作系統(tǒng)內(nèi)核管理用戶態(tài)/客戶方的一個子系統(tǒng)具體的進程為Csrss.exe)。5.開始執(zhí)行初始線程(如果創(chuàng)建時候指定了線程的CREATE_SUSPENDED狀態(tài)則線程暫時掛起不執(zhí)行)。6.在新進程和線程環(huán)境中完成地址空間的初始化(比如加載必須的DLL和庫),然后開始到進程入口執(zhí)行。到這里操作系統(tǒng)完成一個新進程的創(chuàng)建過程。下面來看下具體每一步操作系統(tǒng)所做的工作:1.打開將要在該進程中執(zhí)行的映像文件。首先操作系統(tǒng)找到執(zhí)行的Windows映像然后創(chuàng)建一個內(nèi)存區(qū)對象,以便后面將它映射到新的進程地址空間中。2.創(chuàng)建Windows執(zhí)行體進程對象。接下來操作系統(tǒng)調(diào)用內(nèi)部的系統(tǒng)函數(shù)NtCreateProcess來創(chuàng)建一個Windwos執(zhí)行體進程對象。具體步驟是:(1)建立EPROCESS*分配并初始化EPROCESS結(jié)構(gòu)塊*從父進程處繼承得到進程的親和性掩碼*分配進程的最大最小工作集尺(由兩個參數(shù)決定PsMinimumWorkingSet PsMaximumWorkingSet)*降新進程的配額塊設(shè)置為父進程配額塊地址,并遞增父進程配額塊的引用計數(shù)*繼承Windows的設(shè)備名字空間*將父進程進程ID保存在新進程對象的InheritedFormUniqueProcessId中*創(chuàng)建該進程的主訪問令牌*初始化進程句柄表*將新進程的退出狀態(tài)設(shè)置為STATUS_PENDING(2)創(chuàng)建初始的進程地址空間*在適當?shù)捻摫碇袆?chuàng)建頁表項,以映射初始頁面*從MmresidentAvailablePage算出進程工作集大小*系統(tǒng)空間的非換頁部分和系統(tǒng)緩存的頁表被映射到進程(3)初始化內(nèi)核進程塊KPROCESS(4)結(jié)束進程地址空間的創(chuàng)建過程(5)建立PEB(6)完成執(zhí)行體進程對象的創(chuàng)建過程3.創(chuàng)建初始線程(棧、堆執(zhí)行環(huán)境初始化及執(zhí)行線程體對象)。這時候Windows執(zhí)行體進程對象已經(jīng)完全建立完成,但它還沒有線程所以無法執(zhí)行,接下來系統(tǒng)調(diào)用NtCreateThread來創(chuàng)建一個掛起的新線程它就是進程的主線程體。4.通知Windows子系統(tǒng)新進程創(chuàng)建了(子系統(tǒng)是操作系統(tǒng)的一部分它是一個協(xié)助操作系統(tǒng)內(nèi)核管理用戶態(tài)/客戶方的一個子系統(tǒng)具體的進程為Csrss.exe)。接下來操作系統(tǒng)通過客戶態(tài)(Kernel32.dll)給Windows子系統(tǒng)(Csrss)發(fā)送一個新進程線程創(chuàng)建的數(shù)據(jù)消息,讓子系統(tǒng)建立自己的進程線程管理塊。當Csrss接收到該消息時候執(zhí)行下面的處理:*復制一份該進程和線程句柄*設(shè)置進程優(yōu)先級*分配Csrss進程塊*把新進程的異常處理端口綁定到Csrss中,這樣當該進程發(fā)生異常時,Csrss將會接收到異常消息*分配和初始化Csrss線程塊*把線程插入到進程的線程列表中*把進程插入到Csrss的線程列表中*顯示進程啟動光標5.開始執(zhí)行初始線程(如果創(chuàng)建時候指定了線程的CREATE_SUSPENDED狀態(tài)則線程暫時掛起不執(zhí)行)。到這里進程環(huán)境已經(jīng)建立完畢進程中開始創(chuàng)建的主線程到這里獲得執(zhí)行權(quán)開始執(zhí)行線程。6.在新進程和線程環(huán)境中完成地址空間的初始化(比如加載必須的DLL和庫),然后開始到進程入口執(zhí)行。到這步實質(zhì)是調(diào)用ldrInitializeThunk來初始化加載器,堆管理器NLS表TLS數(shù)組以及臨界區(qū)結(jié)構(gòu),并且加載任何必須要的DLL并且用DLL_PROCESS_ATTACH功能代碼來調(diào)用各DLL入口點,最后當加載器初始化例程返回到用戶模式APC分發(fā)器時進程映像開始在用戶模式下執(zhí)行,然后它調(diào)用線程啟動函數(shù)開始執(zhí)行。到這里操作系統(tǒng)完成了所有的創(chuàng)建工作,我們寫的程序就這樣被操作系統(tǒng)調(diào)用運行起來了。

成都創(chuàng)新互聯(lián)公司自2013年創(chuàng)立以來,先為博白等服務(wù)建站,博白等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為博白企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

什么是系統(tǒng)調(diào)用,與程序調(diào)用有何不同

所謂系統(tǒng)調(diào)用,就是內(nèi)核提供的、功能十分強大的一系列的函數(shù)。這些系統(tǒng)調(diào)用是在內(nèi)核中實現(xiàn)的,再通過一定的方式把系統(tǒng)調(diào)用給用戶,一般都通過門(gate)陷入(trap)實現(xiàn)。系統(tǒng)調(diào)用是用戶程序和內(nèi)核交互的接口。

整個系統(tǒng)調(diào)用的過程可以總結(jié)如下:

1. 執(zhí)行用戶程序(如:fork)

2. 根據(jù)glibc中的函數(shù)實現(xiàn),取得系統(tǒng)調(diào)用號并執(zhí)行int $0x80產(chǎn)生中斷。

3. 進行地址空間的轉(zhuǎn)換和堆棧的切換,執(zhí)行SAVE_ALL。(進行內(nèi)核模式)

4. 進行中斷處理,根據(jù)系統(tǒng)調(diào)用表調(diào)用內(nèi)核函數(shù)。

5. 執(zhí)行內(nèi)核函數(shù)。

6. 執(zhí)行RESTORE_ALL并返回用戶模式

下庫函數(shù)和系統(tǒng)調(diào)用的區(qū)別:

人們在長期編程中發(fā)現(xiàn)使用系統(tǒng)調(diào)用有個重大的缺點,那就程序的移植性,比如說:linux系統(tǒng)提供的系統(tǒng)調(diào)用的函數(shù)和windows就不一樣,2者不單單是實現(xiàn)的方式不同,提供給用戶的函數(shù)名,參數(shù)都不同,這個可以理解。因此一個實現(xiàn)好的程序,利用了linux的系統(tǒng)調(diào)用譬如說wait4函數(shù),那么他在windows上編譯是通不過的。于是人們想了個辦法,就是封裝了windows和linux系統(tǒng)調(diào)用,給大家一個統(tǒng)一的函數(shù)(我習慣叫它接口),那么這樣程序的移植性問題就解決了。

所以可以這么認為庫函數(shù)是對系統(tǒng)調(diào)用的封裝(不是所有的庫函數(shù)都是),為的是解決一些公共的問題和提供統(tǒng)一的系統(tǒng)調(diào)用的接口,他和系統(tǒng)調(diào)用的優(yōu)缺點就是:系統(tǒng)調(diào)用速度是明顯要快于庫函數(shù)(并不一定全部是,但絕大部分是),但系統(tǒng)調(diào)用缺乏移植性。庫函數(shù)速度要慢,但解決了移植問題。這些在開發(fā)過程中要根據(jù)自己的實際情況來決定使用那一個

windows系統(tǒng)調(diào)用表怎么用

兼容內(nèi)核

有兩套

系統(tǒng)調(diào)用

(syscalls)及其相應(yīng)的系統(tǒng)調(diào)用表(syscall

table):一套為Windows系統(tǒng)調(diào)用,另一套為Linux系統(tǒng)調(diào)用。Windows應(yīng)用程序通過軟中斷“int

0x2e”訪問系統(tǒng)調(diào)用表進行Windows系統(tǒng)調(diào)用。

新聞名稱:windows系統(tǒng)調(diào)用表的簡單介紹
網(wǎng)站URL:http://aaarwkj.com/article36/dsighpg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、網(wǎng)站設(shè)計、品牌網(wǎng)站設(shè)計、企業(yè)網(wǎng)站制作、靜態(tài)網(wǎng)站響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管
97视频精品在线播放| 精品欧美一区二区三区在线| 成人午夜激情福利动态| 天天干天天干夜夜操| 一区二区三区四区自拍偷拍视频| 尤物资源视频在线观看| 国产成人精品免费视频大| 在线观看不卡的黄色地址| 日韩精品电影一二三| 日本成人一区二区三区视频| 日本不卡在线观看欧美精品 | 精品人妻系列一区二区| 有码精品视频在线观看| 未满18周岁禁止观看视频| 国产黄片免费高清观看| 高清av在线国产成人精品自拍| 欧美高清一区二区三区精品| 少妇又色又爽又高潮欧美| 国产情侣最新地址在线| 日韩精品一区三区二区| 做性视频大全在线观看| 亚洲精品人妻av在线| 国产亚洲一区激情小说| 国产精品一区二区在线观看| 蜜臀av中文字幕亚洲| 成人国产午夜福利网| 97视频在线观看免费| 91最新精品丝袜国产在线| 久久国产精品一二三区| 亚洲欧美精品一区二区三区| 后入动漫视频在线观看| 亚洲欧洲国产视频一区二区 | 国产精品国产精品国产| 色男人天堂亚洲男人天堂| 青青草原精品资源视频| 88国产精品久久久久久| 国产精品免费视频一区二区三区 | 国产剧情av色诱女教师| 国产精品免费视频一区二区三区| 免费一区二区三区精品| 未满18周岁禁止观看视频|