精品丰满熟女一区二区三区_五月天亚洲欧美综合网_亚洲青青青在线观看_国产一区二区精选

  • <menu id="29e66"></menu>

    <bdo id="29e66"><mark id="29e66"><legend id="29e66"></legend></mark></bdo>

  • <pre id="29e66"><tt id="29e66"><rt id="29e66"></rt></tt></pre>

      <label id="29e66"></label><address id="29e66"><mark id="29e66"><strike id="29e66"></strike></mark></address>
      學習啦>學習電腦>操作系統(tǒng)>操作系統(tǒng)基礎知識>

      電腦操作系統(tǒng)基礎知識大全

      時間: 懷健0 分享

      這是一本現(xiàn)代操作系統(tǒng)介紹的電子書,雖然看上去很專業(yè),但是還是很通俗,略有電腦基礎的人可以讀一讀,會從更加底層一些的角度全面認識電腦。下面就讓小編帶你去看看電腦操作系統(tǒng)基礎知識吧,希望能幫助到大家!

      操作系統(tǒng)基礎解析:Windows和Linu__ 到底有何不同?

      計算機操作系統(tǒng)是基礎軟件,分為閉源和開源兩類。

      廣義的操作系統(tǒng)包括:計算機(PC、工作站、服務器)系統(tǒng)、移動端系統(tǒng)(例如鴻蒙)、嵌入式系統(tǒng) 等。本文只涉及計算機操作系統(tǒng)。

      計算機操作系統(tǒng)的功能角色:作為用戶和計算機硬件資源之間的交互,管理調度硬件資源,為應用 軟件提供運行環(huán)境。操作系統(tǒng)屬于基礎軟件,是系統(tǒng)級程序的匯集,為用戶屏蔽底層硬件復雜度, 并提供編程接口和操作入口。操作系統(tǒng)控制處理器(CPU)調度系統(tǒng)資源,控制應用程序執(zhí)行的時機, 決定各個程序分配的處理器時間(CPU time)。操作系統(tǒng)需要兼容底層硬件和應用軟件,才能實現(xiàn)計算機的功能。

      根據(jù)核心代碼是否向開放,操作系統(tǒng)可劃分為兩類:開源系統(tǒng)、閉源系統(tǒng)。

      1. 閉源操作系統(tǒng):代碼不開放,以微軟 Windows 系統(tǒng)為代表

      微軟公司內部的研發(fā)團隊開發(fā) Windows 操作系統(tǒng),并開發(fā)配套的應用軟件,比如 Office。在生態(tài) 建設方面,Intel 和 Windows 長期合作形成 Wintel 體系,在 PC 端市占率全球領先

      Windows 系統(tǒng)的訪問分為 User mode(用戶模式)和 Kernel mode(內核模式)。用戶級的應用程序在 用戶模式中運行,而系統(tǒng)級的程序在內核模式中運行。內核模式允許訪問所有的系統(tǒng)內存和 CPU 指令。Windows 系統(tǒng)從最早期的 16 位、32 位到現(xiàn)在流行的 64 位,系統(tǒng)版本從最初的 Windows 1.0 到 Windows 95、Windows 98、Windows 2000、Windows 2003、Windows __P、Windows Vista、Windows 7、Windows 8、Windows 8.1、Windows 10 和 Windows Server 服務器企業(yè)級 操作系統(tǒng),不斷持續(xù)更新。

      Windows 系統(tǒng)最大的優(yōu)勢在于圖形界面,使得普通用戶操作起來非常便利。相比大部分 Linu__ 系 統(tǒng),windows 的常用軟件安裝和系統(tǒng)設置不需要以命令行的方式去輸入系統(tǒng)指令,只需要點擊“按 鈕”即可完成。如今,絕大多數(shù)常見軟件、專用軟件和底層硬件都支持 Windows 操作系統(tǒng),形成 了 Window 強大的生態(tài)整體。

      2. 開源操作系統(tǒng):代碼免費開放,以 Linu__ 操作系統(tǒng)為代表

      Linu__ kernel(內核)由 Linus Torvalds 在 1991 年發(fā)布,代碼免費公開,由全球開發(fā)者共同貢獻, 已成為影響最廣泛的開源軟件項目。以 Linu__ 內核為基礎,不同的開發(fā)團體(開源社區(qū)、企業(yè)、個 人等)對內核代碼進行一定的修改和補充,加入 GUI(圖形界面)、應用等部分,形成了相應的 Linu__ 操作系統(tǒng)發(fā)行版。

      Linu__ 系統(tǒng)版本之間存在衍生關系,由此形成 RedHat、Slackware、Debian 等幾大家族,各家族 內部又衍生出一些著名版本,如 Ubuntu、SUSE、CentOS、Red Hat Enterprise Linu__、Fedora 等。

      Linu__ kernel 是開源項目,由全球范圍的開發(fā)者(企業(yè)、團體、獨立開發(fā)者)共同貢獻源代碼。Linu__ 的官方組織是 Linu__ 基金會,作為非盈利的聯(lián)盟,協(xié)調和推動 Linu__ 系統(tǒng)的發(fā)展,以及宣傳、保護 和規(guī)范 Linu__。Linu__ 基金會由開源碼發(fā)展實驗室(Open Source Development Labs,OSDL)與自 由標準組織(Free Standards Group ,FSG) 于 2007 年聯(lián)合成立。

      開源社區(qū)是 Linu__ 系統(tǒng)的創(chuàng)新源泉和主要的開發(fā)場所。Linu__ 操作系統(tǒng)發(fā)行版分為社區(qū)版本和商 業(yè)版本。社區(qū)版本數(shù)量較多,其開發(fā)和維護的主體是開源社區(qū)。少數(shù)的商業(yè)版本(比如紅帽企業(yè)版) 則是在社區(qū)版本的基礎上,進一步優(yōu)化而來。整體來看,無論是否涉及商業(yè)活動,開源社區(qū)是 Linu__ 發(fā)行版的創(chuàng)新來源和主要的開發(fā)場所。而成熟的開源社區(qū)通常由相應的開源基金會(或者項目委員 會)進行管理。開源基金會為開發(fā)社區(qū)制定了規(guī)則,進行資源管理,負責可能的商務對接,以及保 護社區(qū)的健康運轉。社區(qū)的開源基金會(委員會)一般由開源貢獻方進行贊助和決策支持。

      許多開源社區(qū)背后都有一個主導企業(yè),為社區(qū)提供資金和研究支撐,甚至直接委派員工參與開源 項目。例如,F(xiàn)edora 社區(qū)的核心開發(fā)者中 1/3 是紅帽的正式雇員。通過資助和維護開源社區(qū)的方 式,企業(yè)可以發(fā)揮研究力量的“杠桿”作用,通過向社區(qū)輸入自有的研究資源,吸引更多的外部貢 獻者參與進來,擴大創(chuàng)意來源;另一方面,開源社區(qū)版本也成為企業(yè)擴大技術影響力的重要途徑。

      Linu__ 操作系統(tǒng)由 4 部分組成:kernel、shell、文件系統(tǒng)、應用程序。Kernel(內核)是操作系統(tǒng)的 核心,不同于 windows 的內核,Linu__ 的內核不僅實現(xiàn)了進程調度、內存管理、中斷處理、異常陷 阱處理,而且還實現(xiàn)了進程管理、進程通信機制、虛擬內存管理、文件系統(tǒng)驅動和 USB、網絡、聲 音等各類設備驅動子系統(tǒng),決定了整個系統(tǒng)的性能和穩(wěn)定性。而 shell 是系統(tǒng)的用戶界面,提供用 戶與內核交互的接口,接收用戶輸入的命令并送入內核去執(zhí)行。

      Linu__ 操作系統(tǒng)主要的優(yōu)勢領域是服務器和嵌入式。據(jù) Linu__ 基金會統(tǒng)計,全球 90%的公有云平 臺采用了 Linu__ 系統(tǒng),99%的超算和 62%的嵌入式設備也都是基于 Linu__。亞馬遜 AWS、微軟 Azure、微軟 Azure、谷歌云平臺和阿里云等主流云服務商,都提供了 Linu__ 系統(tǒng)方案。全球公有 云平臺運行的所有應用,超過 54%是運行在 Linu__ 虛擬機上。甚至微軟 Azure 的近 30%的虛擬機 也是基于 Linu__。根據(jù) IDC 在 2017 年的統(tǒng)計數(shù)據(jù),全球服務器操作系統(tǒng)使用份額(免費+付費)中, 68%是 Linu__ 服務器操作系統(tǒng)。

      Linu__ 操作系統(tǒng)在服務器領域的普及,主要由于 3 個方面:

      1)創(chuàng)新方面,集思廣益。全球開發(fā)者對 Linu__ 內核保持了持續(xù)的更新,提供了充足的創(chuàng)新動力。據(jù) GitStats 分析結果,截至 2018 年 9 月,已有超過 19000 名開發(fā)者為 Linu__ 內核貢獻了代碼, 這些開發(fā)者遍布全球范圍超過1500個組織/企業(yè)。廣泛分布的開發(fā)者,從不同視角不同方面對Linu__ 內核的補充,使得 Linu__ 系統(tǒng)得以快速適應服務器領域的變化。

      2)系統(tǒng)代碼可以修改和自定義,用戶可調用計算機資源的自由度極高。Linu__ 操作系統(tǒng)的使用者 可以輕松查看系統(tǒng)代碼,可以自由修改代碼來修補常見的問題,也可以開發(fā)自己的程序并添加入 Linu__ 操作系統(tǒng)中。相比 Windows 等閉源系統(tǒng),Linu__ 支持了使用者對于計算機資源極大的使用自 由度,支持專業(yè)用戶去構建和自定義服務器,由此獲得了互聯(lián)網公司、云計算公司的青睞。

      3)運行效率高,運維成本低。Linu__ 系統(tǒng)在服務器上面的運行效率較高,相對比較輕量化,除非硬 件資源分配出現(xiàn)問題,不易出現(xiàn)系統(tǒng)卡死狀況。而且 Linu__ 系統(tǒng)天然地支持虛擬化。因此,在服務 器集群上,Linu__ 系統(tǒng)的運維成本較低。

      4)安全。Linu__ 從發(fā)展根源上就是針對多用戶系統(tǒng)設計的,系統(tǒng)管理員和 root 用戶具有系統(tǒng)管理 權限。Linu__ 面向全球開發(fā)者開源,系統(tǒng)文件都是文檔,在全球開發(fā)者多次的篩查和更新中,基本 排除了“后門植入”的可能。實際應用中,普通不成熟的 Linu__ 操作系統(tǒng)確實可能存在安全問題, 也是和系統(tǒng)的文檔屬性有關。例如,用戶 root 權限和 sudo 指令可在有意或無意間修改 Linu__ 系 統(tǒng)文檔,可能會對其他用戶或整個系統(tǒng)造成不利影響。因此,成熟的 Linu__ 操作系統(tǒng)解決方案,有 必要對這類屬性進行設計方面的防范,去進行適當?shù)臋嘞奁帘?。而這些安全屬性的設計,本質上并 不存在難以解決的障礙。

      電腦操作系統(tǒng)維護10條基礎知識!

      1、經常進行“磁盤清理”和磁盤碎片整理”

      當硬盤用久了,無數(shù)次的新增、更改和刪除程序和文件后,就會造成很多斷斷續(xù)續(xù)的扇區(qū),非連續(xù)性的文件便會愈來愈多,硬盤磁頭便需要花更多時間跳來跳去來讀取數(shù)據(jù),這就導致硬盤速度減慢。

      因此,我們應該定期進行“磁盤清理”和磁盤碎片整理”,將所有非連續(xù)性的文件重新編排整齊。

      處理方法:點開始-程序-附件-系統(tǒng)工具-磁盤清理程序和磁盤碎片整理程序。有可能整理過程很慢,那是你長時間沒有清理或者有只讀文件,請多執(zhí)行幾次,耐心等待。碎片清理時要退出所有的應用程序。

      2、移動internet臨時文件和臨時交換文件

      internet臨時文件和臨時交換文件是我們上網時產生的臨時文件,是產生磁盤碎片的罪魁禍首,叫它離開系統(tǒng)盤是最好的辦法處理方法:

      ⑴在桌面上右鍵點internet e__plorer圖標,再點出來的“屬性”,出屬性對話框,在internet臨時文件后面點“設置”,在出來的設置對話框中點移動文件夾,再選擇除系統(tǒng)盤以外的硬盤(如D盤);

      ⑵、開始-設置-控制面板-雙擊系統(tǒng),在“性能”項上點“設置”,在“性能選項”上點“高級”,在“虛擬內存”選項點“更改”,選擇除系統(tǒng)盤外的硬盤如d,最后確定。關機重啟,ok。

      3、開啟wondows __p保留的20%帶寬

      wondows __p默認保留了20%的帶寬,我們可以將它開啟,充分利用帶寬。處理方法:點開始-運行,輸入gpedit.msc,打開組策略-計算機配置—管理模板—網絡—Qos數(shù)據(jù)包調度程序,右擊窗口右邊的“限制可保留帶寬”選項,單擊“屬性”命令,在彈出的“限制可保留帶寬屬性”對話框中的“設置”選項卡中,勾選“已啟用”單選框,將下面的“帶寬限制”數(shù)值調到“0”。點確定,ok。

      4、刪除不必要的系統(tǒng)聲音

      系統(tǒng)聲音是計算機事件的一組聲音方案,實際一點用處沒有,還占用一部分系統(tǒng)內存,干掉它是明智的選擇。

      處理方法:右鍵點通知欄里的小喇叭,點調整音頻屬性,在屬性框中點聲音,點方案后面的“刪除”,再確定,ok。

      5、定期清理internet預讀文件

      在聊天室碰到好多次有些朋友突然打不開我們聊天室的網頁了,而其他的網站可以。問題是出現(xiàn)了死連接,實際__P使用一段時間后,預讀文件夾里的文件會變得很大,里面會有死鏈文件,這會減慢系統(tǒng)時間。建議:定期刪除。

      處理方法:在桌面上右鍵點internet e__plorer圖標,再點“屬性”,出屬性對話框,在internet臨時文件后面點“刪除cookies”、“刪除文件”。

      提醒:刪除文件時請選擇“刪除所有脫機文件”。

      6、關于internet e__plorer

      IE并不是最佳的瀏覽器,其缺點之一是占用太多的系統(tǒng)資源,第一次開啟IE,占用7%左右的資源,以后每開啟一個IE窗口,占用4%左右的資源?,F(xiàn)在上網,網頁自身自動開啟的彈出式窗口就多,快速消耗你的內存是很自然的事情,CUP使用率常在100%也不奇怪。

      7、優(yōu)化硬盤參數(shù)

      右擊“我的電腦”,選“屬性”,選中“硬件”下的“設備管理器”標簽,然后在“磁盤驅動器”中找到你的硬盤,查看它的屬性,在“磁盤屬性”標簽中選中“啟用了寫入緩存”;在“IDE控制器”中分別查看“Primary IDE Channel”和“Secondary IDE Channel”的屬性,在“高級設置”中將“設備類型”設定為“自動檢測”,“傳輸模式”設定為“DMA(若可用)”。

      8、讓系統(tǒng)自動釋放系統(tǒng)資源

      在Windows中每運行一個程序,系統(tǒng)資源就會減少。即使把程序關閉,在內存中還有一些沒用的.DLL文件在運行,這樣就使得系統(tǒng)的運行速度下降??梢酝ㄟ^修改注冊表,令程序關閉后自動清除沒有用的DLL文件,收回系統(tǒng)資源。

      處理方法:運行regedit打開注冊表編輯器,找到并選中HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrenVersione__plorer主鍵,在右邊窗格單擊右鍵,新建一個字符串值,名為AlwaysUnloadDll,然后將AlwaysUnloadDll的鍵值改為1,退出注冊表,重啟計算機。

      9、固定自己的DNS和IP

      一般__P/2000是自動檢測IP和DNS地址的,但我們可以自己設置好,以提高系統(tǒng)效率,前提是你要與服務商聯(lián)系,獲取你的DNS和IP地址。處理方法:點開始-設置-控制面板-雙擊網絡連接,點方框中TCP/IP,點屬性,點IP地址,選擇“指定IP地址”,填入你從服務商那里得到的IP地址和子關掩碼;點DNS配置,選擇“啟用DNS",填入你得到的服務器地址,添加。

      10、關于ADSL貓的使用注意事項

      因為貓對電源的要求實際很高,只是我們不太注意,貓的電源應該盡量采用獨立的電源線,中間要注意避開大功率的用電設備,防止其他用電設備對它的干擾,采取一定的屏蔽接地措施是明智的。

      另外注意選擇品牌大的貓并注意與服務商提供服務的兼容性,如果ISP的局端設備有了改動,這時我們可能會經常掉線,這時建議下載Firmware版本刷新程序對“大貓”刷新,一般可以完全解決。再者使貓保持良好的散熱效果,最好將貓的下面墊空。

      操作系統(tǒng)基礎-CPU虛擬化

      操作系統(tǒng)的三個要素

      操作系統(tǒng)的定位是計算機資源(CPU,內存,硬盤,各種I/O設備等)的管理者。最早的計算機系統(tǒng)一次只運行一個程序,操作系統(tǒng)是作為庫函數(shù)的形式存在的,這種模式無法充分的利用計算機資源,對于早期造價動輒數(shù)百萬美元的計算機來說,這是巨大的浪費,因此人們引入了現(xiàn)代的操作系統(tǒng)來支持方便的多進程并發(fā)執(zhí)行,允許多個用戶同時運行他們的程序。具體來說,操作系統(tǒng)提供了這么三個要素:

      虛擬化(Virtualization),主要指的是CPU和內存虛擬化,仿佛每個進程都有自己獨占的CPU和內存。

      并發(fā)(Concurrency),主要指的是線程級的并發(fā)。

      持久化(Persistance),主要指的是文件系統(tǒng)。

      存儲器層次結構

      為什么說單個程序不能充分利用計算機資源呢?這跟計算機的存儲器層次結構有關,計算機中有各種各樣的存儲器:CPU上的寄存器、一二級緩存,內存、硬盤……這些存儲器的容量、性能和成本各不相同,一個典型的存儲器層次結構如下:

      越是靠近上層(CPU)存儲器的性能越好,但是容量越小,(每字節(jié))存儲成本越高;越是遠離CPU,存儲器的性能越差,但是容量越大,(每字節(jié))存儲成本越低。比如,CPU訪問一級緩存緩存只需要1個時鐘周期,而進行磁盤I/O可能需要上千萬個時鐘周期。程序在進行I/O操作的時候,CPU實際是空閑的,這時候可以讓CPU運行其他程序,提供計算機資源的利用率。

      另一方面,為了彌補高速CPU到低速I/O設備之間的差距,在存儲器之間引入了多層的緩存,比如本地硬盤作為網絡的緩存,內存(DRAM)作為硬盤的緩存,SRAM作為內存的緩存。由于局部性原理的存在,這個存儲器層次結構通常工作得很好。所謂得局部性原理包含兩項:

      一是時間局部性,程序一旦引用過某個存儲器位置,接下來它很可能還會引用這個位置;

      二是空間局部性,程序一旦引用過某個存儲器位置,接下來它很可能還會引用附近的位置。

      進程

      操作系統(tǒng)提供了進程這個抽象概念,一個進程就是一個正在運行的程序。根據(jù)Steam 2020年5月的調查,現(xiàn)在主流的PC配置是64位的4核物理CPU和16G內存[1],而目前__86_64的PC上通常會運行幾十上百個進程,每個進程擁有256TB的的虛擬內存。正是通過CPU和內存虛擬化,操作系統(tǒng)提供了這種幻象:似乎每一個進程都有一個獨占的CPU和一片巨大的獨占內存。

      在深入這些細節(jié)以前,我們先來看看計算機上運行一個進程需要維護些什么狀態(tài)信息:

      用來存取指令和數(shù)據(jù)的內存,由于進程會根據(jù)地址來讀寫內存,它們也叫做內存地址空間,當然這里指的虛擬內存地址空間(Virtual Memory Address Space)。進程的堆棧信息也在這個地址空間中。

      CPU中的通用寄存器,如%ra__

      CPU中的特殊寄存器,如:

      程序計數(shù)器(Program Counter/PC),或叫做指令指針(Instruction Pointer/IP)

      棧指針(stack pointer)及其對應的基址指針(frame pointer)

      I/O相關的信息,比如當前打開的文件,Socket套接字等。

      操作系統(tǒng)通過分時復用的方式實現(xiàn)了CPU的虛擬化,運行進程A一段時間后,主動或被動地把這個進程的狀態(tài)信息寫入物理內存然后從物理內存中讀取另一個進程B的狀態(tài)信息,從而恢復進程B的運行。

      進程在其生命周期中,始終處于以下三個狀態(tài)中的一個:

      Running:進程正在通過CPU執(zhí)行指令

      Ready:進程可以運行,但是操作系統(tǒng)還沒有調度它

      Blocked:進程在等待某個事件發(fā)生(比如等待磁盤讀取完成),因此還不能運行

      這是一個理想化的狀態(tài),Linu__中進程還有一些別的狀態(tài)

      內核中有一個數(shù)據(jù)結構叫做Process Control Block(PCB),用來記錄上面提到的各種信息,每個進程都有一個對應的PCB。

      CPU虛擬化

      下面來考慮實現(xiàn)CPU虛擬化要解決的兩個核心問題:

      安全:用戶的進程不應該擁有無限制的權限,比如它不應該能訪問另一個用戶的文件,而權限檢查的把關就需要由操作系統(tǒng)來實現(xiàn)。

      性能:操作系統(tǒng)提供CPU虛擬化這種抽象機制的時候,不應該有太大的性能損失

      計算機系統(tǒng)采用了一種叫Limited Direct E__ecution的機制,通過硬件和操作系統(tǒng)的協(xié)作解決了這兩個問題。在具體實現(xiàn)上,CPU中有一個狀態(tài)位,表明了當前運行在什么模式下:

      用戶的進程運行在用戶模式下,這種模式能做的操作有限,比如它無法發(fā)起一個I/O請求,嘗試這么做會引發(fā)一個異常(e__ception),導致進程被操作系統(tǒng)殺死。

      與之相對的是,內核代碼運行在內核模式下,它能執(zhí)行所有特權操作,比如發(fā)起I/O請求。

      如果用戶進程需要發(fā)起特權操作,必須通過操作系統(tǒng)內核來進行,操作系統(tǒng)提供了很多這樣的服務入口,這就是系統(tǒng)調用,比如說打開一個文件用到的open()系統(tǒng)調用。這些系統(tǒng)調用看起來像是一個普通的函數(shù),而內部實現(xiàn)上只是把系統(tǒng)調用的編號,和對應的參數(shù)放到棧上某個特定的位置,然后調用trap指令,這個指令會完成以下幾個操作:

      把當前進程的CPU寄存器的值保存到內核棧中

      把運行模式切換為內核模式

      跳轉到該系統(tǒng)調用的處理函數(shù)

      內核檢查參數(shù)和權限和合法性,然后執(zhí)行相應的處理,無論結果如何,最終調用return-from-trap指令返回用戶進程,具體過程如下:

      從內核棧中還原該進程的CPU寄存器值

      把運行模式切換為用戶模式

      把程序計數(shù)器(PC)設置為進程的下一條指令,從而恢復用戶進程的運行。

      可以看到,用戶進程直接運行在CPU上, 因此保證了性能,而通過內核模式和用戶模式的區(qū)分保證了安全,這里主要的損耗在于上下文切換帶來的開銷。

      內核調用return-from-trap之前還會檢查進程是否有待處理的信號,如果有的話在這里觸發(fā)信號處理函數(shù)。

      搶占式調度

      Limited Direct E__ecution 存在一個問題,一個進程可能會長久地占用CPU,導致其他進程無法得到服務,那么這個進程什么時候把控制權還給操作系統(tǒng),讓操作系統(tǒng)調度其他進程呢?很自然地,一個合理的時間點是觸發(fā)系統(tǒng)調用的時候,操作系統(tǒng)可能會決定先執(zhí)行另一個進程。但如果是一個無限循環(huán),中間沒有任何系統(tǒng)調用呢?一些早期的系統(tǒng)如Mac OS采用了合作式的調度方案,長期運行的進程需要周期性地讓出CPU,比如在循環(huán)體中加入一個yield()之類的系統(tǒng)調用,允許操作系統(tǒng)調度其他進程。這個方案治標不治本,存在這些場景:

      某些惡意程序希望獨占CPU資源,不按照要求來做

      程序bug導致yield()一直沒有運行

      這種情況下,唯一能打破這種循環(huán)的方法只有重啟。要解決這個問題,操作系統(tǒng)仍然需要硬件的協(xié)助。硬件中有個計時器可以編程為每隔一定的時間(比如每十毫秒)就發(fā)起一個時鐘中斷,它會掛起當前運行的進程,跳轉到操作系統(tǒng)預先設置的中斷處理函數(shù)中。在這里,操作系統(tǒng)可以決定是繼續(xù)運行這個進程,或是調度別的進程。這就是搶占式調度。

      異常處理流

      程序運行的過程中會遇到各種各樣的異常情況,在計算機啟動的時候,操作系統(tǒng)就需要為各種異常指定對應的處理函數(shù)。CPU在執(zhí)行完一條指令之后,總是會檢查是否存在異常,如果有則觸發(fā)對應的異常處理函數(shù),否則繼續(xù)執(zhí)行下一條指令。

      注意:

      上文中有兩組寄存器的保存/還原操作,第一組是用戶態(tài)的寄存器,第二組是內核態(tài)的寄存器

      內核處理完系統(tǒng)的調用后,也可以選擇不切換進程,直接調用return-from-trap返回進程A

      進程調度策略

      上面描述了進程切換的機制,接下來討論進程調度的策略,也就是說每次操作系統(tǒng)要調度一個進程的時候,選擇運行哪一個進程。通常來說,我們有兩種類型的工作負載:

      交互式的進程,這種進程大部分時候都在Blocked的狀態(tài)等待I/O,不怎么占用CPU,但是需要得到高優(yōu)先級的處理,比如shell里面用戶每輸入一個字符,總是希望操作系統(tǒng)盡快響應并把這個字符顯示到屏幕上。

      非交互式的進程,他們大部分時間都在使用CPU執(zhí)行指令,處于Running的狀態(tài),這種進程的訴求是高吞吐量,盡可能減少進程切換帶來的開銷。

      下面來看看兩種常見的調度策略

      多級反饋隊列

      多級反饋隊列(Multi-Level Feedback Queue)致力于提高系統(tǒng)的整體響應時間。

      操作系統(tǒng)中維護多個進程隊列,從高到底依次為每個隊列分配不同的優(yōu)先級:高優(yōu)先級的進程分配較短的時間片,保證快速響應;低優(yōu)先級的進程分配較長的時間片,保證其高吞吐量。具體調度策略如下:

      如果A的優(yōu)先級大于B,運行A

      如果A的優(yōu)先級等于B,輪流運行A和B

      然而我們不知道每個進程的工作模式是交互式的還是非交互式,因此先假設他們都是需要快速響應的交互式進程:

      當進程啟動的時候,把它放到最高優(yōu)先級的隊列中

      當一個進程用完它的時間片之后,降低它的優(yōu)先級,也就是移到下一個隊列中

      還存在一個問題,如果有大量高優(yōu)先級任務,那么低優(yōu)先的任務可能會被餓死,因此:

      每隔一段時間把所有的進程都移動到最高優(yōu)先級的隊列

      按比例共享調度

      與MLFQ相對的,按比例共享調度(Proportional Share Scheduling)的目標是讓各個進程公平地獲取CPU時間。它最簡單的形式叫做彩票調度(lottery scheduling):假設系統(tǒng)使用100張彩票(編號為0-99),每次隨機選擇一張來決定運行哪個進程,進程A持有75張(編號為0-74),進程B持有剩余的25張(編號75-99)。任務調度器每次計算出一個0-99之間的隨機值,如果落在0-74之間則運行進程A,反之運行進程B,這樣保證了兩個進程總體獲得的CPU時間跟它們持有的票據(jù)數(shù)量一致(75%:25%)。

      最后還有個問題,怎么為進程分配票據(jù)(或者說權重),可以跟nice值關聯(lián)起來。

      Linu__的進程調度器

      Linu__當前采用的進程調度器叫做完全公平調度器(Completely Fair Scheduler/CFS),內部采用紅黑樹,實現(xiàn)了跟按比例共享調度類似的目標。之前采用的進程調度器為O(1),其實現(xiàn)類似前面說的多級反饋隊列。

      電腦操作系統(tǒng)基礎知識大全相關文章

      操作系統(tǒng)基礎知識大全有哪些

      電腦操作常識入門必學知識

      操作系統(tǒng)基礎知識范文

      操作系統(tǒng)基礎知識

      電腦系統(tǒng)安全基礎知識大全有哪些

      電腦知識大全菜鳥必備

      電腦入門基本知識大全

      電腦入門操作大全

      Win10系統(tǒng)的基礎知識大全有哪些

      學習電腦知識

      電腦操作系統(tǒng)基礎知識大全

      這是一本現(xiàn)代操作系統(tǒng)介紹的電子書,雖然看上去很專業(yè),但是還是很通俗,略有電腦基礎的人可以讀一讀,會從更加底層一些的角度全面認識電腦。下面就讓小編帶你去看看電腦操作系統(tǒng)基礎知識吧,希望能幫助到大家!操作系統(tǒng)基礎解析:Windows和Linu__ 到底有何不同?計算機操作系統(tǒng)是基礎軟件,分為閉源和開源兩類。廣義的操作系統(tǒng)包括:計算機(PC、工作站、服務器)系統(tǒng)、移動端系統(tǒng)(例如鴻蒙)、嵌入式系統(tǒng) 等。本文只涉及計算機操作系統(tǒng)。計算機操作系統(tǒng)的功能角色:作為用戶和計算機硬件資源之間的交互,管理調度硬件
      推薦度:
      點擊下載文檔文檔為doc格式

      精選文章

      • 計算機操作系統(tǒng)基礎知識
        計算機操作系統(tǒng)基礎知識

        操作系統(tǒng):用于管理和控制計算機所有的硬件和軟件資源的一組程序。它是最底層的系統(tǒng)軟件,是對硬件系統(tǒng)功能的首次擴充,也是其它系統(tǒng)軟件和應用軟件

      • 操作系統(tǒng)基礎知識大全
        操作系統(tǒng)基礎知識大全

        計算機系統(tǒng)中的一個系統(tǒng)軟件,它是這樣一些程序模塊的集合——它們管理和控制計算機系統(tǒng)中的軟硬件資源,合理地組織計算機的工作流程,以便有效地

      • 操作系統(tǒng)基礎必備知識
        操作系統(tǒng)基礎必備知識

        今天給大家推薦兩份大佬們總結的 PDF,一份是計算機基礎知識,一份是操作系統(tǒng),反正帥地看完之后,和面試官聊天,都有點飄了,廢話不多說,下面就讓

      • 操作系統(tǒng)必備基礎知識
        操作系統(tǒng)必備基礎知識

        今天給大家推薦兩份大佬們總結的 PDF,一份是計算機基礎知識,一份是操作系統(tǒng),反正帥地看完之后,和面試官聊天,都有點飄了,廢話不多說,下面就讓

      736599