操作系統基礎知識總結(連載)

来源:https://www.cnblogs.com/DrunkYouth/archive/2019/03/31/10633271.html
-Advertisement-
Play Games

第一章 操作系統的定義:控制和管理電腦軟硬體資源、合理組織電腦工作流程,以方便用戶使用電腦的程式的集合。 操作系統的目標:方便性、有效性、可擴充性、開放性 操作系統的五個基本功能:存儲管理、處理機管理、設備管理、文件管理、用戶介面 操作系統的發展過程: 未配置操作系統的電腦系統:人工操作方式 ...


-------------------------------------------------------第一章------------------------------------------------------------------

  • 操作系統的定義:控制和管理電腦軟硬體資源、合理組織電腦工作流程,以方便用戶使用電腦的程式的集合。
  • 操作系統的目標:方便性、有效性、可擴充性、開放性
  • 操作系統的五個基本功能:存儲管理、處理機管理、設備管理、文件管理、用戶介面
  • 操作系統的發展過程:

    未配置操作系統的電腦系統:人工操作方式、離線輸入輸出方式

    批處理系統:單打批處理系統、多道批處理系統

    分時系統:分時系統的特征:多路性,交互性,獨立性,及時性

    實時系統:實時任務的類型:周期性實時任務/非周期性實時任務、硬實時任務/軟實時任務

         實時系統的特征:多路性、交互性、獨立性、及時性、可靠性

    微機操作系統:單用戶單任務操作系統、單用戶多任務操作系統、多用戶多任務操作系統

    多處理機操作系統:模式:非對稱多處理模式、對稱多處理模式

    網路操作系統:模式:客戶-伺服器模式(CS模式)、對等模式(P2P模式)

    分散式操作系統:與網路OS的比較:分佈性、並行性、透明性、共用性、健壯性

    嵌入式操作系統

  • 操作系統的五個基本特征:併發性、共用性、虛擬性、非同步性、隨機性
  • 操作系統結構:傳統結構:無結構OS(第一代)、模塊化OS(第二代)、分層式結構OS(第三式)

          現代結構:微內核結構OS

  

-------------------------------------------------------第二章------------------------------------------------------------------

  • 前趨圖:有向無環圖
  • 程式順序執行:特征:順序性、封閉性、可再現性
  • 程式併發執行:只有不存在前趨關係的程式之間才有可能併發執行。

          特征:間斷性、失去封閉性、不可再現性

  • 進程:一個具有一定獨立功能的可併發執行的程式,在一個數據集合上的運行過程。
  • 進程的特征:動態性、併發性、獨立性、制約性、非同步性、結構特征
  • 進程的結構特征:進程=程式+數據+PCB
  • 進程式控制制塊(PCB):為了使參加併發執行的每個程式(含數據)都能獨立的運行,在操作系統中為之配置的一個專門的數據結構。PCB是進程存在的唯一標誌。

      PCB的組織方式:線性方式、鏈接方式、索引方式

  • 進程的三種基本狀態:就緒狀態(Ready)、執行狀態(Running)、阻塞狀態(Block)

            新引入狀態:創建狀態(New)、終止狀態(Teminated)

           

       新操作引入:掛起、激活。新操作的引入使得:就緒->活動就緒、靜止就緒

                            阻塞->活動阻塞、靜止阻塞

  • 引起進程創建的事件:用戶登錄、作業調度、提供服務、應用請求
  • 進程的創建:申請空白PCB、為新進程分配資源、初始化PCB、將新進程插入就緒隊列
  • 進程的終止:正常結束、異常結束、外界干預

    

  • 線程的定義:進程中的一個實體,是能夠被系統獨立調度和分配的基本單位。線程是進程的一個組成部分,線程由進程創建,一個進程中至少存在一個線程,線程還可以創建其他線程。可以當作輕型進程為線程,重型進程為進程。
  • 線程的組成(NT為例):唯一的標識:客戶ID、一組處理及狀態寄存器、分別在用戶態和核心態下使用的兩個堆棧、一個私用寄存器。
  • 線程的實現方式:內核支持線程KST、用戶級線程ULT、組合方式

  

