操作系統01概述

第一章 概論

Operating System Internals and Design Principles

Applied Operating System Concepts

操作系統——裸機上的第一層軟件,它是對硬件系統功能的首次擴充,填補人與機器之間的鴻溝。


1.1 操作系統與計算機同在


1.2 對操作系統的認識

?

對操作系統的認識有兩方面:

1.?從用戶的觀點來看操作系統

>虛擬機的觀點

>用戶環境的觀點

2.?從系統設計者(系統分析員)的觀點來看操作系統

>資源管理的觀點

>作業(任務)組織的觀點

?

虛擬機觀點:

該觀點認為,操作系統是建立在計算機硬件平臺上的虛擬機器,它為應用軟件提供了許多比計算機硬件功能更強或計算機硬件所沒有的功能。

操作系統在虛擬機中充當管理員和協調員的角色,管理計算機的軟硬件資源,并協調多任務,多進程的運行。

?

用戶環境的觀點:命令接口+程序接口

命令接口

用戶可通過該接口向作業發出命令以控制作業的運行。可分為聯機用戶接口脫機用戶接口

(1)聯機用戶接口

這是為聯機用戶提供的,它由一組鍵盤操作命令及命令解釋程序所組成。

>字符形式:較靈活但因繁瑣而難記

>菜單形式:試圖在字符終端上提供友好的用戶界面

>圖形形式:直觀易記但不靈活

(2)脫機用戶接口

用戶用JCLJob Control Language)把需要對作業進行的控制和干預,事先寫在作業說明書上,然后將作業連同作業說明書一起提供給系統。當系統調度到該作業運行時,再調度命令解釋程序,對作業說明書上的命令,逐條的解釋執行。該接口即為批處理接口。 .sh ?.bat

程序接口

·該接口是為用戶程序在執行中訪問系統資源而設置的,是用戶程序取得操作系統服務的唯一途徑。

·它是由一組系統調用組成,每一個系統調用都是一個能完成特定功能的子程序,每當應用程序要求OS提供某種服務(功能)時,便調用具有相應功能的系統調用。

·不同的系統其調用形式不同。

?

?

資源管理觀點:

·該觀點認為,操縱系統是計算機系統中各類資源的管理者,它負責分配、回收以及控制系統中的各種軟硬件資源。

——監視資源

——分配/回收資源

——保護資源

·跟蹤資源的使用狀況、滿足資源請求、提高資源利用率,以及協調各程序和用戶資源的使用沖突。



作業組織觀點:

·該觀點認為,操作系統是計算機系統工作流程的組織者,它負責協調在系統中運行的各個應用軟件的運行次序。

·用于巨型機和大型服務器上,以批處理方式提交作業,請求主機逐個運行。

·主機操作系統負責組織、協調各個作業的運行,報告執行結果或錯誤信息。

·減少人工干預,提高了系統效率。

?

1.3 操作系統的主要功能

·操作系統具有六方面的功能

1.?進程管理

2.?存儲器管理

3.?設備管理

4.?文件管理

5.?作業管理

6.?操作系統安全

?

?一、進程管理功能

·進程管理的主要功能:按照一定的算法把處理機分配給進程/線程,并對其進行有效的管理和控制。

·進程控制、進程同步、進程通信、進程調度

1.?進程控制

進程控制的主要功能是為作業創建進程、撤銷已結束的進程、以及控制進程在運行過程中的狀態轉換

2.?進程同步

進程同步是為多個進程的運行進行協調。同步機制。

·兩種協調方式

(1)進程互斥方式:指進程(線程)在對臨界資源進行訪問時,應采用互斥方式。

(2)進程同步方式:指進程相互合作去完成共同的任務時,諸進程之間的協調。

·實現進程同步采用信號量機制。

3.?進程通信

——進程之間的信息交換。

當相互合作的進程(線程)處于同一計算機系統時,通常在它們之間是采用直接通信方式,即由源進程利用發送命令直接將消息(message)掛到目標進程的消息隊列上,以后由目標進程利用接受命令從其消息隊列中取出消息。

間接通信方式:將消息置于中間實體中(郵箱)。

4.?進程調度

作業調度+進程調度

從進程的就緒隊列中,按照一定的算法,選出一新進程,把處理機分配給它,使進程投入執行。

?

二、存儲器管理功能

