国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

第二章:基本概念(下)

這篇具有很好參考價值的文章主要介紹了第二章:基本概念(下)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

信號

人們往往將信號稱為**“軟件中斷”**。進程收到信號,就意味著某一事件或異常情況的發(fā)生。

信號的類型很多,每一種分別標識不同的事件或情況。采用不同的整數(shù)來標識各種信號類型,并以SIGxxxx 形式的符號名加以定義。

內(nèi)核、其他進程(只要具有相應的權限)或進程自身均可向進程發(fā)送信號。例如,發(fā)生
下列情況之一時,內(nèi)核可向進程發(fā)送信號。

  • 用戶鍵入中斷字符(通常為Control-C)。
  • 進程的子進程之一已經(jīng)終止。
  • 由進程設定的定時器(告警時鐘)已經(jīng)到期。
  • 進程嘗試訪問無效的內(nèi)存地址。

在shell 中,可使用kill命令向進程發(fā)送信號。在程序內(nèi)部,系統(tǒng)調(diào)用kill()可提供相同的功能。

收到信號時,進程會根據(jù)信號采取如下動作之一。

  • 忽略信號。
  • 被信號“殺死”。
  • 先掛起,之后再被專用信號喚醒。

程序可選擇不采取默認的信號動作,而是忽略信號(當信號的默認處理行為并非忽略此信號時,會派上用場)

或者建立自己的信號處理器。信號處理器是由程序員定義的函數(shù),會在進程收到信號時自動調(diào)用,根據(jù)信號的產(chǎn)生條件執(zhí)行相應動作。

信號從產(chǎn)生直至送達進程期間,一直處于掛起狀態(tài)。通常,系統(tǒng)會在接收進程下次獲得調(diào)度時,將處于掛起狀態(tài)的信號同時送達。如果接收進程正在運行,則會立即將信號送達。

然而,程序可以將信號納入所謂**“信號屏蔽”**以求阻塞該信號。如果產(chǎn)生的信號處于“信號屏蔽”之列,那么此信號將一直保持掛起狀態(tài),直至解除對該信號的阻塞。(亦即從信號屏蔽中移除。)

線程

每個進程都可執(zhí)行多個線程??蓪⒕€程想象為共享同一虛擬內(nèi)存及一干其他屬性的進程。每個線程都會執(zhí)行相同的程序代碼,共享同一數(shù)據(jù)區(qū)域和堆??墒?,每個線程都擁有屬于自己的,用來裝載本地變量和函數(shù)調(diào)用鏈接信息

線程之間可通過共享的全局變量進行通信。借助于線程 API 所提供的條件變量和互斥機制,進程所屬的線程之間得以相互通信并同步行為—尤其是在對共享變量的使用方面。此外,利用IPC 和同步機制,線程間也能彼此通信。

線程的主要優(yōu)點在于**協(xié)同線程之間的數(shù)據(jù)共享(通過全局變量)**更為容易,
而且就某些算法而論,以多線程來實現(xiàn)比之以多進程實現(xiàn)要更加自然。
再者,多線程應用能從多處理器硬件的并行處理中獲益匪淺。

進程組和shell任務控制

shell 執(zhí)行的每個程序都會在一個新進程內(nèi)發(fā)起。

比如shell篡改見了3個進程來執(zhí)行以下管道命令(在當前的工作目錄下,根據(jù)文件大小對文件進行排序并展示):

ls -l | sort -k5n | less

幾乎所有的主流shell 都提供了一種交互式特性,名為任務控制。該特性允許用戶同時執(zhí)行并操縱多條命令或管道。

在支持任務控制的shell 中,會將管道內(nèi)的所有進程置于一個新進程組或任務中。(如果情況很簡單,shell 命令行只包含一條命令,那么就會創(chuàng)建一個只包含單個進程的新進程組。)

進程組中的每個進程都具有相同的進程組標識符(以整數(shù)形式),其實就是進程組中某個進程(也稱為進程組組長process group leader)的進程ID。

內(nèi)核可對進程組中的所有成員執(zhí)行各種動作,尤其是信號的傳遞。支持任務控制的shell 會利用這一特性,以掛起或恢復執(zhí)行管道中的所有進程

會話、控制終端和控制進程