-------------------------------------------------------第三章------------------------------------------------------------------

  • 進程同步:對多個相關進程在執行次序上進行協調,使併發執行的諸進程之間能按照一定的規則或時序共用系統資源。
  • 進程關係:間接制約/互斥關係、直接制約/同步關係
  • 臨界資源:一次僅允許一個進程使用的資源。死鎖就是在進程申請同時使用多個臨界資源時候,臨界資源處理不當的情況。
  • 臨界區:進程中訪問臨界資源的代碼成為臨界區
  • 同步機制應遵循的規則:空閑讓進、忙則等待、有限等待、讓權等待
  • 互斥問題的解決辦法:(總體上可以分為硬體解決,信號量和管程,以下為詳細展開)可以將臨界區的標準看成是一個鎖,顯然為了防止多個進程同時測試大鎖為打開的情況,測試和關鎖必須是連續的,不允許分開進行。
    • 軟體方法:有一定難度並且有局限性
    • 關中斷:實現互斥最簡單辦法
    • TS實現互斥:藉助一條硬體指令,這條指令可以看作一個函數過程,執行過程不可分割及一條原語。
    • 利用Swap指令進行互斥:有效,但是其他訪問不停地進行測試,處於忙等狀態,不符合讓權等待的原則。
  •  信號量機制:
    • 整型信號量:一個用於表示資源數目的整型量S,除初始化外,僅能通過兩個標準的原子操作  wait(S)  和  signal(S) 來訪問。這兩個操作被稱為PV操作。因為是兩個原子操作,它們在執行時是不可中斷的。
    • 記錄型信號量:整型信號量的wait操作並未遵循讓權等待而是忙等狀態。記錄型對其進行了改善。在信號量機制中除了一個用於代表資源數目的整型變數value還增加了進程鏈表指針list。
    • AND型信號量:前面的情況都是多個進程共用一個臨界資源,但現實往往是多個進場需要多個共用資源。顯然進程要求共用的臨界資源越多,發生進程死鎖的可能性越大。

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • C#中的List集合在排序的時候,如果不使用Lambda表達式進行排序的話,一般調用Sort()方法進行排序,如果希望Sort()方法排序後的結果跟我們預想的效果一致或者按照我們自定義的規則排序,則需要將對應的實體繼承IComparable介面來實現。 MSDN上給IComparable介面的定義為 ...
  • 阿裡雲突發性能伺服器1核2G的t5伺服器在高資源利用率的情況下運行一段時間後,發現伺服器反應變得很慢,通過windows遠程桌面連接上伺服器後查看到CPU性能一直在90%到100%之間,無法降下來。前期剛上線應用的時候不卡頓,運行一段時間後出現伺服器卡頓,CPU利用率居高不下,此種情況很有可能是因為 ...
  • 在大前端盛行的今天,似乎前後端分離的開發模式才是大勢所趨,而SPA的概念更是應運而生。現在隨便構建一個web應用程式如果你不是使用SPA的話,就會感覺有點low,但是真的是這樣嗎?今天這篇文章我們就來一起探討下,構建現代web應用時該如何進行選擇。 作者:依樂祝 博客園鏈接:https://www. ...
  • 單步調試時發現,行“176”的cookie的值是null,也就是原先新建的cookie在這裡沒有成功request,解決的辦法就是在後面添加respose.add: ...
  • 在搜索引擎優化領域,靜態網頁對於SEO的優化有著很大的好處,因此很多人就想把自己的網站的一些網頁做成偽靜態。我們現在在網路上發現很多博客網站、論壇網站、CMS內容管理系統等都有使用偽靜態這一種情況,偽靜態在地址欄看到的URL地址是以.html結尾的,但實際上卻是一個動態的網頁,後臺可能是Asp.ne ...
  • 在C#中可以使用MemoryStream類、BinaryFormatter類等來操作圖片,將圖片讀取到二進位數據流中,最終轉成二進位數據流進行調用,詳細的實現如下方法所示。 備註:原文轉載自C#將圖片轉換為二進位流調用_IT技術小趣屋。 ...
  • C#操作MySQL的類 C#操作MySQL的類 [C#cāozuò MySQL de lèi] C# operation MySQL class C#操作MySQL的類 [C#cāozuò MySQL de lèi] C# operation MySQL class C#操作MySQL的類 [C#c ...
  • 內核編譯丶sed丶awk Linux:單內核 模塊化:動態 /lib/modules lsmod,modinfo,modprobe,insmod,,modprobe -r ,rmmod dep文件:模塊的依賴關係 sysbols:符號映射 depmod:用來生成模塊依賴關係 kernel文件夾下 a ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...