電腦基礎系列之何為操作系統

来源:http://www.cnblogs.com/zhuminghui/archive/2017/08/21/7406301.html
-Advertisement-
Play Games

what's the 操作系統? 首先,我們要知道,為什麼要有操作系統。現代的電腦系統主要是由一個或者多個處理器,主存、硬碟、鍵盤、滑鼠、顯示器、印表機、網路介面及其他輸入輸出設備組成。現代電腦的組成部分極其複雜,我們不可能全部瞭解完再去寫開發,所以就需要用到操作系統。程式員只需要做自己的本職開 ...


what's the 操作系統?

  首先,我們要知道,為什麼要有操作系統。現代的電腦系統主要是由一個或者多個處理器,主存、硬碟、鍵盤、滑鼠、顯示器、印表機、網路介面及其他輸入輸出設備組成。現代電腦的組成部分極其複雜,我們不可能全部瞭解完再去寫開發,所以就需要用到操作系統。程式員只需要做自己的本職開發工作,應用軟體直接使用操作系統提供的功能來間接使用硬體。

  操作系統位於電腦硬體與應用軟體之間,本質也是一個軟體。操作系統由操作系統的內核(運行於內核態,管理硬體資源)以及系統調用(運行於用戶態,為應用程式員寫的應用程式提供系統調用介面)兩部分組成,所以,單純的說操作系統是運行於內核態的話,是不准確的。

  操作系統的功能主要有兩個,一個是隱藏了醜陋的硬體調用介面,為應用程式員提供調用硬體資源的更好,更簡單,更清晰的模型(系統調用介面)。應用程式員有了這些介面後,就不用再考慮操作硬體的細節,專心開發自己的應用程式即可。比如,磁碟資源的抽象是文件系統(C盤,D盤,E盤...下的目錄及文件),有了文件的概念,我們直接打開文件,讀或者寫就可以了,無需關心記錄是否應該使用修正的調頻記錄方式,以及當前電機的狀態等細節。操作系統的實際客戶是應用程式(應用程式員負責開發應用程式,因而也可以說應用程式員是操作系統的客戶)。另一個是將應用程式對硬體資源的競態請求變得有序化。

 


 

 

操作系統的發展。(瞭解即可,記住也並沒有什麼卵用。。)

    第一代電腦(1940~1955):真空管和穿孔卡片           特點:沒有操作系統的概念,所有的程式設計都是直接操控硬體。優點:程式員在申請的時間段內獨享整個資源,可以即時地調試自己的程式(有bug可以立刻處理)。缺點:浪費電腦資源,一個時間段內只有一個人用。

    第二代電腦(1955~1965):晶體管和批處理系統        特點:有了操作系統的概念,有了程式設計語言。優點:批量處理,節約時間。缺點:整個流程需要人參與控制,計算的過程仍然是順序計算,程式員原來獨享一段時間的電腦,現在必須被統一規划到一批作業中,等待結果和重新調試的過程都需要等同批次的其他程式都運作完才可以(這極大的影響了程式的開發效率,無法及時調試程式)。

    第三代電腦(1965~1980):集成電路晶元和多道程式設計         第三代電腦的操作系統廣泛應用了第二代電腦的操作系統沒有的關鍵技術——多道技術(需要記住的知識)。cpu在執行一個任務的過程中,若需要操作硬碟,則發送操作硬碟的指令,指令一旦發出,硬碟上的機械手臂滑動讀取數據到記憶體中,這一段時間,cpu需要等待,時間可能很短,但對於cpu來說已經很長很長,長到可以讓cpu做很多其他的任務,如果我們讓cpu在這段時間內切換到去做其他的任務,這樣cpu不就充分利用了嗎。這正是多道技術產生的技術背景。多道技術中的多道指的是多個程式,多道技術的實現是為瞭解決多個程式競爭或者說共用同一個資源(比如cpu)的有序調度問題,解決方式即多路復用,多路復用分為時間上的復用空間上的復用。空間上的復用:將記憶體分為幾部分,每個部分放入一個程式,這樣,同一時間記憶體中就有了多道程式。時間上的復用:當一個程式在等待I/O時,另一個程式可以使用cpu,如果記憶體中可以同時存放足夠多的作業,則cpu的利用率可以接近100%。空間上的復用最大的問題是:程式之間的記憶體必須分割,這種分割需要在硬體層面實現,由操作系統控制。如果記憶體彼此不分割,則一個程式可以訪問另外一個程式的記憶體。為瞭解決這個問題,第三代電腦廣泛採用了必須的保護硬體(程式之間的記憶體彼此隔離)。

     第四代電腦(1980~至今):個人電腦

 

