成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

操作系統,你到底能干點啥?

系統
本篇文章是操作系統課程預備知識的第二篇,文章講下操作系統到底做了什么事情!本篇文章算是一個科普,讓大家先了解操作系統是在做什么,以后詳細學習各章就不會暈。

大家好呀,我是大白。在這篇文章開始前,先想說一個事,最近看到有人在知乎上問,不會操作系統是否耽誤他 CRUD?。我本來想立即反駁他,但是仔細想了下好像確實不耽誤!不過由于近幾年互聯網行業越來越卷,雖然大部分程序員的實際工作都是在 CRUD,但是現在只會 CRUD 也不太行了。目前互聯網行業追求的高并發、高可用、高性能的場景下還是需要你有很好的操作系統基礎的,比如高性能服務端開發時,內存、進程、線程、IO 相關知識就經常用到;再比如做 SRE 也需要對操作系統有很好的理解才能排查清楚問題到底出在哪。如果你做偏內核的,更離不開了。所以,如果你想在程序員的道路上走得更遠,建議還是好好學下呀!話再說重點就是如果你不希望你做出來得系統和西安一碼通一樣訪問量一上去就崩,建議還是把基礎打牢固。

Part1操作系統到底能做什么?

好了,接下來言歸正傳。本篇文章是操作系統課程預備知識的第二篇,文章講下操作系統到底做了什么事情!本篇文章算是一個科普,讓大家先了解操作系統是在做什么,以后詳細學習各章就不會暈。

不知道大家是否還記得上一篇文章中的幾個細節。計算機是如何工作的

1.CPU 每一瞬間只能執行一個進程(好吧,這個我之前沒說)

2.為了加快運行速度,會把可能要用到的硬盤上的數據加載到內存。

3.計算機上的信息都是以二進制文件的形式存在硬盤上的。

這幾個細節其實就隱含了操作系統主要做的事情。咱們一個個的看。

CPU每一瞬間只能執行一個進程

CPU 是計算機最重要的資源,運算速度很快,可即使 CPU 算的再快,每一瞬間也只能執行一個進程。但是我們知道目前單進程計算機已經很難滿足我們對計算機使用的要求了。就比如你開著電腦一邊在直播軟件看 CBA,一邊還要在微信上和人聊天,這時后臺很多軟件同時也在運行著。

為了滿足并發的需求,操作系統把每個程序的運行虛擬化成進程,CPU 在一個進程上運行幾十毫秒后快速切換到另一個進程,一兩秒鐘內就把所有進程都運行了一遍。這樣就把一個 CPU 變成了多個虛擬的 CPU。注意,虛擬化是操作系統一大特性,操作系統在很多環節都用到這一特性,一會在內存管理部分也會用到。

為了虛擬化,CPU 要快速的在不同進程間切換。于是,在這一環節,操作系統要做好進程和線程的創建并且在后續運行中管理好進程和線程,并且做好進程間通信的管理。另外進程間的同步和互斥也要注意。由同步和互斥引發的死鎖也要由操作系統去解決。幾乎每時每刻都會產生多個進程或線程同時競爭 CPU 的現象,CPU 也要去協調。

為了加快運行速度,會把可能要用到的硬盤上的數據加載到內存。

上一篇文章講到了,為了加快計算機運行速度,會把可能要用到的硬盤上的數據加載到內存。內存雖然讀寫速度快,可造價高呀,所以內存的空間都很小,一個 4G 或者 8G 的內存條就不便宜了。我們自然要想辦法把內存好好利用起來。所以我們在內存管理上,要盡量做好以下幾件事。

擴充內存

咱們先看下一個應用程序是如何放到內存里的。目前應用程序都是經過編譯、鏈接和裝入三步。大家在編程時都是把一個數值賦值給一個變量或者一個地址,編譯程序對你的代碼進行編譯時也是不知道實際物理地址的,只能從 0 開始編號邏輯地址。經過鏈接后,裝入程序會把編譯產生的邏輯地址映射到內存的實際物理地址。但是這就有麻煩了,內存一共才幾 G 的空間,這都是高配了,一些大的作業根本裝不下呀。于是操作系統就用了虛擬內存技術把程序的一部分裝入內存,而其余部分還在磁盤,用的時候再將程序調入,這就從邏輯上擴充了內存的大小。

地址變換

上面也說了,編譯階段產生的都是邏輯地址。邏輯地址也使得每個程序從自己的角度來看有一塊完整的空間。這極大的簡化了編程人員的工作量。當然邏輯地址和物理地址轉化時的一系列操作都要麻煩操作系統了。

內存的分配和回收