會話指的是一組進程組(任務)。會話中的所有進程都具有相同的會話標識符。

**會話首進程(session leader)**是指創(chuàng)建會話的進程,其進程ID 會成為會話ID。

使用會話最多的是支持任務控制的shell,由shell 創(chuàng)建的所有進程組與shell 自身隸屬于同一會話,shell 是此會話的會話首進程。

通常,會話都會與某個控制終端相關。控制終端建立于會話首進程初次打開終端設備之時。對于由交互式shell 所創(chuàng)建的會話,這恰恰是用戶的登錄終端。一個終端至多只能成為一個會話的控制終端。

打開控制終端會致使會話首進程成為終端的控制進程。一旦斷開了與終端的連接(比如,關閉了終端窗口),控制進程將會收到SIGHUP 信號。

在任一時點,會話中總有一個前臺進程組(前臺任務),可以從終端中讀取輸入,向終端發(fā)送輸出。如果用戶在控制終端中輸入了“中斷”(通常是Control-C)或“掛起”字符(通常是Control-Z),那么終端驅(qū)動程序會發(fā)送信號以終止或掛起(亦即停止)前臺進程組。一個會話可以擁有任意數(shù)量的后臺進程組(后臺任務),由以“&”字符結(jié)尾的行命令來創(chuàng)建。

支持任務控制的shell 提供如下命令:列出所有任務,向任務發(fā)送信號,以及在前后臺任務之間來回切換。

偽終端

偽終端是一對相互連接的虛擬設備,也稱為主從設備。在這對設備之間,設有一條IPC(進程間通信)信道,可供數(shù)據(jù)進行雙向傳遞。

從設備(slave device)所提供的接口,其行為方式與終端相類似,基于這一特點,可以將某個為終端編寫的程序與從設備連接起來,然后,再利用連接到主設備的另一程序來驅(qū)動這一“面向終端”的程序,這是偽終端的一個關鍵用途。

由“驅(qū)動程序”所產(chǎn)生的輸出,在經(jīng)由終端驅(qū)動程序的常規(guī)輸入處理(例如,默認情況下,會把回車符映射為換行符)后,會作為輸入傳遞給與從設備相連的面向終端的程序。而由面向終端的程序向從設備寫入的任何數(shù)據(jù)又作為“驅(qū)動程序”的輸入來傳遞(在執(zhí)行完所有常規(guī)的終端輸入處理后)。換句話說,“驅(qū)動程序”所履行的功能,在效果上等同于用戶通常在傳統(tǒng)終端上所執(zhí)行的操作。

偽終端廣泛應用于各種應用領域,最知名的要數(shù)telnet 和ssh 之類提供網(wǎng)絡登錄服務的應用,以及X Window 系統(tǒng)所提供的終端窗口實現(xiàn)。

日期和時間

進程涉及兩種類型的時間:

  • 真實時間:指的是在進程的生命期內(nèi)(所經(jīng)歷的時間或時鐘時間),以某個標準時間點(日歷時間)或固定時間點(通常是進程的啟動時間)為起點測量得出的時間。在UNIX 系統(tǒng)上,日歷時間是以國際協(xié)調(diào)時間(簡稱UTC)1970 年1 月1 日凌晨為起始點,按秒測量得出的時間,再進行時區(qū)調(diào)整。這一日期與UNIX 系統(tǒng)的生日很接近,也被稱為紀元(Epoch)。
  • 進程時間:也稱CPU 時間,指的是進程自啟動起來,所占用的CPU 時間總量??蛇M一步將CPU 時間劃分為系統(tǒng)CPU 時間用戶CPU 時間。前者是指在內(nèi)核模式中,執(zhí)行代碼所花費的時間(比如,執(zhí)行系統(tǒng)調(diào)用,或代表進程執(zhí)行其他的內(nèi)核服務)。后者是指在用戶模式中,執(zhí)行代碼所花費的時間(比如,執(zhí)行常規(guī)的程序代碼)。

time 命令會顯示出真實時間、系統(tǒng)CPU 時間,以及為執(zhí)行管道中的多個進程而花費的用戶CPU 時間。

客戶端/服務器架構(gòu)