總結:

  操作系統是有古人類寫的為現代人類提供方便的軟體,要寫出一份完善的操作系統是一件非常人能做到的事。

  操作系統的作用是使我們在不瞭解硬體為何物的情況下能方便的對硬體進行操控,有了操作系統應用程式員就不用再考慮操作硬體的細節,專心開發自己的應用程式即可,用戶使用電腦進行日常操作也顯得邊界無疑。重點是,操作系統能將應用程式對硬體資源的競態請求變得有序化,即多路復用。


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

-Advertisement-
Play Games
更多相關文章
  • 簡史 官方文檔說的很清楚,商戶已有H5商城網站,用戶通過消息或掃描二維碼在微信內打開網頁時,可以調用微信支付完成下單購買的流程。 當然,最近微信支付平臺也加入了純H5支付,也就是說用戶可以在微信以外的手機瀏覽器請求微信支付的場景喚起微信支付。 當然,今天的主角是微信公眾號支付,其實也不一定非在公眾號 ...
  • 最近接手的 Apache HUE 項目性能出現了問題,線上經常出現響應時間過長或因為時間過長而無法服務等問題.老大讓我準備弄個性能分析工具,便於追蹤和分析平臺當前的瓶頸出現在哪裡. 那就搞起吧!先從代碼性能分析入手.本篇博客分享的也是代碼層面的性能分析. 之前用過的就有 插件. 這款插件主要可以用來 ...
  • AJAX = Asynchronous JavaScript and XML(非同步的 JavaScript 和 XML)。 Ajax作用:是用JavaScript向伺服器發送非同步請求,然後伺服器給出響應,然後以XML格式的文件返回給瀏覽器端! 非同步:當瀏覽器向伺服器發送請求的時候,不是整個頁面刷新, ...
  • <?php//簡單函數function show(){ echo "hello"; }show(); //有參數的函數function show($a){ echo "$a"; }show("world"); //有返回值的函數 function show(){ return "小V,你好!"; } ...
  • /** * 文檔註釋只定義在三個地方 : 類、常量、方法上 * 在類上定義文檔註釋用來說這個類設計及其解決問題等相關描述信息 * @author 作者 * @version 1.0 21/08/17 版本號 修改的版本號和最後修改 *的時間 * @see java.lang.String 參考的類, ...
  • PHP程式員閱讀Java語言實現設計模式的書,然後用Go語言實現。配以現實生活中的實例,幫助理解設計模式。本篇包括:策略、觀察者、裝飾者、工廠、單例、命令、適配器、外觀。 ...
  • HTTP協議 自從入坑以來,只要是跟web打交道,總是免不了這個HTTP協議,這是什麼鬼,讓我們一探究竟。(不周之處還請賜教!!!) 既然是協議,我們首先要問三個問題,誰跟誰的協議?協議是什麼?怎麼用? 第一個問題: 誰跟誰的協議? 所謂協議,至少需要兩方,甲方and乙方,我們先說下甲方and乙方到 ...
  • 題目鏈接 Problem Description There is a set including all positive integers that are not more then n. HazelFan wants to choose some integers from this set ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...