一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

操作系統(tǒng)工作原理

 ldjsld 2016-07-31

操作系統(tǒng)工作原理

引言

如果您擁有一臺(tái)計(jì)算機(jī),那么您對(duì)操作系統(tǒng)一定不陌生。人們購(gòu)買(mǎi)的任何臺(tái)式或便攜式PC通常都預(yù)先安裝了Windows XP;Macintosh計(jì)算機(jī)預(yù)先安裝的是OS X;許多企業(yè)的服務(wù)器使用Linux或UNIX操作系統(tǒng)。操作系統(tǒng)(OS)是裝入計(jì)算機(jī)的第一個(gè)程序,如果沒(méi)有操作系統(tǒng),計(jì)算機(jī)將毫無(wú)用處。

最近,操作系統(tǒng)也開(kāi)始出現(xiàn)在更小型的計(jì)算機(jī)中。如果您平時(shí)喜歡擺弄電子設(shè)備,會(huì)很高興地發(fā)現(xiàn),如今操作系統(tǒng)可以安裝在我們?nèi)粘J褂玫暮芏嘣O(shè)備中,從手機(jī)到多種無(wú)線訪問(wèn)終端。這些小型設(shè)備中的計(jì)算機(jī)的功能非常強(qiáng)大,它們都可以運(yùn)行操作系統(tǒng)和應(yīng)用程序?,F(xiàn)在的一部普通手機(jī)中所包含的計(jì)算機(jī)功能甚至比20年前臺(tái)式計(jì)算機(jī)的功能還要強(qiáng)大。因此這種進(jìn)步很有意義,也是自然發(fā)展不可避免的趨勢(shì)。在任何一臺(tái)裝有操作系統(tǒng)的設(shè)備中,通常都提供了更改該設(shè)備工作方式的方法。這絕不是一個(gè)幸運(yùn)的巧合,操作系統(tǒng)之所以采用可移植的代碼,而不采用永久性的物理電路,原因之一就是通過(guò)代碼對(duì)其進(jìn)行更改或修改時(shí)可避免拆卸整臺(tái)設(shè)備。

Microsoft XP操作系統(tǒng)
獲得微軟公司許可重新印制的包裝盒
2003Microsoft Corporation。保留所有權(quán)利。
微軟Windows XP操作系統(tǒng)

對(duì)于臺(tái)式計(jì)算機(jī)用戶來(lái)說(shuō),這意味著在進(jìn)行更改時(shí)只需添加一個(gè)新的安全更新、系統(tǒng)補(bǔ)丁、新的應(yīng)用程序,甚至是整個(gè)新的操作系統(tǒng),而無(wú)須淘汰計(jì)算機(jī)去購(gòu)買(mǎi)全新的一臺(tái)。只有在了解操作系統(tǒng)的工作原理并知道如何利用時(shí),您才可以在許多方面對(duì)計(jì)算機(jī)的一些工作方式進(jìn)行更改。此外,手機(jī)中操作系統(tǒng)的工作原理與計(jì)算機(jī)的實(shí)際上沒(méi)有什么區(qū)別。

操作系統(tǒng)用于組織和控制硬件、軟件,從而使安裝操作系統(tǒng)的設(shè)備以一種靈活但可預(yù)期的方式運(yùn)行。在本文中,我們將講述必須具備什么功能的軟件才稱為操作系統(tǒng),并向您介紹臺(tái)式計(jì)算機(jī)中操作系統(tǒng)的工作原理,以及舉例說(shuō)明如何控制身邊的其他操作系統(tǒng)。

操作系統(tǒng)的本質(zhì)

所有的臺(tái)式計(jì)算機(jī)都具有操作系統(tǒng)。

并不是所有的計(jì)算機(jī)都具有操作系統(tǒng)。例如,廚房中控制微波爐的計(jì)算機(jī)就不需要操作系統(tǒng)。微波爐有一組要執(zhí)行的任務(wù),用戶可直接輸入所期望執(zhí)行的操作(數(shù)字按鍵和一些預(yù)設(shè)置的按鈕),并且它還具有可以控制的簡(jiǎn)單且無(wú)需更改的硬件。對(duì)于此類(lèi)計(jì)算機(jī),操作系統(tǒng)反而會(huì)成為不必要的負(fù)擔(dān)——它將大幅增加產(chǎn)品的開(kāi)發(fā)和生產(chǎn)成本,而且增添不必要的復(fù)雜性。因此,微波爐中裝入的計(jì)算機(jī)只需一直運(yùn)行一個(gè)簡(jiǎn)單的固化程序即可。

對(duì)于其他設(shè)備,操作系統(tǒng)需要具有滿足以下條件的功能:

  • 實(shí)現(xiàn)多種用途
  • 以更復(fù)雜的方式與用戶進(jìn)行交互
  • 滿足隨時(shí)間而改變的需求

所有的臺(tái)式計(jì)算機(jī)都具有操作系統(tǒng)。其中最普遍的是微軟開(kāi)發(fā)的Windows操作系統(tǒng)、蘋(píng)果公司開(kāi)發(fā)的Macintosh操作系統(tǒng)以及UNIX系列操作系統(tǒng)(由若干開(kāi)發(fā)人員、公司及合作者共同開(kāi)發(fā))。此外,還有針對(duì)特殊應(yīng)用領(lǐng)域的數(shù)以百計(jì)的其他操作系統(tǒng),包括專(zhuān)門(mén)用于大型機(jī)、機(jī)器人技術(shù)、生產(chǎn)制造和實(shí)時(shí)控制系統(tǒng)等的操作系統(tǒng)。

操作系統(tǒng)的功能

簡(jiǎn)單來(lái)說(shuō),操作系統(tǒng)的功能有兩個(gè):

  1. 它管理系統(tǒng)的硬件和軟件資源。在臺(tái)式計(jì)算機(jī)中,這些資源包括處理器、存儲(chǔ)器、磁盤(pán)空間等。(在手機(jī)中,這些資源則包括鍵盤(pán)、屏幕、通訊簿、電話拔號(hào)器、電池和網(wǎng)絡(luò)連接。)
  2. 在無(wú)需了解硬件的所有詳細(xì)信息情況下,為應(yīng)用程序提供穩(wěn)定、一致的方式來(lái)處理硬件。