·存儲器管理的主要任務:為多道程序的運行提供良好的環境,方便用戶使用存儲器,提高存儲器的利用率以及能從邏輯上擴充內存。

·內存分配、內存保護、地址映射、內存擴充

1.?內存分配

·內存分配有兩種方式:

(1)靜態分配方式 ?每個作業運行之前分配好內存空間,在作業的整個運行期間不再改變。

(2)動態分配方式 ?每個作業在運行前或運行中,均可申請新的附加存儲空間,以適應程序和數據的動態增長。

·內存分配機制中的結構和功能

(1)內存分配的數據結構,該結構用于記錄內存空間的使用情況。

(2)內存分配功能,為用戶程序分配內存空間。

(3)內存回收功能,當用戶不再需要內存時,系統回收內存的功能。

2.?內存保護

·內存保護的主要任務: ?確保每道用戶程序都只在自己的內存空間內運行,彼此互不干擾。

·內存保護機制: ?設置兩個界限寄存器,越界檢查都由硬件實現。

??

?

?

3.?地址映射

在硬件的支持下完成。

·地址空間——目標程序或裝入程序限定的空間,稱為“地址空間”。單元的編號稱為邏輯地址,又稱為相對地址。

·內存空間——由內存中的一系列單元所限定的地址范圍稱為“內存空間”。其中的地址稱為“物理地址”。

·地址映射——運行時,將地址空間中的邏輯地址轉換成內存空間中與之對應的物理地址稱為地址映射


?

?

4.?內存擴充

·借助于虛擬存儲技術,從邏輯上取擴充內存容量,使用戶所感覺到的內存容量比實際內存容量大得多。

·擴充內存必須具有內存擴充機制

(1)請求調入功能

在程序運行過程中,若所需的程序和數據尚未裝入內存,可由OS從磁盤中將所需部分調入內存,繼續運行。

(2)置換功能

將內存中的一部分暫時不用的程序和數據調出到磁盤上,然后再將所需調入的部分裝入內存。

?

三、設備管理功能

·設備管理的主要任務:完成用戶進程提出的IO請求;為用戶進程分配其所需的IO設備;提高CPUIO設備的利用率;提高IO速度;方便用戶使用IO設備。

·設備處理程序、設備分配/回收、緩沖管理、設備獨立性、虛擬設備。

1.?設備處理程序,又稱設備驅動程序。其基本任務:用于實現CPU和設備控制器之間的通信,即由CPU向設備控制器發出IO命令,要求它完成指定的IO操作。

2.?設備分配的基本任務,是根據用戶進程的IO請求,按照某種設備分配策略,為之分配所需的設備。不同的設備類型(獨占/共享)采用不同的設備分配方式。

設備控制表/控制器控制表

3.?緩沖管理有效的緩和CPUIO設備速度不匹配的矛盾,提高CPU的利用率,不同系統采用不同的緩沖技術。

4.設備獨立:應用程序獨立于物理設備,用戶編寫的程序與實際使用的物理設備無關。

5.虛擬設備

?

四、文件管理功能

·文件管理的主要任務:對用戶文件和系統文件進行管理,以方便用戶使用,并保證文件的安全性。

·文件管理的主要功能

1. 文件存儲空間的管理

對諸多文件及文件的存儲空間實施統一的管理。 ?離散分配方式

基于數據結構對存儲空間進行分配和回收的功能。 盤塊 512B~4KB

2. 目錄管理

為每個文件建立目錄項,并對眾多目錄項加以有效的組織與管理(例如,按名存取,文件共享,文件檢索)。

3. 文件的讀/寫管理和共享與保護

(1)文件的讀/寫管理:根據用戶的請求,從外存中讀取數據或將數據寫入外存。

(2)文件保護。讀寫操作不會同時進行--合用一個讀寫指針。

?

?

1.4 操作系統的服務

人們希望操作系統提供的服務有三種:

1.?操作系統能提供的服務。(功能性需求)

>通過命令接口和程序接口來實現。

2.?操作系統在提供這些服務時,需要滿足的限制條件。(非功能性需求)

>硬件資源的能力,操作系統的類型(實時系統、分時系統)

3.?操作系統具有適應某些變化的能力。(非功能性需求)

>Performance or Efficiency--maximum throughout, minimize response time

>Fairness ?Reliability ?Security ?Scalability ?Extensibility ?Portability

?

第一類服務需求是后兩類服務需求賴以存在的基礎,稱之為操作系統的功能性需求。

