為什麼引用程序的概念 CPU管理的直觀想法

2022-07-25 04:30:12 字數 1392 閱讀 2838

部落格參考:mooc 大學 -> 作業系統 -> 李治軍老師

程序是乙個概念,這個概念緣起於:作業系統需要管理 cpu --> cpu 通過取值執行 --> 為了提高 cpu 的利用率需要多道程式,交替執行 --> 引入程序的概念來形容程式和程式執行時的變化。

一、使用 cpu。

取值(址)執行,所以管理 cpu 最直觀的方法就是設定 pc 值。

二、問題。

當執行一條 io 指令的時候,需要花費大量的時間。例如下面這個例子:(執行時間每一台電腦都不一樣,這只是我的渣渣電腦跑出來的時間)

顯而易見地,執行一條 io 指令花費的時間幾乎可以執行4*10^6條自增指令。

如果現在有乙個程式,先執行 4*10^6 條自增指令,再執行一條 io 指令,這個時候 cpu 的利用率為50%。再者,我們平時的程式一般也就 30來條計算指令,這樣 cpu 的利用率就會無限接近於0

如何解決這個問題?

當執行 io 操作的時候,cpu 去執行其他的程式,當 io耗時操作執行完成後,傳送乙個中斷給 cpu,再次執行該程式。

這就是「多道程式,交替執行」,也就是我們說的併發 」(同時出發,交替執行)。

三、怎麼做?

除了要修改暫存器 pc 的值,還要將發生變化的暫存器的值,返回位址等等記錄下來。

使用pcb 結構將這些變化的值儲存下來,每乙個程式都有乙個這樣的結構。

四、引入程序的概念。

1. 程序的概念不是憑空產生的,是因為我們需要描述程式和這些改變的值,也就是描述乙個執行時的程式。其中,所有的不一樣儲存在 pcb 中。

2.程序是進行(執行)中的程式。

程序由開始,結束;程式沒有。程序會走走停停;走停對程式無意義。程序需要記錄暫存器的值;程式不用。

五、總結。

反過來用程序的概念描述 cpu 的管理的使用。

啟動乙個程序讓 cpu 去執行,就是cpu 的使用/工作。

同時執行多個程序可以提高 cpu 的利用率,作業系統能更好地管理 cpu

所以,多個程序共同執行就是管理 cpu 的核心樣子。

為什麼CPU需要時鐘這種概念?

本文同時發表在 最近在研究計算機裡的基本邏輯電路,想到乙個問題 為什麼cpu需要時鐘這樣的概念?首先考慮如下邏輯電路 當a b 1時,q 0。當輸入訊號發生變化時,邏輯元件不會立即對輸入變化做出反應,會有乙個傳播時延 propagation delay 當b變化為0時,由於b也作為xor的直接輸入,...

從CPU管理到程序的引入

為什麼要管理cpu,這是因為在 上古時代 cpu是計算機硬體之中最昂貴的資源。因此提高cpu利用率是很有必要的。我們知道只要給cpu的pc乙個位址,cpu就能執行起來了,假設在執行一段時間後,需要一些i o操作,而i o操作 當年主要是連線印表機等 是很費時間的。這個時候的cpu是閒置的。而實際等著...

程序中為什麼會有同名的程序

在看乙個專案 時,發現在除錯時出現有同名的程序,比如說svshost.exe 現將查詢到的資料做個筆記。歡迎補充。詳細分析svshost.exe程序 其實svshost.exe是windows xp系統的乙個核心程序。svshost.exe不單單只出現在windows xp中,在使用nt核心的win...