第一個(gè)任務(wù)(即管理硬件和軟件資源)非常重要,因?yàn)槎鄠€(gè)程序和輸入方法會(huì)出于自己的目的競(jìng)相爭(zhēng)奪CPU(中央處理單元)的資源,并且使用內(nèi)存、存儲(chǔ)器及輸入/輸出帶寬。在此功能中,操作系統(tǒng)扮演著出色的指揮者角色,它既要確保每個(gè)應(yīng)用程序都得到所需的資源,又要保證與所有其他應(yīng)用程序的兼容,同時(shí)還要充分利用有限的系統(tǒng)容量,從而最大程度地滿足所有用戶和應(yīng)用程序的需要。

如果有多個(gè)特定類(lèi)型的計(jì)算機(jī)使用操作系統(tǒng),或者要更換計(jì)算機(jī)硬件時(shí),第二項(xiàng)任務(wù)(即提供兼容的應(yīng)用程序接口)就變得格外重要。一致的應(yīng)用程序接口(API)使軟件開(kāi)發(fā)人員在一臺(tái)計(jì)算機(jī)上編寫(xiě)應(yīng)用程序時(shí),有信心保證此應(yīng)用程序可以在另一臺(tái)同一類(lèi)型的計(jì)算機(jī)上運(yùn)行,盡管兩臺(tái)計(jì)算機(jī)的內(nèi)存容量或存儲(chǔ)器數(shù)量各不相同。

即使某種特殊計(jì)算機(jī)是唯一的,操作系統(tǒng)也可以確保在硬件升級(jí)和更新時(shí)應(yīng)用程序得以正常運(yùn)行。這是因?yàn)?,操作系統(tǒng)(而不是應(yīng)用程序)負(fù)責(zé)管理硬件和分配其資源。開(kāi)發(fā)人員面臨的挑戰(zhàn)之一是要保證他們的操作系統(tǒng)具有足夠的靈活性,從而可以在成千上萬(wàn)的計(jì)算機(jī)設(shè)備供應(yīng)商所提供的硬件上運(yùn)行。因?yàn)楫?dāng)今的系統(tǒng)可以配置成千上萬(wàn)種不同種類(lèi)的打印機(jī)、磁盤(pán)驅(qū)動(dòng)器以及任何可能組合的特殊外設(shè)。

操作系統(tǒng)的種類(lèi)

操作系統(tǒng)擁有廣泛的系列,根據(jù)它們所控制的計(jì)算機(jī)類(lèi)型和所支持應(yīng)用程序的類(lèi)型,大致可分為四類(lèi)。這些廣泛的分類(lèi)包括:

  • 實(shí)時(shí)操作系統(tǒng)(RTOS)——實(shí)時(shí)操作系統(tǒng)用于控制機(jī)械設(shè)備、科學(xué)儀器以及工業(yè)系統(tǒng)。由于RTOS在交付使用時(shí)采用的是“全封閉”形式,因此在通常情況下,該系統(tǒng)幾乎沒(méi)有什么用戶界面功能,也沒(méi)有最終用戶實(shí)用程序。RTOS的一個(gè)重要作用是管理計(jì)算機(jī)資源,從而在每次執(zhí)行某種特定的操作時(shí),都嚴(yán)格使用相同的時(shí)間。在一臺(tái)復(fù)雜的機(jī)器中,由于其具備可用系統(tǒng)資源而使機(jī)器的某一部分以更快的速度運(yùn)行,這將與因系統(tǒng)繁忙而無(wú)法運(yùn)行一樣具有相同的災(zāi)難性。
  • 單用戶,單任務(wù)——顧名思義,該操作系統(tǒng)設(shè)計(jì)用于管理計(jì)算機(jī),使單個(gè)用戶每次只能高效地執(zhí)行一個(gè)操作。用于掌上電腦的Palm OS是現(xiàn)代單用戶、單任務(wù)操作系統(tǒng)的一個(gè)良好示例。

  • 單用戶,多任務(wù)——這就是目前多數(shù)用戶在他們的臺(tái)式計(jì)算機(jī)或筆記本電腦中使用的操作系統(tǒng)類(lèi)型。微軟公司的Windows操作系統(tǒng)和蘋(píng)果公司的MacOS操作系統(tǒng)平臺(tái)均為一個(gè)用戶可以同時(shí)運(yùn)行多個(gè)程序的操作系統(tǒng)的范例。例如,一個(gè)Windows用戶一邊在文字處理軟件上撰寫(xiě)日記,一邊從互聯(lián)網(wǎng)下載文件,同時(shí)還在打印一封電子郵件消息的文本,這是完全可能的。

  • 多用戶——多用戶操作系統(tǒng)允許多個(gè)不同用戶同時(shí)使用計(jì)算機(jī)的資源。操作系統(tǒng)必須確保均衡地滿足各個(gè)用戶的要求,他們使用的各個(gè)程序都具有足夠且獨(dú)立的資源,從而使一個(gè)用戶的問(wèn)題不會(huì)影響到整個(gè)用戶群。Unix、VMS和大型機(jī)操作系統(tǒng)(如 MVS)是多用戶操作系統(tǒng)的范例。

Mac OS X Panther操作系統(tǒng)屏幕截圖
Mac OS X Panther操作系統(tǒng)屏幕截圖

區(qū)分多用戶操作系統(tǒng)和支持網(wǎng)絡(luò)的單用戶操作系統(tǒng)很重要。Windows 2000和Novell Netware均可以支持成千上萬(wàn)的網(wǎng)絡(luò)用戶,但操作系統(tǒng)本身并不是真正的多用戶操作系統(tǒng)。系統(tǒng)管理員是Windows 2000或Netware的唯一“用戶”。從操作系統(tǒng)的整體計(jì)劃來(lái)看,網(wǎng)絡(luò)支持和所有遠(yuǎn)程用戶均可登錄到網(wǎng)絡(luò),這些都屬于由管理員用戶運(yùn)行的程序。

