下列所有例子均只是用來具體化的比喻,這些例子均是簡化,並不一定符合實際,只能用來作為理解理論的參考
上述比喻中的task便可以謂之程式,比如乙個qq應用程式,其中的action便是所謂的程序,比如qq中載入好友列表,載入訊息,提醒等等,而這個人,或者這個人的大腦,就是所謂的cpu,負責排程這些action如何做,何時做來實現這個task,比如qq何時載入好友列表,何時提醒通知等等
人以群分,物以類聚,程序也是分為好幾種狀態的,這樣方便作業系統對之進行管理排程
程序有以下三種狀態(在不同的資料裡,所用詞語可能不同,但是字面意思是相同的,還有一些資料會對這幾種狀態進行擴充套件,說法不一,這裡只介紹典型的):
1、執行態(便是在執行中的程式。或叫執行態)
2、阻塞態(被阻塞了,堵住了)
3、就緒態(程序已準備待命,等待執行)
拿乙個生活中的例子,你打算坐高鐵回家,你還沒買票,無資格去取票,這時候你是阻塞態,買到票後到達車站,你有了執行的條件,但是取票機只有4臺,而且等待取票的人很多(就緒態的程序們),所以你需要排隊,你也成了就緒態,當輪到你在取票機取票的時候,你開始運作了,你成了執行態
程序不會無中生有,他需要一定條件去建立
以下幾種情況可能建立乙個程序:
1、乙個程序建立另乙個程序(父程序建立子程序)
比如qq重新整理列表程序建立了,這個程序需要建立乙個子程序來更新顯示列表
2、系統初始化
這裡涉及到os的一些知識,當乙個os啟動時,往往需要啟動許多初始化程序來初始化軟硬體
3、使用者請求建立乙個程序
但你使用qq時,有時候網路不好你需要下拉更新訊息,這樣你就建立了乙個更新訊息的程序
4、批處理作業建立程序
批處理是一種不需要使用者干預的週期性作業,什麼是干預,就是你qq下拉更新,你叫qq一定要給你更新資訊,這就是干預,當你開啟qq,qq啟動許多程序來自動獲取訊息,好友列表,這些程序不被你干預,他們由cpu自動有序執行,這就是批處理,而進行這一系列處理時便建立了許多程序來達到目標
大部分程序不可能一直做,做完一件事,乙個程序就到此結束,以讓出位置給其他程序
程序退出分為幾種情況,如下
1、正常退出(自願)
完事了,就退出
2、出錯退出(自願)
還沒完事,但是你這樣做下去是一種錯誤,比如你還沒寫完**,卻在看電視,你意識到這是乙個錯誤,因此你退出這個action
3、嚴重出錯退出(非自願)
上課你在睡覺,老師過來敲了你一下腦袋,你結束睡覺這個action
4、被其他程序殺死(非自願)
你正在打遊戲,這時候中午12點了,吃飯action打斷了gaming action
在任何多道程式設計系統中,cpu由乙個程序快速切換至另乙個程序,使每個程序各執行幾十或幾百個毫秒。嚴格地說,在某乙個瞬間,cpu只能執行乙個程序。但在1秒鐘期間,它可能執行多個程序,這樣就產生並行的錯覺。
作業系統(一)
1.01 歷史 1.02 分類 作業系統 桌面作業系統 redhat fedora slackware ubuntu debian suse linux centos 伺服器作業系統 linux ubuntu deepin startos mint debain suse redhat centos...
作業系統(一)
1 單道批處理系統 batch processing system 2 多道批處理系統 multiprogrammed batch processing system 3 分時系統 time sharing system 程序控制 為作業建立程序 撤銷已結束的程序 控制程序狀態轉換。程序同步 為多個...
作業系統(一)
1.設計現代os的主要目標是什麼?方便性 有效性 可擴充性和開放性 2.os的作用可表現在那幾個方面?os作為使用者與計算機硬體系統之間的介面 os作為計算機系統資源的管理者 os 實現了對計算機資源的抽象 3.為什麼說作業系統實現了對計算機資源的抽象?os首先在裸機上覆蓋一層i o裝置管理軟體,由...