操作系統(一)計算機系統概述

操作系統(一)計算機系統概述

  • 一、操作系統的概念
  • 二、功能和目標
    • 資源的管理者
    • 向上層提供服務
    • 對硬件的擴展
  • 三、操作系統的特征
    • 并發
    • 共享
    • 虛擬
    • 異步
  • 四、操作系統的發展與分類
    • 手工操作階段
    • 批處理階段
      • 單道批處理系統
      • 多道批處理系統
    • 分時操作系統
    • 實時操作系統
  • 操作系統的運行機制
  • 中斷和異常
    • 中斷類型
    • 中斷機制的基本原理
  • 系統調用
    • 分類
    • 系統調用的過程
  • 操作系統的體系結構
    • 大內核
    • 微內核

一、操作系統的概念

操作系統(Operating System, OS)是指控制和管理整個計算機系統的硬件和軟件資源,并合理地組織調度計算機的工作和資源的分配;以提供給用戶和其他軟件方便的接口和環境;它是計算機系統中最基本的系統軟件

二、功能和目標

資源的管理者

功能

  • 處理機的管理
  • 存儲器的管理
  • 文件管理
  • 設備管理

向上層提供服務

直接給用戶使用包括GUI(圖形用戶界面) 和命令接口。
命令接口包括聯機命令接口脫機命令接口

聯機命令接口相當于windows系統使用的cmd
在這里插入圖片描述

脫機命令接口就是.bat文件

在這里插入圖片描述
在這里插入圖片描述

向程序提供的程序接口:可以在程序中進行系統調用來使用程序接口。普通用戶不能直接使用程序接口,只能通過程序代碼間接使用。

在這里插入圖片描述

對硬件的擴展

在這里插入圖片描述

操作系統對硬件機器的拓展:將CPU、內存、磁盤、顯示器、鍵盤等硬件合理地組織起來,讓各種硬件能夠相互協調配合,實現更多更復雜的功能,普通用戶無需關心這些硬件在底層是怎么組織起來工作的,只需直接使用操作系統提供的接口即可。

三、操作系統的特征

并發

并發:指兩個或多個事件在同一時間間隔內發生。這些事件宏觀上是同時發生的,但微觀上是交替發生的。
并行:指兩個或多個事件在同一時刻同時發生。

共享

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

互斥共享方式:系統中的某些資源,雖然可以提供給多個進程使用,但一個時間段內只允
許一個進程訪問該資源
同時共享方式:系統中的某些資源,允許一個時間段內由多個進程“同時”對它們進行訪

虛擬

虛擬是指把一個物理上的實體變為若干個邏輯上的對應物。物理實體(前者)是實際存在的,而邏輯上對應物(后者)是用戶感受到的。

異步

異步是指,在多道程序環境下,允許多個程序并發執行,但由于資源有限,進程的執行不是一貫到底的,而是走走停停,以不可預知的速度向前推進,這就是進程的異步性

四、操作系統的發展與分類

手工操作階段

用戶在計算機上算題的所有工作都要人工干預

批處理階段

單道批處理系統

在這里插入圖片描述

引入脫機輸入/輸出技術(用外圍機+磁帶完成),并由監督程序負責控制作業的輸入、輸出
主要優點:緩解了一定程度的人機速度矛盾,資源利用率有所提升。
主要缺點:內存中僅能有一道程序運行,只有該程序運行結束之后才能調入下一道程序。CPU有大量的時間是在空閑等待I/O完成。資源利用率依然很低。

多道批處理系統

在這里插入圖片描述

主要優點:多道程序并發執行,共享計算機資源。資源利用率大幅提升,CPU和其他資
源更能保持“忙碌”狀態,系統吞吐量增大。
主要缺點:用戶響應時間長,沒有人機交互功能(用戶提交自己的作業之后就只能等待
計算機處理完成,中間不能控制自己的作業執行。eg:無法調試程序/無法在程序運行過
程中輸入一些參數)

分時操作系統

分時操作系統:計算機以時間片為單位輪流為各個用戶/作業服務,各個用戶可通過終端與計算機進行交互。
主要優點:用戶請求可以被即時響應,解決了人機交互問題。允許多個用戶同時使用一臺計算機,并且用戶對計算機的操作相互獨立,感受不到別人的存在。
主要缺點:不能優先處理一些緊急任務。操作系統對各個用戶/作業都是完全公平的,循環地為每個用戶/作業服務一個時間片,不區分任務的緊急性。

實時操作系統

主要優點:能夠優先響應一些緊急任務,某些緊急任務不需時間片排隊。
在實時操作系統的控制下,計算機系統接收到外部信號后及時進行處理,并且要在嚴格的時限內處理完事件。實時操作系統的主要特點是及時性和可靠性

操作系統的運行機制

特權指令:如內存清零指令
非特權指令:如普通的運算指令

用戶態:cpu只能執行非特權指令
核心態:特權指令、非特權指令都可執行