后兩類服務稱為操作系統的非功能性需求。

?

?

1.5 操作系統的基本特征

·現代OS的四個基本特征:并發、共享、虛擬、異步。

·并發是最重要的特征,其它特征都以并發為前提。


進程又稱任務。?


一、并發

·并發——并行性和并發性,并發執行的過程。

Parallelism:并行性指兩個或多個事件在同一時刻發生。

Concurrency:并發性指兩個或多個時間在同一時間間隔內發生。

·任務共行

——從宏觀上看,任務共行是指系統中有多個任務同時運行。

——從微觀上看,任務共行是指

單處理機系統中的任務并發(Task Concurrency):多個任務在單個處理機上交替運行;

多處理機系統中的任務并行(Task Parallelism):多個任務在多個處理機上同時運行。

二、共享

·所謂共享是指系統中的資源可供內存中多個并發執行的進行共同使用。

1.?互斥共享方式

如打印機。

——把在一段時間內只允許一個進程訪問的資源,稱為臨界資源。

——系統中的臨界資源可以供給多個進程使用,但一次僅允許一個進程使用,稱為互斥共享方式。

2.?同步訪問方式

如磁盤

——從宏觀上看,資源共享是指多個任務可以同時使用系統中的軟硬件資源。

——從微觀上看,資源共享是指多個任務可以交替互斥的使用系統中的某個資源,例如磁盤。

三、虛擬

·所謂虛擬是指通過某種技術把一個物理實體變為若干邏輯上的對應物。

·虛擬處理機:分時實現

·虛擬設備:SPOOLING技術

·虛擬存儲器:虛擬存儲管理實現

四、異步

1.執行結果不確定;

2.異步性——指進程以異步的方式執行,進程以人們不可預知的速度向前推進。

?

1.6 操作系統的形成與發展

·操作系統發展的原因:

1.硬件升級和新型硬件的出現,OS都應能適應。

2.新的服務:為適應用戶的要求或系統管理員的需要,需要擴展操作系統以提供新的服務。

3.糾正錯誤:任何一個操作系統都有錯誤,在使用一段時間后發現了錯誤就需要進行糾錯。當然,糾錯本身可能會產生新的錯誤。

4.計算機體系結構的不斷發展。

?

·根據計算機采用的電子器件來劃分

1.電子管計算機

2.晶體管計算機 ?批處理操作系統

3.集成電路計算機 IC ?Integrated Circuit ??“多道程序”“分時系統”

4.大規模集成電路計算機 ??GUI Windows

5.智能計算機

6.生物計算機

?

·體積大小、處理能力強弱標準劃分

1.微型計算機——功能多樣的個人計算機;

2.小型計算機——功能較強,可以同時執行多個任務;

3.大中型計算機——功能強大的通用數字電子計算機;

4.超級計算機——運算速度最快、存儲容量最大、功能最完善。

?

·現代計算機發展趨勢

1.微型化

2.巨型化

3.網絡化

4.多媒體化

5.智能化

?

1.7 操作系統的分類

·人工操作

·脫機輸入輸出

·單道批處理系統

·多道批處理系統

·分時系統

·實時系統

?

無操作系統時的計算機系統

1、人工操作方式

一臺計算機的所有資源由用戶獨占,降低了計算機資源的利用率,人工操作慢,出現了嚴重的人機矛盾。

2、脫機輸入輸出方式

·在外圍計算機的控制下,實現輸入輸出

·主要解決了CPU與設備之間不匹配的矛盾

?

一、單道批處理系統

1、在內存中僅存一道作業運行,運行結束或出錯,才自動調另一道作業運行。

2、單道批處理系統主要特征:自動性、順序性、單道性。

3、單道批處理系統主要優點:減少人工操作,解決了作業的自動連續。

4、單道批處理系統主要缺點:平均周轉時間長,沒有交互能力。

?

二、多道批處理系統

·多道程序的概念:在內存中存放多道作業運行,運行結束或出錯,自動調度內存中的另一道作業運行。

·多道批處理系統主要特征:多道性、無序性、調度性(進程調度和作業調度)。

·多道批處理系統主要優點:提高CPU、內存和IO設備的利用率。

·多道批處理系統主要缺點:平均周轉時間長,沒有交互能力。

?

?

?三、分時系統

·分時系統的產生:用戶需要——人機交互、共享主機、便于用戶上機。

