主頁 >  其他 > 計算機作業系統學習筆記(未完待續,每天不定時更新)

計算機作業系統學習筆記(未完待續,每天不定時更新)

2021-03-07 18:51:22 其他

文章目錄

  • 前言
  • 一、作業系統引論/緒論
    • 1.1作業系統的目標和作用
      • 1.1.1 作業系統的目標
      • 1.1.2 os的作用
      • 1.1.3 推動os發展的主要動力,
    • 1.2 作業系統的發展程序
      • 1.2.1 為配置作業系統的計算機系統
        • 1.人工操作方式
        • 2. 脫機輸入/輸出(Off/Line I/O)方式
      • 1.2.2 單道批處理系統
        • 1.單道批處理系統(Simple Batch Processing System)的處理程序
      • 1.2.3 多道批處理系統(Multiprogrammed Batch Processing System)
        • 1. 多道程式設計的基本概念
        • 2. 多道批處理系統的優缺點
    • 作業系統的定義
      • 1.2.4 分時系統(Time-Sharing System)
        • 1. 分時系統的引入
        • 2. 分時系統現實中的關鍵問題
        • 3.分時系統的特征


前言

本篇博客為博主在學習計算機作業系統時個人學習的一些筆記與概要的記載,應為在作業系統的學習中只會有一篇的博客在錄,所以本篇博客為個人整個作業系統的學習博客,


一、作業系統引論/緒論

此處為整個作業系統的緒論部分,會大概介紹到作業系統的目標和作用,發展程序,基本特性,,主要功能和os的結構設計,

1.1作業系統的目標和作用

作業系統(Operation System, 簡稱OS),是配置在計算機上的第一層軟體,是對計算機硬體系統的首次擴充,其主要作用是管理好這些設備,提高他們的利用率并提高系統的吞吐量,為用戶和應用程式提供一個簡單的介面方便用戶使用,
系統吞吐量:指單位時間內系統處理的檔案數量,

1.1.1 作業系統的目標

在計算機上配置作業系統,其主要目標是:方便性有效性可擴充性開放性

  1. 方便性:當計算機內配置了os(作業系統)時,用戶可直接通過os提供的命令操縱計算機系統,
  2. 有效性其一為提高系統資源的利用率:應為在裸機狀態時,例如處理機,I/O設備大多處于空閑狀態,各種資源無法得到充分的利用,由此提高系統資源的利用率成為作業系統的目標之一其二為提高系統的吞吐量,os可以合理的組織計算機的作業流程,加速程式的運行,縮短程式運行周期,從而提高系統的吞吐量,
  3. 可擴充性:(可擴充性在軟體工程領域是指:設計良好的代碼允許更多的功能在必要時可以被插入到適當的位置中,這樣做的目的的是為了應對未來可能需要進行的修改,而造成代碼被過度工程化地開發,)為適用計算機硬體,體系結構和計算機應用發展的要求,os必須具備很好的可擴充性,
  4. 開放性:指系統能遵循世界標準規范,并且凡遵循國際標準所開發的軟體,都能彼此兼容,方便的實作互聯,

1.1.2 os的作用

  1. os作為用戶與計算機硬體系統之間的介面:用戶在os的幫助下能夠方便,快捷可靠的操縱計算機硬體和運行自己的程式,
    在這里插入圖片描述
    由圖可知,用戶可通過系統呼叫,命令方式,圖示–視窗方式來實作與作業系統的通信并取得其服務,
  2. os作為計算機系統資源的管理者:計算機系統資源大概可分為四類:處理機,存盤器,I/O設備,檔案(資料和程式),*處理機管理是用于分配和控制處理機;儲存器的管理主要負責記憶體的分配與回收;I/O設備的管理是是負責其分配,回收與操縱;檔案管理是用于實作對檔案的存取,共享和保護,*當一臺計算機系統同事供多個用戶使用時,諸多用戶對系統中共享資源的需求(包括數量和時間)有可能發生沖突,所以os必須對使用資源的請求進行授權,以協呼叫戶們對共享資源的使用,
  3. os實作了對計算機的抽象:例如,為了方便用戶使用I/O設備,人們在裸機上覆寫一層I/O設備管理軟體,如下圖所示,
    在這里插入圖片描述
    由它來實作對I/O設備操作的細節,并向上將I/O設備抽象為為一組資料結構以及一組I/O操作命令,如此用戶可以通過這樣一組資料結構和命令來進行資料的輸入和輸出而無需關心I/O設備是如何具體實作,或者說在裸機上鋪設的I/O軟體隱藏了I/O設備的具體細節,向上提供了一組抽象的I/O設備,
    我們通常把覆寫了上述軟體的機器統稱為擴充機虛擬機它向用戶提供了一個隊硬體操作的抽象模型,使用戶可以通過該模型提供的介面來使用計算機而無需了解其物理介面實作的細節,讓用戶更加容易的使用計算機的硬體資源,
    并且為了方便用戶使用檔案系統,又可以在第一層軟體(I/O設備)上再覆寫一層用于檔案管理的軟體,由它來實作對檔案操作的細節,并向上提供一組實作對檔案進行存盤操作的資料結構和命令,用戶就可以通過該軟體提供的資料結構和命令對檔案進行存取操作了,可以理解為檔案管理軟體實作了對檔案資源管理的第二個層次的抽象,以此類推在檔案管理軟體的基礎上再覆寫一層面向用戶的視窗軟體,則用戶可以在視窗的環境下方面的使用計算機管理檔案,如此就形成了一臺功能更加強大的虛擬機了,
    所以作業系統(os)是鋪設在計算機硬體上的多層軟體的集合,它不僅增強了系統的功能,還隱藏了對硬體操作的具體細節,實作了對計算機硬體操作的多個層次的抽象模型,

    值得注意的是,不僅可以在底層對一個硬體資源加以抽象,還可以對該資源底層已抽象的模型再次進行抽象,形成更高層的抽象模型,如此,抽象介面所提供的功能會更加強大,而且可以讓用戶使用的更加簡單方便,

