freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

第八章xilinx操作系統(tǒng)及庫(kù)(編輯修改稿)

2024-11-16 21:40 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 程序映像文件。 Xilkernel負(fù)責(zé) MicroBlaze和 PowerPC處理器第一級(jí) 中斷和異常處理。因此,設(shè)計(jì)人員不能直接處理中斷。而 在用戶(hù)級(jí)上處理異常和中斷; 使用最終的與核連接的軟件應(yīng)用工程的連接腳本特 性來(lái)控制核的存儲(chǔ)器映射,可以使用自動(dòng)的腳本產(chǎn)生來(lái)幫 助設(shè)計(jì)。 建立 Xilkernel應(yīng)用程序 應(yīng)用程序必須提供 main(),這是核映像文件中的執(zhí) 行的開(kāi)始點(diǎn)。在 main()里,可以做需要的初始化和設(shè)置。 核保持未啟動(dòng)和休眠狀態(tài),在應(yīng)用程序設(shè)置完成后,如果 想啟動(dòng)核,調(diào)用 xilkernel_main()來(lái)啟動(dòng)核,使能中斷,將 控制轉(zhuǎn)移給應(yīng)用程序。在調(diào)用 xilkernel_main()以前,必須 使能系統(tǒng)級(jí)特性。 建立 Xilkernel應(yīng)用程序 這些是典型的機(jī)器狀態(tài)特性,比如緩存的使能,硬 件異常的使能,必須總是打開(kāi),即使從一個(gè)應(yīng)用程序到另 一個(gè)應(yīng)用程序進(jìn)行上下文切換( context switch)。 在應(yīng)用程序的線(xiàn)程中,不允許隨便改變機(jī)器狀態(tài)。如 果在修改機(jī)器狀態(tài)時(shí),產(chǎn)生了上下文的切換,將導(dǎo)致隨后 的線(xiàn)程執(zhí)行時(shí),沒(méi)有使能狀態(tài);所以必須在修改狀態(tài)以 前,鎖定上下文切換和中斷。 Xilkernel處理模型 Xilkernel內(nèi)的執(zhí)行單位( unit)稱(chēng)為進(jìn)程上下文 ( process context)。在進(jìn)程上下文級(jí)上進(jìn)行調(diào)度。 這沒(méi)有線(xiàn)程群的概念,這些群連在一起構(gòu)成傳統(tǒng)上的 進(jìn)程。 對(duì)于資源來(lái)說(shuō),所有的線(xiàn)程是平等的。 POSIX 線(xiàn)程 API是最基本的用戶(hù)可見(jiàn)到進(jìn)程上下文的接口。這也提供 了一些額外的其它的接口,它不是 POSIX的一部分。使 用線(xiàn)程標(biāo)識(shí)符來(lái)操作線(xiàn)程。使用進(jìn)程標(biāo)識(shí)符 pid_t來(lái)操作 標(biāo)識(shí)最基本的進(jìn)程上下文。 Xilkernel調(diào)度模型 Xilkernel支持優(yōu)先級(jí)驅(qū)動(dòng),時(shí)間片搶先調(diào)度 (SCHED_PRIO)或者簡(jiǎn)單的輪循( SCHED_RR)調(diào)度。這 是全局調(diào)度策略而不能根據(jù)每個(gè)線(xiàn)程修改。在產(chǎn)生核時(shí)必 須被靜態(tài)配置。 在 SCHED_RR,有一個(gè)簡(jiǎn)單的準(zhǔn)備隊(duì)列和每個(gè)進(jìn)程 上下文在一個(gè)可配置的時(shí)間片執(zhí)行,當(dāng)超出時(shí)間片時(shí),就 執(zhí)行隊(duì)列的下一個(gè)進(jìn)程上下文。 在 SCHED_PRIO,有很多準(zhǔn)備隊(duì)列,它們有優(yōu)先級(jí), 優(yōu)先級(jí) 0是系統(tǒng)內(nèi)的最高優(yōu)先級(jí),值越高優(yōu)先級(jí)越低。在 同一優(yōu)先級(jí)的任務(wù),采用輪循和時(shí)間片進(jìn)行調(diào)度。 Xilkernel調(diào)度模型 對(duì)于上面的調(diào)度模型,準(zhǔn)備隊(duì)列的長(zhǎng)度也可配置。如 果在核中有等待隊(duì)列(信號(hào)量,消息隊(duì)列等),采用 SCHED_PRIO模型時(shí),被配置成優(yōu)先級(jí)隊(duì)列。否則,被 配置成 FIFO隊(duì)列。 Xilkernel調(diào)度模型 圖 進(jìn)程上下文狀態(tài) PROC_NEW:一個(gè)新創(chuàng)建的進(jìn)程 PROC_READY:一個(gè)準(zhǔn)備執(zhí)行的進(jìn)程 PROC_RUN:正在運(yùn)行的進(jìn)程 PROC_WAIT:由于資源被阻塞的進(jìn)程 PROC_DELAY:一個(gè)等待超時(shí)的進(jìn)程 PROC_TIMED_WAIT:一個(gè)由于資源 被阻塞的進(jìn)程,有一個(gè)相關(guān)的超時(shí) Xilkernel功能 線(xiàn)程管理 Xilkernel支持最基本的 POSIX線(xiàn)程 API。 線(xiàn)程的創(chuàng)建和操作是以標(biāo)準(zhǔn) POSIX符號(hào)來(lái)實(shí)現(xiàn)的。 線(xiàn)程使用唯一的 pthread_t標(biāo)號(hào)來(lái)標(biāo)識(shí)。 系統(tǒng)中所創(chuàng)建的進(jìn)程都有一個(gè)核封裝,當(dāng)線(xiàn)程結(jié)束的 時(shí)候,將控制權(quán)交給核封裝。因此在線(xiàn)程代碼的末尾不需 要一個(gè)指定的退出函數(shù)。 Xilkernel功能 線(xiàn)程管理 來(lái)自塊開(kāi)始符號(hào) BSS存儲(chǔ)器池(基于系統(tǒng)中的最大 線(xiàn)程靜態(tài)分配)代表線(xiàn)程自動(dòng)的分配線(xiàn)程堆棧。也可 以為每一個(gè)去創(chuàng)建的線(xiàn)程動(dòng)態(tài)分配定制的存儲(chǔ)器作為 堆棧。 整個(gè)線(xiàn)程模塊是可選的,可以配置成輸入或輸出來(lái) 作為軟件規(guī)范的一部分。 Xilkernel功能 線(xiàn)程管理 ( 1) int pthread_create(pthread_t thread, pthread_attr_t* att, void*(*start_func)(void*),void* param) 創(chuàng)建線(xiàn)程并執(zhí)行 參數(shù): thread是存儲(chǔ)線(xiàn)程 ID的地址, attr存儲(chǔ)線(xiàn)程屬性結(jié) 構(gòu)體的地址, start_func線(xiàn)程函數(shù)名, param線(xiàn)程函 數(shù)參數(shù)指針。 返回: 0創(chuàng)建成功, 1線(xiàn)程 ID無(wú)效, EINVAL無(wú)效屬性, EAGAIN資源不足。 ( 2) void pthread_exit(void *value_ptr) 參數(shù):線(xiàn)程返回值的指針 結(jié)束一個(gè)線(xiàn)程,但這個(gè)函數(shù)并不是必須的。需要用到返 回值時(shí)才使用。 Xilkernel功能 線(xiàn)程管理 ( 3) nt pthread_join(pthread_t thread, void **value_ptr) 參數(shù): thread線(xiàn)程 ID, value_ptr線(xiàn)程返回值地址指針 返回: 0成功, ESRCH無(wú)效線(xiàn)程, EINVAL線(xiàn)程返回值 已經(jīng)被使用停止當(dāng)前線(xiàn)程等待目標(biāo)線(xiàn)程執(zhí)行完成 并返回值。 ( 4) pthread_t pthread_self(void) 返回:本線(xiàn)程 ID Xilkernel功能 線(xiàn)程管理 ( 5) int pthread_detach(pthread_t target) 返回: 0成功, ESRCH線(xiàn)程未創(chuàng)建回收線(xiàn)程存儲(chǔ)資源, 但并不會(huì)結(jié)束線(xiàn)程 ( 6) int pthread_equal(pthread_t t1, pthread_t t2) 參數(shù): t1和 t2兩個(gè)待比較線(xiàn)程的 ID 返回: 1兩線(xiàn)程是同一線(xiàn)程, 0其它情況 Xilkernel功能 線(xiàn)程管理 ( 7) int pthread_getschedparam(pthread_t thread, int *policy, struct sched_param *param) 參數(shù): thread線(xiàn)程 ID, policy全局調(diào)度策略指針, param 調(diào)度策略結(jié)構(gòu)體地址 返回: 0成功, ESRCH線(xiàn)程無(wú)效, EINVAL調(diào)度參數(shù)無(wú) 效 函數(shù)返回個(gè)別線(xiàn)程的調(diào)度策略。 ( 8) int pthread_setschedparam(pthread_t thread, int policy, const struct sched_param *param) 參數(shù): thread線(xiàn)程 ID, policy忽略, param調(diào)度策略結(jié)構(gòu) 體地址 返回: 0成功, ESRCH線(xiàn)程無(wú)效, EINVAL調(diào)度參數(shù)無(wú) 效 函數(shù)設(shè)置個(gè)別線(xiàn)程的調(diào)度策略。 Xilkernel功能 線(xiàn)程管理 ( 9) int pthread_attr_init(pthread_attr_t* attr) 參數(shù):線(xiàn)程屬性指針 返回: 0成功, 1未成功, EINVAL屬性無(wú)效 按照默認(rèn)設(shè)置初始化線(xiàn)程屬性對(duì)象 attr ( 10) int pthread_attr_destroy (pthread_attr_t* attr) 參數(shù):線(xiàn)程屬性指針 返回: 0成功, EINVAL錯(cuò)誤 函數(shù)銷(xiāo)毀線(xiàn)程指針對(duì)象,設(shè)置成未定義值。 Xilkernel功能 線(xiàn)程管理 ( 11) int pthread_attr_setdetachstate(pthread_attr_t* attr, int dstate) 參數(shù): attr屬性結(jié)構(gòu)體, dstate要設(shè)置的狀態(tài) 返回: 0成功, EINVAL無(wú)效參數(shù) 設(shè)置線(xiàn)程狀態(tài) ( 12) int pthread_attr_getdetachstate(pthread_attr_t* attr, int *dstate) 參數(shù): attr屬性結(jié)構(gòu)體, dstate獲取的狀態(tài)地址 返回: 0成功, EINVAL無(wú)效參數(shù) 獲取線(xiàn)程狀態(tài): PTHREAD_CREATE_DETACHED 或者 PTHREAD_CREATE_JOINABLE Xilkernel功能 線(xiàn)程管理 ( 13) int pthread_attr_setschedparam(pthread_attr_t* attr, struct sched_param *schedpar) 參數(shù): attr屬性結(jié)構(gòu)體, schedpar調(diào)度參數(shù)存儲(chǔ)地址 返回: 0成功, EINVAL無(wú)效參數(shù), ENOTSUP無(wú)效調(diào) 度參數(shù) 設(shè)置線(xiàn)程優(yōu)先級(jí), sched_param在 ( 14) int pthread_attr_getschedparam(pthread_attr_t* attr, struct sched_param* schedpar) 參數(shù): attr屬性結(jié)構(gòu)體, schedpar線(xiàn)程調(diào)度參數(shù)指針 返回: 0成功, EINVAL無(wú)效參數(shù) 獲取線(xiàn)程優(yōu)先級(jí)。 Xilkernel功能 線(xiàn)程管理 ( 15) int pthread_attr_setstack(const pthread_attr_t *attr,_ void *stackaddr, size_t stacksize) 參數(shù): attr屬性結(jié)構(gòu)體, stacksize堆棧地址 返回: 0成功, EINVAL堆棧設(shè)置不當(dāng) 設(shè)置線(xiàn)程堆棧 ( 16) int pthread_attr_getstack(const pthread_attr_t *attr, void **stackaddr, size_t *stacksize) 參數(shù): attr屬性結(jié)構(gòu)體, stackaddr堆棧地址指針, stacksize堆??臻g以字節(jié)為單位 返回: 0成功, EINVAL無(wú)效屬性 獲取線(xiàn)程的堆棧信息 Xilkernel功能 線(xiàn)程管理 ( 17) pid_t get_currentPID(void) 返回:當(dāng)前正在運(yùn)行的線(xiàn)程或操作的 ID ( 18) int kill(pid_tpid) 參數(shù): pid線(xiàn)程或操作 ID
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1