·分時系統實現的方法:

簡單分時系統

具有“前臺”和“后臺”的分時系統

多道分時系統

?

?

?

?

·分時系統中的關鍵問題

——及時接收:實現多個用戶的信息及時接收;

——及時處理:及時控制作業的運行。

·分時系統的特征:

——多路性:多個用戶分時使用一臺計算機;

——獨立性:獨立運行,不混淆,不破壞;

——及時性:系統能在很短的時間的到回答;

——交互性:能實現人機對話。

·影響響應時間的若干因素


改善響應時間的方法:

采用重入碼減少信息的對換量;

采用虛擬存儲技術,減少信息對換量。


四、實時系統

·所謂實時系統:是計算機及時響應外部事件的請求,在規定的時間內完成對該事件的處理,并控制所有實時設備和實時任務協調一致的運行。

·實時系統分兩類:

實時控制系統;實時信息處理系統。

·實時系統的特征

——多路性:能對多個對象進行控制;

——獨立性:獨立運行,不混淆,不破壞;

——交互性:僅限于訪問系統中某些特定的專用服務程序;

——可靠性:高可靠性,應具有過載防護能力;

——及時性:不同的系統要求不一樣,控制對象必須在截止時間內完成。

?

1.8 操作系統的體系結構

·操作系統中增加了越來越多的功能,并且隨著底層硬件更高的性能,更加通用,操作系統的大小和復雜性也隨著增加。

·為了控制該軟件的復雜性,在開發OS時,先后引入了分解、模塊化、抽象、隱蔽等方法。開發方法的不斷發展,促進了OS結構的更新換代。

?無結構-->模塊化結構-->層次結構--> 微內核 ?面向對象 ?客戶/服務器結構


1.模塊化OS結構

·使用分塊結構的系統包含若干module(模塊),其中每一塊實現一組基本概念以及與其相關的基本屬性。

·塊與塊之間的相互聯系:所有各塊的實現均可以任意引用其它各塊所提供的概念及屬性。

·模塊化OS的優缺點:

優點:

1)提高了OS設計的正確性,可理解性,可維護性;

2)增強了OS的可適應性;

3)加速了OS的開發過程。

缺點:

1)對模塊的劃分及對接口的規定要精確描述很困難;

2)從功能觀點來劃分模塊時,未能將共享資源和獨占資源加以區別。

?

2.分層OS結構

使模塊間調用的無序性變為有序性

·使用分層系統結構包含若干layer(層),其中,每一層實現一組基本概念以及與其相關的基本屬性。

·層與層之間的相互關系

>所有各層的實現不依賴其以上各層所提供的概念及屬性,只依賴于其直接下層所提供的概念及屬性。

>每一層均對其上各層隱藏其下各層的存在。

?依據總體功能設計和結構設計中的功能圖和數據流圖進行分層。


||——操作方式的實現(批處理/分時/實時)——||

||——系統調用(為進程提供服務)——||

||——與硬件相關的(中斷,IO)放在底層——||


保證正確性

易維護

效率低


3.常見OS總體結構

?

?

雙模式基礎平臺子系統總體結構風格

雙模式基礎平臺子系統其總體結構包含兩個模式模塊,它們分別在兩種不同的CPU特權模式下運行:


?

注:習慣上,人們把雙模式基礎平臺子系統的這兩個模式模塊分別稱為核外子系統核心子系統

把核外子系統所使用的CPU模式稱為 User Mode

把核心子系統所使用的CPU模式稱為 Kernel Mode

?

雙模式運行結構圖

?

?

?

Apple

CP-M

8bit

IBM

PC-DOS

16bit

MS

MS-DOS

16bit

?

Windows 3.0

多道批處理

?

Windows 95

分時系統

?

Windows NT 4.0

內存丟失

?

Windows 2000

多處理器

?

?

Windows操作系統

·DOSDisk Operating System)操作系統曾是著名的個人計算機操作系統,以Intel 80x86為處理器的16位機器上,是一種以字符為基礎的、命令式的界面平臺。

·MS-DOSPC-DOS,前者是微軟(MicroSoft)公司的產品,后者是IBM公司的產品。

·DOS操作系統家族已經完成了它們的歷史使命,進入了IT博物館。

