網編提升 進程階段

進程的基礎

​ 1.程序程序員

​ 一堆靜態的代碼文件編程

​ 2.進程windows

​ 一個正在運行的程序併發

​ 由操做系統操控調用交由cpu運行 ,被cpu運行函數

2.操做系統

​ 1。管理控制協調計算機中硬件與軟件的關係操作系統

​ 2。操做系統的做用?unix

​ 2.沒有操做系統:大家在開發軟件調試

​ 第一層。對硬件(cpu,內存,磁盤)協調,調用blog

​ 第二層 如何調用接口去編程

第一個做用:將一些對硬件操做的複雜醜陋的接口, 變成簡單美麗的接口,open函數

第二個做用:多個進程搶佔一個(cpu)資源時,操 做系統會將你的執行變得合理有序,雨露均沾(比較 快感覺不到)

阻塞:input read write sleep recv accept sendto recvfrom 。。。

操做系統的發展史

百萬級代碼 寫的系統

多道技術

最先出現的計算機:算盤

電子類的計算機發展史

第一代計算機1940~1955(手工操做----穿孔卡片

在大學裏出現了機房,想使用計算機必須預定

先鏈接調配各個硬件,1.5小時,真空管,而後在插上程序調試,效率低

優勢:我的獨享整個計算機資源

缺點;1.硬件條件插線,耗時

​ 2.全部人串行執行

第二代 1955~1965 磁帶存儲--批處理系統

優勢程序員不用親自對硬件進行插線操控,效率提升

能夠進行批量處理代碼

缺點:

1.程序員不能肚子使用計算機

2.你的全部程序仍是串行

第三代集成電路,多道程序系統(1955~1965)

1.集成電路:把所用的硬件變小,線路板

2.將兩套不一樣的生產線合併成一個生產線

​ 技術上的更新:多道技術,操做系統的理念

​ 空間上的複用

​ 將一個內存能夠同時加載多個進程

​ 時間上的複用

​ 實現將cpu在多個進程之間來回切換,而且保留狀態,在切回來還能保持原樣

幾乎全部的程序都會有io阻塞

同時加載到內存 3個任務,3個進程,每一個進程都有阻塞狀況,只要cpu運行一個進程時,遇到阻塞立馬會切換,長時間佔用cpu也會切換

提高效率,最大限度的使用cpu

若是是一個IO(阻塞)密集型進程,來回切換提高效率

若是在一個計算密集型,耗時來會切換下降效率

第三代計算機 普遍採用必須的保護硬件(程序之間的內存彼此隔離)以後,推進第三代計算機應用而生

每一個人佔用計算機的時間有限的

多人(少於10個)共同使用一個計算機主機

第四代計算機:至今

面向字:大型的科學計算機

面向字符:商用計算機

進程的理論(重點)

串行:全部的任務一個一個完成

併發:一個cpu完成多個任務,看起來是同時完成的

並行:多個cpu執行多個任務,真正的同時完成

阻塞:cpu遇到io就是阻塞

非阻塞:沒有IO叫非阻塞

程序:一堆靜態文件

一個正在執行的程序任務,一個進程

一個程序可否同時開啓多個進程?能夠

進程的建立(進程之間不容許通訊)?

一個子進程必須基於主進程

主進程是啓動子進程的

​ 一個主進程能夠開啓多個子進程。

unix:fork建立子進程

uninx(linux,mac):建立一個子進程會完徹底全複製一個主進程全部的資源,初始資源不變。

windows:操做系統調用CreateProcess處理進程的建立

windows:建立一個子進程,會copy主進程全部的資源,可是會改變一些資源

​ 系統是最主進程

進程的狀態

運行程序運行到io進行阻塞 程序進入阻塞狀態

阻塞結束進入就緒態 須要在就緒態等待開始運行 等程序遇到io阻塞再進行運行

相關文章
相關標籤/搜索