作業系統基本概念

2021-09-25 21:41:54 字數 2142 閱讀 3280

①.記憶體管理

程式的邏輯位址劃分為固定大小的頁(page)

實體地址劃分為同樣大小的幀(frame)

頁表  邏輯位址與實體地址的對映

二分段機制:滿足**的一些邏輯需求

資料共享,資料保護,動態鏈結

通過段表實現邏輯位址與實體地址的對映關係

每個段內部是連續記憶體分配,段和段之間是離散分配

三分段與分頁區別

頁處於記憶體利用率的角度提出的離散分配機制

段處於使用者角度,用於資料保護,資料隔離等用途的管理機制

頁的大小是固定的,作業系統決定;段大小不確定,使用者程式決定

四虛擬記憶體:通過把一部分暫時不用的記憶體資訊放到硬碟上

區域性性原理:程式執行的時候只有部分必要的資訊轉入記憶體

記憶體中暫時不需要的內容放到硬碟上

系統似乎提供了比實際記憶體大得多的容量,稱之為虛擬記憶體

四.記憶體抖動

記憶體抖動(thrashing)一般是記憶體分配演算法不好,記憶體太小或者程式的演算法不佳引起的頁面頻繁地從記憶體調入/調出的行為

[即本質是頻繁的頁排程行為]

頻繁的頁排程,程序不斷產生活頁中斷

置換乙個頁,又不斷再次需要這個頁

執行程式太多,頁面替換策略不好,終止程序或者增加物理記憶體

②.程序的三種基本狀態:

1>就緒( ready)狀態:當程序已分配到除cpu以外的所有必要的資源,只要獲得處理機便可立即執行,這時的程序狀態稱為就緒狀態。

2>執行( running)狀態:當程序已獲得處理機,其程式正在處理機上執行,此時的程序狀態稱為執行狀態。

3>阻塞( blocked)狀態:正在執行的程序,由於等待某個事件發生而無法執行時,便放棄處理機而處於阻塞狀態。引起程序阻塞的事件可以有多種,例如,等待i/o完成、申請緩衝區不能滿足、等待信件(訊號)等。

③python操作

一python哪些操作是執行緒安全的?

◆乙個操作可以在多執行緒環境中安全使用,獲取正確的結果

◆執行緒安全的操作好比執行緒是順序執行而不是併發執行的

i +=1

◆一般如果涉及到寫操作需要考慮如何讓多個執行緒安全訪問資料

二如何保證執行緒安全:

互斥量(鎖):通過互斥機制防止多個執行緒同時訪問公共資源

訊號量:控制同一時刻多個執行緒訪問同乙個資源的執行緒數

事件(訊號):通過通知的方式保持多個執行緒同步

三程序間通訊的方式

共享記憶體,訊號量,套接字:最常用,web應用

四python中如何使用多執行緒

theading模組

◆threading.thread類用來建立執行緒

◆start()方法啟動執行緒

◆可以用join()等待執行緒結束

五python中如何使用多程序

python有gil,可以用多程序實現cpu密集程式

◆ multiprocessing多程序模組

◆ multiprocessing.process類實現多程序

◆ 一般用在cpu密集程式裡,避免gil的影響

④.記憶體洩露

一般我們常說的記憶體洩漏是指堆記憶體的洩漏。堆記憶體是指程式從堆中分配的,大小任意的(記憶體塊的大小可以在程式執行期決定),使用完後必須顯式釋放的記憶體。應用程式一般使用malloc,realloc,new等函式從堆中分配到一塊記憶體,使用完後,程式必須負責相應的呼叫free或delete釋放該記憶體塊,否則,這塊記憶體就不能被再次使用,我們就說這塊記憶體洩漏了。

⑤為什麼linux刪除操作比介面化操作快

1.影象介面化操作的程序切換

2 快取管理機制

3 磁碟

作業系統基本概念

一.程序的基本狀態 1.初始態 2.就緒態 3.執行態 4.等待態 5.終止 相互轉換關係如下 二.執行緒和程序區別 程序 是作業系統分配資源的最小單位 執行緒 是排程的基本單元,共享所在程序的檔案資料 有自己的棧和程式計數器 一般對於許多相同或相似的任務,傾向於將他們設計為多執行緒模型。因為程序占...

作業系統 基本概念

本文為自己學習 unix環境高階程式設計 而來的學習記錄 我的學習方 是將此書作為工具書來使用,當實際工作中遇到相關的問題針對性地學習知識圓點。基礎概念從嚴格意義上說,可講作業系統定義為一種軟體,它控制計算機硬體資源,提供程式執行環境。系統呼叫 共用函式庫 shell 應用程式 unix系統登陸 a...

作業系統基本概念

1 桌面作業系統 macos linux 2 伺服器作業系統 windows server 3 嵌入式作業系統 linux 4 移動裝置作業系統 iosandroid 基於linux 1965 年之前的時候,電腦並不像現在一樣普遍,它可不是一般人能碰的起的,除非是軍事或者學院的研究機構,而且當時大型...