·MicroSoft1985年推出了一種采用圖形用戶界面(GUI--Graphic User Interface)的新穎的操作系統,稱為視窗(Windows)操作系統。此后,Windows操作系統系列逐漸發展壯大,形成了具有多種分支、版本、語言的操作系統家族。

?

UNIX操作系統

·UNIX操作系統最早由美國電話與電報公司(AT&T)貝爾實驗室研制。

·在1969年以來,廣泛的配置于大、中、小型計算機上。

·隨著微型機系統功能的增強,逐漸下移配置到個人計算機和微機工作站上。

·它的早期微機版本被稱為XENIX系統,目前已將UNIX系統的4.x版本在微機上實現運行。

?

UNIX系統是一種開放式的操作系統

主要特點

·它是一個真正的多用戶多任務操作系統,也是一種著名的分時操作系統。

·具有短小精悍的系統內核和功能強大的核外程序,前者提供系統基本服務,后者則向用戶提供大量的強功能服務。

·具有典型的樹形結構文件系統,并可建立可拆卸的文件子系統(文件存儲系統)。

·雖然用戶操作界面多采用命令行方式,但其強有力的Shell編程環境,既成為命令解釋工具,又成為一種編程語言。

?

LINUX操作系統

·LinuxUnix的變種,是一個源代碼開放的,多用戶操作系統。

·Linux支持多用戶、多任務、分頁式虛擬存儲、動態鏈接庫、動態調整文件系統緩沖區大小等功能。

·其網絡功能非常強大,幾乎能與當前絕大多數網絡互連。

·Linux的結構屬于整體式結構,由若干過程組成,過程之間可以相互調用。

·這樣的結構使其子系統易于擴展,因此,Linux為眾多開發者提供了自由靈活的設計環境,使它得以快速發展。

?

Linux的抽象結構

?

>用戶進程

>系統調用接口:由若干指令構成,運行在內核模式,是Linux內核代碼的一部分

>Linux內核:是OS的靈魂,負責管理文件、內存,啟動運行程序,從網絡接收/發送數據包

>硬件:CPU、硬盤、網絡硬件等。


?

?

?

微內核:


盡可能減少內核的功能

微內核只包含基本的、共同的功能(進線程管理、低級存儲器管理、中斷和陷入的處理)

基于客戶/服務器模式。


1.9 操作系統的硬件環境

1.9.1 中央處理器 CPU

總線?

地址總線

數據總線

控制總線

?

832位通用寄存器

數據寄存器組

AX?累加器(Accumulator),CPU中使用最多,功能最強,執行效率的寄存器.?

BX?基地址寄存器(Base?Register).?

CX?計數寄存器(Count?Register).?

DX?數據寄存器(Data?Register).

指示器變址寄存器組

SPStack Pointer):堆棧指針,與SS配合使用,可指向目前的堆棧位置。
BPBase Pointer):基址指針寄存器,可用作SS的一個相對基址位置;
SISource Index):源變址寄存器可用來存放相對于DS段之源變址指針;
DIDestination Index):目的變址寄存器,可用來存放相對于 ES?段之目的變址指針


指令指針寄存器:IPInstruction Pointer),與CS配合使用,可跟蹤程序的執行過程


段寄存器組:

CSCode Segment):代碼段寄存器;
DSData Segment):數據段寄存器;
SSStack Segment):堆棧段寄存器;
ESExtra Segment):附加段寄存器。


標志寄存器:FLAGS

?

SS:SP ?

CS:IP

DS:XXXX

段最大2^16=64k1M內存最少16個段。

?


每個CPU都有自己的指令系統

組成:

運算器:算術邏輯單元

控制器:控制程序運行流程:取指、維護處理機狀態、內存交互

寄存器:暫存數據、地址、指令

高速緩存:由控制器的內存管理單元MMUmemory management unit)管理

?

寄存器:

1、用戶可見寄存器

數據寄存器(通用寄存器)

地址寄存器

條件碼寄存器

2、控制和狀態寄存器

程序計數器 ?PC program counter ?

指令寄存器 ?IR instruction register

程序狀態字 ?PSW program status word

——處理機工作狀態碼:指明管態、目態

——條件碼:反映指令執行后的結果特征

——中斷屏蔽碼:是否允許中斷

?

指令周期:

讀取指令

執行指令

?

5類指令

訪問存儲器指令

IO指令

算術邏輯指令

控制轉移指令

處理機控制指令 ?改變處理機狀態

?

多道程序設計中,分特權指令/非特權指令,僅由操作系統執行。

