簡介
控制器(controller)是指按照預(yù)定順序改變主電路或控制電路的接線和改變電路中電阻值來控制電動機(jī)的啟動、調(diào)速、制動和反向的主令裝置。作業(yè)控制器即用于將作業(yè)交給計算機(jī)及控制作業(yè)運(yùn)行的裝置。作業(yè)控制器使作業(yè)處理從人為操作方式轉(zhuǎn)變成了脫機(jī)處理的方式。
作業(yè)類型脫機(jī)作業(yè)是指在計算機(jī)上無須人工干預(yù)而執(zhí)行系列程序的作業(yè)。操作系統(tǒng)提供了一個作業(yè)控制語言 JCL(Job Control Language), 用戶使用 JCL 語言預(yù)先寫好作業(yè)說明書,將它和作業(yè)的程序與數(shù)據(jù)一起提交給計算機(jī),當(dāng)該作業(yè)運(yùn)行時,OS 將逐條按照用戶作業(yè)說明書的控制語句,自動控制作業(yè)的執(zhí)行。脫機(jī)作業(yè)有如下優(yōu)點:
允許多用戶共享計算機(jī)資源
可以把作業(yè)處理轉(zhuǎn)移到計算機(jī)資源不太繁忙的時段
避免計算資源閑置,而且無須時刻有人工監(jiān)視和干預(yù)
在昂貴的高端計算機(jī)上,使昂貴的資源保持高使用率,以減低平均開銷
聯(lián)機(jī)作業(yè)聯(lián)機(jī)作業(yè)(on-line job):指由用戶從終端打入鍵盤命令,直接控制其運(yùn)行的作業(yè),通常又稱為終端型作業(yè)。用戶可以使用聯(lián)機(jī)控制命令來對自己的作業(yè)進(jìn)行控制。
作業(yè)控制器基本功能數(shù)據(jù)緩沖:由于I/O設(shè)備的速率較低而CPU和內(nèi)存的速率卻很高,故在控制器中必須設(shè)置一緩沖器。在輸出時,用此緩沖器暫存由主機(jī)高速傳來的數(shù)據(jù),然后才以I/O設(shè)備所具有的速率將緩沖器中的數(shù)據(jù)傳送給I/O設(shè)備;在輸入時,緩沖器則用于暫存從I/O設(shè)備送來的數(shù)據(jù),待接收到一批數(shù)據(jù)后,再將緩沖器中的數(shù)據(jù)高速地傳送給主機(jī)。
差錯控制:設(shè)備控制器還兼管對由I/O設(shè)備傳送來的數(shù)據(jù)進(jìn)行差錯檢測。若發(fā)現(xiàn)傳送中出現(xiàn)了錯誤,通常是將差錯檢測碼置位,并向 CPU報告,于是CPU將本次傳送來的數(shù)據(jù)作廢,并重新進(jìn)行一次傳送。這樣便可保證數(shù)據(jù)輸入的正確性。
數(shù)據(jù)交換:這是指實現(xiàn)CPU與控制器之間、控制器與設(shè)備之間的數(shù)據(jù)交換。對于前者,是通過數(shù)據(jù)總線,由CPU并行地把數(shù)據(jù)寫入控制器,或從控制器中并行地讀出數(shù)據(jù);對于后者,是設(shè)備將數(shù)據(jù)輸入到控制器,或從控制器傳送給設(shè)備。為此,在控制器中須設(shè)置數(shù)據(jù)寄存器。
狀態(tài)說明:標(biāo)識和報告設(shè)備的狀態(tài)控制器應(yīng)記下設(shè)備的狀態(tài)供CPU了解。例如,僅當(dāng)該設(shè)備處于發(fā)送就緒狀態(tài)時,CPU才能啟動控制器從設(shè)備中讀出數(shù)據(jù)。為此,在控制器中應(yīng)設(shè)置一狀態(tài)寄存器,用其中的每一位來反映設(shè)備的某一種狀態(tài)。當(dāng)CPU將該寄存器的內(nèi)容讀入后,便可了解該設(shè)備的狀態(tài)。
接收和識別命令:CPU可以向控制器發(fā)送多種不同的命令,設(shè)備控制器應(yīng)能接收并識別這些命令。為此,在控制器中應(yīng)具有相應(yīng)的控制寄存器,用來存放接收的命令和參數(shù),并對所接收的命令進(jìn)行譯碼。例如,磁盤控制器可以接收CPU發(fā)來的Read、Write、Format等15條不同的命令,而且有些命令還帶有參數(shù);相應(yīng)地,在磁盤控制器中有多個寄存器和命令譯碼器等。
地址識別:就像內(nèi)存中的每一個單元都有一個地址一樣,系統(tǒng)中的每一個設(shè)備也都有一個地址,而設(shè)備控制器又必須能夠識別它所控制的每個設(shè)備的地址。此外,為使CPU能向(或從)寄存器中寫入(或讀出)數(shù)據(jù),這些寄存器都應(yīng)具有唯一的地址。
組成作業(yè)控制器位于 CPU 與設(shè)備之間,它既要與 CPU 通信,又要與設(shè)備通信,還應(yīng)具有按照 CPU 所發(fā)來的命令去控制設(shè)備工作的功能,因此,現(xiàn)有的大多數(shù)控制器都是由以下三部分組成的。
設(shè)備控制器與處理機(jī)的接口該接口用于實現(xiàn) CPU 與設(shè)備控制器之間的通信。共有三類信號線: 數(shù)據(jù)線、地址線和控制線。數(shù)據(jù)線通常與兩類寄存器相連接,第一類是數(shù)據(jù)寄存器(在控制器中可以有一個或多個數(shù)據(jù)寄存器,用于存放從設(shè)備送來的數(shù)據(jù)(輸入)或從 CPU 送來的數(shù)據(jù)(輸出));第二類是控制/狀態(tài)寄存器(在控制器中可以有一個或多個這類寄存器,用于存放從 CPU 送來的控制信息或設(shè)備的狀態(tài)信息)。
設(shè)備控制器與設(shè)備的接口在一個設(shè)備控制器上,可以連接一個或多個設(shè)備。相應(yīng)地,在控制器中便有一個或多個設(shè)備接口,一個接口連接一臺設(shè)備。在每個接口中都存在數(shù)據(jù)、控制和狀態(tài)三種類型的信號??刂破髦械?I/O 邏輯根據(jù)處理機(jī)發(fā)來的地址信號去選擇一個設(shè)備接口。
I/O 邏輯在設(shè)備控制器中的 I/O 邏輯用于實現(xiàn)對設(shè)備的控制。它通過一組控制線與處理機(jī)交互,處理機(jī)利用該邏輯向控制器發(fā)送 I/O 命令; I/O 邏輯對收到的命令進(jìn)行譯碼。 每當(dāng) CPU 要啟動一個設(shè)備時,一方面將啟動命令發(fā)送給控制器;另一方面又同時通過地址線把地址發(fā)送給控制器, 由控制器的 I/O 邏輯對收到的地址進(jìn)行譯碼, 再根據(jù)所譯出的命令對所選設(shè)備進(jìn)行控制。