第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

系統(tǒng)調(diào)用和C語言庫函數(shù)

系統(tǒng)調(diào)用和C語言庫函數(shù)

一只甜甜圈 2018-11-26 15:13:59
最近學(xué)習(xí)操作系統(tǒng),有些東西不是很明白。c語言的庫函數(shù)有些是利用系統(tǒng)調(diào)用實(shí)現(xiàn)的,有些不是.我就想問下不是利用系統(tǒng)調(diào)用的那部分,在執(zhí)行時(shí)硬件是怎么知道的呢?最后語言代碼被編譯成二進(jìn)制,執(zhí)行時(shí)仍然是由寄存器硬件什么執(zhí)行的吧,既然沒利用系統(tǒng)調(diào)用,alu這些東西是怎么懂這些庫函數(shù)要求的操作是干嘛的啊?不是說系統(tǒng)調(diào)用是軟硬件的接口嗎?還有系統(tǒng)調(diào)用和驅(qū)動(dòng)程序的關(guān)系是什么?
查看完整描述

2 回答

?
慕標(biāo)5832272

TA貢獻(xiàn)1966條經(jīng)驗(yàn) 獲得超4個(gè)贊

調(diào)用系統(tǒng)調(diào)用,代碼跳入內(nèi)核態(tài),可以執(zhí)行任何指令,包括 受保護(hù)的指令
在用戶態(tài),很多指令是受保護(hù)的,不能直接執(zhí)行,或者執(zhí)行會出錯(cuò)。
例如 286 以上的X86 系列及兼容CPU
IO指令,就是受保護(hù)的。
實(shí)際上,硬件之間是通過總線相連的,并通過,IO讀寫指令,內(nèi)存讀寫指令,DMA 方式,等等相互通訊。
程序代碼,被CPU取到,然后逐一執(zhí)行
你寫的代碼,加載到內(nèi)存后,操作系統(tǒng)用一個(gè)跳轉(zhuǎn)指令(call,jump,ret,iret 等等,都屬于跳轉(zhuǎn)類指令)
轉(zhuǎn)到你的代碼中執(zhí)行的

除非受到保護(hù)的指令,都是可以在用戶態(tài)執(zhí)行的,例如加法指令
數(shù)學(xué)庫
math.h,的函數(shù)
string.h
就大部分代碼都屬于,非保護(hù)指令

而 IO庫中的許多函數(shù)
例如
stdio.h
io.h 
中的很多函數(shù),都會調(diào)用系統(tǒng)調(diào)用的


查看完整回答
反對 回復(fù) 2018-11-30
?
料青山看我應(yīng)如是

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超8個(gè)贊

說說我的理解,C語言里的庫函數(shù)在編譯后都是生成的二進(jìn)制指令,就包含了對硬件的操作。
舉一個(gè)例子,“+”是對兩個(gè)數(shù)進(jìn)行操作,這兩個(gè)數(shù)既可能是數(shù)字,也可能是變量。如果是數(shù)字,在匯編語言中對于的就是立即數(shù),編譯成二進(jìn)制指令時(shí)直接利用無符號數(shù)加法指令就可以;而如果是變量的話,就會編譯成多條指令,首先是從內(nèi)存里讀取變量到寄存器,再在寄存器中進(jìn)行加法運(yùn)算,運(yùn)算完再保存到內(nèi)存中。


查看完整回答
反對 回復(fù) 2018-11-30
  • 2 回答
  • 0 關(guān)注
  • 1871 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號