作業、程序、執行緒、管程的定義
作業:相當於乙個job,包含乙個事務處理過程中要求計算機所做工作的集合
程序:乙個程式在乙個資料集上的一次執行過程,所以乙個程式在不同資料集上執行,乃至乙個程式在乙個資料集上的多次執行都是不同的程序
執行緒:程序的乙個實體,被繫**立排程和執行的基本單位
管程:定義了乙個資料結構和在該資料結構上能為併發程序所執行的一組操作
程序間通訊
訊號、訊號量、訊息佇列、共享記憶體
所謂程序間通訊是指程序之間的一些互動,互動有簡單也有複雜,可以傳遞一些message,比如訊息佇列
都可用來實現同步和互斥
訊號是使用訊號處理器來進行的,訊號量是使用p.v操作來實現的
訊息佇列是比較高階的一種程序間通訊方法
乙個訊息佇列可以被多個程序所共享,ipc就是在這個基礎上進行的
共享訊息佇列的程序所傳送的訊息中除了message內容本身外,還需要乙個標誌表明該訊息的傳送者或者接收者
mutex互斥器用於程序之間互斥,critical section臨界區是執行緒間互斥
死鎖的四個必要條件
互斥條件:乙個資源每次只能被乙個程序所使用
請求與保持條件:乙個程序因請求資源而阻塞時,對已獲得的資源保持不放
不剝奪條件:已獲得的資源,未使用完之前,不能強行剝奪
迴圈等待條件:程序之間形成一種環路等待資源關係
防止死鎖
互斥條件不能被破壞,其他三個條件破壞即可解除死鎖
資源靜態分配策略,破壞請求與保持條件,也叫部分分配調節
允許程序剝奪其他程序占有的資源
資源有序分配,破壞環路
預防死鎖
主要是不讓四個必要條件成立,確定資源的合理分配,避免程序永久性佔據系統資源,防止程序處於等待狀態的情況下占用資源
分配資源前進行動態檢測,若分配後可能死鎖,則不允許分配
處理死鎖
除了防止死鎖外,發生後的處理方式是將其殺死
exe、dll、ocx、sys、com都是pe檔案,即可移植檔案
記憶體、知道的dll、清單與.local、應用程式目錄、當前工作目錄、系統目錄、路徑變數即path變數
動態鏈結庫檔案
不能單獨執行
通用模組功能
由全域性資料、服務函式和資源組成
dll可以有自己的資料段,但沒有自己的堆疊,使用與呼叫它的應用程式是相同的堆疊
乙個dll在記憶體中只有乙個例項
呼叫方式
靜態呼叫
動態呼叫
cpu中的快取和作業系統中的快取的區別
os中的快取:快表
提高系統的訪問速度,增加乙個快表用於存放當前訪問最頻繁的少數活動頁面的頁號。
訪問資料時,先在快表中查詢,找到實體地址
如果快表中沒有,那麼再通過原始的位址對映找到實體地址,存入快表
如果快表已滿,那麼根據淘汰演算法淘汰某一行
目的是加快對磁碟上檔案的訪問
cpu中的快取:cache
位於cpu和記憶體之間,交換速度快
起緩衝作用
作業系統 作業系統介面
介面表現為函式呼叫,由作業系統提供,連線作業系統和應用軟體。出於安全性考慮,應用程式不能直接在記憶體中任意訪問 將核心程式和使用者程式隔離 通過比較訪問資料段cpl和rpl的特權級和當前段dpl的特權級之間的關係 應用程式呼叫庫函式printf printf呼叫庫中的write函式 write將函式...
作業系統(作業系統引論)
方便性 方便使用者進行操作計算機 有效性提高系統資源的利用率 提高系統的吞吐量,加速程式的執行 可擴充性 方便地增添新的模組和功能,以及對原有的功能模組進行修改 開放性能夠遵循世界標準規範 os作為使用者和計算機硬體系統之間的介面 使用者能夠通過作業系統來使用計算機系統 os作為計算機資源的管理者 ...
作業系統 作業系統 一 作業系統概述
好好學習,天天向上本文已收錄至我的github倉庫daydayup 歡迎star 之前一直沒有系統地學過作業系統,感覺自己在平時的學習過程中對於某些概念理解得一塌糊塗,比如中斷 記憶體 程序和執行緒等。所以打算系統的學習一下作業系統。一開始我是在b站看哈工大的李治軍老師講的,但是一上來就開始從彙編 ...