日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux进程源码分析,Linux内核源代码分析——口述程序猿如何意淫进程(一)

發布時間:2024/4/14 linux 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux进程源码分析,Linux内核源代码分析——口述程序猿如何意淫进程(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Jack:hi,淫龍,有空嗎?我們來討論一下Linux的進程吧。

我:沒空。不要煩我,最近正在郁悶。

Jack:郁悶啥呀?

我:最近大學城通了輕軌,房價漲得厲害,罵了隔壁。

Jack:不要郁悶了,來研究Linux內核吧。

我:你想知道什么呢?

Jack:我想知道在Linux里,進程到底是什么。

我:簡單的說,進程是程序員意淫出來的bitch。

Jack:不是太明白是什么意思。在大學的操作系統課程里,進程的解釋是“計算機中正在運行的程序實例”。

我:這種解釋既膚淺又了然無趣。我也可以給進程下定義——Unix里的進程是可調度的任務的單位之一。你能明白這是什么意思嗎?

Jack:所有的文字我都認識。不過,我仍然不是太明白進程是什么東西。

我:第一臺計算機是沒有操作系統的,直到上世紀60年代中期,IBM搞出了OS/360這樣的操作系統。然后才有了進程的概念。

Jack:說重點吧。

我:恩。很多人都說之所以會有進程是計算機設計人員覺得計算機資源(CPU)利用率不高,不過,我覺得應該是“投資方”為了節約成本才搞出來的。

Jack:草,你說重點。

我:重點就是,有了進程之后,所有的“任務”(Task),可以一股腦丟進去,然后CPU根據某種策略執行他們。

Jack:我問的是進程,你講任務(Task)搞JJ啊。

我:Jack不要急嘛。這里有一個誤解,任務(Task)與進程(Process)的關系。對于CPU而言,進程是不存在。CPU只關心當前的CS、DS、IP等寄存器指向哪里。如果你感興趣,可以參考下《Intel Architecture Software Developer’s Manual》。重復一下,進程是程序猿意淫出來的產物。

Jack:那你接下來是要口述程序猿如何意淫進程了?

我:理解進程必須分為兩個部分。一部分是關于CPU的,另外一部分是C代碼實現。Jack,如果你是一個操作系統設計工程師,在CPU層面你會考慮些什么東西呢?

Jack:操作系統首先要有進程,所以在CPU上要有“任務”(Task)的概念。任務是進程的原始雛形,如果沒有任務,進程就無從談起了。

我:大概是這個意思。不過,進程并不是操作系統的必要成分。想想早期的DOS系統吧。在386CPU里,有TR這個寄存器,這個寄存器描述了當前正在執行的任務的各種屬性。最重要的是當前任務(Task)的代碼的segment描述符(代碼段、數據段、堆棧段)。當A任務(Task)執行JMP指令跳轉到B任務的時候,B任務就running了。

Jack:明白了。在沒有操作系統的時候,CPU可以采用這種方式實現多任務(而不是一個巨大無比的單任務)。

我:是的。這是最簡單的多任務,但是還不能進行復雜的調度、搶占、讓出等智能性操作。這個時候的系統還是一個小孩子,還不具備高度的“智力”。

Jack:那怎么樣才能具備“高度的智力”呢?

我:午飯時間到了,我先去吃地溝油。咱回頭再聊。

總結

以上是生活随笔為你收集整理的linux进程源码分析,Linux内核源代码分析——口述程序猿如何意淫进程(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。