在了解了各種不同類(lèi)型的操作系統(tǒng)后,現(xiàn)在我們將進(jìn)一步介紹操作系統(tǒng)所提供的基本功能。

操作系統(tǒng)的任務(wù)

打開(kāi)計(jì)算機(jī)的電源時(shí),通常運(yùn)行的第一個(gè)程序是保存在計(jì)算機(jī)只讀存儲(chǔ)器(ROM)中的一組指令。此代碼檢驗(yàn)系統(tǒng)硬件,從而確保一切運(yùn)行正常。上電自檢(POST)將檢測(cè)CPU、內(nèi)存和基本輸入輸出系統(tǒng)(BIOS) 是否存在錯(cuò)誤并將結(jié)果存儲(chǔ)在某個(gè)特殊的內(nèi)存位置。一旦成功完成POST,載入ROM的軟件(有時(shí)則稱為BIOS或固件)將開(kāi)始激活計(jì)算機(jī)的磁盤(pán)驅(qū)動(dòng)器。在大多數(shù)現(xiàn)代計(jì)算機(jī)中,當(dāng)計(jì)算機(jī)激活硬盤(pán)驅(qū)動(dòng)器時(shí),該計(jì)算機(jī)將運(yùn)行第一個(gè)操作系統(tǒng):引導(dǎo)裝入程序。

這種引導(dǎo)裝入程序是具有單一功能的小程序:它將操作系統(tǒng)載入到內(nèi)存并使之開(kāi)始運(yùn)行。引導(dǎo)裝入程序通過(guò)最基本的形式設(shè)置與之交互的小驅(qū)動(dòng)程序,并控制計(jì)算機(jī)的各個(gè)硬件子系統(tǒng)。它設(shè)置存放操作系統(tǒng)、用戶信息及應(yīng)用程序的內(nèi)存分區(qū),也建立裝有大量信號(hào)、標(biāo)記和信號(hào)量(用于在子系統(tǒng)和計(jì)算機(jī)應(yīng)用程序內(nèi)部及之間通信)的數(shù)據(jù)結(jié)構(gòu),然后再將其對(duì)計(jì)算機(jī)的控制轉(zhuǎn)移給操作系統(tǒng)。

在一般情況下,操作系統(tǒng)的任務(wù)基本分為六種類(lèi)型:

  • 處理器管理
  • 內(nèi)存管理
  • 設(shè)備管理
  • 存儲(chǔ)器管理
  • 應(yīng)用程序接口
  • 用戶界面

盡管有人爭(zhēng)論操作系統(tǒng)應(yīng)執(zhí)行比這六項(xiàng)任務(wù)更多的功能,并且確實(shí)也有一些操作系統(tǒng)供應(yīng)商將更多的實(shí)用程序及輔助功能集成到他們的操作系統(tǒng)中,但這六項(xiàng)任務(wù)幾乎涵蓋了所有操作系統(tǒng)的核心內(nèi)容。下面我們將介紹操作系統(tǒng)執(zhí)行每項(xiàng)功能所使用的工具。

管理處理器

管理處理器的核心內(nèi)容可以歸結(jié)為兩個(gè)相關(guān)問(wèn)題:

  • 確保每個(gè)進(jìn)程及應(yīng)用程序得到足夠的處理器時(shí)間來(lái)實(shí)現(xiàn)其正常功能。
  • 實(shí)際工作中盡可能使用更多的處理器周期。

在由處理器完成工作的計(jì)劃中,操作系統(tǒng)處理的軟件基本單元為進(jìn)程或線程,具體取決于操作系統(tǒng)。

通常,人們傾向于將進(jìn)程看作是一個(gè)應(yīng)用程序,但這并沒(méi)有全面給出進(jìn)程與操作系統(tǒng)和硬件之間的關(guān)聯(lián)。實(shí)際上,我們所了解的應(yīng)用程序(文字處理器、電子數(shù)據(jù)表或游戲)的確是一個(gè)進(jìn)程,但該應(yīng)用程序可能會(huì)導(dǎo)致幾個(gè)其他進(jìn)程開(kāi)始運(yùn)行,比如,與其他設(shè)備或計(jì)算機(jī)進(jìn)行通信的任務(wù)。然而,此外還有大量我們察覺(jué)不到的運(yùn)行的進(jìn)程,因?yàn)樗鼈儾粫?huì)提供直觀的證據(jù)。例如,Windows XP和UNIX可以同時(shí)運(yùn)行十幾個(gè)后臺(tái)進(jìn)程以處理網(wǎng)絡(luò)、內(nèi)存管理、磁盤(pán)管理和病毒檢查等。

因此,進(jìn)程是執(zhí)行一些操作的軟件,并且可由用戶、其他應(yīng)用程序或操作系統(tǒng)進(jìn)行控制。

操作系統(tǒng)控制進(jìn)程(而不是應(yīng)用程序),并由CPU安排執(zhí)行。在單任務(wù)系統(tǒng)中,計(jì)劃表簡(jiǎn)明易懂,操作系統(tǒng)允許應(yīng)用程序開(kāi)始運(yùn)行,只有在要處理中斷和用戶輸入時(shí),才會(huì)暫停足夠長(zhǎng)的時(shí)間。

中斷是由硬件或軟件發(fā)送給CPU的特殊信號(hào)。就好比在某一次現(xiàn)場(chǎng)會(huì)議上,計(jì)算機(jī)的某部分突然舉手示意以引起CPU的關(guān)注。有時(shí)操作系統(tǒng)通過(guò)安排進(jìn)程的優(yōu)先級(jí),從而使中斷被屏蔽——換言之,操作系統(tǒng)將忽略來(lái)自于某些源的中斷,從而能夠盡快完成特定的任務(wù)。然而有一些中斷(比如出現(xiàn)錯(cuò)誤或內(nèi)存故障)非常重要,因此不能忽略。無(wú)論當(dāng)前正在執(zhí)行什么其他任務(wù),都必須立即處理這些非屏蔽中斷(NMI)。

