前言
計算機網路、計算機作業系統這兩個“兄弟”是所有開發崗位都需要“結拜”的,不管你是 Java、C++還是測驗,對于后端開發的童鞋來說,計算機網路的重要性不亞于語言基礎,畢竟平時開發經常會和網路打交道,比如:抓個包等等,所以對這一塊知識點的準備還是要抱著敬畏之心,不要放過任何一個漏網之題,下面來看看華為工程師分享的計算機網路與作業系統吧:

作業系統概述

注:本章內容較長,請大家耐心看到最后,絕對有識訓,文末后這兩份《計算機作業系統》與《計算機網路協議》PDF的獲取方式,如果這篇文章對大家有幫助的話,也別忘記了,一鍵三連哦,你的支持就是我最大的創作鼓勵,
作業系統
現代計算機系統由一個或多個處理器、主存、列印機、鍵盤、滑鼠、顯示幕、網路介面以及各種輸入/輸出設備構成,
計算機硬體簡介
作業系統與運行作業系統的內核硬體關系密切,作業系統擴展了計算機指令集并管理計算機的資源,因此,作業系統因此必須足夠了解硬體的運行,這里我們先簡要介紹一下現代計算機中的計算機硬體,
行程和執行緒

行程.
作業系統中最核心的概念就是行程,行程是對正在運行中的程式的一個抽象,作業系統的其他所有內容都是圍繞著行程展開的,行程是作業系統提供的最古老也是最重要的概念之一,即使可以使用的CPU只有一個,它們也支持(偽) 并發操作,它們會將一個單獨的CPU抽象為多個虛擬機的CPU,可以說:沒有行程的抽象,現代作業系統將不復存在,

行程模型
在行程模型中,所有計算機上運行的軟體,通常也包括作業系統,被組織為若干順序行程簡稱為行程, 一個行程就是一個正在執行的程式的實體,行程也包括程式計數器、暫存器和變數的當前值,從概念上來說,每個行程都有各自的虛擬CPU,但是實際情況是CPU會在各個行程之間進行來回切換,

執行緒
在傳統的作業系統中,每個行程都有一個地址空間和一個控制執行緒,事實上,這是大部分行程的定義,不過,在許多情況下,經常存在同一地址空間中運行多個控制執行緒的情形,這些執行緒就像是分離得行程,下面我們就著重探討一下什么是執行緒
多執行緒解決方案

調度
當一個計算機是多道程式設計系統時,會頻繁的有很多行程或者執行緒來同時競爭CPU時間片,當兩個或兩個以上的行程/執行緒處于就緒狀態時,就會發生這種情況,如果只有一個CPU可用,那么必須選擇接下來哪個行程/執行緒可以運行,作業系統中有一個叫做調度程式的角色存在,它就是做這件事兒的,該程式使用的演算法叫做調度演算法
盡管有一些不同,但許多適用于行程調度的處理方法同樣也適用于執行緒調度,當內核管理執行緒的時候,調度通常會以執行緒級別發生,很少或者根本不會考慮執行緒屬于哪個行程,下面我們會 首先專注于行程和執行緒的調度問題,然后會明確的介紹執行緒調度以及它產生的問題,
調度演算法的目標
為了設計調度演算法,有必要考慮一下什么是好的調度演算法,有一些目標取決于環境(批處理、 互動式或者實時)但大部分是適用于所有情況的,下面是一些需要考量的因素,我們會在下面一起討論,

記憶體

一種存盤器抽象:地址空間
把物理記憶體暴露給行程會有幾個主要的缺點:第-個問題是,如果用戶程式可以尋址記憶體的每個位元組,它們就可以很容易的破壞作業系統,從而使系統停止運行(除非使用 IBM 360那種lock-and-key模式或者特殊的硬體進行保護),即使在只有一個用戶行程運行的情況下,這個問題也存在,第二點是,這種模型想要運行多個程式是很困難的(如果只有一個CPU那就是順序執行),在個人計算機上,一般會打開很多應用程式,比如輸入法、電子郵件、瀏覽器,這些行程在不同時刻會有一個行程正在運行,其他應用程式可以通過滑鼠來喚醒,在系統中沒有物理記憶體的情況下很難實作,
頁表


軟體TLB管理
直到現在,我們假設每臺電腦都有可以被硬體識別的頁表,外加一個TLB,在這個設計中,TLB管理和處理TLB錯誤完全由硬體來完成,僅僅當頁面不在記憶體中時,才會發生作業系統的陷入,
在以前,我們上面的假設通常是正確的,但是,許多現代的RISC 機器,包括SPARC、MIPS 和HPPA,幾乎所有的頁面管理都是在軟體中完成的,

檔案系統

檔案命名
檔案是一種抽象機制,它提供了-種方式用來存盤資訊以及在后面進行讀取,可能任何- -種機制最重要的特性就是管理物件的命名方式,在創建一個檔案后, 它會給檔案一個命名, 當行程終止時,檔案會繼續存在,并且其他行程可以使用名稱訪問該檔案,
檔案命名規則對于不同的作業系統來說是不一樣的,但是所有現代作業系統都允許使用1 - 8個字母的字串作為合法檔案名,
某些檔案區分大小寫字母,而大多數則不區分,UNIX 屬于第一類;歷史悠久的MS-DOS 屬于第二類(順便說一句,盡管MS-DOS歷史悠久,但MS-DOS仍在嵌入式系統中非常廣泛地使用,因此它絕不是過時的) ;因此,UNIX 系統會有三種不同的命名檔案: maria 、Maria 、MARIA , 在MS-DOS,所有這些命名都屬于相同的檔案,