內核程序: 操作系統的內核程序是系統的管理者,既可以執行特權指令,也可以執行非特
權指令,運行在核心態。
應用程序: 為了保證系統能安全運行,普通應用程序只能執行非特權指令,運行在用戶態
在這里插入圖片描述

中斷和異常

中斷的作用:“中斷”會使CPU由用戶態變為內核態,使操作系統重新奪回對CPU
的控制權

內核態->用戶態:執行一條特權指令——修改PSW的標志位為“用戶態”,這個動作意味著操作系統將主動讓出CPU使用權
用戶態->內核態:由“中斷”引發,硬件自動完成變態過程,觸發中斷信號意味著操作系統將強行奪回CPU的使用權

中斷類型

內中斷:與當前執行的指令有關,中斷信號來源于CPU內部
外中斷:與當前執行的指令無關,中斷信號來源于CPU外部

中斷機制的基本原理

不同的中斷信號,需要用不同的中斷處理程序來處理。當CPU檢測到中斷信號后,會根據中斷信號的類型去查詢“中斷向量表”,以此來找到相應的中斷處理程序在內存中的存放位置。
在這里插入圖片描述

系統調用

操作系統作為用戶和計算機硬件之間的接口,需要向上提供一些簡單易用的服務。主要包括命令接口和程序接口。其中,程序接口由一組系統調用組成。

分類

  • 設備管理:完成設備的請求/釋放/啟動等功能
  • 文件管理:完成文件的讀/寫/創建/刪除等功能.
  • 進程控制:完成進程的創建/撤銷/阻塞/喚醒等功能
  • 進程通信:完成進程之間的消息傳遞/信號傳遞等功能.
  • 內存管理:完成內存的分配/回收等功能

系統調用的過程

在這里插入圖片描述

  1. 陷入指令是在用戶態執行的,執行陷入指令之后立即引發一個內中斷,使CPU進入核心態
  2. 發出系統調用請求是在用戶態,而對系統調用的相應處理在核心態下進行

操作系統的體系結構

大內核

在這里插入圖片描述

將操作系統的主要功能模塊都作為系統內核,運行在核心態
優點:高性能
缺點:內核代碼龐大,結構混亂,難以維護

微內核

在這里插入圖片描述

只把最基本的功能保留在內核
優點:內核功能少,結構清晰,方便維護
缺點:需要頻繁地在核心態和用戶態之間切換,性能低

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

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

相關文章

Linux下使用socket傳輸文件的C語言簡單實現

轉載:http://blog.csdn.net/ljd_1986413/article/details/7940938 服務器程序和客戶端程序應當分別運行在兩臺計算機上。 在運行服務器端的計算機終端執行:./file_server 在運行客戶端的計算終端上執行:./file_client ipaddr_server 然后根…

操作系統(二)進程管理

ui 操作系統(二)進程管理一、進程程序和進程進程控制塊(PCB)進程的組成進程的特征進程的狀態與轉換進程狀態的轉換進程的組織鏈接方式索引方式進程的控制進程的創建進程的終止進程阻塞進程喚醒進程切換進程通信共享存儲消息傳遞管…

gethostbyname()函數說明

轉載&#xff1a;http://www.cnblogs.com/cxz2009/archive/2010/11/19/1881611.html gethostbyname()函數說明——用域名或主機名獲取IP地址 包含頭文件 #include <netdb.h> #include <sys/socket.h> 函數原型 struct hostent *gethostbyna…

操作系統(三)內存管理

操作系統&#xff08;三&#xff09;內存管理一、程序執行過程裝入的三種方式鏈接的三種方式二、內存管理的概念內存空間的分配與回收連續分配管理方式單一連續分配固定分區分配動態分區分配首次適應算法最佳適應算法最壞適應算法鄰近適應算法非連續分配管理方式基本分頁存儲管…

操作系統(四)文件管理

操作系統&#xff08;四&#xff09;文件管理一、文件系統基礎1.文件邏輯結構無結構文件有結構文件2.文件目錄文件控制塊&#xff08;FCB&#xff09;目錄結構單級目錄兩級目錄結構多級目錄結構無環圖目錄結構3.文件保護口令保護加密保護訪問控制4.文件共享硬鏈接軟鏈接5.文件系…

struct stat結構體簡介

轉載&#xff1a;http://www.cnblogs.com/CSU-PL/archive/2013/06/06/3120757.html 在使用這個結構體和方法時&#xff0c;需要引入&#xff1a; <sys/types.h> <sys/stat.h> struct stat這個結構體是用來描述一個linux系統文件系統中的文件屬性的結構。 可以有兩種…

如何在Ubuntu上安裝GCC編譯器

如何在Ubuntu上安裝GCC編譯器1.首先更新包列表sudo apt update2.安裝build-essential軟件包&#xff1a; sudo apt install build-essential3.驗證GCC編譯器是否已成功安裝&#xff0c;請使用gcc --version命令打印GCC版本 rootubuntu:/home/csd# gcc --version