盡管在單任務(wù)系統(tǒng)中,中斷為進(jìn)程的執(zhí)行增加了一些復(fù)雜性,但操作系統(tǒng)的任務(wù)在多任務(wù)系統(tǒng)中更為復(fù)雜。那么,操作系統(tǒng)必須安排應(yīng)用程序的執(zhí)行,從而使人們相信這幾件事看上去是同時(shí)發(fā)生的。因?yàn)镃PU在某一時(shí)間只能做一件事情,這就變得很復(fù)雜。為了制造同時(shí)做多件事的假象,操作系統(tǒng)必須每秒在不同的進(jìn)程之間轉(zhuǎn)換數(shù)千次。下面我們來(lái)介紹它的過(guò)程:

  • 一個(gè)進(jìn)程占用一定量的RAM,同時(shí)還會(huì)使用CPU和操作系統(tǒng)內(nèi)存空間中的寄存器、堆棧和隊(duì)列。

  • 當(dāng)兩個(gè)進(jìn)程具有多個(gè)任務(wù)時(shí),操作系統(tǒng)將為一個(gè)程序分配一定數(shù)量的CPU執(zhí)行周期。

  • 在運(yùn)行該數(shù)量的周期后,操作系統(tǒng)將備份該進(jìn)程所使用的所有寄存器、堆棧和隊(duì)列,并標(biāo)明進(jìn)程執(zhí)行中止的位置。

  • 然后加載第二個(gè)進(jìn)程所使用的所有寄存器、堆棧和隊(duì)列,并允許它運(yùn)行一定數(shù)量的CPU周期。

  • 當(dāng)這些步驟完成后,操作系統(tǒng)將備份第二個(gè)程序所使用的所有寄存器、堆棧和隊(duì)列,然后加載第一個(gè)程序。

在將切換數(shù)據(jù)存儲(chǔ)在稱為進(jìn)程控制塊的數(shù)據(jù)包中后,所有信息都將用于跟蹤一個(gè)進(jìn)程。進(jìn)程控制塊通常包括:

  • 可識(shí)別進(jìn)程的識(shí)別號(hào)碼
  • 指向程序中的位置及上次處理處的數(shù)據(jù)的指針
  • 寄存器內(nèi)容
  • 各種標(biāo)記和切換的狀態(tài)
  • 指向進(jìn)程所需內(nèi)存的上界和下界
  • 由進(jìn)程打開(kāi)的一系列文件
  • 進(jìn)程的優(yōu)先級(jí)
  • 進(jìn)程所需的所有I/O設(shè)備的狀態(tài)

每個(gè)進(jìn)程都具有與之相關(guān)聯(lián)的狀態(tài),很多進(jìn)程在獲得某類(lèi)輸入之前不會(huì)消耗CPU時(shí)間。例如,一個(gè)進(jìn)程可能需要用戶按鍵才會(huì)啟用,而等待按鍵時(shí),該進(jìn)程不消耗任何CPU時(shí)間。處于等待狀態(tài)時(shí),該進(jìn)程被“中止”;當(dāng)開(kāi)始按鍵時(shí),OS會(huì)改變其狀態(tài)。比如,當(dāng)該進(jìn)程的狀態(tài)發(fā)生改變(例如,從等待到活動(dòng)狀態(tài),或從中止?fàn)顟B(tài)到運(yùn)行狀態(tài))時(shí),必須像使用任何其他程序中的數(shù)據(jù)一樣使用進(jìn)程控制塊中的信息,從而直接執(zhí)行操作系統(tǒng)的任務(wù)切換部分。

執(zhí)行此進(jìn)程切換無(wú)需進(jìn)行直接的用戶干涉,每個(gè)進(jìn)程可以獲得足夠的CPU周期,從而在適量的時(shí)間內(nèi)完成任務(wù)。但是,如果用戶試圖同時(shí)運(yùn)行太多的進(jìn)程,那么就會(huì)出現(xiàn)問(wèn)題。操作系統(tǒng)本身需要一些CPU周期來(lái)執(zhí)行應(yīng)用程序進(jìn)程中所有寄存器、堆棧和隊(duì)列的保存及切換。如果啟動(dòng)太多的進(jìn)程,并且操作系統(tǒng)又沒(méi)有經(jīng)過(guò)精心設(shè)計(jì),系統(tǒng)便可能會(huì)占用大多數(shù)可用的CPU周期在進(jìn)程之間進(jìn)行切換,而不是運(yùn)行進(jìn)程。當(dāng)出現(xiàn)此種情況(稱為系統(tǒng)顛簸)時(shí),通常需要某種直接的用戶干涉以停止進(jìn)程,從而使系統(tǒng)恢復(fù)秩序。

操作系統(tǒng)設(shè)計(jì)人員降低發(fā)生系統(tǒng)顛簸幾率的一個(gè)方法是,減少新進(jìn)程執(zhí)行多項(xiàng)任務(wù)的需求。一些操作系統(tǒng)允許“小進(jìn)程”(稱為線程),可以處理普通進(jìn)程的所有CPU密集型任務(wù),但通常不會(huì)處理各種類(lèi)型的I/O,并且也不會(huì)創(chuàng)建要求常規(guī)進(jìn)程的大量進(jìn)程控制塊的結(jié)構(gòu)。一個(gè)進(jìn)程可能啟用很多線程或其他進(jìn)程,但線程卻不能啟動(dòng)進(jìn)程。