這里說的內存分配回收和 c 語言用 malloc 申請一塊空間然后 free 釋放了不太一樣。這里講的是針對作業的內存分配。一涉及到內存分配,總會出現碎片的問題,這也是由操作系統來解決。在這里操作系統會用到段表、頁表等技術。

計算機上的信息都是以二進制文件的形式存在硬盤上的

這里解釋下文件的定義。文件是具有文件名的一組相關元素的合集。所以電腦上的一些應用程序(微信,QQ等),或者一些 word或者excel表格,都可以被看做文件。操作系統為了管理文件,還要做以下幾件事情。

文件存儲空間管理

既然要把文件存儲在硬盤上,肯定要按序存儲,否則雜亂的存儲會造成很多的空間碎片,其次想要取數據時也取不出來。這個時候操作系統需要找到可用的空間,然后采用合適的分配方式把文件存下來。

目錄管理

既然我們把文件存了下來,我們肯定希望在我們要用的時候能快速的把文件取出來。所以我們必須用某種形式把這些文件組織起來,最有效的方式自然就是建目錄。那建立目錄時你要思考你時用單級目錄結構、二級目錄結構還是樹形目錄結構。還是圖形目錄結構。

共享文件

文件系統中的文件很可能會被不同用戶使用,我們肯定不可能給每個用戶準備一份同樣的獨立數據,太消耗空間了,自然需要文件共享。那么我們要思考用何種方式實現文件共享。我們時該用硬鏈接,還是軟連接?

文件保護

既然文件是可以被不同用戶訪問的,那有的用戶可能水平不太行,不小心把你重要的文件刪了就芭比Q了。所以你要給他限制權限,比如只能讀不能寫。

上面把操縱系統比較重要的三大塊內容做了一個科普。講的比較通俗,主要想讓大家了解一下操作系統做了什么。后續也會在這三大塊內容上展開進行詳細講解。操作系統的設計很巧妙,大家一起學習呀。最后我仿照極客時間的《趣談 Linux 操作系統》畫了一幅 Linux操作系統的總體架構圖,順便說下我最近也學了下這個課程。我的感覺是如果你操作系統基礎不太好,建議先跟我學,如果基礎好的話十分建議看看這個課程呀!

 

責任編輯:武曉燕 來源: CS指南
相關推薦

2021-05-10 15:40:11

大數據IT互聯網

2018-07-12 16:34:45

華為

2024-12-20 10:25:49

2010-04-15 15:21:43

Unix操作系統

2010-01-06 16:32:45

Linux操作系統

2010-04-15 17:21:40

Unix操作系統

2023-05-29 09:41:42

操作系統計算機系統

2014-05-29 11:14:35

2017-11-30 10:26:32

操作系統運行時間CPU

2009-12-07 17:51:39

2009-12-22 10:56:33

2021-04-19 09:27:03

Java線程操作系統

2015-06-10 13:46:28

IT運維互聯網+”

2009-12-09 17:25:19

Linux操作系統

2020-12-21 13:42:59

大數據大數據應用

2019-03-05 11:22:17

操作系統調度算法

2009-12-15 17:16:49

免費在線操作系統

2017-05-25 10:58:08

HBase數據庫操作系統

2010-01-06 15:36:30

Linux操作系統

2022-05-04 08:38:32

Netty網絡框架
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本在线网站 | 亚洲在线 | 国产一区二区三区亚洲 | 伊人二区 | 在线免费看91 | 天天艹日日干 | 日本aa毛片a级毛片免费观看 | 国产小u女发育末成年 | 久久久人成影片免费观看 | 亚洲精品68久久久一区 | 日韩免费福利视频 | 欧美一级二级在线观看 | 欧美在线视频一区二区 | 国产亚洲成av人片在线观看桃 | 欧美最猛黑人xxxⅹ 粉嫩一区二区三区四区公司1 | 国产欧美精品区一区二区三区 | 亚州毛片 | 夜夜操天天操 | 国产综合区 | 中文字幕国产视频 | 中文字幕乱码一区二区三区 | 在线看免费的a | 久久久成人免费视频 | 国产精品观看 | 日本视频免费 | 亚洲精品成人 | 国产精品久久久久久久岛一牛影视 | 免费电影av | 91精品国产综合久久婷婷香蕉 | 久久久久久国产 | 成人精品一区二区户外勾搭野战 | 久久久www成人免费无遮挡大片 | 日韩乱码在线 | 日韩精品视频在线 | 欧美片网站免费 | 蜜桃毛片 | 亚洲欧美国产毛片在线 | 91色啪 | 男女视频免费 | 成人欧美一区二区三区白人 | 国产毛片久久久 |