檔案型別
很多作業系統支持多種檔案型別,例如,UNIX (同樣包括OS X)和Windows都具有常規的檔案和目錄,除此之外,UNIX 還具有字符特殊檔案 和塊特殊檔案,常規檔案是包含有用戶資訊的檔案,用戶一般使用的檔案大都是常規檔案,常規檔案一般包括可執行檔案、文本檔案、影像檔案,從常規檔案讀取資料或將資料寫入時,內核會根據檔案系統的規則執行操作,是寫入可能被延遲,記錄日志或者接受其他操作,
字符特殊檔案和輸入/輸出有關,用于串行I/O類設備,如終端、列印機、網路等,塊特殊檔案用于磁盤類設備,我們主要討論的是常規檔案,


目錄
檔案系統通常提供目錄或者檔案夾用于記錄檔案的位置, 在很多系統中目錄本身也是檔案,下面我們會討論關于檔案,他們的組織形式、屬性和可以對檔案進行的操作,
一級目錄系統
目錄系統最簡單的形式是有一個能夠包含所有檔案的目錄,這種目錄被稱為根目錄,由于根目錄的唯一性,所以其名稱并不重要,在最早期的個人計算機中,這種系統很常見,部分原因是因為只有一個用戶,下面是一個單層目錄系統的例子

檔案系統布局



檔案的實作

鏈表分配

I/O

中斷處理程式


錯誤處理
磁盤在制造的程序中可能會有瑕疵,如果瑕疵比較小,比如只有幾位,那么使用壞扇區并且每次只是讓ECC糾正錯誤是可行的,如果瑕疵較大,那么錯誤就不可能被掩蓋,
一般壞塊有兩種處理辦法,一種是在控制器中進行處理; 一種是在作業系統層面進行處理,
這兩種方法經常替換使用,比如一個具有30個資料扇區和兩個備用扇區的磁盤,其中扇區4是有瑕疵的,


死鎖

資源
大部分的死鎖都和資源有關,在行程對設備、檔案具有獨占性(排他性)時會產生死鎖,我們把這類需要排他性使用的物件稱為資源,資源主要分為可搶占資源和不可搶占資源
可搶占資源和不可搶占資源

死鎖檢測和恢復
第二種技術是死鎖的檢測和恢復,這種解決方式不會嘗試去阻止死鎖的出現,相反,這種解決方案會希望死鎖盡可能的出現,在監測到死鎖出現后,對其進行恢復,下面我們就來探討一下死鎖的檢測和恢復的幾種方式

破壞死鎖

計算機網路
注:筆記檔案知識點過多,若要全部展示出來比較困難,以下以部分截圖的方式展示給大家作為參考學習,大家一鍵三連之后【見下圖即可獲取】這兩份檔案,有需要的朋友可以自取
HTTP常見面試題

HTTP基本概念

HTTP與HTTPS


IP全家桶

IP基本認識
IP在TCP/IP參考模型中處于第三層,也就是網路層,
網路層的主要作用是:實作主機與主機之間的通信,也叫點對點通信,


TCP三次握手和四次揮手面試題
TCP基本認識
我們先來看看TCP頭的格式,標注顏色的表示與本文關聯比較大的欄位,其他欄位不做詳細闡述,

TCP三次握手程序和狀態變遷
TCP是面向連接的協議,所以使用TCP前必須先建立連接,而建立連接是通過三次握手來進行的,


TCP四次揮手程序和狀態變遷
天下沒有不散的宴席,對于TCP連接也是這樣,TCP 斷開連接是通過四次揮手方式,
雙方都可以主動斷開連接,斷開連接后主機中的「資源」將被釋放,

針對TCP應該如何Socket編程?



圖解TCP重傳、滑動視窗、流量控制、擁塞控制

超時重傳
重傳機制的其中一個方式,就是在發送資料時,設定一個定時器, 當超過指定的時間后,沒有收到對方的ACK 」確認應答報文,就會重發該資料,也就是我們常說的超時重傳,

流量控制



「看得見」TCP

解密TCP三次握手和四次揮手
既然學會了tcpdump和Wireshark兩大網路分析利器,那我們快馬加鞭,接下用它倆抓取和分析HTTP協議網路包,并理解TCP三次握手和四次揮手的作業原理,


TCP快速建立連接
客戶端在向服務端發起HTTP GET請求時,一個完整的互動程序,需要2.5個RTT的時延,
由于第三次握手是可以攜帶資料的,這時如果在第三次握手發起HTTP GET請求,需要2個RTT的時延,
但是在下一次(不是同個TCP連接的下一次)發起HTTP GET請求時,經歷的RTT也是一樣,如下圖:


零視窗通知與視窗探測
假設接收方處理資料的速度跟不上接收資料的速度,快取就會被占滿,從而導致接收視窗為0,當發送方接收到零視窗通知時,就會停止發送資料,

由于筆記涉及到的知識點與內容極多,就不一一展示給大家了,這份《計算機網路作業系統》《圖解網路》需要完整版筆記的朋友,可以一鍵三連之后,【見下圖】來獲取!!

當然,單單有檔案看是遠遠不夠的,還有視頻和相匹配的課件進行學習提升,努力把計算機網路這一塊兒給搞明白,相信一定會有不凡的人生!!
TCP/IP/網路IO學習視頻

TCP/IP網路協議

網路IO
華為鴻蒙作業系統學習視頻


還有課件分享

IO課件

TCP/IP課件
TCP/IP/IO網路通信視頻和課件獲取,一鍵三連之后【見下圖】獲取!
好了,今天就分享到這里了,希望大家能夠好好學習,把計算機網路這一塊兒給提升上來,也希望本文能夠得到大家的喜歡!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/226421.html
標籤:其他
上一篇:hibernate 基礎組態檔


