1.空間上的複用 多個程序共用一套計算機硬件 2.時間上的複用 切換+保存狀態 1.當一個程序遇到IO操做 操做系統會剝奪該程序的cpu執行權限(提升了cpu的利用率 而且也不影響程序的執行效率) 2.當一個程序長時間佔用cpu 操做系統也會剝奪該程序的cpu執行權限(下降了程序的執行效率)
ps:如今的主機通常是多核,那麼每一個核都會利用多道技術。有4個cpu,運行於cpu1的某個程序遇到io阻塞,會等到io結束再從新調度,會被調度到4個cpu中的任意一個,具體由操做系統調度算法決定。算法
進程(Process)是系統進行資源分配和調度的基本單位
大白話解讀: 程序:一坨代碼 進程:狹義上講正在運行的程序
程序是指令和數據的有序集合,其自己沒有任何運行的含義,是一個靜態的概念。而進程是程序在處理機上的一次執行過程,它是一個動態的概念。併發
程序能夠做爲一種軟件資料長期存在,而進程是有必定生命期的。操作系統
程序是永久的,進程是暫時的。code
注意:同一個程序執行兩次,就會在操做系統中出現兩個進程,因此咱們能夠同時運行一個軟件,分別作不一樣的事情也不會混亂。接口