到目前為止,我們所討論的所有安排都是關(guān)于單個(gè)CPU的。在一個(gè)具有兩個(gè)或更多CPU的系統(tǒng)中,操作系統(tǒng)必須在各個(gè)CPU之間分配工作量,試圖平衡不同CPU可用周期所需進(jìn)程的需求。不對(duì)稱的操作系統(tǒng)針對(duì)自身需求使用一個(gè)CPU,并在剩余的CPU中分配應(yīng)用程序的進(jìn)程。對(duì)稱的操作系統(tǒng)則將自身分配到各個(gè)CPU中,即使在只有操作系統(tǒng)本身運(yùn)行的情況下,也要平衡需求和CPU可用性。

雖然操作系統(tǒng)是需要執(zhí)行的唯一軟件,但CPU卻不是需要安排的唯一資源。內(nèi)存管理是確保所有進(jìn)程平穩(wěn)運(yùn)行的下一個(gè)關(guān)鍵步驟。

內(nèi)存存儲(chǔ)器管理

當(dāng)操作系統(tǒng)管理計(jì)算機(jī)的內(nèi)存時(shí),有兩個(gè)主要任務(wù)需要完成:

  1. 每個(gè)進(jìn)程必須具有足夠的內(nèi)存以執(zhí)行操作,并且既不可以在其他進(jìn)程的內(nèi)存空間中運(yùn)行,也不可以讓其他進(jìn)程在這一內(nèi)存空間運(yùn)行。
  2. 必須合理使用系統(tǒng)中不同類(lèi)型的內(nèi)存,以使每個(gè)進(jìn)程可以高效運(yùn)行。

第一項(xiàng)任務(wù)需要操作系統(tǒng)為不同類(lèi)型的軟件和單個(gè)應(yīng)用程序設(shè)置內(nèi)存邊界。


我們以一個(gè)虛擬的小型系統(tǒng)為例來(lái)進(jìn)行分析,該系統(tǒng)有1兆字節(jié)(1,000千字節(jié))的RAM。在啟動(dòng)進(jìn)程過(guò)程中,我們將虛擬計(jì)算機(jī)的操作系統(tǒng)設(shè)計(jì)為位于所有可用內(nèi)存的頂部,然后充分進(jìn)行“備份”以滿足操作系統(tǒng)本身的需求。例如,操作系統(tǒng)運(yùn)行需要300千字節(jié)。那么現(xiàn)在,操作系統(tǒng)進(jìn)入到RAM池的底部,并使用控制計(jì)算機(jī)硬件子系統(tǒng)的各驅(qū)動(dòng)程序軟件開(kāi)始創(chuàng)建。在我們虛擬的計(jì)算機(jī)中,驅(qū)動(dòng)程序占用了200千字節(jié)。因此,在將操作系統(tǒng)完全加載后,還有剩余的500千字節(jié)可用于應(yīng)用程序進(jìn)程。

當(dāng)應(yīng)用程序開(kāi)始載入內(nèi)存時(shí),它們以操作系統(tǒng)確定的塊大小進(jìn)行載入。如果塊大小為2千字節(jié),那么每個(gè)已載入的進(jìn)程將會(huì)獲得多個(gè)大小為2千字節(jié)的內(nèi)存塊。應(yīng)用程序?qū)?huì)以這些固定的塊大小載入,并開(kāi)始和結(jié)束于由4或8個(gè)字節(jié)的字創(chuàng)建的邊界。這些塊和邊界有助于確保各應(yīng)用程序不會(huì)因?yàn)橐粌蓚€(gè)字節(jié)的計(jì)算誤差而載入彼此內(nèi)存空間的頂部。在確保滿足這一條件后,更重要的問(wèn)題是,當(dāng)500千字節(jié)的應(yīng)用程序空間被填滿之后應(yīng)當(dāng)采取什么措施。

在多數(shù)計(jì)算機(jī)中,可以在原有內(nèi)存空間的基礎(chǔ)上添加內(nèi)存。例如,您可以將RAM從1兆字節(jié)擴(kuò)展到2兆字節(jié)。這是可行的,但通常比較昂貴。此外,這忽視了計(jì)算的一個(gè)基本現(xiàn)狀,即由應(yīng)用程序存儲(chǔ)在內(nèi)存中的多數(shù)信息在給定時(shí)間內(nèi)并不會(huì)被使用。處理器一次只能訪問(wèn)處于一個(gè)位置的內(nèi)存,因此大多數(shù)的RAM不會(huì)在任意時(shí)段使用。因?yàn)榇疟P(pán)空間相對(duì)于RAM更為充足,所以將RAM中的信息移動(dòng)到硬盤(pán)可以在不花費(fèi)任何代價(jià)的情況下大大擴(kuò)展RAM空間,這項(xiàng)技術(shù)被稱為虛擬內(nèi)存管理。

磁盤(pán)存儲(chǔ)是必須由操作系統(tǒng)管理的唯一一種內(nèi)存類(lèi)型,并且也是最慢的一種類(lèi)型。按速度排序,計(jì)算機(jī)系統(tǒng)中的內(nèi)存類(lèi)型可分為:

  • 高速緩存——它是通過(guò)快速連接,從而使CPU可用的、相對(duì)少量的內(nèi)存。緩存控制器預(yù)先判斷CPU下一步將需要哪些數(shù)據(jù),并將這些數(shù)據(jù)從主內(nèi)存調(diào)入高速緩存,從而提高系統(tǒng)性能。

  • 主內(nèi)存——這是購(gòu)買(mǎi)計(jì)算機(jī)時(shí)所能看到的以兆字節(jié)為單位的RAM。

  • 輔助存儲(chǔ)器——這就是大多數(shù)情況下使所有應(yīng)用程序和數(shù)據(jù)可用的旋轉(zhuǎn)電磁存儲(chǔ),它的作用是充當(dāng)操作系統(tǒng)控制下的虛擬RAM。

操作系統(tǒng)必須使用不同類(lèi)型內(nèi)存的可用性來(lái)平衡各進(jìn)程的需求,按照進(jìn)行的指示計(jì)劃將數(shù)據(jù)以塊(稱為頁(yè)面)的形式在可用內(nèi)存之間移動(dòng)。

驅(qū)動(dòng)程序

