UDP協議和併發程式設計

2022-08-14 01:24:15 字數 2364 閱讀 8049

稱之為資料報協議。

特點:1) 不需要建立鏈結。

2) 不需要知道對方是否收到。

3) 資料不安全

4) 傳輸速度快

5)能支援併發

6) 不會粘包

7) 無需先啟動服務端再啟動客戶端

優點:- 傳輸速度快

- 能支援併發

- 不會粘包

缺點:- 資料不安全, 容易丟失

應用場景: 早期的qq聊天室。

- tcp協議(稱為流式協議):

優點:- 資料安全

缺點:- 傳輸速度慢

- 粘包

1) 作業系統發展史

- 1.1 穿孔卡片

- 讀取資料速度特別慢

- cpu的利用率極低

- 單使用者(乙份**)使用

- 1.2 批處理

- 讀取資料速度特別慢

- cpu的利用率極低

- 聯機(多份**)使用

- 效率還是很低

- 1.3 離線批處理(現代作業系統的設計原理)

- 讀取資料速度提高

- cpu的利用率提高

2) 多道技術 (基於單核背景下產生的):

- 單道: 一條道走到黑 ----> 序列

- 比如: a,b需要使用cpu,a先使用,b等待a使用完畢後,b才能使用cpu。

- 多道: 

- 比如: a,b需要使用cpu,a先使用,b等待a,直到a進入「io或執行時間過長」

a會(切換 + 儲存狀態),然後b可以使用cpu,待b執行遇到 「io或執行時間過長」

再將cpu執行許可權交給a,直到兩個程式結束。

- 空間上的復用

多個程式使用乙個cpu。

- 時間上的復用

切換 + 儲存狀態

1) 當執行程式遇到io時,作業系統會將cpu的執行許可權剝奪。

優點:- cpu的執行效率提高

2) 當執行程式執行時間過長時,作業系統會將cpu的執行許可權剝奪。

缺點:- 程式的執行效率低

- 併發與並行:

- 併發:

在單核(乙個cpu)情況下,當執行兩個a,b程式時,a先執行,當a遇到io時,b開始爭搶cpu的執行許可權,再讓b執行,他們看起像同時執行。

- 並行:

在多核(多個cpu)的情況下,當執行兩個a,b程式時,a與b同時執行。他們是真正意義上的同時執行。

面試題: 在單核情況下能否實現並行? 不行

3) 程序

1.什麼是程序?

程序是乙個資源單位。

2.程序與程式:

- 程式: 一對**檔案。

- 程序: 執行**的過程,稱之為程序。

3 程序排程: (了解)

1) 先來先服務排程演算法(了解)

- 比如程式 a,b,若a先來,則讓a先服務,待a服務完畢後,b再服務。

- 缺點: 執行效率低。

2) 短作業優先排程演算法(了解)

- 執行時間越短,則先先排程。

缺點:導致執行時間長的程式,需要等待所有時間短的程式執行完畢後,才能執行。

現代作業系統的程序排程演算法: 時間片輪轉法 + 多級反饋佇列 (知道)

3) 時間片輪轉法

- 比如同時有10個程式需要執行,作業系統會給你10秒,然後時間片輪轉法會將10秒分成10等分。

4) 多級反饋佇列:

1級佇列: 優先順序最高,先執行次佇列中程式。

2級佇列: 優先順序以此類推

3級佇列:

4) 同步與非同步

同步與非同步 指的是 「提交任務的方式」。

同步(序列):

兩個a,b程式都要提交並執行,假如a先提交執行,b必須等a執行完畢後,才能提交任務。

非同步(併發):

兩個a,b程式都要提交並執行,假如a先提交並執行,b無需等a執行完畢,就可以直接提交任務。

4) 阻塞與非阻塞

- 阻塞(等待):

- 凡是遇到io都會阻塞。

- io:

input()

output()

time.sleep(3)

檔案的讀寫

資料的傳輸

- 非阻塞 (不等待) :

- 除了io都是非阻塞 (比如: 從1+1開始計算到100萬)

5) 程序的三種狀態

- 就緒態:

- 同步與非同步

- 執行態: 程式的執行時間過長 ----> 將程式返回給就緒態。

- 非阻塞

- 阻塞態:

- 遇到io

面試題: 阻塞與同步是一樣的嗎?非阻塞與非同步是一樣的嗎?

- 同步與非同步: 提交任務的方式

- 阻塞與非阻塞: 程序的狀態。

- 非同步非阻塞: ----> cpu的利用率最大化!

網路程式設計 TCP IP協議和UDP協議

tcp是面向連線的通訊協議,通過三次握手建立連線,通訊完成時要拆除連線,由於tcp是面向連線的所以只能用於端到端的通訊。tcp提供的是一種可靠的資料流服務,採用 帶重傳的肯定確認 技術來實現傳輸的可靠性。tcp還採用一種稱為 滑動視窗 的方式進行流量控制,所謂視窗實際表示接收能力,用以限制傳送方的傳...

網路程式設計之UDP協議和TCP協議

udp協議和tcp協議 udp協議 使用者資料報協議 需要乙個傳送端和接收端 傳送端 只負責傳送資料,不管接收端是否接收到資料.在傳輸資料的過程中是允許資料報丟失的 特點 1.需要乙個傳送端和接收端 2.傳送端只負責傳送資料,不管接收端是否接收到資料 3.在傳輸資料的過程中是允許資料報丟失的 tcp...

TCP協議和UDP協議

前面我們學習了網路的7層模型,其中談到傳輸層的相關協議有tcp transmission control protocol 傳輸控制協議 和udp user datagram protocol 使用者資料報協議 一 tcp協議 tcp transmission control protocol 是一...