计算机二级公共基础知识笔记
計算機二級公共基礎知識
計算機系統
考點一:計算機概述
1.計算機的發展歷程
目前公認的第一臺電子數字計算機是ENIAC,它于1946年在美國賓夕法尼亞大學研制成功。
根據計算機本身采用的物理器件不同,將其發展分為4個階段
- 第一階段是電子管計算機時代,時間為1946年到20世紀50年代
- 第二階段是晶體管計算機時代,時間為20世紀50年代后期到20世紀60年代中期
- 第三階段是中小規模集成電路計算機時代,時間是20世紀60年代中期到20世紀70年代初期
- 第四階段是大規模和超大規模集成電路計算機時代,時間是20世紀70年代初期至今
2.計算機體系結構
美籍匈牙利數學家馮.諾伊曼為首的研制小組于1946年提出了“存儲程序控制”的思想,并開始研制存儲程序控制的計算機EDVAC。1951年,EDVAC問世,直到今天,計算機基本結構的設計仍采用馮.諾依曼提出的思想和原理,人們把符合這種設計的計算機稱為“馮.諾伊曼機”。馮.諾伊曼也被譽為“現代電子計算機之父”
EDVAC的主要特點如下
3.計算機系統基本組成
考點二:計算機硬件系統
1.中央處理器
中央處理器(CPU)主要用于節時計算機指令和處理軟件中的數據。CPU主要包括運算器和控制器兩個部件.它們都包含寄存器,并通過總線連接起來。其主要運算指標有字長、主頻、運算速度等。
2.存儲器
用于存儲程序和數據的元件,它可以自身完成程序或數據的存取。
3.外部設備
計算機中的CPU和主存儲器構成主機,除主機以外,圍繞著主機設置的各種硬件裝置稱之為外部設備.
4.總線
總線是一組能被多個部件"分時共享"的公共信息傳輸線路.分時是指同一時刻總線上只能傳輸一個部件發輸的信息;共享是指總線上可以"掛接"多個部件,各個部件之間相互交換的信息都可通過這組公共線路傳輸.
分類:
- 片內總線
- 系統總線
- 通信總線
5.計算機的工作原理
考點三: 數據的內部表示
1.計算機中的數據及其存儲單位
計算機內部均使用二進制數表示各種信息,但計算機在與外部溝通皇兄會采用人們比較熟悉和方便閱讀的形式,如十進制數.其間的轉換,主要由計算機系統的硬件和軟件來實現.
2.計算機中數據的存儲單位
位是計算機中數據的最小單位,二進制數碼只有0和1,計算機采用多個數碼表示一個數,每一個數碼稱1位
字節是存儲容量的基本單位,一個字節由8位二進制組成.
考點四:操作系統
1.操作系統概述
操作系統是現代計算機系統中最基本和最核心的系統軟件之一,所有其他的軟件都依賴于操作系統的支持。
操作系統是配置在計算機硬件上的第一層軟件,是對硬件系統的首次擴充。其主要作用是管理好硬件設備,提高它們的利用率和系統的吞吐量,并為用戶和應用程序提供一個簡單的接口,便于用戶使用。
如果把操作系統看成計算機系統資源的管理者,則操作系統的任務及其功能主要有以下幾個方面
- 存儲器管理
- 處理器管理
- 設備管理
- 文件管理
- 提供用戶接口
操作系統的分類
根據使用環境和對作業處理方式的不同,操作系統分為多道批處理操作系統、分時操作系統、實時操作系統、網絡操作系統、分布式操作系統、嵌入式操作系統。
進程管理
程序的執行
程序只有經過執行才能得到結果。程序的執行又分為順序執行和并發執行。
一個具有獨立功能的程序獨占處理器直至執行結束的過程稱為程序的有順序執行。順序執行具有順序性、封閉性及可再現性等特點。程序的順序執行可給程序員帶來方便,但系統資源利用率低。
程序的并發執行是指一組在邏輯上互相獨立的程序或程序段在執行過程中,其執行時間在客觀上互相重疊,即一個程序段尚未執行結束,另一個程序段的執行已經開始的執行方式。
并發執行的特點
- 失去了封閉性
- 不可再現性
- 間斷性,即程序之間可以互相制約
進程的基本概念
進程是指一個具有一定獨立功能的程序關于某個數據集合的一次運行活動。簡單地說,進程是指可以并發執行的程序的執行過程。
進程的狀態及其轉換
- 運行狀態
- 就緒狀態
- 等待狀態
- 創建狀態
- 終止狀態
進程控制塊
每個進程有且僅有一個進程控制塊(PCB),它是進程的唯一標識,是操作系統用來記錄和刻畫進程狀態和環境信息的數據結構,是進程動態特征的匯集,也是操作系統掌握進程的唯一資料結構和管理進程的主要依據。
PCB通常應包括以下基本內容
- 進程名
- 特征信息
- 執行狀態信息
- 調度優先數
- 現場信息
- 系統棧
- 進程映像信息
- 資源占用信息
- 族關系
進程的組織
- 線性方式
- 鏈接方式
- 索引方式
進程調度
進程調度又搶占方式和非搶占方式
其他概念
- 線程:線程是比進程更小的能獨立運行的基本單位,用它來提高程序的并行程度,減少系統開銷,從而進一步提高系統的吞吐量
- 死鎖:由于個進程互相獨立的動態獲得,不斷申請和釋放系統中的各種軟硬件資源,這就有可能使系統中若干個進程均因互相“無知的”等待對方所占有的資源而無限的等待,這種狀態稱為死鎖。
存儲管理
存儲管理的功能
- 地址變換
- 內存分配
- 存儲共享與保護
- 存儲器擴充
存儲管理技術
- 連續存儲管理
- 分頁式存儲管理
- 分段式存儲管理
- 段頁式存儲管理
- 虛擬存儲器管理
文件管理
文件與文件系統的概念
文件時指一組帶標識(文件名)的、具有完整邏輯意義的相關信息的集合。
各種操作系統的文件命名規則略有不同,文件名的格式和長度因系統而異。一般來說,文件名由文件名和擴展名兩部分組成,前者用于識別文件,后者用于區分文件類型,中間用“.”分隔開。
文件類型
| 按用途劃分 | 系統文件、庫文件、用戶文件等 |
| 按性質劃分 | 普通文件、目錄文件、特殊文件等 |
| 按保護級別劃分 | 只讀文件、讀寫文件、可執行文件、不保護文件等 |
| 按文件數據的形式劃分 | 源文件、目標文件、可執行文件 |
文件系統模型
文件系統的傳統模型為層次模型。該模型由許多不同的層組成,每一層都會使用下一層的功能特性來創建新的功能,為上一層服務。層次模型比較適合支持單個文件系統。
文件的組織結構
- 文件的邏輯結構
文件的邏輯結構是用戶可見的結構。根據有無邏輯結構,文件可分為記錄式文件和流式文件。
- 文件的物理結構
文件按不同的組織方式在外部存儲介質上存放,就會得到不同的物理結構。文件的物理結構有時候也成為文件的“存儲結構”
文件目錄管理
用于描述和控制文件的數據結構稱為文件控制塊(FCB)。FCB一般包括以下內容
- 有關文件存取控制的信息
- 有關文件結構的信息
- 有關文件使用的信息
- 有關文件管理的信息
文件與FCB一一對應,而人們把多個FCB的有序集合稱為文件目錄。
文件目錄結構
- 單機目錄
- 二級目錄
- 多層級目錄
- 無環圖結構目錄和圖狀結構目錄
存儲權限
存儲權限可以通過建立訪問控制表和存取權限表來實現
大型文件系統主要采用兩個措施來進行安全性保護
- 對文件和目錄進行權限設置
- 對文件和目錄進行加密
I/O設備管理
I/O的層次結構
- 用戶層軟件
- 設備獨立性軟件
- 設備驅動程序
- 中斷處理程序
中斷處理過程:
- CPU檢查響應中斷的條件是否滿足
- 如果條件滿足,CPU響應中斷,否則CPU關中斷,使其進入不可再次響應中斷的狀態
- 保存被中斷進程的CPU環境
- 分析中斷原因,調用中斷處理子程序
- 執行中斷處理子程序
- 退出中斷,恢復被中斷進程的CPU現場或調度新進程占用CPU
- 開中斷,CPU繼續執行
數據結構與算法
考點一:什么是算法
算法及其基本特征
算法是指對解題方案準確而完整的描述。簡單地說,算法就是解決問題的操作步驟。
算法的基本特征
- 可行性
- 確定性
- 有窮性
- 擁有足夠的情報
算法復雜度
算法復雜度用來衡量算法的優劣,它包括算法的空間復雜度和時間復雜度。
考點二:數據結構的基本概念
什么是數據結構
數據結構是指相互有關聯的數據元素的集合。它包含兩個要素,即“數據”和“結構”。
數據是需要處理的數據元素的集合
所謂結構,講就是關系,是集合中各個數據元素之間存在的某種關系(聯系)
數據結構的表示
數據的邏輯結構的數學形式定義——數據結構是一個二元組:
B=(D,R)
其中B表示數據結構,D是數據元素的集合,R是D上關系的集合,它反映了D中各數據元素之間的前后件關系。前后件關系也可以用一個二元組來表示。
一個數據結構除了用二元關系表示外,還可以用圖形來表示。用中間標有元素值的方框表示的數據元素,一般稱為數據節點。對于每一個二元組,用一條有向線段從前件指向后件。
| 根節點 | 數據結構中,沒有前件的節點 |
| 終端節點(葉子節點) | 沒有后件的節點 |
| 內部節點 | 處理根節點和終端節點以外的節點 |
線性結構與非線性結構
| 線性結構 | 一個非空數據節點有且只有一個根節點,每個節點最多只有一個前件,也最多只有一個后件 |
| 非線性結構 | 不滿足以上條件的數據結構,主要是樹形結構和網狀結構 |
考點三:線性表及其順序存儲結構
線性表的基本概念
數據結構中,線性結構習慣性稱為線性表,線性表是最簡單、也是最常用的一種數據結構。
線性表是由n(n≥0)個數據元素構成的有限序表,表中除第一個元素外的每一個元素,有且只有一個前件,除最后一個元素外,有且只有一個后件。
線性表要么是空表,要么則可以表示為
(a1,a2,…ai,…an)ai(i=1,23,…n)是線性表的數據元素,也稱為線性表的一個節點。同一線性表中斷數據元素必定具有相同的特性,即屬于統一數據對象。
線性表的順序存儲結構
通常線性表可以采用順序存儲和鏈式存儲兩種存儲結構
順序結構是存儲線性表最簡單的存儲,具體做法:將線性表中的元素一個接一個地存儲在一片相鄰的存儲區域中。這種順序存儲的線性表也被稱為順序表
順序表的特征、
- 線性表中所有元素所占的存儲空間是連續的
- 線性表中各數據元素在存儲空間中是按邏輯順序依次存放的
棧和隊列
棧及其基本運算
棧是一種特殊的線性表,它所有插入與刪除都限定在表的同一端進行,允許插入與刪除的一端稱為棧頂,不允許插入與刪除的一端稱為棧底。當棧中沒有元素時,稱為空棧。
棧的修改原則是“后進先出”或“先進后出”(類似于壓彈夾)
通常用指針top來表示棧頂的位置,用指針bottom來指向棧底。棧頂top反映了棧不斷變化的狀態。
棧的基本運算:入棧、退棧、讀取棧頂元素
棧和一般線性表的存儲方法類似,通常也可以采取順序存儲和鏈式存儲。
隊列及其基本運算
隊列的定義
隊列是指允許在一端進行插入,而在另一端進行刪除的線性表。允許進行刪除運算的稱為對頭(排頭),允許進行插入運算的一端稱為隊尾。若有隊列:
Q=(q1,q2…qn)
那么,q1為隊頭元素,qn為隊尾元素。與棧相反。隊列又稱為“先進先出”或“后進后出”的線性表
隊列的運算
可以用順序存儲的線性表來表示隊列。為了指示當前執行退隊運算的隊頭位置,需要一個對頭指針front;為了指示當前執行入隊運算的隊尾位置,需要一個隊尾指針rear。隊頭指針總是指向對頭元素的前一個位置,而隊尾指針rear總是指向隊尾元素。
循環隊列及其運算
在實際應用中,隊列的存儲結構一般采用循環隊列的形式。
所謂循環隊列,就是將隊列存儲空間的最后一個位置繞到第一個位置,行成邏輯上的環狀空間,供隊列循環使用。
在循環隊列中,用隊尾指針rear指向隊列中的隊尾元素,用隊頭指針front指向排頭元素的前一個位置。因此,從隊頭指針front指向的后一個位置直到隊尾指針rear指向的位置之間的所有元素均為隊列中的元素。
考點五:線性鏈表
線性鏈表的基本概念
線性鏈表指線性表的鏈式存儲結構,簡稱鏈表。這種鏈表每個節點只有一個指針域,又稱為單鏈表。
在線性鏈表中,第一一個元素沒有前件,因此指向鏈表中第一個節點的指針是一個特殊指針,稱為這個鏈表的頭指針。最后一個元素沒有后件。因此,線性鏈表最后一個節點的指針域為空,用NULL或0表示。
線性鏈表的存儲單元是任意的,即各數據節點的存儲序號可以是連續的,也可以是不連續的;各節點在存儲空間中的位置關系與邏輯關系不一致,前/后件關系由存儲節點的指針來表示。
當線性鏈表指向第一個數據元素的頭指針等于NULL或0時,該表稱為空表。
在某些應用中,對線性鏈表中的每個節點設置兩個指針,一個指針域存放前件的地址,稱為左指針(Llink),一個指針域存放后件的地址稱為右指針(Rlink)。
順序表和鏈表的優缺點比較
| 順序表 | 1.可以隨機存取表中的任意節點 2.無需為表示節點間的邏輯關系額外增加存儲空間 | 1.插入和刪除的運算效率很低2.存儲空間不便于擴充3.不便于對存儲空間進行動態分配 |
| 鏈表 | 1.當進行插入和刪除運算時,只需要改變指針即可,不需要移動元素2.存儲空間便于擴充并且方便空間的動態分配 | 需要額外的空間(指針域)來表示數據元素之間的邏輯關系,存儲密度比順序表低 |
考點六:樹與二叉樹
樹的基本概念
樹是一種簡單的非線性結構。如一個家中的族譜關系為A有后代B、C;B有后代D、E、F,C有后代G;E有后代H、I,則這個家族的成員和血緣關系圖則可以用下圖表示
| (父親點)根 | 在樹結構中,每一個節點只有一個前件,稱為該節點的父親點;沒有前件的節點只有一個,稱為樹的根節點,簡稱根 |
| 子節點和葉子節點 | 每一個節點后面可以有多個后件,稱為該節點的子節點。沒有后件的節點稱為葉子節點 |
| 度 | 一個節點所擁有的后件個數稱為該節點的度,所有節點中最大的度稱為樹的度 |
| 深度 | 定義一棵樹的根節點所在的層次為1,其他節點所在的層次等于其父親點所在的層次加一。樹的最大層次稱為樹的深度 |
| 子樹 | 在樹中,以某節點的一個子節點為根構成的樹稱為該節點的一棵子樹 |
二叉樹及其性質
二叉樹的性質
二叉樹與樹不同,但它與樹的結構很相似,下圖表示一棵二叉樹。
二叉樹的特點
滿二叉樹與完全二叉樹
- 滿二叉樹
指除最后一層外,每一層上的所有節點都有兩個子節點的二叉樹。即滿二叉樹在其第k層上有2的(k-1)方個節點,且深度為m的滿二叉樹共有2的m方減一個節點。
- 完全二叉樹
指除最后一層外,每一層的節點數均達到最大值,在最后一次只缺少右邊若干節點的二叉樹。
二叉樹的存儲結構
在計算機中,二叉樹通常采用鏈式存儲結構。用于存儲二叉樹中元素的存儲系欸但由數據域和指針域兩部分構成。由每一個元素可以有連個后件,因此用于存儲二叉樹的存儲節點的指針域由兩個,一個用于指向該節點的左子節點即左指針域;另一個用于指向該節點的右子節點即右指針域。
由于二叉樹的存儲結構每一個存儲節點有兩個指針域,因此二叉樹的鏈式存儲也成為二叉鏈表。
二叉樹的遍歷
二叉樹的遍歷是指不重復的訪問二叉樹中所有節點。
在遍歷二叉樹的過程中,一般先遍歷左子樹再遍歷右子樹。再先左后右的原則下,根據訪問根節點的不同次序可以分為3種:前序遍歷(DLR)、中序遍歷(LDR)、后序遍歷(LRD)
- 前序遍歷
首先訪問根節點,然后遍歷左子樹,再遍歷右子樹;并且在遍歷左子樹和右子樹時,依然先訪問根節點,再遍歷左子樹,最后遍歷右子樹。
例如上圖二叉樹進行前序遍歷的結果為A、B、D、H、E、I、C、F、G
- 中序遍歷
首先遍歷左子樹然后訪問根節點,最后遍歷右子樹;并且再遍歷左子樹和右子樹時,依然首先遍歷左子樹,然后訪問根節點,最后遍歷右子樹
例如上圖中序遍歷結果為H、D、B、E、I、A、C、G、F
- 后序遍歷
首先遍歷左子樹,然后遍歷右子樹,最后訪問根節點;并且在遍歷左子樹和右子樹時,仍然首先遍歷左子樹,然后遍歷右子樹,最后訪問根節點。
例如上圖后序遍歷為H、D、I、E、B、G、F、C、A
如果已知一顆二叉樹的前序遍歷序列和中序遍歷序列,也可以唯一確定這棵二叉樹,已知一棵二叉樹的后序遍歷和中序遍歷,也可以唯一確定一棵二叉樹。但是,已知一棵二叉樹的前序遍歷和后序遍歷,不能唯一確定這棵二叉樹的。
考點七:查找
順序查找
基本思想:從線性表的第一個元素開始,逐個將線性表中的元素與被查找元素進行比較,若相等,則查找成功,停止查找;若整個線性表掃描完畢,仍未找到與被查元素相等的元素,則表示線性表中沒有要查找的元素,查找失敗。
二分法查找
能使用二分法查找的線性表必須滿足兩個條件:用順序存儲結構、線性表是有序表。此處的“有序”特指元素按非遞減順序排列,即從小到大的排列,但允許相鄰元素相等
對于長度為n的有序線性表,利用二分法查找元素X的過程如下。
- 如果X的值與中間項相等,則查找成功,結束查找。
- 如果X小于中間項的值,則在線性表的前半部分以二分法繼續查找。
- 如果X大于中間項的值,則在線性表的后半部分以二分法繼續查找。
考點八:排序
排序是指將一個無序序列整理成按值非遞減順序排列的有序排列。
交換類排序
交換類排序是借助數據元素的“交換”來進行排序的一種方法。
- 冒泡排序
- 快速排序
插入類排序
插入類排序是每次將一個待排序的元素,按其元素值的大小插入前面已經排好序的子表中的適當位置,直到全部元素插入完成為止。
- 簡單插入排序
- 希爾排序
選擇類排序
選擇類排序的基本思想是通過每一次從待排序序列中選出值最小的元素,然后將其順序放在已排好序的有序子表的后面,直到全部序列滿足排序要求為止。
- 簡單選擇排序
- 堆排序
總結
以上是生活随笔為你收集整理的计算机二级公共基础知识笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 软件测试——bug相关知识
- 下一篇: 前端学习(1397):项目包含的知识点c