正在CPU上运行的进程_进程的概念,系统资源分配的单元
程序:所謂的程序,是硬盤上的一個可執(zhí)行文件,是靜態(tài)的。
進(jìn)程:一個程序運(yùn)行起來后,代碼加上用到的資源稱之為進(jìn)程,它是操作系統(tǒng)分配資源的基本單元。
一個程序,對應(yīng)進(jìn)程可以有多個。
多任務(wù)不僅可以通過線程來實(shí)現(xiàn),進(jìn)程也是可以的。
進(jìn)程的狀態(tài)
實(shí)際工作中,任務(wù)數(shù)往往大于 cpu 的核數(shù),即一定有一些任務(wù)正在執(zhí)行,而另外一些任務(wù)在等待 cpu 進(jìn)行執(zhí)行,因此導(dǎo)致了進(jìn)程有不同的狀態(tài)。
- 就緒狀態(tài):運(yùn)行的條件都已經(jīng)滿足,正在等在cpu執(zhí)行。
- 執(zhí)行狀態(tài):cpu正在執(zhí)行其功能。
- 等待狀態(tài):等待某些條件滿足,例如一個程序sleep了,此時就處于等待態(tài)。
進(jìn)程和線程的比較
- 進(jìn)程,能夠完成多任務(wù),比如在一臺電腦上能夠同時運(yùn)行多個QQ。
- 線程,能夠完成多任務(wù),比如一個QQ中的多個聊天窗口。
定義的不同
進(jìn)程是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個獨(dú)立單位。
線程是進(jìn)程的一個實(shí)體,是 CPU 調(diào)度和分派的基本單位,它是比進(jìn)程更小的能獨(dú)立運(yùn)行的基本單位。
線程自己基本上不擁有系統(tǒng)資源,只擁有一點(diǎn)在運(yùn)行中必不可少的資源(如程序計數(shù)器,一組寄存器和棧),但是它可與同屬一個進(jìn)程的其他的線程共享進(jìn)程所擁有的全部資源。
區(qū)別
一個程序至少有一個進(jìn)程,一個進(jìn)程至少有一個線程。
線程的劃分尺度小于進(jìn)程(資源比進(jìn)程少),使得多線程程序的并發(fā)性高。
進(jìn)程在執(zhí)行過程中擁有獨(dú)立的內(nèi)存單元,而多個線程共享內(nèi)存,從而極大地提高了程序的運(yùn)行效率。
線程不能夠獨(dú)立執(zhí)行,必須依存在進(jìn)程中,進(jìn)程可以理解為工廠中的一條流水線,而其中的線程就是這個流水線上的工人。
優(yōu)缺點(diǎn)
線程和進(jìn)程在使用上各有優(yōu)缺點(diǎn):線程執(zhí)行開銷小,但不利于資源的管理和保護(hù);而進(jìn)程正相反。
總結(jié)
以上是生活随笔為你收集整理的正在CPU上运行的进程_进程的概念,系统资源分配的单元的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: filesaver.js 保存文件路径_
- 下一篇: java信息管理系统总结_java实现科