操作系統(tǒng)和所有不位于計(jì)算機(jī)主板上的硬件是通過(guò)一種稱為驅(qū)動(dòng)程序的特殊程序進(jìn)行通信的。驅(qū)動(dòng)程序的主要作用是充當(dāng)硬件子系統(tǒng)的電子信號(hào)、操作系統(tǒng)及應(yīng)用程序的高級(jí)編程語(yǔ)言之間的轉(zhuǎn)換器。驅(qū)動(dòng)程序?qū)⒉僮飨到y(tǒng)已定義的數(shù)據(jù)視為文件,然后將它們轉(zhuǎn)換成存儲(chǔ)設(shè)備上特定位置處的比特流,或打印機(jī)中的一系列激光脈沖。

因?yàn)樵谟沈?qū)動(dòng)程序控制的硬件之間存在著很大的差異,因此驅(qū)動(dòng)程序運(yùn)行的方式也存在差異,但大多數(shù)驅(qū)動(dòng)程序都會(huì)根據(jù)設(shè)備的要求運(yùn)行,并且運(yùn)行方式也與任何其他進(jìn)程類(lèi)似。操作系統(tǒng)頻繁地將擁有較高優(yōu)先級(jí)的塊分配給驅(qū)動(dòng)程序,以使硬件資源盡可能快地得到釋放并準(zhǔn)備進(jìn)一步使用。

驅(qū)動(dòng)程序與操作系統(tǒng)之所以分開(kāi),其中一個(gè)原因是為了將新增功能添加到驅(qū)動(dòng)程序(從而添加到硬件子系統(tǒng)),而無(wú)需對(duì)操作系統(tǒng)本身進(jìn)行修改、重新編譯以及重新分配。通過(guò)開(kāi)發(fā)新的硬件設(shè)備驅(qū)動(dòng)程序,通常由子系統(tǒng)的制造商執(zhí)行開(kāi)發(fā)或付費(fèi),而不是操作系統(tǒng)的發(fā)行商,整個(gè)系統(tǒng)的輸入/輸出功能將得到大幅度提高。

管理輸入和輸出很大程度上是管理隊(duì)列和緩沖器,從某一設(shè)備接收字節(jié)流的特殊存儲(chǔ)設(shè)備(可能是鍵盤(pán)或串行端口)將存儲(chǔ)這些字節(jié),再將其以CPU可以處理的足夠慢的速度釋放到CPU。當(dāng)大量進(jìn)程同時(shí)運(yùn)行并占用處理器時(shí)間時(shí),這個(gè)功能尤其的重要。該操作系統(tǒng)將對(duì)緩沖器發(fā)出指令,使之可以繼續(xù)接收該設(shè)備的輸入,但當(dāng)使用該輸入的進(jìn)程處于中止?fàn)顟B(tài)時(shí),操作系統(tǒng)會(huì)停止向CPU發(fā)送數(shù)據(jù)。那么,當(dāng)需要輸入的進(jìn)程再一次激活時(shí),操作系統(tǒng)將會(huì)命令緩沖器發(fā)送數(shù)據(jù)。該進(jìn)程允許使用鍵盤(pán)或調(diào)制解調(diào)器處理外部用戶或高速運(yùn)行的計(jì)算機(jī)的需求,盡管有時(shí)CPU不能使用那些來(lái)源的輸入。

管理計(jì)算機(jī)系統(tǒng)的所有資源是操作系統(tǒng)的主要功能,對(duì)于實(shí)時(shí)操作系統(tǒng),可能需要所有的功能。但是對(duì)于其他操作系統(tǒng),為應(yīng)用程序提供相對(duì)簡(jiǎn)單、一致的方式以及人們使用功能強(qiáng)大的硬件是它們存在的一個(gè)重要原因。

應(yīng)用程序接口

應(yīng)用程序接口
正如驅(qū)動(dòng)程序?yàn)閼?yīng)用程序提供了一種無(wú)需了解硬件運(yùn)行的每個(gè)細(xì)節(jié)即可使用硬件子系統(tǒng)的方法,應(yīng)用程序接口(API)使每位應(yīng)用程序員可以使用計(jì)算機(jī)和操作系統(tǒng)的功能,而無(wú)需直接跟蹤C(jī)PU運(yùn)行的所有細(xì)節(jié)。讓我們看一個(gè)有關(guān)創(chuàng)建保存數(shù)據(jù)的硬盤(pán)文件的例子,以了解它的重要性。

一位正在編寫(xiě)一個(gè)從科學(xué)儀器記錄數(shù)據(jù)應(yīng)用程序的程序員,可能希望科學(xué)家能夠指定所創(chuàng)建文件的名稱。操作系統(tǒng)可能提供一種稱為MakeFile的API功能來(lái)創(chuàng)建文件。當(dāng)編寫(xiě)該程序時(shí),該程序員可能會(huì)插入一行,如:

MakeFile [1, %Name, 2]

在此示例中,該指令告訴操作系統(tǒng)創(chuàng)建一個(gè)允許隨機(jī)訪問(wèn)其數(shù)據(jù)的文件(以1表示,對(duì)于序列文件中的其他選項(xiàng)可以用0表示),將由用戶(%Name)鍵入名稱,并且其大小取決于存儲(chǔ)在該文件中的數(shù)據(jù)多少(以2表示,其他選項(xiàng)中的固定大小可能用0表示,并且用1表示文件在添加數(shù)據(jù)時(shí)變大,但在數(shù)據(jù)刪除時(shí)卻不會(huì)減小)?,F(xiàn)在,讓我們了解一下操作系統(tǒng)如何將指令轉(zhuǎn)換成操作。

操作系統(tǒng)向磁盤(pán)驅(qū)動(dòng)器發(fā)送請(qǐng)求,以確定第一個(gè)可用空白存儲(chǔ)空間的位置。

使用該信息,操作系統(tǒng)在文件系統(tǒng)中創(chuàng)建一個(gè)項(xiàng)以顯示文件的起始與結(jié)束位置、文件名、文件類(lèi)型、文件是否歸檔、哪些用戶具有查看或修改文件的權(quán)限,以及文件的創(chuàng)建日期和時(shí)間。