客戶端/服務器應用由兩個組件進程組成。

  • 客戶端:向服務器發(fā)送請求消息,請求服務器執(zhí)行某些服務。
  • 服務器:分析客戶端的請求,執(zhí)行相應的動作,然后,向客戶端回發(fā)響應消息。

客戶端應用通常與用戶打交道,而服務器應用則提供對某些共享資源的訪問。一般說來,都是眾多客戶端進程與為數(shù)不多的一個或幾個服務器端進程進行通信。

客戶端和服務器使用IPC 機制來實現(xiàn)彼此通信。

將某項服務封裝于單獨的服務器應用中,原因舉例如下。

  • 效率:較之于在本地的每臺計算上提供相同資源,在服務器應用管理之下提供資源的一份實例,則要節(jié)約許多。
  • 控制、協(xié)調(diào)和安全:由于資源(尤其是信息資源)的統(tǒng)一存放,服務器既可以協(xié)調(diào)對資源的訪問(例如,兩個客戶端不能同時更新同一信息),還可以保護資源安全,令其只對特定客戶端開放。
  • 在異構(gòu)環(huán)境中運行:在網(wǎng)絡中,客戶端和服務器應用所運行的硬件平臺和操作系統(tǒng)可以不同。

實時性

要提供實時響應,特別是在短時間內(nèi)加以響應,就需要底層操作系統(tǒng)的支持。由于實時響應的需求與多用戶分時操作系統(tǒng)的需求存在沖突,大多數(shù)操作系統(tǒng)“天生”并不提供這樣的支持。

/proc文件系統(tǒng)

/proc 文件系統(tǒng)是一種虛擬文件系統(tǒng),以文件系統(tǒng)目錄和文件形式,提供一個指向內(nèi)核數(shù)據(jù)結(jié)構(gòu)的接口。方便查看和改變各種系統(tǒng)屬性。

還能通過一組以/proc/PID 形式命名的目錄(PID 即進程ID)查看系統(tǒng)中運行各進程的相關信息。

通常,/proc 目錄下的文件內(nèi)容都采取人類可讀的文本形式,shell 腳本也能對其進行解析。程序可以打開、讀取和寫入/proc 目錄下的既定文件。

大多數(shù)情況下,只有特權級進程才能修改/proc 目錄下的文件內(nèi)容。文章來源地址http://www.zghlxwxcb.cn/news/detail-480427.html

總結(jié)

