Linux学习之系统编程篇:程序、进程、并发、并行
一、程序和進(jìn)程
(1)程序:
本質(zhì):二進(jìn)制文件,可以運(yùn)行,但還沒(méi)有運(yùn)行,占用磁盤(pán)空間,不占用 CPU 和內(nèi)存(系統(tǒng)資源)。
(2)進(jìn)程:
本質(zhì):正在執(zhí)行的程序,占用 CPU 和內(nèi)存等更多的系統(tǒng)資源,一般不占用磁盤(pán)空間(I/O 操作可能會(huì)占用磁盤(pán)空間)。
站在程序員的角度:進(jìn)程是一系列指令的執(zhí)行過(guò)程。
站在操作系統(tǒng)的角度:進(jìn)程是分配系統(tǒng)的資源的最小單位.
(3)關(guān)系:
一個(gè)程序可以對(duì)應(yīng)多個(gè)進(jìn)程,但一個(gè)進(jìn)程只能對(duì)應(yīng)一個(gè)程序。
二、并發(fā)和并行
1、并發(fā)
(1)CPU 將 1s 分成若干個(gè)時(shí)間碎片,每個(gè)時(shí)間碎片 CPU 只能執(zhí)行一個(gè)進(jìn)程的一小部分。
(2)以時(shí)間碎片為單位,若干個(gè)進(jìn)程循環(huán)占有 CPU,并執(zhí)行對(duì)應(yīng)進(jìn)程的一小部分。
(3)經(jīng)過(guò) n 次循環(huán)占有 CPU,每個(gè)進(jìn)程才能執(zhí)行完畢。
總的來(lái)說(shuō)就是多個(gè)進(jìn)程以時(shí)間碎片為單位,循環(huán)占有 CPU,以完成同時(shí)執(zhí)行的現(xiàn)象稱(chēng)為并發(fā)。
注意:CPU 處理是納秒級(jí),肉眼識(shí)別是毫秒級(jí)的,雖然每個(gè)進(jìn)程的執(zhí)行是間斷的,但肉眼感官上是連續(xù)的。
2、并行:
并發(fā)發(fā)生在單核(只能有一個(gè)并發(fā)鏈)。
并行發(fā)生在多核(可以有多個(gè)并發(fā)鏈)。
總結(jié)
以上是生活随笔為你收集整理的Linux学习之系统编程篇:程序、进程、并发、并行的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Linux学习:文件描述符相关函数
- 下一篇: Linux学习之系统编程篇:MMU(Me