操作系統(tǒng)在標(biāo)識(shí)文件的起始位置編寫(xiě)信息,設(shè)置可能的訪問(wèn)類(lèi)型,并包含將文件捆綁到應(yīng)用程序的其他信息。在所有信息中,發(fā)送到磁盤(pán)驅(qū)動(dòng)器的請(qǐng)求和文件起始與結(jié)束點(diǎn)的地址在格式方面很大程度上取決于制造商和磁盤(pán)驅(qū)動(dòng)器的型號(hào)。

由于程序員編寫(xiě)了程序來(lái)使用磁盤(pán)存儲(chǔ)的API,因此程序員不需要跟蹤指令代碼、數(shù)據(jù)類(lèi)型以及每個(gè)可能的硬盤(pán)和磁帶驅(qū)動(dòng)器的響應(yīng)代碼。與各硬件子系統(tǒng)的驅(qū)動(dòng)程序相關(guān)聯(lián)的操作系統(tǒng),可以處理硬件更改的細(xì)節(jié)——程序員必須簡(jiǎn)單編寫(xiě)API的代碼并相信操作系統(tǒng)可以完成剩下的任務(wù)。

近年來(lái),API已成為計(jì)算機(jī)行業(yè)競(jìng)爭(zhēng)最為激烈的領(lǐng)域之一。很多公司認(rèn)識(shí)到,使用API的程序員會(huì)最終將其轉(zhuǎn)換成一種控制并從該行業(yè)的某一特定領(lǐng)域獲利的能力。這就是為什么目前有這么多的公司愿意為公眾免費(fèi)提供閱讀器和查看器之類(lèi)的應(yīng)用程序的原因之一。他們了解消費(fèi)者將會(huì)要求這類(lèi)程序可以利用免費(fèi)的閱讀器,而應(yīng)用程序公司就準(zhǔn)備要求支付使用費(fèi)才可以使用提供消費(fèi)者要求的各種功能的軟件。

用戶界面

正如API為應(yīng)用程序提供了可以一直使用計(jì)算機(jī)系統(tǒng)資源的方法,用戶界面(UI)則提供了一個(gè)用戶與計(jì)算機(jī)進(jìn)行交互的結(jié)構(gòu)。在過(guò)去十年中,幾乎所有用戶界面的發(fā)展都出現(xiàn)在圖形用戶界面(GUI)領(lǐng)域。蘋(píng)果公司的Macintosh和微軟公司的Windows都引起了眾多關(guān)注并占領(lǐng)了多數(shù)市場(chǎng)份額。廣受歡迎的開(kāi)源軟件技術(shù)Linux操作系統(tǒng)也支持圖形用戶界面功能。

Red Hat Linux操作系統(tǒng)的屏幕截圖
Screen shot copyright 2003 Red Hat, Inc. 保留所有權(quán)利。
獲得Red Hat, Inc.許可,重新印刷
Red Hat Linux操作系統(tǒng)的屏幕截圖

還有用于其他操作系統(tǒng)的其他用戶界面,有些是圖形界面,有些則不是。

例如,Unix具有稱為外殼的用戶界面,相對(duì)于標(biāo)準(zhǔn)操作系統(tǒng)基于文本的界面,該用戶界面具有更大的靈活性以及更強(qiáng)大的功能。諸如Korn外殼和C外殼的程序是添加了重要實(shí)用程序的基于文本的界面,但它們的主要目的是使用戶可以更輕松地利用操作系統(tǒng)的功能。也有一些圖形用戶界面,如X-Windows和Gnome,可以使Unix和Linux操作起來(lái)更像是Windows和Macintosh計(jì)算機(jī)。

在所有這些示例中,用戶界面作為一個(gè)層面是位于操作系統(tǒng)本身之上的程序或程序集,記住這一點(diǎn)很重要。對(duì)于具備不同機(jī)制的Windows和Macintosh操作系統(tǒng)而言,原理也是一樣的。核心操作系統(tǒng)工作功能,即計(jì)算機(jī)系統(tǒng)的管理,在于操作系統(tǒng)的內(nèi)核。盡管顯示管理器與位于下方的內(nèi)核緊密相連,但它是獨(dú)立的。操作系統(tǒng)內(nèi)核和用戶界面、實(shí)用程序以及其他軟件之間的聯(lián)系決定了當(dāng)今操作系統(tǒng)的很多差異,并且將會(huì)在未來(lái)進(jìn)一步影響它們。

操作系統(tǒng)的新增功能

日益增長(zhǎng)的網(wǎng)絡(luò)的重要性

對(duì)于桌面系統(tǒng)而言,訪問(wèn)局域網(wǎng)或互聯(lián)網(wǎng)已經(jīng)成為一種必備的功能,從而在很多方面只要談及操作系統(tǒng),就不能不說(shuō)它與其他計(jì)算機(jī)和服務(wù)器的連接。操作系統(tǒng)開(kāi)發(fā)人員已經(jīng)使互聯(lián)網(wǎng)成為能夠提供重要操作系統(tǒng)更新和錯(cuò)誤修復(fù)的標(biāo)準(zhǔn)方法。盡管可以通過(guò)CD接受這些更新,但使用這種方式的人越來(lái)越少。事實(shí)上,一些完整的操作系統(tǒng)本身只能通過(guò)互聯(lián)網(wǎng)發(fā)布來(lái)獲得。

