作業系統兩種觀點:資源管理、硬體擴充套件
作業系統的核心:可處理的系統呼叫集
程序:執行程式的抽象,程序表用以儲存程序資訊
程序系統呼叫:程序建立、程序終止
每個程序:供使用者啟動的uid
程序建立場合:
系統初始化
執行了正在執行程序所呼叫的程序建立系統呼叫
使用者請求建立乙個新程序
乙個批處理作業的初始化
程序建立本質:新程序都是由已存在的程序執行乙個用於建立程序的系統呼叫
前台程序、後台程序(守護程序)
unix建立程序:fork
windows建立程序:win32呼叫createprocess,既處理程序建立,也負責把正確的程式裝入新的程序。win32大概有100個函式處理程序管理
程序層次關係:
windows中程序是平等關係,之間聯絡是「控制代碼」
unix存在層次,構成樹結構,每個程序只有乙個父程序,但可以有多個子程序
程序狀態:就緒態、執行態、阻塞態
引入執行緒:
減少程序中斷、定時器、上下文切換的耗時空
輕量級程序有位址空間和控制線程
為隱避中斷的影響,允許動態建立和終止程序,每個程序都有自己的位址空間
對某些應用,盡量多使用控制線程,每個執行緒有自己的堆疊
程序間通訊通過訊息原語,包括訊號量、管道等,原語確保同一時刻不會有兩個程序在臨界區
程序進通訊(ipc):
圍繞問題:1 如何傳遞資訊 2 傳遞資訊時不出現交叉 3 順序
競爭條件: race condition 兩個或以上程序共享資料,結果取決於程序執行的精確時序
臨界區:互斥mutual exclusion,共享記憶體進行訪問的程式片段
臨界區特點:
臨界區不可能同時有兩個或兩個以上程序
不應對cpu的速度和數量做任何假設
臨界區外執行的程序不得阻塞其他程序
不得使程序無限制等待進入臨界區
互斥方法:遮蔽中斷(使用於單cpu)、鎖變數、嚴格輪換法、peterson解法、tsl指令
訊號量:semaphore計數能力
pv 操作,p減1,v加1 等於0表示沒有等待的程序
互斥量:mutex 訊號量的簡化版本
0表示解鎖,此時可以訪問臨界區,其他值表示加鎖
mutex_lock mutex_unlock
pthread中的互斥:多個同步執行緒的函式
系統呼叫:使用者在程式設計時呼叫作業系統功能
使cpu從使用者態陷入核心態
系統呼叫機制:
中斷/異常機制-->陷入指令(引發異常,完成使用者態和核心態切換)-->
系統呼叫號和引數--->系統呼叫表(存放系統呼叫服務的入口位址)
使用者與系統間引數傳遞方法:陷入指令自帶引數,通用暫存器傳遞,記憶體彙總開闢堆疊
系統呼叫執行過程:當cpu執行到特殊陷入指令時,
中斷/異常(儲存現場,查詢中斷向量表,控制權轉給系統呼叫總入口程式) -->
系統呼叫總入口程式(儲存引數,將引數儲存在核心棧裡,通過系統呼叫表將控制權轉讓給對應的系統呼叫例程)-->
執行系統呼叫例程式-->
恢復現場,返回使用者程式
併發環境:單處理器上有兩個或兩個以上的程式同時處於開始執行但尚未結束的狀態,
並且次序是不確定的
併發環境下併發程序,引入了程序:cpu的抽象
pcb:程序描述資訊(pid,程序名,uid,程序組關係),
程序控制資訊(當前狀態、優先順序、**入口位址、磁碟位址、同步通訊、訊息佇列)
資源和使用情況
cpu現場資訊(暫存器值、指向程序表的指標)
程序表:pcb集合,每個pcb對應乙個程序
程序狀態:建立 就緒 執行 阻塞、掛起、終止
程序控制:完成程序狀態轉換的原語
建立createprocess(pid pcb)-->為程序分配位址空間-->初始化pcb-->插入到相應的佇列指標
撤銷:**程序所占用資源-->撤銷該程序pcb
阻塞:由程序自己執行程序原語
執行緒程序
現代作業系統閱讀筆記(1)
計算機的基本由四大部分組成。一 cpu。也是我們經常稱的 處理器。也是我們計算機最重要的資源,我暫時稱之為 大腦 二 memory。記憶體,這對大家都不陌生,因為沒乙個應用程式都需要被載入到memeory裡面後,cpu 才可以對其進行執行。它是易失性的,斷電之後資料就會丟失。記憶體我還是稱之為 胃 ...
《現代作業系統》筆記
特色 1.講述了作業系統演變的過程 2.沒有空洞講述概念,用圖表和c 講了作業系統的具體實現 什麼是作業系統 自頂向下看,作業系統是擴充套件機器,向使用者提供抽象。自底向上看,作業系統是資源管理者,給程序提供資源。設計思想 1.利用cpu高速和人類及i o裝置之間的低速的差距,多個程序共享cpu,虛...
現代作業系統
只有認為等待時間非常短的情形下,才使用忙等待。用於忙等待的鎖,稱為自旋鎖 spin lock 在互斥時間很短而掛起等待的時間開銷很大時,可以採用活鎖 livelock,沒有出現死鎖,但現象上看好像死鎖發生了 輪詢 忙等待 可用於進入臨界區或訪問資源。接收者發起的分布式啟發演算法。分布式系統新增在其底...