如果程序使用特權指令,將引起處理機狀態切換到內核態,將處理權移交給操作系統中的一段特殊代碼,這一過程稱為陷入。

?

處理機狀態:

管態 特權態 系統態

目態 普通態 用戶態

?

?

1.9.2 存儲體系

RAM random access memory

ROM read only memory

?

層次結構:程序的存儲訪問局部性原理

寄存器-->高速緩存-->內存-->硬盤-->光盤

?

存儲分塊

bit

Byte = 8bit ???存儲器最小編址單位

Word = 2Byte

Double Word = 4 Byte

存儲器分塊,以塊(物理頁)為單位進行管理 512B ?1KB ?4KB ?8KB


存儲保護

界地址寄存器

下限寄存器+上限寄存器 ?或

基址寄存器+限長寄存器(指示存儲區長度)

如越界,產生越界中斷/存儲保護中斷

存儲鍵

操作系統為進程和其可訪問內存塊賦予相同的存儲保護鍵。

進程運行時,將存儲鍵號放入PSW,每當訪問內存,則進行匹配。

?

多級緩沖技術

緩解處理速度與傳輸速度不匹配的矛盾

1、處理機<-->內存

2、處理機<-->外設

2、外設<-->外設

?

1.9.3 中斷

處理機對系統中或系統外發生的異步事件的響應,操作系統為中斷事件驅動。

異步事件:無一定時序關系的隨機發生的事件。(外設完成數據傳輸,實時設備異常等)

中斷來源于:異步事件發生后,打斷了處理機對當前程序的執行,轉而處理此事件。處理完成后,再轉回原程序的中斷點繼續執行。

?

最初,中斷技術是向處理機報告“設備已完成操作”的一種手段,避免處理機不斷測試設備狀態而耗費大量處理機時間。

?

相關概念:

通常,中斷是作為要打斷處理機正常工作并要求其去處理某一事件的一種常用手段出現。

中斷斷點

中斷時間/中斷源 ?PC機中有256中不同的中斷

中斷字

中斷請求

中斷處理程序 ???

中斷返回

?

在中斷斷點處,中斷源將中斷字作為中斷請求發送給處理機,處理機進行中斷響應,運行中斷處理程序后中斷返回。

?

作用:充分發揮處理機使用效率,避免不斷查詢和等待,提高系統實時能力。

?

典型4種中斷:

1、程序中斷 ?除0、溢出、非法指令、數組越界

2、時鐘中斷

3IO中斷

4、硬件失效中斷

?

中斷:正常執行的程序被打斷,完成中斷處理后再恢復執行。

?

微機中:

可屏蔽中斷(IO中斷)

不可屏蔽中斷(硬件中斷)

程序錯誤中斷(除0、溢出)

軟件中斷(Trap指令/中斷指令)

?

IBM370中:

計算機故障中斷?(?電源故障、電路檢驗錯、內存奇偶校驗錯)

IO中斷

