考研复试面试四选二内容
抖動產生的原因及解決方法
抖動是指頁面置換過程中出現的頻繁缺頁現象。
主要是由于有些進程頻繁訪問的頁面數目高于可用的物理頁幀數。
解決方法有:
①局部置換策略:就是當缺頁率很高的時候為該進程分配若干物理塊,當缺頁率低的時候適當的減少分配的物理塊。
②引入工作集算法:基于局部性原理,工作集使用最近訪問過的頁面來確定工作集。一般來說只要分配給進程的物理塊數大于工作集就可以。
DBMS 的功能
① 數據庫定義功能:提供數據描述語言,定義數據庫的三級結構及其相互之間的映像,定義數據庫的完整性、安全性控制等約束。
② 數據庫操縱功能:提供數據庫操縱語言,實現對數據庫中數據的檢索、插入、刪除和修改。
③ 數據庫保護功能:數據庫管理系統提供了數據庫恢復、并發控制、數據安全性控制和數據完整性控制4個方面的保護功能
④ 數據庫存儲管理:把各種DML語句轉化為底層的文件系統命令。
⑤ 數據庫維護功能:由數據裝載程序、備份程序、文件重組程序和性能監控程序等實用程序組成,起著數據庫維護的功能。
⑥ 數據字典:存放著對實際數據庫各級模式所做的定義。
什么是ACID
事務管理四個特性,原子性(Atomicity),一致性(Consistency), 隔離性(Isolation)持久性(Durability)
① 原子性:一個事務中所有操作是一個不可分割的操作序列,要么全部執行,要么都不執行。
② 一致性:一個事務獨立執行的結果將保證數據庫的一致性,即數據不會因為事務的執行而遭到破壞。
③ 隔離性:在并發事務執行時,系統應該保證結果與事務單獨執行時的結果一樣。
④ 持久性:一個事務一旦完成全部操作,它對數據庫的所有更新應永久地反映在數據庫中。即使以后系統發生故障,也應保留這個事務執行的痕跡。
ipv4 和 ipv6 的區別
① 地址空間不同:IPv4 中規定 IP 地址長度為 32, 而 IPv6 中 IP 地址的長度為 128
② 路由表大小不同:IPv6 的路由表相比 IPv4 的更小
③ IPv6 的組播支持以及對流的支持要強于 IPv4
④ 安全性不同:IPv6 的安全性更高,在使用 IPv6 的網絡時,用戶可對網絡層的數據進行加密
⑤ 協議擴充不同:IPv6 允許協議進行擴充而 IPv4 不允許。
線程和進程的區別
引入線程之后,線程是程序執行的最小單位,而進程是操作系統分配資源的最小單位。
在引入線程之后,不進進程之間可以并發執行,而且多個線程之間也可以并發執行,提高了系統的吞吐量。
在同一進程中,線程的切換不會引起進程切換。在不同進程中進行線程切換,會引起線程的切換。
進程切換時的開銷比線程切換時的開銷要大很多。
進程之間相互獨立,但同一進程下的各個線程之間共享程序的內存空間(包括代碼段,數據集,堆等)及一些進程級的資源(如打開文件和信號等), 某進程內的線程對其他進程不可見。
兩臺電腦 mac 地址相同能不能進行通信
不能,目的 MAC 地址等于本機 MAC 地址的幀不會被發送到網絡
正確實現 ARP 軟件都會禁止把同一個 MAC 地址綁定到兩個不同的 IP 地址,這使具 有相同 MAC 地址的設備上的用戶在會話時都發生時斷時續的現象。
ip地址相同,網絡地址相同是可以通信
ip地址相同無法進行通信
網絡地址相同可以進行通信。例如:學校的機房電腦
ip地址 = 網絡地址 + 主機地址
ip地址32位, Mac地址48位
什么是XML?
可擴展標記語言,標準通用標記語言的子集,簡稱XML。是一種用于標記電子文件使其具有結構性的標記語言。
可擴展標記語言僅僅是存儲數據。事實上它與其他數據表現形式最大的不同是:可擴展標記語言極其簡單,這是一個看上去有點瑣細的優點,但正是這點使它與眾不同。
XML的簡單易于在任何應用程序中讀/寫數據,這使XML很快成為數據交換的唯一公共語言,雖然不同的應用軟件也支持其他的數據交換格式,但不久之后它們都將支持XML,那就意味著程序可以更容易的與Windows、Mac OS、Linux以及其他平臺下產生的信息結合,然后可以很容易加載XML數據到程序中并分析它,并以XML格式輸出結果。
數組和鏈表在存儲上有什么區別
數組在定義的時候分配一段連續的存儲空間,而鏈表在程序執行過程中動態的分配存儲空間,鏈表的存儲空間可以不是連續的。而且鏈表需要多余的存儲空間來存儲指針,所以鏈表的存儲密度小于數組的存儲密度。
DNS 定義及其作用
域名系統(服務)協議(Domain Name System) 是一種分布式網絡目錄服務,主要用于域名與 IP 地址的相互轉換,以及控制因 特網的電子郵件的發送。位于應用層
MAC 地址位數
48位
MAC地址也成物理地址,是由6個十六進制數標識,高24位是廠商代碼,低24位是廠商自行分配的網卡序列號。
如何求一個鏈表的中間節點
由兩個指針只想頭結點,一個指針每次向后移動一個節點,一個指針一次向后移動兩個節點,當后者為空的時候前者到達中間結點。
Case 在軟件工程中是什么
用例圖,用例圖是指由參與者(Actor)、 用例(Use Case),邊界以及它們之間的關系構成的用于描述系統功能的視圖。 用例圖(User Case)是外部用戶(被稱為參與者)所能觀察到的系統功能的模型圖。
Html 定義及功能
HTML(Hyper Text Markup Language)稱為超文本標記語言,是一種標識性的語言。它包括一系列標簽.通過這些標簽可以將網絡上的文檔格式統一,使分散的Internet資源連接為一個邏輯整體。
HTML命令可以說明文字,圖形、動畫、聲音、表格、鏈接等。
超文本是一種組織信息的方式,將分布在不同位置的信息資源用隨機方式進行連接,為人們查找,檢索信息提供方便。
線性表的存儲結構
順序存儲結構和鏈式存儲結構。
TCP/IP 模型有幾層
應用層、傳輸層、網絡層、網絡接口層
OSI模型有幾層
應用層、表示層、會話層、傳輸層、網絡層、數據鏈路層、物理層
TCP/IP和OSI模型的區別
為什么區分管態目態
管態是指操作系統在運行系統的管理程序時所處的狀態。此狀度態下可以執行任何指令,包括特權指令;
目態是指操作系統在運行回系統的應用程序所處的狀態。
只允許應用程序訪問自己的內存空間;這樣能夠保證應用程序運行時系統的安全。
關系數據庫中關系是什么
關系是一張二維表
操作系統中的堆棧區別
空間分配
堆(操作系統):一般由程序員 分配釋放,若程序員不釋放,程序結束時可能由 OS 回收,分配方式類似于鏈表。
棧(操作系統):由操作系統自動分配釋放,存放函數的參數值,局部變量值等。 操作方式與數據結構中的棧相類似。
緩存方式
堆:使用二級緩存,生命周期與虛擬機的 GC 算法有關(并不是引用為空就立即被 GC),調用速度相對較低。
棧: 使用一級緩存,被調用時通常處于存儲空間中,調用后被立即釋放。
馮諾依曼計算機工作原理
輸入設備:輸入數據和程序
存儲器:記憶程序和數據
運算器:完成數據加工處理
控制器:控制程序執行
輸出設備:輸出結果
鏈路層的主要工作
對電信號進行分組并形成具有特定意義的數據幀,然后以廣播的形式通過物理介質發送給接收方。
IP協議
網絡層引入了IP協議,制定了一套新地址,使得我們能夠區分兩臺主機是否同屬于一個網絡,這套地址就是網絡地址,也就是所謂的IP地址。IP協議將這個32位的地址分配兩部分,前面部分代表網絡地址,后面部分表示該主機在局域網中的地址。如果兩個IP地址在同一個子網中,則網絡地址一定相同。為了判斷IP地址中的網絡地址,IP協議還引入了子網掩碼,IP地址和子網掩碼通過按位運算后就可以得到網絡地址。
ARP協議
地址解析協議,是根據IP地址獲取MAC地址的一個網絡層協議。
工作原理如下:ARP首先會發起一個請求數據包,數據包的首部包含了目標主機的IP地址,然后這個數據包會在鏈路層進行在此包裝,生成以太網數據包,最終由以太網廣播給子網內的所有主機,每一臺主機都會接收到這個數據包,并取出表頭里的IP地址,然后和自己的IP地址進行比較,如果相同就返回自己的MAC地址,如果不同就丟棄該數據包。ARP接收返回消息,以此確定目標機的MAC地址;與此同時,ARP還會將返回的MAC地址與對應的IP地址存入本機ARP緩存中并保留一定時間,下次請求時直接查詢ARP緩存以節約資源。
UDP協議
UDP協議定義了端口,同一個主機上的每個應用程序都需要指定唯一的端口號,并且規定網絡中傳輸的數據包必須加上端口信息,當數據包到底主機以后,就可以根據端口號找到對應的應用程序了。
UDP協議比較簡單,實現容易,但它沒有確認機制,數據包一旦發出,無法知道對方是否收到,因此可靠性較差,為了解決這個問題,提高網絡的可靠性。TCP協議就誕生了。
UDP是無連接的非可靠傳輸協議,兩個通信實體不需建立連接,提供盡最大努力的交付,傳輸層向上提供了一條不可靠的邏輯信道,遠程主機收到UDP報文后,不需要給出確認,UDP常用于一次性傳輸較少數據的網絡應用,如DNS。
TCP協議
TCP 即傳輸控制協議,是一種面向連接的、可靠的、基于字節流的通信協議。
簡單來說 TCP 就是有確認機制的 UDP 協議,每發出一個數據 包都要求確認,如果有一個數據包丟失,就收不到確認,發送方就必須重發這個數據包。
為了保證傳輸的可靠性,TCP 協議在 UDP 基礎之上建立了三次對話的確 認機制,即在正式收發數據前,必須和對方建立可靠的連接。
TCP 數據包和 UDP 一樣,都是由首部和數據兩部分組成,唯一不同的是,TCP 數據包沒有長度限制, 理論上可以無限長,但是為了保證網絡的效率,通常 TCP 數據包的長度不會超過 IP 數據包的長度,以確保單個 TCP 數據包不必再分割。
UDP和TCP協議的區別
UDP和TCP協議的主要區別是兩者在如何實現信息的可靠傳遞方面不同。
TCP協議中包含了專門的傳遞保證機制,當數據接收方收到傳送方傳來的信息時,會自動向發送方發出確認信息;發送方只有在接受到該確認信息之后才能繼續傳送其他信息,否則將一直等待直到收到確認信息為止。
與TCP不同,UDP協議并不提供數據傳送的保證機制。如果在從傳送方到接收方的傳遞過程中出現數據報的丟失,協議本身并不能做出任何檢驗或提示。
因此,通常人們把UDP協議稱為不可靠的傳輸協議。
為什么要引入cache
由于 CPU 工作的速度比 RAM 讀寫速度快,CPU 讀寫 RAM 時需要花費時間等待 RAM 進行讀寫,造成 CPU 工作速度下降。為了提高 CPU 讀寫程序和數據的速度,在 RAM 和 CPU 之間增加了高速緩存部件。Cache 的 特點是:讀寫速度快、存儲容量小、價格高、斷電后內容丟失。
文件的外存分配方式中,連續分配、鏈式分配和索引分配各自的優缺點
(1)連續分配。連續分配方式要求每個文件在磁盤上占有一塊連續的塊。 支持順序訪問和直接訪問。
優點是實現簡單、存取速度快。
缺點是文件長度不宜動態增加,因為一個文件末尾后的盤塊可能已分配給其他文件,一旦需要增加, 就需要大量移動盤塊。此外,反復增刪文件后會產生外部碎片,且很難確定一個 文件需要的空間大小,因此只適用于長度固定的文件。
(2)鏈接分配。鏈接分配采取離散分配的方式,消除了外部碎片,因此顯著提高了磁盤空間的利用率;又 因為根據文件的當前需求為其分配所必需的盤塊,當文件動態增長時,可以動態地再為它分配盤塊,因此無需事先知道文件的大小。此外,對文件的增、刪、改也非常方便。
(3)索引分配。索引分配將每個文件的所有的盤塊號都集中放在一 起構成索引表。支持直接訪問,沒有外部碎片問題。缺點是由于索引塊的分配, 增加了系統存儲空間的開銷
Java 和 JavaScript 的區別
Java 是一門面向對象的解釋型編程語言
JavaScript 是基于對象鑲嵌于 HTML 文檔內的腳本語言。
虛擬存儲器和 cache 的區別
cache 是解決內存和 cpu 速度不匹配,是內部存儲器
虛擬存儲器一般指虛擬設備,屬于外部存儲設備。
虛擬內存和覆蓋交換的區別
覆蓋:將用戶空間分為固定區和若干覆蓋區。將經常活躍的部分放入固定區,其他部分按調用關系分段。首先將那些即將要訪問的段放入覆蓋區,其他段放在外存中,在需要調用前,系統再將其調入覆蓋區,代替覆蓋區中原有的段。
交換:指把處于等待狀態的程序,換出到外存,以騰出足夠的內存空間,把已具備運行條件的進程,換入內存運行。
虛擬內存:允許將一個作業分多次調入內存。有三種實現方式,請求分頁存儲管理,請求分段存儲管理,請求段頁式存儲管理。通常需要一定的硬件支持,需要一定容量的內存和外存,頁表機制(或段表機制),作為主要的數據結構,中斷機構,當用戶程序要訪問的部分尚未調入內存時,則產生中斷,地址變換機構,邏輯地址到物理地址的變換。
操作系統五大功能
① 處理器管理:主要功能有進程控制、進程同步、進程通信、死鎖處理、處理機調度等。
② 存儲器管理:主要功能有內存分配、地址映射、內存保護與共享和內存擴充
③ 文件管理:文件存儲空間的管理、目錄管理及文件讀寫管理和保護
④ 設備管理:緩沖管理、設備分配、設備處理、虛擬設備
I/O 控制方式四種方式
① 程序直接控制方式:計算機從外部設備讀取數據到存儲器,每次讀一個字的數據。對讀入的每個字,CPU需要對外設狀態進行循環檢查,直到確定該字已經在I/O控制器的數據寄存器中。由于CPU的高速性和I/O設備的低速性,致使CPU的絕大部分時間都處于等待I/O設備完成數據I/O的循環測試中,造成了CPU資源的極大浪費。
② 中斷驅動方式:允許I/O設備鑄鍛打斷CPU的運行并請求服務,從而“解放”CPU使其向I/O控制器發送讀命令后可以繼續做其他有用的工作。
③ DMA方式:在I/O設備和內存之間開辟直接的數據交換通路,徹底解放CPU。
④ 通道控制方式:DMA方式是對一塊數據塊的讀寫為單位,而通道控制方式可以以一組數據塊的讀寫為單位。
對現實世界抽象的兩個層次
對現實世界抽象層次的不同,數據模型分為有概念模型和結構模型。
spooling技術
又稱為假脫機技術,是為了緩和CPU的高速性與I/O設備低速性之間的矛盾,引入了脫機輸入/輸出技術。
該技術利用專門的外圍控制機,將低速I/O設備上的數據傳送到高速磁盤上,或者相反。
DDR
DDR SDRAM=雙倍速率同步動態隨機存儲器(Synchronous Dynamic Random Access Memory),人們習慣稱為 DDR。其數據傳輸速度為系統時鐘頻率的兩倍,由于速度增加,其傳輸性能優于傳統的 SDRAM。SDRAM 在一個時鐘周期內只傳輸一次數據,它是在時鐘上升期進行數據傳輸;而 DDR 則是一個 時鐘周期內可傳輸兩次數據,也就是在時鐘的上升期和下降期各傳輸一次數據
搶占調度發生的時機
① 時間片用完
② 可搶占系統中,有更高優先級進程進入。
io 設備與 io 接口的區別
Io 設備:輸入輸出設備。
Io 接口:主機與被控對象進行信息交換的紐帶,主機通過 io 接口與外部設備進行數據交換。
Android 層次架構
android系統層次結構主要包含4個層次
從上往下依次是:應用程序層(Applications)、應用程序框架層(Application Framework)、系統運行庫層(Libraries和Android Runtime)和Linux內核層(Linux Kernel)。
① 應用程序層
Android的應用程序主要是用戶界面(User Interface)方面的,通常以JAVA程序編寫,其中還可以包含各種資源文件(放置在res目錄中)JAVA程序及相關資源經過編譯后,將生成一個APK包。Android本身提供了主屏幕(Home),聯系人(Contact),電話(Phone),瀏覽器(Browers)等眾多的核心應用。同時應用程序的開發者還可以使用應用程序框架層的API實現自己的程序。
② 應用程序框架層
本層次提供的首先包含了UI程序中所需要的各種控件,該層是Android應用開發的基礎,該層包括活動管理器、窗口管理器、內容提供者、視圖系統、包管理器、電話管理器、資源管理器、位置管理器、通知管理器和XMPP服務十個部分。
③ 系統運行庫層
本層次對應一般嵌入式系統,相當于中間件層次。Android的本層次分成兩個部分一個是各種庫,另一個是Android 運行環境。本層的內容大多是使用C++實現的。系統庫包括九個子系統,分別是界面管理工具(Surface Management 管理顯示子系統)、媒體庫、SQLite、OpenGLEState(對3D的支持)、FreeType(位圖和矢量字體的功能)、WebKit(網絡瀏覽器的核心)、SGL(2D圖像引擎)、SSL(Secure Socket Layer位于TCP/IP協議與各種應用層協議之間,為數據通訊提供安全支持)和C庫。Android 運行環境主要指的虛擬機技術——Dalvik。Dalvik虛擬機和一般Java虛擬機(Java VM)不同,它執行的不是JAVA標準的字節碼(bytecode )而是Dalvik可執行格式(.dex)中執行文件。在執行的過程中,每一個應用程序即一個進程(Linux的一個Process)。 二者最大的區別在于Java VM是以基于棧的虛擬機(Stack-based),而Dalvik是基于寄存器的虛擬機(Register-based)。
④ Linux內核層
Android核心系統服務依賴于Linux2.6內核,如安全性、內存管理、進程管理、網絡協議棧和驅動模型。Linux內核也是作為硬件與軟件棧的抽象層。驅動:顯示驅動、攝像頭驅動、鍵盤驅動、WiFi驅動、Audio驅動、flash內存驅動、Binder(IPC)驅動、電源管理等。
類的繼承分類方式
公有繼承,私有繼承,保護繼承
TCP控流的原因
雙方在通信的時候,發送方的速率與接收方的速率是不一定相等的,如果發送方的速率太快,會導致接收方處理不過來,這時候接收方只能把處理不過來的數據存在緩存區里(失序的數據包也會被存放在緩存區里)。如果緩存區滿了發送方還是瘋狂的發送數據,接收方只能把收到的數據包丟掉,大量的丟包會極大的浪費網絡資源,因此,我們需要控制發送方的發送速率,讓接收方與發送方處于一種動態平衡才好。對發送方發送速率的控制,我們稱之為流量控制。
軟件復用的意義
提高生產率、減少維護代價、提高互操作性、支持快速原型、減少培訓開銷。
簡述線性結構與非線性結構的實質是什么。并說明其典型應用。
除第一個元素外,每個元素有且僅有一個直接前驅,除最后一個元素外,每個元素有且僅有一個直接后繼。以上就是線性表。
反之,就是非線性表。
線性結構:順序表、鏈表、棧、隊列、串、鏈表
非線性結構:樹、圖
基本邏輯運算有哪些
與,或,非(&,|,!)
RISC和CISC
RISC:精簡指令系統計算機
CISC:復雜指令系統計算機
ALPHA和BETA測試的區別
Alpha 測試由用戶在開發者的場所進行, 并且在開發者對用戶的“指導”下進行測試。
Beta 測試是由軟件的最終用戶們在一個或多個客戶場所進行。
Alpha 測試是在可控環境下進行
beta 測試是在不可控環境下的測試
ASDL
非對稱數字用戶線路 == Asymmetric Digital Subscriber Line
高速傳輸、上網、打電話互不干擾、獨享寬帶、安全可靠
ICMP協議的作用
ICMP 協議是 TCP/IP 協議的一個子協議。用在 IP 主機、路由器之間傳遞控制消息,控制消息是指網絡通不通、主機是否可達、路由是否可用等網絡本身的消息。這些控制消息雖然不傳遞用戶數據,但是對于用 戶數據的傳輸起著重要的作用。
機群系統
機群系統是相互連接的多個獨立計算機的集合,這些計算機可以是單機或多處理器系統,每個結點都有自己的存儲器、I/O設備和操作系統。機群對用戶和應用來說是一個單一的系統,它可以提供低價高效的高性能環境和快速可靠的服務。
數據庫介質故障及其回復
介質故障是指硬件故障使存儲在硬盤上的數據丟失。
恢復方法:
① 在新硬盤上,導入最新的數據庫備份文件。
② 根據日志文件,找出從該最新備份后開始,到故障發生時,那些事務已經完成。重做所有已提交的事務。
動態內存分配方式有哪些,并說明各自區別
首次適應算法,最佳適應算法,最壞適應算法,鄰近適應算法。
郵件使用那兩個協議,為啥要區分這兩個
SMTP,POP。
SMTP主要有兩個缺點:無認證,無法遠程操作信箱。
局域網使用什么協議
CSMA , CSMA/CD , ALOHA,CSMA/CA ,令牌協議
無線網使用什么協議
CSMA/CA
計算機連接Internet需要那些硬件軟件和配置
硬件:網卡,寬帶,傳輸介質(光纖,雙絞線)
軟件:OS,網卡的驅動程序
CPU有哪幾種寄存器
通用寄存器,段寄存器,指令指針寄存器,標志寄存器
① 通用寄存器:
數據寄存器:AX,BX,CX,DX(有時這四個16位寄存器也可以當做八個獨立的8位寄存器使用:AH,AL,BH,BL,CH,CL,DH,DL)
指針寄存器和變址寄存器::SP,BP,DI,SI(SP 和 BP 分別為堆棧指針寄存器和基 址指針寄存器,DI 和 SI 分別為目的變址寄存器和源變址寄存器)
② 段寄存器
DS,ES,SS,CS(DS 為數據段寄存器,ES 為附加段寄存器,SS 為堆棧段 寄存器,CS 為代碼段寄存器)
③ 指令指針寄存器和標志寄存器
指令指針寄存器:IP
標志寄存器:FLAGS(16 位標志寄存器,但只用其中的 9 位,即 6 個狀態標志位,3 個控制標志位)
軟件開發的過程
軟件開發流程及軟件設計思路和方法的一般過程,包括對軟件先進行需求分析,設計軟件的功能和實現的算法和方法、軟件的總體結果設計和模塊設計、編碼和調試、程序聯調和測試以及編寫、提交程序等一系列操作以滿足客戶的需求并且解決客戶的問題,如果有更高需求,還需要對軟件進行維護、升級處理、報廢處理。
動態重定位定理
動態重定位即在程序運行過程中要訪問數據時再進行邏輯地址與物理地址的變換。
觸發器是干什么的?
觸發器是SQL server提供給程序員和數據分析員來保證數據完整性的一種方法,它是與表事件相關的特殊存儲過程,是由事件觸發的。
死鎖的四個必要條件
①互斥條件:進程對其所要求的資源進行獨占性控 制;
②請求保持條件:進程已經保持了至少一個資源,但又提出新的資源申請, 而該資源又得不到滿足,于是該進程阻塞,但其原先獲得的資源保持不放;
③不可剝奪條件:進程已獲得的資源在未使用完之前,不能被剝奪,只能在使用完后 由自己釋放;
④環路條件:當發生死鎖時,在進程資源有向圖中存在環路。
預防死鎖的四種方法
①避免多次鎖定。盡量避免同一個線程對多 個 Lock 進行鎖定。例如上面的死鎖程序,主線程要對 A、B 兩個對象的 Lock 進 行鎖定,副線程也要對 A、B 兩個對象的 Lock 進行鎖定,這就埋下了導致死鎖 的隱患。
②具有相同的加鎖順序。如果多個線程需要對多個 Lock 進行鎖定,則 應該保證它們以相同的順序請求加鎖。比如上面的死鎖程序,主線程先對 A 對 象的 Lock 加鎖,再對 B 對象的 Lock 加鎖;而副線程則先對 B 對象的 Lock 加鎖,再對 A 對象的 Lock 加鎖。這種加鎖順序很容易形成嵌套鎖定,進而導 致死鎖。如果讓主線程、副線程按照相同的順序加鎖,就可以避免這個問題。
③ 使用定時鎖。程序在調用 acquire() 方法加鎖時可指定 timeout 參數,該參數 指定超過 timeout 秒后會自動釋放對 Lock 的鎖定,這樣就可以解開死鎖了。
④死鎖檢測。死鎖檢測是一種依靠算法機制來實現的死鎖預防機制,它主要是針 對那些不可能實現按序加鎖,也不能使用定時鎖的場景的。
數據庫的三層模式,兩個獨立性
虛擬內存技術
虛擬內存是計算機系統內存管理的一種技術。它使 得應用程序認為它擁有連續的可用的內存(一個連續完整的地址空間),而實際 上,它通常是被分隔成多個物理內存碎片,還有部分暫時存儲在外部磁盤存儲器 上,在需要時進行數據交換。目前,大多數操作系統都使用了虛擬內存,如 Windows 家族的“虛擬內存”;Linux 的“交換空間”等
引用的參數傳遞方式是什么?
引用即對象的別名,傳對象的引用,用于把一個對象的地址作為參數傳遞過去,而不是對象本身。引用傳遞,避免了一次實參到形參的拷貝,提高了效率。
光盤的原理
光盤記錄原理是通過激光束在光盤記錄表面留下儲存信息。
線程是不是越多越好
不是,線程增多了會增加線程間切換的代價。
UML是什么,有哪幾類圖?
統一建模語言,是一種可視化的面向對象建模語言,是一種用來對真實世界物理進行建模的標準標記,用圖形方式表現典型的面向對象系統的整個結構。它的作用域不局限于支持面向對象的分析與設計,還支持從需求分析開始的軟件開發的全過程。
里面有9類圖
用例圖、類圖、對象圖、狀態圖、構件圖、部署圖、協作圖、交互序列圖、活動圖。
raid是什么
磁盤陣列,由許多價格便宜的磁盤組成一個容量巨大 的磁盤組,利用個別磁盤提供數據所產生加成效果提升整個磁盤系統效能。
中斷和異常的區別
全局變量和局部變量的區別
全局變量是整個源程序都有效的變量
局部變量會在其所屬的函數或循環結束后消亡。
套接字
套接字:(IP 地址:端口號),用于唯一的標識一臺主機 上的一個進程(應用),實際上網絡通信中的通信端點,每一個傳輸層連接唯一地被通信兩端的兩個端點(即兩個套接字)所確定,兩個應用程序之間的數據傳 輸要通過套接字完成。生成套接字,主要有 3 個參數:通信的目的 IP 地址、使用的傳輸 層協議(TCP 或 UDP)和使用的端口號。服務器程序所監聽的網絡地址和端口號通常是固定不變的,客戶端程序得知服務器程序的地址和端口號后就可以向服務器發起連接,在 Java 語言中,使用 Socket 類來創建套接字,使用 Socket 類在兩臺計算機之間進行通信時,是有主次之分的,一個稱為服務器程序,一個 稱為客戶端程序。在服務器端使用 ServerSocket 類創建套接字,主要是監聽指 定的端口,等待客戶端的連接;在客戶端使用 Socket 類創建套接字,用于連接 服務器端的套接字。TCP 的創建兩個套接字(應該說是多個,一個服務端的 SOCKET, 監聽本機的某個端口;其余對應每個客戶端一個 SOCKET,保存客戶端的連接)。 UDP 是無連接的,也就是只需要監聽本機端口就可了。在網絡應用程序設計時, 由于 TCP/IP 的核心內容被封裝在操作系統中,如果應用程序要使用 TCP/IP,可以通過系統提供的 TCP/IP 的編程接口來實現。在 Windows 環境下,網絡應用程序編程接口稱作 Windows Socket。為了支持用戶開發面向應用的通信程序,大部分系統都提供了一組基于 TCP 或者 UDP 的應用程序編程接口(API),該接口 通常以一組函數的形式出現,也稱為套接字 Socket。
域名服務器
1.根域名服務器:一個主機發出 DNS 查詢請求時,若本地域名服務器無法解析,就首先求助于根域名服務器。根域名服務器共有 13 個,每個都知道所有頂級域名服務器的 IP 地址,它告訴本地服務器下一步應當找哪個頂級域名服務器查詢
2.頂級域名服務器:管理在該頂級域名服務器注冊的所有二級域名,收到 DNS 請求時,就給出相應的應答(可能是最后的結果(如 x.com 的 IP 地址),也可能是下一步應當查找的域名服務器的 IP 地址)
3.授權域名服務器:負責一個區的域名服務器,授權服務器總能將其管轄的主機名轉換為該主機的 IP 地址
4.本地域名服務器
域名解析過程
1.遞歸查詢:本地域名服務器只需向根域名服務器查詢一次
2.迭代查詢:本地域名服務器每次都自己查詢。
RAM
隨機存取存儲器,又稱作隨機存儲器,是與 CPU 直接交換數據 的內部存儲器,也俗稱內存。它可以隨時讀寫,而且速度很快,通常作為操作系統或其他正在運行中的程序的臨時數據存儲媒介
DRAM
DRAM 一般用作計算機中的主存儲器,即內存條。DRAM 只能將 數據保持很短的時間。通過在電容上存儲電荷保存數據,所以必須隔一段時間刷新(refresh)一次,如果存儲單元沒有被刷新,存儲的信息就會丟失。 關機就會丟失數據。電路結構簡單,集成度高。
SRAM
一般用來作為計算機中的高速緩沖存儲器,即 CPU 或 GPU 內部 的 Cache。所謂的“靜態”,是指這種存儲器只要保持通電,里面儲存的數據就可以恒常保持。然而,當電力供應停止時,SRAM 儲存的數據還是會消失速度快, 管子數量多,結構復雜,集成度低。
SRAM 與 DRAM 的區別
SRAM 是一種具有靜止存取功能的內存,不需要刷新電路即能保存它的內部存儲數據,速度快。
DRAM 是動態隨機存儲器, 只能將數據保存很短時間。
VNC(Virtual Network Console)虛擬網絡控制臺
由 VNC server 和 VNC viewer 兩部分組成,在任何安裝了客戶端的應用程序(vncviewer)的計算機都能十分方便地與安裝了服務器端的應用程序(vncserver)的計算機相互連接。 1)VNC 客戶端通過瀏覽器或 VNC Viewer 輸入服務器端的主機名或 IP 地址連接至 VNC Server。
2)VNC Server 傳送一對話窗口至客戶端,要求輸入連接密碼,以及存取的 VNC Server 顯示裝置。
3)在客戶端輸入聯機密碼后,VNC Server 驗證客戶端是否具有存取權限。
4) 若是客戶端通過 VNC Server 的驗證,客戶端即要求 VNC Server 顯示桌面環境。
5)VNC Server 通過 X Protocol 要求 X Server 將畫面顯示控制權交由 VNC Server 負責。
6)VNC Server 將來由 X Server 的桌面環境利用 VNC 通信協議送至客戶端,并且允許客戶端控制 VNC Server 的桌面環境及輸入裝置。
大程序在小內存
通過虛擬內存技術實現,通過此技術,系統好像 為用戶提供了一個比實際內存大得多的,稱為虛擬存儲器。基于局部性原理(時 間局部性、空間局部性),將程序裝入時,將程序的一部分裝入內存,其余部分留在外存,就可以啟動程序執行。
病毒
計算機病毒,是指編制或者在計算機程序中插入的“破壞計算機功能或者毀壞數據,影響計算機使用,并能自我復制的一組計算機指令或者程序代碼”。
病毒分類:
根據病毒存在的媒體,病毒可以劃分為網絡病毒,文件病毒,引導性病毒。
根據病毒破壞的能力可劃分為:
① 無害型:除了傳染時減少磁盤的可用空間外,對系統沒有其他影響
② 無危險型:這類病毒僅僅是減少內存、顯示圖像、發出聲音及同類音響。
③ 危險型:這類病毒在計算機系統操作中造成嚴重的錯誤。
④ 非常危險型:這類病毒刪除程序、破壞數據、清除系統內存區和操作系統中重要的信息。
惡意病毒“四大家族”
宏病毒、CIH病毒、蠕蟲病毒、木馬病毒
① 宏病毒:專門針對特定的應用軟件,可感染依附于某些應用軟件內的宏指令,他很容易通過電子郵件附件、文件下載和群組軟件等多種方式進行傳播如 Microsoft Word 和 Excel。
宏病毒的傳播方式通常如下:字處理程序 word 在打 開一個帶宏病毒的文檔或模板時,激活了病毒宏,病毒宏將自身復制至 word 的通用(Normal)模板中,以后在打開或關閉文件時病毒宏就會把病毒復制到該文件中。
造成危害:文檔無法正常使用。
② 蠕蟲病毒:蠕蟲病毒是無須計算機使用者干預即可運行的獨立程序,它通過不停的獲得網絡中存在漏洞的計算機上的部分或全部控制權來進行傳播。蠕蟲病毒入侵并完全控制一臺計算機之后,就會把這臺機器作為宿主,進而掃描并感染其他計算機。當這些新的被蠕蟲入侵的計算機被控制之后,蠕蟲會以這些計算機為宿主繼續掃描并感染其他計算機,這種行為會一直延續下去。
蠕蟲使用這種遞歸的方法進行傳播,按照指數增長的規律分布自己,進而及時控制越來越多的計算機。
③ CIH 病毒:CIH 屬惡性病毒,當其發作條件成熟時,其將破壞硬盤數據,同時有可能修改 BIOS 程序,使得主機無法啟動
1、以 2048 個扇區為單位,從硬盤主引導區開始依次往硬盤中寫入垃圾數據,直到硬盤數據被全部破壞為止。最壞的情況下硬盤所有數據(含全部邏輯盤數據)均被破壞,如果重要信息沒有備份, 那就只有哭了!
2、某些主板上的 Flash Rom 中的 BIOS 信息將被清除。
④ 木馬病毒:木馬病毒是指隱藏在正常程序中的一段具有特殊功能的惡意代碼,是具備破壞和刪除文件、發送密碼、記錄鍵盤和攻擊 Dos 等特殊功能的后門程序(后門程序一般是指那些繞過安全性控制而獲取對程序或系統訪問權的程序方法。在軟件的開發階段,程序員常常會在軟件內創建后門程序以便可以修改程序設計中的缺陷。)。木馬病毒其實是計算機黑客用于遠程控制計算機的程序,將控制程序寄生于被控制的計算機系統中,里應外合,對被感染木馬病毒的計算機實施操作。
完整的木馬程序一般由兩部分組成:一個是服務器端.一個是控制器端。“中了木馬”就是指安裝了木馬的服務器端程序,若你的電腦被安裝了服務器端程序, 則擁有相應客戶端的人就可以通過網絡控制你的電腦。
摩爾定律
當價格不變時,集成電路上可容納的元器件的數目,約每隔 18 個月便會增加一倍,性能也將提升一倍。這一定律揭示了信息技術進步 的速度
摩爾第二定律
隨著集成電路芯片性能的大幅度提高,芯片生產廠 的成本也在提高。制造芯片的成本平均每 4 年翻一番。他的這一說法被人稱為摩 爾第二定律 。
新摩爾定律
中國 IT 專業媒體上出現了“新摩爾定律”的提法,指的是中國 Internet 聯網主機數和上網用戶人數的遞增速度,大約每半年就翻一 番。而且專家們預言,這一趨勢在未來若干年內仍將保持下去。
軟件項目管理
為了使軟件項目能夠按照預定的成本、進度、質量順利完成,而對人員、產品、過程和項目進行分析和管理的活動。
主要內容有: 估算軟件規模,工作量估算,進度計劃,人員組織,質量保證,軟件配置管理, 能力成熟度模型。
進程切換開銷
1.切換虛擬地址空間(切換頁目錄以使用新的地址 空間)
2.切換 CPU 上下文 3.切換內核棧。
線程切換開銷
1.切換 CPU 上下文
2.切換內核棧。
進程切換比線程切換開銷大
是因為進程切換時要切頁表,而且往往伴道隨著頁調度,因為進程的數據段代碼段要換出去,以便把將要執行的進程 的內容換進來。
&和&&區別
相同點:&和&&都可以用作邏輯與的運算符,表示邏輯 與(and)。
不同點:
(1)&&具有短路的功能,而&不具備短路功能。&&運算符 第一個表達式為 false 時,則結果為 false,不再計算第二個表達式。而&不管 前面條件是否正確,后面都執行
(2)&還可以用作位運算符,當&操作符兩邊的 表達式不是 boolean 類型時,&表示按位與操作,我們通常使用 0x0f 來與一個整數進行&運算,來獲取該整數的最低 4 個 bit 位,例如:0x31 & 0x0f 的結果為 0x01。
編譯執行
把源程序的執行過程嚴格地分成兩大步:編譯和運行。
由編譯程序將源代碼一次性編譯成目標程序,再由機器運行目標程序。編譯方式即先把源程序全部翻譯成目標代碼,然后再運行此目標代碼,獲執行結果。
解釋執行
由解釋器根據輸入的數據當場執行而不生成任何目標程序。 解釋執行程序是高級語言翻譯程序的一種,它將源語言(如 VASIC)書寫的源程序作為輸入,解釋一句后就提交給計算機執行一句,并不生成目標程序。 這種工作方式非常適合于人通過終端設備與計算機會話,如在終端上打一條命令 或者語句,解釋程序就立即將此語句解釋成一條或幾條指令并提交硬件立即執行 且將執行結果反映到終端,從終端把命令打入后,就能立即得到計算結果。這的 確很方便,很適合于一些小型機的計算問題。
編譯執行與解釋執行的區別
編譯執行的語言因為要直接同 CPU 的指令集打交道,具有很強的指令依賴性和系統依賴性,兼容性差。
解釋執行的語言只要存在解釋器,源代碼可以在任何操作系統上運行,可移植性好。解釋執行每次都要經過解釋過程, 在很多情況下都是相當于每次都在做重復功,這樣運行的效率比較低,而編譯執行只需要編譯一次,以后再運行就無需編譯,因此效率高。
USB
通用串行總線(Universal Serial Bus),是一個外部總線標準, 是一種輸入輸出接口的技術規范,規范電腦與外部設備的連接和通訊。
它只有 4 根線,兩根電源,兩根差分信號線,故信號是串行(每次傳輸一個數據位)傳輸的。
黑線:gnd ;紅線:vcc ;綠線:data+ ;白線:data-
大數據 Hadoop
大數據是通過傳統數據庫技術和數據處理工具不能 處理的龐大而復雜的數據集合,具有規模大(volume)、速度快(velocity)、 類型多(variety)、價值(value)四大特征。
總線
是用于傳送信息的公共途徑。總線可以分為數據總線 DB(Data Bus)、地址總線 AB(Address Bus)和控制總線 CB(Control Bus)
什么是分頁?
分頁(英語:Paging),是一種操作系統里存儲器管 理的一種技術,可以使電腦的主存可以使用存儲在輔助存儲器中的數據。操作系 統會將輔助存儲器(通常是磁盤)中的數據分區成固定大小的區塊,稱為“頁”。 當不需要時,將分頁由主存(通常是內存)移到輔助存儲器;當需要時,再將數 據取回,加載主存中。相對于分段,分頁允許存儲器存儲于不連續的區塊以維持 文件系統的整齊。分頁是磁盤和內存間傳輸數據塊的最小單位。
網絡安全技術有哪些
虛擬網技術,防火墻技術,病毒防護技術,入侵檢測技術,安全掃描技術,認證和數字簽名技術,VPN,應用系統安全技術。
c/s 架構和 b/s 架構的區別
1、B/S 架構是針對 C/S 架構缺點進行 改進后提出的網絡結構模式。 B/S 結構屬于 C/S 結構,是一種特殊的 C/S,因為 瀏覽器只是特殊的客戶端。
2、C/S 可以使用任何通信協議,而 B/S 架構規定必 須實現 HTTP 協議。
CSMA/CD
即載波偵聽多路訪問/沖突檢測,是廣播型信道中采用一 種隨機訪問技術的競爭型訪問方法,具有多目標地址的特點。它處于一種總線型 局域網結構,其物理拓撲結構正逐步向星型發展。CSMA/CD 采用分布式控制方法, 所有結點之間不存在控制與被控制的關系。
TCP 擁塞控制四種方法
滑動窗口機制、慢啟動機制、擁塞避免機制、 快速重傳與恢復。
java 線程同步實現方法
使用同步代碼塊、使用同步方法、使用互 斥鎖 ReetrantLock(更靈活的代碼控制)
文件系統中文件的打開和關閉有什么作用
對于操作系統而言,文件來操作的最高級別的目的,就是對于文件的獨享權。 沒有打開文件之前,文件只是存在于硬盤上的數據集合。 當進行打開文件操作時, 操作系統會建立文件登記表中記錄該文件處于打開狀態,除了申請進行打開文件操作的進程,其他程序不能對文件進行訪問和寫入。 同理,進行關閉文件操作時,操作系統會在文件登記表中清除該文件的打開狀態, 此時,其他的程序,才能獲得文件的完全控制權。
為什么主存是動態的而緩存是靜態的
主存用動態是因為價格低, 容量大,體積小。
緩存需要的速度快,而靜態的 RAM 比動態的快,讀寫速度快。
網絡地址變換協議是什么
網絡地址轉換協議簡稱NAI ,把局域網地址轉換成公網地址,或者內網地址轉換成內網地址。
軟件工程模型
瀑布模型、 V 過程模型、 原型實現模型、 快速應用開發(RAD)、 增量模型 、螺旋模型、 極限編程(XP)
操作系統分類
批處理系統(MVX、DOS/VSE)
分時系統(WINDOWS、UNIX、XENIX、MAX OS)
實時系統(iEMX、VRTX、RTOS、RT Linux)
網絡操作系統(Netware、Windows NT、OS/2warp)
分布式系統(Amoeba)
子網掩碼
子網掩碼(subnet mask)又叫網絡掩碼、地址掩碼、子網絡遮罩,它是一種用來指明一個 IP 地址的哪些位標識的是主機所在的子網, 以及哪些位標識的是主機的位掩碼。子網掩碼不能單獨存在,它必須結合 IP 地址一起使用。子網掩碼只有一個作用,就是將某個 IP 地址劃分成網絡地址和主機地址兩部分。子網掩碼是一個 32 位地址,用于屏蔽 IP 地址的一部分以區別網絡標識和主機標識,并說 明該 IP 地址是在局域網上,還是在遠程網上。
ASCII
ASCII:(American Standard Code for Information Interchange, 美國標準信息交換代碼)是基于拉丁字母的一套電腦編碼系統,主要用于顯示現 代英語和其他西 歐語言。它是現今最通用的單字節編碼系統。
外圍設備
計算機系統中除主機外的其他設備。是計算機與外界進行通信的工具。包括輸入和輸出設備、外存儲器、模數轉換器、數模 轉換器、外圍處理機等。 - 例如打印機、磁盤驅動器或鍵盤。
抽象類和接口的區別?
1.接口里面只能包含抽象方法、靜態方法和默認方法,不能為普通方法提供實現; 抽象 類則可以包含普通方法;
2.接口里只能定義靜態常量,不能定義普通變量;抽象類里都可以;
3.接口不能包含構造器,抽象類可以;
4.一個類只能有一個直接父類,一個類可以直接實現多個接口;
重載和重寫
重寫:在子類中把父類本身有的方法重新寫一遍,返回類型必須相同;
重載:在一個類中,同名方法如果有不同的參數列表,則視為重載,返回類型沒有要求
分頁思想
總結
以上是生活随笔為你收集整理的考研复试面试四选二内容的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 翼虎AE教程 Max贴图教程 地址备
- 下一篇: 力扣每日一题