了解 Linux內核架構 (2)


進程, 進程切換, 調度

傳統上, UNIX操作系統下運行的應用程序,服務器及其他程序都稱為進程(processes)

每個進程都在CPU的虛擬內存中分配地址空間

各進程的地址空間是完全獨立的, 因此進程並不會意識到彼此的存在

從進程的角度來看, 它會認為自己是系統中唯一的進程

如果進程想要彼此通信(例如交換數據), 那麼必須使用特定的內核機制

由於Linux是多任務系統,它(看起來)支持並發執行的若干進程, 系統中同時真正在運行的進程數目最多不超過CPU數目,
因此內核會按照短的時間間隔在不同的進程之間切換

1)內核借助CPU的幫助, 負責進程切換的技術細節, 通過在撤銷進程的CPU資源之前,保存進程所有與狀態相關的要素,
並將進程置於空閒狀態

在重新激活進程時, 則將保存的狀態原樣恢復
進程之間的切換稱之為進程切換(task switching)

2)內核還必須確定如何在現存進程之間共享CPU時間, 確定哪個進程運行多長時間的過程稱調度(scheduling)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值