作業系統知識點

2021-09-12 21:37:15 字數 1698 閱讀 4103

tcp的擁塞控制由4個核心演算法組成。

https:把資料進行非對稱加密,然後客戶端從第三方伺服器獲取證書(加密後的公鑰)

http完整請求:建立tcp連線,傳送http命令請求頭,web伺服器應答,關閉tcp連線

tcp:

三次握手:

缺陷:洪氾攻擊

解決辦法:

四次揮手:

長連線:

短連線:

程序:執行緒:

併發和並行:

程序通訊:

執行緒同步:

執行緒鎖:

讀寫鎖,可以多個執行緒共同讀,只有乙個執行緒可以寫。

自旋鎖,獲取不到鎖就迴圈檢視鎖是否釋放。互斥鎖獲取不到會睡眠。

樂觀鎖悲觀鎖。

死鎖:預防死鎖

破壞上述條件

搶占資源,停止死鎖程序。

銀行家演算法,實時統計程序和資源,只有資源夠才分配。

訊息佇列:

rpc:

rpc架構:

rpc過程:

分布式系統保證操作的時序性、原子性,操作互斥。

分布式鎖實現對共享資源的搶占。借鑑了多執行緒和多程序的互斥鎖。

分布式鎖實現:

微服務需求:

會話(session)跟蹤是web程式中常用的技術,用來跟蹤使用者的整個會話。常用的會話跟蹤技術是cookie與session。cookie通過在客戶端記錄資訊確定使用者身份,session通過在伺服器端記錄資訊確定使用者身份。

cookie技術是客戶端的解決方案,cookie就是由伺服器發給客戶端的特殊資訊,而這些資訊以文字檔案的方式存放在客戶端,然後客戶端每次向伺服器傳送請求的時候都會帶上這些特殊的資訊。

cookie就是這樣的一種機制。它可以彌補http協議無狀態的不足。在session出現之前,基本上所有的**都採用cookie來跟蹤會話。

需要瀏覽器支援並開啟。

session是另一種記錄客戶狀態的機制,不同的是cookie儲存在客戶端瀏覽器中,而session儲存在伺服器上。客戶端瀏覽器訪問伺服器的時候,伺服器把客戶端資訊以某種形式記錄在伺服器上。這就是session。客戶端瀏覽器再次訪問時只需要從該session中查詢該客戶的狀態就可以了。

雖然session儲存在伺服器,對客戶端是透明的,它的正常執行仍然需要客戶端瀏覽器的支援。這是因為session需要使用cookie作為識別標誌。http協議是無狀態的,session不能依據http連線來判斷是否為同一客戶,因此伺服器向客戶端瀏覽器傳送乙個名為jsessionid的cookie,它的值為該session的id(也就是httpsession.getid()的返回值)。session依據該cookie來識別是否為同一使用者。

url位址重寫是對客戶端不支援cookie的解決方案。url位址重寫的原理是將該使用者session的id資訊重寫到url位址中。伺服器能夠解析重寫後的url獲取session的id。這樣即使客戶端不支援cookie,也可以使用session來記錄使用者狀態。

session_id放在header裡

cookie資料存放在客戶的瀏覽器上,session資料放在伺服器上;

cookie不是很安全,別人可以分析存放在本地的cookie並進行cookie欺騙,考慮到安全應當使用session;

session會在一定時間內儲存在伺服器上。當訪問增多,會比較占用你伺服器的效能。考慮到減輕伺服器效能方面,應當使用cookie;

單個cookie在客戶端的限制是4k,就是說乙個站點在客戶端存放的cookie不能超過4k;

作業系統知識點

協程 coroutines 是一種比執行緒更加輕量級的存在,正如乙個程序可以擁有多個執行緒一樣,乙個執行緒可以擁有多個協程。協程不是被作業系統核心所管理的,而是完全由程式所控制,也就是在使用者態執行。這樣帶來的好處是效能大幅度的提公升,因為不會像執行緒切換那樣消耗資源。程序與執行緒見 分頁與分段 分...

作業系統知識點

計算機系統資源分為硬體資源和軟體資源 按資訊交換方式和加接裝置的特性種類不同,通道分為 位元組多路通道 選擇通道 陣列多路通道 兩個交往的併發程序可能出現與時間有關的錯誤,這些錯誤表現為結果不唯一和永遠等待兩種情況 unix檔案可以分成普通檔案 目錄檔案和特殊檔案 從資源管理的觀點上來看,os的功能...

作業系統知識點總結

共享 系統中的資源可以被記憶體中多個併發執行的進執行緒共同使用 虛擬 通過時分復用 如分時系統 以及空分復用 如虛擬記憶體 技術實現把乙個物理實體虛擬為多個 非同步 系統中的程序是以走走停停的方式執行的,且以一種不可預知的速度推進 儲存器管理 或者記憶體管理 記憶體分配,記憶體保護,位址對映,記憶體...