外部中斷 ?(時鐘中斷、外設實時中斷...

程序中斷 ?(除0、溢出、數組越界)

訪管中斷 ?(系統調用、訪管指令/陷阱指令)

?

從被激發的方式:

強迫性中斷:隨機性較強? ??時鐘中斷、IO中斷、控制臺中斷、硬件故障、程序性中斷(非法指令)

自愿性中斷:由訪管指令引起,要求操作系統提供系統服務

?

異步中斷 ?隨機

同步中斷 ?異常 位置確定

?

硬件中斷

軟件中斷

?

中斷系統:硬件+軟件

硬件中斷裝置

軟件中斷處理程序

?

很多中斷源可能同時發生,需由中斷邏輯按中斷優先級判定相應哪個中斷請求。

每個中斷源對應一個觸發器來寄存中斷信號,1為有中斷信號。

觸發器全體稱為中斷寄存器,每個觸發器稱為一個中斷位。

處理機控制器中有一個中斷掃描器,在每條指令周期的最后時刻掃描中斷寄存器,若有中斷,則將該觸發器內容按規定編寫入PSW的響應位,稱為中斷碼

?

多級中斷和中斷屏蔽

多級中斷:有多根中斷請求線(級)從不同設備連接到中斷邏輯,具有相同特性和優先級的設備可連接到同一中斷線(級)上。

中斷優先級:同一優先級的多個中斷請求

——固定優先級:近者優先

——輪轉法

?

自愿訪管中斷不能被禁止

PSW中的某些位決定被屏蔽的中斷類。

?

向量中斷:當處理機接收某優先級較高的中斷請求時,該設備向處理機發送一個唯一性的“中斷向量”以標識該設備。

中斷向量在各計算機上實現方法差別比較大。

有的計算機,將內存最低的128個字作為中斷向量表。

?

中斷優先級由高到低:

機器故障

程序中斷 訪管中斷

外部中斷

IO中斷

?

實時系統中,將重要意義的傳感器發出的中斷作為高優先級。

?

中斷過程中又發生中斷:

1、掛起,等本中斷完成后再執行;

2、按優先級決定,若高于本中斷,則掛起本中斷,執行之。

?

時鐘:硬件的時鐘寄存器按時鐘電路產生的脈沖+1/-1

操作系統會提供虛擬時鐘(軟件時鐘)

?


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/387234.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/387234.shtml
英文地址,請注明出處:http://en.pswp.cn/news/387234.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

CNN訓練模型 花卉

一、CNN訓練模型 模型尺寸分析&#xff1a;卷積層全都采用了補0&#xff0c;所以經過卷積層長和寬不變&#xff0c;只有深度加深。池化層全都沒有補0&#xff0c;所以經過池化層長和寬均減小&#xff0c;深度不變。http://download.tensorflow.org/example_images/flower_photo…

Linux re

正則表達式并不是一個工具程序&#xff0c;而是一個字符串處理的標準依據&#xff0c;如果想要以正則表達式的方式處理字符串&#xff0c;就得使用支持正則表達式的工具&#xff0c;例如grep、vi、sed、asw等。 注意&#xff1a;ls不支持正則表達式。 grep 正則表達式: 注意gr…

操作系統02進程管理Process_Description_and_Control

作業的基本概念&#xff1a;用戶再一次計算過程中或一次事務處理過程中&#xff0c;要求計算機系統所做的工作的集合。 包含多個程序、多個數據、作業控制說明書 系統調用時操作系統提供給編程人員的唯一接口。 1、文件操作類&#xff1b; 2、進程控制類&#xff1b; 3、資…

藍橋杯 方格填數(全排列+圖形補齊)

方格填數 如下的10個格子 填入0~9的數字&#xff0c;同一數字不能重復填。要求&#xff1a;連續的兩個數字不能相鄰。&#xff08;左右、上下、對角都算相鄰&#xff09; 一共有多少種可能的填數方案&#xff1f; 請填寫表示方案數目的整數。注意&#xff1a;你提交的應該是一個…

操作系統03進程管理Process_Scheduling

2 Process Scheduling >Type of scheduling >Scheduling Criteria (準則) >Scheduling Algorithm >Real-Time Scheduling (嵌入式系統) 2.1 Learning Objectives By the end of this lecture you should be able to Explain what is Response Time 響應時間-…

花卉分類CNN

tensorflow升級到1.0之后&#xff0c;增加了一些高級模塊&#xff1a; 如tf.layers, tf.metrics, 和tf.losses&#xff0c;使得代碼稍微有些簡化。 任務&#xff1a;花卉分類 版本&#xff1a;tensorflow 1.3 數據&#xff1a;http://download.tensorflow.org/example_images/f…

【模板】可持久化線段樹

可持久化線段樹/主席樹&#xff1a; 顧名思義&#xff0c;該數據結構是可以訪問歷史版本的線段樹。用于解決需要查詢歷史信息的區間問題。 在功能與時間復雜度上與開n棵線段樹無異&#xff0c;然而空間復雜度從$O(n\times nlogn)$降到了$O(nlogn)$。 實現方法&#xff1a; 每次…

skimage庫需要依賴 numpy+mkl 和scipy

skimage庫需要依賴 numpymkl 和scipy1、打開運行&#xff0c;輸入cmd回車&#xff0c;輸入python回車&#xff0c;查看python版本2、在https://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy 中&#xff0c;根據自己python版本下載需要的包 &#xff08;因為我的是python 2.7.13 …

操作系統04進程同步與通信

4.1 進程間的相互作用 4.1.1 進程間的聯系資源共享關系相互合作關系臨界資源應互斥訪問。臨界區&#xff1a;不論是硬件臨界資源&#xff0c;還是軟件臨界資源&#xff0c;多個進程必須互斥地對它們進行訪問。把在每個進程中訪問臨界資源的那段代碼稱為臨界資源區。顯然&#x…

oracle遷移到greenplum的方案

oracle數據庫是一種關系型數據庫管理系統&#xff0c;在數據庫領域一直處于領先的地位&#xff0c;適合于大型項目的開發&#xff1b;銀行、電信、電商、金融等各領域都大量使用Oracle數據庫。 greenplum是一款開源的分布式數據庫存儲解決方案&#xff0c;主要關注數據倉庫和BI…

CNN框架的搭建及各個參數的調節

本文代碼下載地址&#xff1a;我的github本文主要講解將CNN應用于人臉識別的流程&#xff0c;程序基于PythonnumpytheanoPIL開發&#xff0c;采用類似LeNet5的CNN模型&#xff0c;應用于olivettifaces人臉數據庫&#xff0c;實現人臉識別的功能&#xff0c;模型的誤差降到了5%以…

操作系統05死鎖

進程管理4--Deadlock and Starvation Concurrency: Deadlock and Starvation 內容提要 >產生死鎖與饑餓的原因 >解決死鎖的方法 >死鎖/同步的經典問題&#xff1a;哲學家進餐問題 Deadlock 系統的一種隨機性錯誤 Permanent blocking of a set of processes that eith…

CNN tensorflow 人臉識別

數據材料這是一個小型的人臉數據庫&#xff0c;一共有40個人&#xff0c;每個人有10張照片作為樣本數據。這些圖片都是黑白照片&#xff0c;意味著這些圖片都只有灰度0-255&#xff0c;沒有rgb三通道。于是我們需要對這張大圖片切分成一個個的小臉。整張圖片大小是1190 942&am…

數據結構01緒論

第一章緒論 1.1 什么是數據結構 數據結構是一門研究非數值計算的程序設計問題中&#xff0c;計算機的操作對象以及他們之間的關系和操作的學科。 面向過程程序數據結構算法 數據結構是介于數學、計算機硬件、計算機軟件三者之間的一門核心課程。 數據結構是程序設計、編譯…

css3動畫、2D與3D效果

1.兼容性 css3針對同一樣式在不同瀏覽器的兼容 需要在樣式屬性前加上內核前綴&#xff1b; 谷歌&#xff08;chrome&#xff09; -webkit-transition: Opera&#xff08;歐鵬&#xff09; -o-transition: Firefox&#xff08;火狐&#xff09; -moz-transition Ie -ms-tr…

ES6學習筆記(六)數組的擴展

1.擴展運算符 1.1含義 擴展運算符&#xff08;spread&#xff09;是三個點&#xff08;...&#xff09;。它好比 rest 參數的逆運算&#xff0c;將一個數組轉為用逗號分隔的參數序列。 console.log(...[1, 2, 3]) // 1 2 3console.log(1, ...[2, 3, 4], 5) // 1 2 3 4 5[...doc…

數據結構02線性表

第二章 線性表 C中STL順序表&#xff1a;vector http://blog.csdn.net/weixin_37289816/article/details/54710677鏈表&#xff1a;list http://blog.csdn.net/weixin_37289816/article/details/54773406在數據元素的非空有限集中&#xff1a; (1)存在唯一一個被稱作“第…

訓練一個神經網絡 能讓她認得我

寫個神經網絡&#xff0c;讓她認得我(?????)(Tensorflow,opencv,dlib,cnn,人臉識別) 這段時間正在學習tensorflow的卷積神經網絡部分&#xff0c;為了對卷積神經網絡能夠有一個更深的了解&#xff0c;自己動手實現一個例程是比較好的方式&#xff0c;所以就選了一個這樣比…

數據結構03棧和隊列

第三章棧和隊列 STL棧&#xff1a;stack http://blog.csdn.net/weixin_37289816/article/details/54773495隊列&#xff1a;queue http://blog.csdn.net/weixin_37289816/article/details/54773581priority_queue http://blog.csdn.net/weixin_37289816/article/details/5477…

Java動態編譯執行

在某些情況下&#xff0c;我們需要動態生成java代碼&#xff0c;通過動態編譯&#xff0c;然后執行代碼。JAVA API提供了相應的工具&#xff08;JavaCompiler&#xff09;來實現動態編譯。下面我們通過一個簡單的例子介紹&#xff0c;如何通過JavaCompiler實現java代碼動態編譯…