欧美1区2区3区激情无套,两个女人互添下身视频在线观看,久久av无码精品人妻系列,久久精品噜噜噜成人,末发育娇小性色xxxx

牛客852940586號 level
獲贊
114
粉絲
9
關(guān)注
92
看過 TA
502
門頭溝學(xué)院
2025
運(yùn)維開發(fā)工程師
IP屬地:上海
分享校招八股面
私信
關(guān)注
瘋?cè)科妫?/span>最快到家要到十點(diǎn)鐘(收拾東西,趕路),在家躺平放空+洗澡到十一點(diǎn),十一點(diǎn)以后才是個人真正的休息時間,吃吃夜宵,看看電影,刷刷手機(jī)到十二點(diǎn)甚至一點(diǎn),然后睡覺,第二天八點(diǎn)起來,繼續(xù)循環(huán)。 雙休日終于有時間休息了,因?yàn)椴辉敢鈩樱徽J(rèn)識人,不想出門,窩在住的地方,隨便過過一天就沒了,第二天繼續(xù)重復(fù)。有的時候會想學(xué)習(xí)學(xué)習(xí),偶爾提升提升也就是其中一個下午的時間,渾渾噩噩就過去了。
0 點(diǎn)贊 評論 收藏
分享
河和靜子:牛頭不對馬嘴,建議加深理解 有一個進(jìn)程,首先通過fork和exec創(chuàng)建,創(chuàng)建好后他被放入ready queue等待調(diào)度。此時進(jìn)程狀態(tài)為就緒。 當(dāng)時鐘中斷時,os會更新正在運(yùn)行的進(jìn)程的時間片,并根據(jù)不同的算法選擇下一個線程,并完成上下文切換。被調(diào)度下去的線程的寄存器內(nèi)容被保存在其對應(yīng)的線程的內(nèi)核線程的棧中。 此時被調(diào)度到的那個線程就從就緒 變成了 運(yùn)行。然后被調(diào)度的線程請求了一次IO操作,他就先發(fā)起系統(tǒng)調(diào)用,通過將系統(tǒng)調(diào)用號以及參數(shù)壓入棧中再觸發(fā)環(huán)境異常進(jìn)行。CPU捕捉到異常后將其 IP寄存器 切換到中斷向量表中對應(yīng)中斷的處理函數(shù)處同時進(jìn)入內(nèi)核態(tài)。此處會進(jìn)行一次上下文切換。線程還是當(dāng)時那個線程,不過那個線程不再是用戶態(tài)了而是內(nèi)核態(tài)。os發(fā)現(xiàn)線程請求的是io操作,就把他放到對應(yīng)io操作的waiting queue中,然后進(jìn)入do_timer函數(shù),更新時間片、保存上下文、調(diào)度下一個進(jìn)程。此時原來的線程還是內(nèi)核態(tài)。但是對外表現(xiàn)為阻塞。 等IO操作到達(dá)后,CPU收到IO 中斷同樣的流程切換到中斷處理函數(shù)以及內(nèi)核態(tài)。此時os會查看是哪種io操作,并通知對應(yīng)io操作的waiting queue,從waiting queue中找到對應(yīng)的線程,假如說正好是你剛剛那個線程,那你的剛剛的那個線程就會拿到io操作的數(shù)據(jù),接著os將其從waiting queue取出來放到ready queue,等待調(diào)度。 等調(diào)度到這個線程后,他已經(jīng)拿到了IO數(shù)據(jù),將會走退出系統(tǒng)調(diào)用的流程。注意此時還是內(nèi)核態(tài)。他會先回復(fù)上下文,同時設(shè)置CPU運(yùn)行模式,然后返回到用戶態(tài),一次系統(tǒng)調(diào)用就完成了。 不過系統(tǒng)調(diào)用都是glibc給你封裝好的,所以他會走glibc對應(yīng)的函數(shù)的返回流程,你的線程調(diào)用的那個IO操作函數(shù)就拿到返回?cái)?shù)據(jù)了。此時還是運(yùn)行中。 接著運(yùn)行者發(fā)現(xiàn)ram不夠用了,此時會吧一些重要級低的線程掛起。掛起就是說把就緒等待調(diào)度的線程(或者是運(yùn)行中的線程強(qiáng)制停止放入ready queue中)從內(nèi)存中清除,放到磁盤中。此時進(jìn)程就是掛起狀態(tài),既不在任何IO的waiting queue也不再任何CPU的ready queue中。 等待和阻塞是一樣的。 top里面的那三個是另外一個含義了。 僵尸進(jìn)程:父進(jìn)程通過fork創(chuàng)建子進(jìn)程之后,當(dāng)子進(jìn)程結(jié)束后,會釋放自己的資源。但是有一個資源是他釋放不了的,就是pcb表。剛剛說的上下文就是存在pcb表中的。pcb表存放著線程的運(yùn)行狀態(tài),比如rip rsp 以及rax rsi等等重要寄存器的值。還有進(jìn)程號 等等一大堆核心資源。os通過pcb表管理著一個進(jìn)程。子進(jìn)程結(jié)束后,會發(fā)送一個信號給父進(jìn)程,通知子進(jìn)程結(jié)束,然后父進(jìn)程接受這個信號后就會回收子進(jìn)程pcb表。如果你的父進(jìn)程不去處理這個信號,那子進(jìn)程就不會被回收,就是僵尸進(jìn)程。不過如果父進(jìn)程此時掛了,拿他就是孤兒進(jìn)程了,那么這個子進(jìn)程會歸pid=1的init進(jìn)程(系統(tǒng)啟動進(jìn)程pid=0,它創(chuàng)建的第一個進(jìn)程就是pid=1的init進(jìn)程)(linux 6.7貌似更新了,單獨(dú)拿了一個進(jìn)程出來處理孤兒進(jìn)程,然后pid隨機(jī)) 可中斷睡眠:進(jìn)程在waiting queue中就是睡眠。不可中斷睡眠和可中斷睡眠都是睡眠狀態(tài)(又名阻塞狀態(tài),等待狀態(tài))。 區(qū)別在于這個waiting queue的歸屬。waiting queue由動作歸屬和queue組成,有的動作是可以接收信號從而中斷的,有的是不可以的。 舉個例子,一個程序,你輸入a 他輸出a+1,那么他起來后就會進(jìn)入等待鍵盤輸入的waiting queue中。但是此時你可以ctrl + C給他發(fā)一個終止信號,他是可以接受到這個信號然后終止的。(你的ctrl + C 被shell捕捉到,shell就給這個程序的進(jìn)程發(fā)了一個single。你在shell中打開一個進(jìn)程,本質(zhì)上是shell先fork自己創(chuàng)建子進(jìn)程,然后通過exec加載你打開的進(jìn)程的elf文件,所以兩者是親緣進(jìn)程,可以發(fā)信號和pipe。你之所以能看到那個進(jìn)程的輸出,也是因?yàn)樗ㄟ^pipe把輸出給到shell,shell再呈現(xiàn)給你)。 還有一種IO操作,比如你發(fā)了一個磁盤IO讀請求,然后等待響應(yīng)。這個時候你就會在這個磁盤IO的waiting queue中。沒收到響應(yīng)的話你盡管ctrl+C,進(jìn)程也不會退出。因?yàn)檫@個操作是不可中斷的
0 點(diǎn)贊 評論 收藏
分享

創(chuàng)作者周榜

更多
關(guān)注他的用戶也關(guān)注了:
??途W(wǎng)
??推髽I(yè)服務(wù)