1.1.3 推動os發展的主要動力,

  1. 不斷提高計算機資源利用率
  2. 方面用戶
  3. 器件的不斷更新換代
  4. 計算機體系結構的不斷發展
  5. 不斷提出新的應用要求:隨著VLSI的發展,計算機芯片的體積越來越小,價格也越來越便宜,大量的智能設備應運而生,使嵌入式作業系統(嵌入式作業系統多數也是實時作業系統)的產生和發展成為一種必然,
    VLSI:very large scale integration 超大規模集成電路

1.2 作業系統的發展程序

1.2.1 為配置作業系統的計算機系統

1.人工操作方式

早期的操作方式是由程式員將事先已經穿孔的紙袋裝入紙袋運輸機,再啟動它們將紙袋上的程式和資料輸入計算機,然后啟動計算機運行,僅當程式運行完畢并取走結果后才允許下一個用戶上機,而且會出現cpu的速度迅速提高但是I/O設備的速度提高緩慢,使cpu與I/O設備之間的速度不匹配的矛盾更加突出,

缺點
1. 用戶獨占計算機,即一臺計算機上的額全部資源由上機用戶獨占,
2. CPU等待人工操作,當人工操作時,CPU及記憶體都是空閑的,

人機矛盾:人工操作嚴重降低了計算機資源的利用率,

2. 脫機輸入/輸出(Off/Line I/O)方式

為了解決CPU和I/O的矛盾,后來引入了脫機I/O技術,即事先把用戶程式和資料的紙帶輸入紙帶運輸機,在一臺外圍機的控制下,把紙帶上的資料輸入到磁帶上,當CPU需要這些資料和程式時,再從磁帶上高速的調入記憶體
類似的,當CPU需要輸出時,可先由CPU 把資料直接從記憶體高速的輸送到磁帶上,然后在另外一臺外圍機的控制下,再將磁帶上的資料通過相應的設備輸出,

在這里插入圖片描述
由于程式和資料的輸入和輸出都是在外圍機的控制下完成的,即是在脫離主機的情況下進行的,所以叫脫機輸入/輸出方式
反之,把在主機直接控制下進行輸入/輸出的方式稱為聯機輸入/輸出(On-Lune I/O)方式

優點

  1. 減少了CPU的空閑時間,裝帶,卸帶,以及將資料從低速I/O設備送到高速磁帶上的操作,都是在脫機情況下,由外圍機完成的,并不占用主機時間,從而有效減少了CPU的占用時間,
  2. 提高了I/O速度,當CPU在運行至那個需要輸入資料時,是直接從高速的磁帶上將資料輸入到記憶體中的,這極大地提高了I/O的速度,進一步減少了CPU的空閑時間,
    可以理解為新增了一個外圍機,以磁帶為媒介解決了原來I/O設備效率低的問題,

1.2.2 單道批處理系統

為了提高計算機的利用率,使其盡量保持系統的連續運行,即在處理完一個作業后,緊接著處理下一個作業,以減少機器的空閑等待時間,

1.單道批處理系統(Simple Batch Processing System)的處理程序

首先由監督程式將磁帶上的第一個作業裝入記憶體,并把運行控制權交給該作業;當該作業處理完成時,又把控制權交還給監督程式,再由監督程式把磁帶上的第二個作業調入記憶體,計算機系統就這樣自動地一個作業緊接一個作業地進行處理,直至磁帶上的所有作業全部完成,這樣便形成了早期的批處理系統,雖然系統對作業的處理是成批進行的,但在記憶體中始終只保持一道作業,故稱為單道批處理系統
在這里插入圖片描述
單道批處理系統在一定程度上提高了系統資源的利用率,和系統吞吐量,但其仍然不能充分的利用系統資源,現已較少使用,
在這里插入圖片描述
由上圖可見,在t2-t3 和t6-t7時cpu處于空閑狀態,