操作系統(五)輸入/輸出(I/O)管理

操作系統&#xff08;五&#xff09;輸入/輸出&#xff08;I/O&#xff09;管理一、I/O控制器二、I/O控制方式程序直接控制方式中斷驅動方式DMA方式通道控制方式I/O軟件層次結構假脫機技術設備的分配與回收緩沖區單緩沖雙緩沖循環緩沖區緩沖池一、I/O控制器 I/O設備由機械部件…

Linux下的I/O多路復用select,poll,epoll淺析

轉載&#xff1a;http://blog.csdn.net/u011573853/article/details/52105365 一&#xff0c;什么是I/O多路復用 所謂的I/O多路復用在英文中其實叫 I/O multiplexing. 就是單個線程&#xff0c;通過記錄跟蹤每個I/O流(sock)的狀態&#xff0c;來同時管理多個I/O流 。) I/O mu…

計算機組成原理(一)計算機系統概述

計算機組成原理&#xff08;一&#xff09;計算機系統概述一、計算機系統層次結構馮諾伊曼機計算機工作過程多級層次結構一、計算機系統層次結構 馮諾伊曼機 特點&#xff1a; 計算機由五大部件組成指令和數據以同等地位存于存儲 器&#xff0c;可按地址尋訪指令和數據用二進…

計算機組成原理(二)數據的表示和運算

計算機組成原理&#xff08;二&#xff09;數據的表示和運算一、BCD碼二、奇偶校驗碼三、海明碼四、循環冗余校驗碼&#xff08;CRC&#xff09;五、乘法運算原碼乘法補碼乘法六、除法運算原碼除法補碼除法七、浮點數的表示與運算浮點數的運算一、BCD碼 組合式BCD碼&#xff1…

select read write

轉載&#xff1a;http://blog.csdn.net/beginning1126/article/details/8057498 [cpp] view plaincopy <p style"color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; line-height: 26px; text-align: left; "><span style"font-size:14px;…

數據結構(七)圖的遍歷(遞歸非遞歸方法)

圖的遍歷&#xff08;遞歸非遞歸方法&#xff09;#include<iostream> #include<stdio.h> #include<stack> #include<queue> using namespace std;typedef char VertexType; typedef int EdgeType;#define MAXVEX 100 #define INF 65535 bool visited[M…

Linux IO復用區別與epoll詳解

轉載&#xff1a;http://blog.csdn.net/hacker00011000/article/details/52160590 一、select、poll、epoll之間的區別總結[整理]   select&#xff0c;poll&#xff0c;epoll都是IO多路復用的機制。I/O多路復用就通過一種機制&#xff0c;可以監視多個描述符&#xff0c;一…

簡單圖和多重圖

一、簡單圖 ?? ① 不存在重復邊&#xff1b; ?? ② 不存在頂點到自身的邊&#xff1b; 二、多重圖 ??① 某兩結點之間邊數多于一條&#xff1b; ??② 允許頂點通過一條邊和自己關聯&#xff1b;

C++筆記:select多路復用機制

轉載&#xff1a;http://blog.csdn.net/qdx411324962/article/details/42499535 函數作用&#xff1a; 系統提供select函數來實現多路復用輸入/輸出模型。select系統調用是用來讓我們的程序監視多個文件句柄的狀態變化的。程序會停在select這里等待&#xff0c;直到被監視的文件…

交叉編譯執行應用程序出現:No such file or directory

問題分析 當我在arm板子上執行交叉編譯過的程序的時候發現了這個錯誤。通過百度查詢基本都是缺少32位庫什么的,但是都不能解決問題。 然后我用ll指令&#xff0c;也排除了權限的原因。 我們用ldd指令發現&#xff0c;它不是動態執行的&#xff0c;雖然我們可以使用-static指…

select、poll、epoll 比較

轉載&#xff1a;http://blog.csdn.net/dodo_328/article/details/39081183 1.Selet&#xff1a;本質上是通過設置或者檢查存放fd標志位的數據結構來進行下一步處理。 缺點&#xff1a;1 單個進程可監視的fd數量被限制&#xff0c;因為受描述符集合fd_set限制&#xff0c;fd數量…

C庫函數 File

C庫函數常用的有&#xff1a;fopen, fclose, fread, fwrite, fgets, fputs, fscanf, fprintf, fseek, fgetc, fputc, ftell, feof, flush等&#xff0c; 當使用fopen打開一個文件時通常返回一個文件指針 FILE *fp。FILE類型是一個結構體&#xff0c;包含文件描述符&#xff08;…

Unix 網絡編程(四)- 典型TCP客服服務器程序開發實例及基本套接字API介紹

轉載&#xff1a;http://blog.csdn.net/michael_kong_nju/article/details/43457393 寫在開頭&#xff1a; 在上一節中我們學習了一些基礎的用來支持網絡編程的API&#xff0c;包括“套接字的地址結構”、“字節排序函數”等。這些API幾乎是所有的網絡編程中都會使用的一些&…