到了這里,關于第二章:基本概念(下)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 第二章 圖像基本運算及變換

    第二章 圖像基本運算及變換

    本章主要講解圖像的一些基本運算及仿射變換以及透視變換。 圖像相加 imgA + imgB :當其和大于一個字節(jié)時, 大于一個字節(jié)的位數(shù)將被丟失,類似于取模。 ( A + B ) % 256 (A + B) % 256 ( A + B ) %256 cv2.add(imgA, imgB) :當數(shù)值超過 255 時,取值為 255 m i n ( A + B , 255 ) min(A + B, 255) min ( A

    2024年02月03日
    瀏覽(22)
  • C++第二章:變量和基本內(nèi)置類型

    C++第二章:變量和基本內(nèi)置類型

    C++定義了一套包括算數(shù)類型和空類型在內(nèi)的基本數(shù)據(jù)類型。 其中算數(shù)類型包含了字符、整形數(shù)、布爾值、浮點數(shù)??疹愋筒粚唧w的值,僅用于一些特殊的場合,例如最常見的是:當一個函數(shù)不返回任何值時使用空類型作為返回類型。 算數(shù)類型分為兩種:整形(包括字符和

    2024年02月06日
    瀏覽(25)
  • 【第二章 selenium基本操作之元素】

    【第二章 selenium基本操作之元素】

    第一章 【初識selenium自動化測試框架(詳細記錄)】 1). F12 進入開發(fā)調(diào)試工具(DevTools) 2). 選擇圖中紅圈的箭頭(select element),則鼠標放到相應元素上可看獲取到信息,例如屬性與內(nèi)容等 或者右鍵點擊某個元素,選擇 檢查 規(guī)范性的網(wǎng)站一般id是唯一的(在html中是 標記

    2024年02月08日
    瀏覽(28)
  • 計算機網(wǎng)絡重點概念整理-第二章 物理層【期末復習|考研復習】

    計算機網(wǎng)絡重點概念整理-第二章 物理層【期末復習|考研復習】

    計算機網(wǎng)絡復習系列文章傳送門: 第一章 計算機網(wǎng)絡概述 第二章 物理層 第三章 數(shù)據(jù)鏈路層 第四章 網(wǎng)絡層 第五章 傳輸層 第六章 應用層 第七章 網(wǎng)絡安全 計算機網(wǎng)絡整理-簡稱縮寫 給大家整理了一下計算機網(wǎng)絡中的重點概念,以供大家期末復習和考研復習的時候使用。 參

    2024年02月08日
    瀏覽(30)
  • 計算機操作系統(tǒng)重點概念整理-第二章 進程管理【期末復習|考研復習】

    計算機操作系統(tǒng)重點概念整理-第二章 進程管理【期末復習|考研復習】

    計算機操作系統(tǒng)復習系列文章傳送門: 第一章 計算機系統(tǒng)概述 第二章 進程管理 第三章 進程同步 第四章 內(nèi)存管理 第五章 文件管理 第六章 輸出輸出I/O管理 給大家整理了一下計算機操作系統(tǒng)中的重點概念,以供大家期末復習和考研復習的時候使用。 參考資料是王道的計算

    2024年02月08日
    瀏覽(35)
  • 第二章 Flink集成Iceberg的集成方式及基本SQL使用

    第二章 Flink集成Iceberg的集成方式及基本SQL使用

    注意事項:一般都是用基于Flink的Hive Catalog,使用HMS存儲表模型數(shù)據(jù) 1、集成方式 (1)下載jar包 下載地址 (2)啟動FlinkSQL ①StandLone模式啟動 ②Flink On Yarn模式啟動 2、基本使用 2.1、創(chuàng)建catalog 核心:可創(chuàng)建hive、hadoop、自定義等目錄,創(chuàng)建模板如下 type : 必須的 iceberg 。(必需

    2024年02月08日
    瀏覽(29)
  • 第二章:AI大模型的基本原理2.2 深度學習基礎2.2.3 循環(huán)神經(jīng)網(wǎng)絡

    循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Networks,RNN)是一種特殊的神經(jīng)網(wǎng)絡結(jié)構(gòu),它可以處理序列數(shù)據(jù),如自然語言、時間序列預測等。RNN的核心特點是包含反饋連接,使得網(wǎng)絡具有內(nèi)存功能,可以在處理序列數(shù)據(jù)時保留以前的信息。這一特性使得RNN成為處理自然語言和時間序列數(shù)據(jù)的

    2024年01月16日
    瀏覽(28)
  • 第二章(第二節(jié)):無窮小量和函數(shù)

    若 lim f(x) = 0 , 則稱函數(shù) f(x) 當 x → x 0 時是無窮小量,簡稱: 無窮小 。 ???? x→ x 0 定理1. 有限多個 無窮小量的代數(shù)和仍是無窮小量 定理2. 有限多個 無窮小量的積也是無窮小量 定理3.常數(shù)與無窮小量的積也是無窮小量 定理4.有界變量與無窮小量的積是無窮小量 當 x→

    2024年02月08日
    瀏覽(39)
  • 第二章-算法

    第二章-算法

    算法是解決特定問題求解步驟的描述,在計算機中表現(xiàn)為指令的有限序列,并且每條指令表示一個或多個操作。 算法有五個基本特征:輸入、輸出、有窮性、確定性和可行性。 輸入:算法具有零個或者多個輸入。 輸出:算法至少有一個或多個輸出。 有窮性:算法在執(zhí)行了有

    2024年02月14日
    瀏覽(33)
  • 第二章 編程基礎

    第二章 編程基礎

    內(nèi)容框圖 單行注釋: 快速注釋: 多行注釋: 使用+號拼接 使用拼接函數(shù) 列表 列表是一個有序的序列結(jié)構(gòu),可以存放不同數(shù)據(jù)類型的數(shù)據(jù)。 列表每一個元素有一個索引。 列表可以進行一系列操作,添加,刪除,修改元素。 元組是一個有序的序列結(jié)構(gòu),基本結(jié)構(gòu)和列表類似。

    2024年02月06日
    瀏覽(38)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包