亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

在線等,挺急的!Linux進程和線程任務調度是如何的感激不盡

在線等,挺急的!Linux進程和線程任務調度是如何的感激不盡

滄海一幻覺 2019-10-17 18:44:10
看了好久的Linux都沒搞懂這個。。。各位幫幫忙在Linux內核態里面只有task的概念,一個包裝task_struct的node結構的紅黑樹,那么linux如何調度進程、線程的呢?是進程和線程都有task_struct結構;還是進程才有task_struct,說調度進程其實是調度進程的主線程,如果是創建的線程可能是復制的task_struct的結構。進程是無法運行的,是進程中的主線程才能運行,是這樣的么?就相當于進程的創建時會創建一個主線程。如果是這樣的,那么可以說linux的調度其實就是調度線程了?
查看完整描述

2 回答

?
慕田峪4524236

TA貢獻1875條經驗 獲得超5個贊

1.是進程和線程都有task_struct結構;還是進程才有task_struct,說調度進程其實是調度進程的主線程,如果是創建的線程可能是復制的task_struct的結構。
task_struct對應的是線程,內核調度以task_struct為單位。task_struct有字段記錄線程的虛擬地址空間。進程和線程是包含的關系。多線程程序中,這些線程屬于同一個進程,從task_struct的角度,它們的虛擬地址空間相同而已.
進程是無法運行的,是進程中的主線程才能運行,是這樣的么?就相當于進程的創建時會創建一個主線程。如果是這樣的,那么可以說linux的調度其實就是調度線程了?
如上一個問題,內核以task_struct作為調度單位。進程創建時實際上也是創建一個線程,也就是一個task_struct,這個線程當然也就是作為該進程的主線程。
通俗點說,把線程比作人,進程就是一個家庭。內核調度是按人進行的。
                            
查看完整回答
反對 回復 2019-10-17
  • 2 回答
  • 0 關注
  • 224 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號