缺點
系統中的資源得不到充分的利用,這是因為在記憶體中僅有一道程式,每逢該程式在運行中發出I/O請求后,CPU便處于等待狀態,必須在其I/O完成后才繼續運行,又因I/O設備的低速性,更使CPU的利用率顯著降低,

1.2.3 多道批處理系統(Multiprogrammed Batch Processing System)

1. 多道程式設計的基本概念

  1. 多道:系統內可同時容納多個作業,這些作業放在外存中,組成一個后備佇列,系統按一定的調度原則每次從后備作業佇列中選取一個或多個作業進入記憶體運行,運行作業結束、退出運行和后備作業進入運行均由系統自動實作,從而在系統中形成一個自動轉接的、連續的作業流,
  2. 成批:在系統運行程序中,不允許用戶與其作業發生互動作用,即:作業一旦進入系統,用戶就不能直接干預其作業的運行,
    在這里插入圖片描述
    想比較于單道的,在程式A的I/O請求開始和完成的程序中程式B開始運行,在程式B的I/O請求的開始和完成中程式C開始運行,同理程式D開始運行,

2. 多道批處理系統的優缺點

  1. 系統利用率高:由于在記憶體中駐留了多道程式,它們共享資源,可保持資源處于忙碌狀態,從而使各種資源得以充分利用,
  2. 系統吞吐量大:能提高系統吞吐量的主要原因可歸結為:第一,CPU和其它資源保持“忙碌”狀態; 第二,僅當作業完成時或運行不下去時才進行切換,系統開銷小,
  3. 平均周轉時間長:作業的周轉時間是指從作業進入系統開始,直至其完成并退出系統為止所經歷的時間,在批處理系統中,由于作業要排隊,依次進行處理,因而作業的周轉時間較長,通常需幾個小時,甚至幾天,
  4. 無互動能力:用戶一旦把作業提交給系統后,直至作業完成,用戶都不能與自己的作業進行互動,這對修改和除錯程式是極不方便的,

作業系統的定義

作業系統就是一組能有效的組織和管理計算機硬體和軟體資源,合理的對各類作業進行調度,以及方便用戶使用的程式的集合,

1.2.4 分時系統(Time-Sharing System)

1. 分時系統的引入

為了滿足用戶對人–機互動的需求,由此形成了一種新型os

  1. 人–機互動 :用戶希望能像早期使用計算機一樣,獨占全機并對其進行直接控制,例如可以方便的對程式中的錯誤進行修改,
  2. 共享主機:一臺主機上連接了多個配有顯示幕和鍵盤的終端由此組成的系統,

2. 分時系統現實中的關鍵問題

  1. 及時接收:要做到及時接收多個用鍵入的命令和資料,需要配置一個多路卡(實作分時多路復用)主機以很快的速度周期性的掃描各個終端,在每個終端處停留很短的時間(例如30ms),用來接收從終端發來的資料,為了能對終端上輸入的資料依次處理,還需要設定一個緩沖區,用來暫存用戶鍵入的命令,

  2. 及時處理

  • 因為作業在磁盤上不能運行,所以作業直接進入記憶體
  • 采用輪轉運行方式:引入時間片的概念,一個時間片就是很短的一段時間(例如30ms),系統規定每個作業只能運行一個時間片然后就必須轉入到下一個作業的運行,如果能在較短的時間內對所有的作業都能運行一個時間片的時間,便可以使每一個用戶都可以及時的與自己的作業進行互動,從而可使用戶的請求得到及時的回應,

3.分時系統的特征

分為以下四個方面

  1. 多路性:系統允許將多臺終端連接到一個主機上,并按照分時原則對每個用戶進行服務,多路性允許多個用戶共享一臺計算機,顯著的提高了資源利用率,
  2. 獨立性:每個用戶都在各自的終端上進行操作,彼此之間互不干擾,
  3. 及時性:用戶的請求能在很短的時間內得到回應
  4. 互動性:用戶可以通過終端與系統進行廣泛的人機對話,廣泛性體現在用戶可以請求系統提供多方面的服務,例如進行檔案編輯和資料處理,訪問系統中的檔案系統和資料庫系統等,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/267175.html

標籤:其他

上一篇:【游戲開發崗面經總結5】(面相物件和面相程序的區別,多型,CG,設計模式,行程執行緒協程,記憶體區域存放,協程的原理,指標和參考的區別,防止物件被拷貝)

下一篇:關于軟體的思考

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more