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

當(dāng)雙擊某程序到它顯示運行界面時,操作系統(tǒng)都做了啥?

系統(tǒng)
假設(shè):我們現(xiàn)在想要讓操作系統(tǒng)運行「微信」,那么首先我們會怎么做嘞?在整個過程中,操作系統(tǒng)又做了啥?

假設(shè):我們現(xiàn)在想要讓操作系統(tǒng)運行「微信」,那么首先我們會怎么做嘞?在整個過程中,操作系統(tǒng)又做了啥?

如果這是一個面試題,你會怎么回答呢?來看看阿粉的解釋~

[[349664]]

1. 雙擊微信圖標(biāo)。

但是打開一個程序的方式不止一種,不要限制了自己,比如也可以通過命令行鍵入命令的方式將它打開(不過一般不會這么做吧;

當(dāng)我們雙擊了微信圖標(biāo)時,就告訴了操作系統(tǒng),我希望你能幫我運行「微信」

2 . 此時操作系統(tǒng)接收到請求之后,就去磁盤上找到「微信」程序的相關(guān)信息,檢測它的類型是不是可執(zhí)行文件,同時通過程序首部信息確定代碼和數(shù)據(jù)在可執(zhí)行文件中的位置并且計算出對應(yīng)的磁盤塊地址。

看完上面的解釋,你有沒有疑問呢?操作系統(tǒng)怎么檢測它是不是可執(zhí)行文件呢?對于 Windows 系統(tǒng)來說,可執(zhí)行文件是 PE(Portable Executable),對于 Linux 系統(tǒng)來說,可執(zhí)行文件是 ELF(Executable and Linkable Format),對于 Mac 系統(tǒng)來說,可執(zhí)行文件是Mach-O(Mach Object)

所以操作系統(tǒng)檢測的時候,就看一下是否符合文件規(guī)范就能確定了

3. 操作系統(tǒng)做完第 2 步之后,就會創(chuàng)建一個進程,并且將「微信」的可執(zhí)行文件映射到該進程結(jié)構(gòu),意思就是,這個進程負責(zé)執(zhí)行「微信」程序。

4. 接下來操作系統(tǒng)會為「微信」程序設(shè)置 CPU 上下文環(huán)境,此時我們假設(shè)這個調(diào)度程序選中了「微信」程序,那么操作系統(tǒng)就會跳到程序開始處

5. 接下來執(zhí)行「微信」程序的第一條指令。但是它會發(fā)生缺頁異常。

為什么會發(fā)生缺頁異常? 因為程序在執(zhí)行時,要將代碼和數(shù)據(jù)讀入內(nèi)存, CPU 才能執(zhí)行,但此時因為內(nèi)存中還沒有相關(guān)數(shù)據(jù),進而觸發(fā)了硬件機制,捕獲到缺頁異常,將控制權(quán)交給操作系統(tǒng)

6. 操作系統(tǒng)此時會分配一頁物理內(nèi)存,同時將代碼從磁盤讀入內(nèi)存,然后繼續(xù)執(zhí)行「微信」程序。如果程序很大,一頁內(nèi)存不夠的話,會在執(zhí)行過程中重復(fù) 5,6 步驟,直至將程序全部讀入內(nèi)存為止

7. 之后,「微信」程序執(zhí)行相關(guān)函數(shù)(系統(tǒng)調(diào)用),在顯示器上顯示「微信」圖標(biāo)

8. 操作系統(tǒng)接收到這個請求,然后找到顯示設(shè)備,通常顯示設(shè)備是由一個進程控制的,所以操作系統(tǒng)將要顯示的「微信」圖標(biāo)給該進程

9. 控制設(shè)備的進程告訴設(shè)備的窗口系統(tǒng)它要顯示「微信」圖標(biāo),窗口系統(tǒng)在確定這是一個合法的操作之后,會將「微信」圖標(biāo)轉(zhuǎn)換成像素,將像素寫入設(shè)備的存儲映像區(qū)

10. 視頻硬件將像素轉(zhuǎn)換成顯示器可以接收的一組控制數(shù)據(jù)信號

11. 顯示器解釋數(shù)據(jù)信號,激發(fā)液晶屏 此時,我們就能夠在屏幕上看到「微信」的登錄界面。

至此,當(dāng)我們雙擊某個程序,到顯示運行界面時,操作系統(tǒng)做的工作就比較清楚了。

如果真的有面試管問你的話,你也能和面試官扯皮了

 

責(zé)任編輯:趙寧寧 來源: Java極客技術(shù)
相關(guān)推薦

2022-04-15 08:15:49

操作系統(tǒng)程序計算機

2020-01-08 13:40:01

戴爾

2022-01-07 17:28:07

操作系統(tǒng)IO 內(nèi)存

2010-04-15 12:58:15

Unix操作系統(tǒng)

2019-05-14 09:18:18

程序員PythonJava

2011-01-04 14:36:39

LinuxGTK編程

2009-06-25 08:50:03

Linux操作系統(tǒng)

2014-08-10 14:35:23

2021-08-06 22:45:09

人工智能AI

2022-07-11 09:09:12

保障SRE技術(shù)

2010-04-16 18:15:11

Unix操作系統(tǒng)

2017-11-30 10:26:32

操作系統(tǒng)運行時間CPU

2021-04-19 09:27:03

Java線程操作系統(tǒng)

2009-12-09 17:25:19

Linux操作系統(tǒng)

2022-07-29 09:12:14

Springservlet容器

2023-06-07 08:13:46

PixiJSCanvas 庫

2009-05-20 15:55:33

MoblinIntel開源

2022-07-26 07:47:47

SpringMVC

2022-08-02 07:55:28

MVCJersey

2021-01-03 10:37:50

前端開發(fā)技術(shù)
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 成人免费视频一区二区 | 91免费观看在线 | 无码一区二区三区视频 | 亚洲成人精品国产 | 欧美精品在线一区二区三区 | 羞视频在线观看 | 国产精品免费一区二区三区 | 91婷婷韩国欧美一区二区 | 欧美国产一区二区 | 久久久久久久一区 | 97超碰站| 羞羞视频一区二区 | www.com久久久 | 天堂资源最新在线 | 日日做夜夜爽毛片麻豆 | 亚洲精品久久久一区二区三区 | 一级黄色毛片免费 | 亚洲xxxxx | 天天躁日日躁狠狠躁2018小说 | 欧美三级在线 | 国产精品爱久久久久久久 | 91精品国产综合久久久久久丝袜 | 欧美一级观看 | 欧美一区二区三区在线播放 | 久久久久久99 | 免费观看黄色一级片 | 国产极品车模吞精高潮呻吟 | 成人h免费观看视频 | 91视频免费观看 | 久久久黑人 | 欧美aⅴ| 亚洲综合一区二区三区 | 久久视频免费看 | 中文字幕成人 | cao在线| 日韩中文字幕在线观看 | 国产一区二区三区在线视频 | 美女视频h| 亚洲一区二区三 | 97精品一区二区 | 成人欧美一区二区三区 |