其次,一種稱為NetBooting的進(jìn)程可以很輕松地將普通消費(fèi)者的臺(tái)式計(jì)算機(jī)中正在運(yùn)行的操作系統(tǒng)(內(nèi)核、用戶界面及所有其他內(nèi)容)從它所控制的計(jì)算機(jī)上移除。而這在先前只有那些多用戶平臺(tái)(如UNIX)上經(jīng)驗(yàn)豐富的超級(jí)用戶以及使用特殊應(yīng)用程序套件才可以實(shí)現(xiàn)。NetBooting允許一臺(tái)計(jì)算機(jī)的操作系統(tǒng)通過(guò)網(wǎng)絡(luò)中所連接任意位置的一臺(tái)遠(yuǎn)程計(jì)算機(jī)服務(wù)于整個(gè)網(wǎng)絡(luò)連接。一臺(tái)NetBoot服務(wù)器可以同時(shí)為幾十臺(tái)客戶端計(jì)算機(jī)和每臺(tái)客戶端計(jì)算機(jī)的用戶提供操作系統(tǒng),使用戶得到類(lèi)似于使用他們熟知的桌面操作系統(tǒng)(如Windows或MacOS)的體驗(yàn)。

開(kāi)源軟件技術(shù)

有關(guān)軟件分發(fā)的特殊理念是操作系統(tǒng)未來(lái)發(fā)展所需關(guān)注的一個(gè)問(wèn)題,即開(kāi)發(fā)一種同時(shí)適用于公司和消費(fèi)者的操作系統(tǒng)。

大家普遍認(rèn)為L(zhǎng)inux作為一種根據(jù)開(kāi)源軟件技術(shù)的原則創(chuàng)建和分發(fā)的操作系統(tǒng),已經(jīng)對(duì)操作系統(tǒng)產(chǎn)生了較大的影響。大多數(shù)操作系統(tǒng)、驅(qū)動(dòng)程序和實(shí)用程序由分發(fā)其軟件可執(zhí)行版本(這些版本不可以研究或更改)的商業(yè)組織編寫(xiě)。開(kāi)源軟件技術(shù)需要分發(fā)可以研究、更改以及在其基礎(chǔ)上創(chuàng)建的原始源材料,并且其結(jié)果也可再次自由分發(fā)。在臺(tái)式計(jì)算機(jī)領(lǐng)域內(nèi),這將導(dǎo)致無(wú)數(shù)有用的和無(wú)成本的應(yīng)用程序(如圖像操作程序GIMP和廣受歡迎的網(wǎng)絡(luò)服務(wù)器Apache)的開(kāi)發(fā)及分發(fā)。在消費(fèi)者設(shè)備領(lǐng)域,Linux的使用已經(jīng)在更大程度上為個(gè)人用戶控制其設(shè)備的工作方式鋪平了道路。

Linux徽標(biāo)
Linux徽標(biāo)

了解操作系統(tǒng)

許多消費(fèi)電子設(shè)備(如手機(jī)和路由器)都有意避免用戶訪問(wèn)其中的操作系統(tǒng),很大程度上是為了確保操作系統(tǒng)不會(huì)在無(wú)意中被破壞或刪除。在許多情況下,他們保留了一種“開(kāi)發(fā)人員模式”或“程序員模式”,這允許具有相應(yīng)知識(shí)的用戶可以進(jìn)行更改。通常這些系統(tǒng)的編程方式是使之可以在僅有的范圍內(nèi)進(jìn)行更改。但有些設(shè)備保留訪問(wèn)模式以及進(jìn)行增強(qiáng)功能的更改方式都是開(kāi)放的,特別是在使用Linux時(shí)較為常見(jiàn)。下面介紹幾個(gè)例子:

  • TiVo DVR運(yùn)行在Linux的修改版本上。所有的修改都是公開(kāi)的,您可以在此處下載它們,以及用于操作代碼的一些特殊工具。很多大膽的TiVo用戶也是那樣做的,他們?yōu)樽约旱南到y(tǒng)上添加了很多功能,包括增大存儲(chǔ)容量,進(jìn)入到UNIX外殼將模式從NTSC更改為PAL。

    Philips HDR312 TiVo30小時(shí)數(shù)碼錄像機(jī)和Linksys EZXS55W EtherFast 10/100 5端口工作組交換機(jī)
    Philips HDR312 TiVo30小時(shí)數(shù)碼錄像機(jī)和Linksys EZXS55W EtherFast 10/100 5端口工作組交換機(jī)
    Amazon.com供圖
    Philips HDR312 TiVo30小時(shí)數(shù)碼錄像機(jī)和Linksys EZXS55W EtherFast 10/100 5端口工作組交換機(jī)

  • 很多家庭路由器也使用Linux,包括Linksys公司的路由器。本文由G4TechTV提供,其中將討論如何改編您的Linksys路由器以及控制其中的Linux。

[責(zé)任編輯:小敏]

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多

    国产精品一区二区三区激情| 日韩欧美三级视频在线| 日本午夜乱色视频在线观看| 免费黄片视频美女一区| 国产欧美一区二区色综合| 成人精品网一区二区三区| 国产成人精品资源在线观看| 天堂热东京热男人天堂| 亚洲中文在线男人的天堂| 久久热在线视频免费观看| 日韩av生活片一区二区三区| 制服丝袜美腿美女一区二区 | 91在线播放在线播放观看| 国产日本欧美韩国在线| 麻豆精品在线一区二区三区| 亚洲欧美中文字幕精品| 久久福利视频在线观看| 中文字字幕在线中文乱码二区| 国产欧美日韩精品一区二| 富婆又大又白又丰满又紧又硬 | 亚洲精品福利视频在线观看| 精品香蕉国产一区二区三区| 久久精品色妇熟妇丰满人妻91| 欧美日韩综合免费视频| 国产一区二区三区口爆在线| 麻豆看片麻豆免费视频| 国产不卡一区二区四区| 风间中文字幕亚洲一区| 免费特黄一级一区二区三区| 免费久久一级欧美特大黄孕妇| 国产精品十八禁亚洲黄污免费观看 | 黄色三级日本在线观看| 国产精品人妻熟女毛片av久| 丝袜视频日本成人午夜视频| 日韩欧美三级视频在线| 亚洲成人精品免费在线观看| 蜜臀人妻一区二区三区| 久七久精品视频黄色的| 国产精品不卡高清在线观看| 91欧美亚洲精品在线观看| 国产91麻豆精品成人区|