【操作系統】每日 3 題(五十五)

?個人博客:https://blog.csdn.net/Newin2020?type=blog
📣專欄地址:https://blog.csdn.net/newin2020/category_12820365.html
📚專欄簡介:在這個專欄中,我將會分享操作系統面試中常見的面試題給大家~
??如果有收獲的話,歡迎點贊👍收藏📁,您的支持就是我創作的最大動力💪

163. 擴展調度算法

  • 彩票調度:其基本思想是為進程提供各種系統資源(如 CPU 時間)的彩票。一旦需要做出一項調度決策時,就隨機抽出一張彩票,擁有該彩票的進程獲得該資源。
  • 公平分享調度:在這種模式中,每個用戶分配到 CPU 時間的一部分,而調度程序以一種強制的方式選擇進程。這樣,如果兩個用戶都得到獲得 50% CPU 時間的保證,那么無論一個用戶有多少進程存在,每個用戶都會得到應有的 CPU 份額。
  • CFS 調度算法:顧名思義就是完全公平調度。比方說,調度延遲時間是 10ms,存在兩個進程 A 和 B,那么兩個進程分別占用 CPU 的時間是 5ms。然而,階級總是存在的,畢竟有些進程高貴些,需要消耗更多的時間,因此引入了 nice 值。
  • 假如 A 進程 nice 值是 0,對應的權重 prio_to_weight 是 1024;B進程 nice 值是 1,對應的權重 prio_to_weight 是 820。因此,相對應的,A 進程占用 CPU 的時間就變成了 10 * 1024 / (1024 + 820) 約 5.6ms,B 進程占用 CPU 時間 10 * 820 / (1024 + 820) 約 4.4ms。人善被人欺,nice 越大,獲取 CPU 的時間就越少。
  • 此時分配給每個進程的運行時間=sched_latency_ns * 進程權重值 / 運行隊列上所有進程權重之和

164. 最佳頁面置換算法

最佳頁面置換算法基本思路是,置換在「未來」最長時間不訪問的頁面。

所以,該算法實現需要計算內存中每個邏輯頁面的「下一次」訪問時間,然后比較,選擇未來最長時間不訪問的頁面。

我們舉個例子,假設一開始有 3 個空閑的物理頁,然后有請求的頁面序列,那它的置換過程如下圖:

在這里插入圖片描述

在這個請求的頁面序列中,缺頁共發生了 7 次(空閑頁換入 3 次 + 最優頁面置換 4 次),頁面置換共發生了 4 次。

這很理想,但是實際系統中無法實現,因為程序訪問頁面時是動態的,我們是無法預知每個頁面在「下一次」訪問前的等待時間。

所以,最佳頁面置換算法作用是為了衡量你的算法的效率,你的算法效率越接近該算法的效率,那么說明你的算法是高效的。

165. 先進先出置換算法

既然我們無法預知頁面在下一次訪問前所需的等待時間,那我們可以選擇在內存駐留時間很長的頁面進行中置換,這個就是「先進先出置換」算法的思想。

還是以前面的請求的頁面序列作為例子,假設使用先進先出置換算法,則過程如下圖:

在這里插入圖片描述

在這個請求的頁面序列中,缺頁共發生了 10 次,頁面置換共發生了 7 次,跟最佳頁面置換算法比較起來,性能明顯差了很多。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/62452.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/62452.shtml
英文地址,請注明出處:http://en.pswp.cn/web/62452.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

服務器加固

1.服務器密碼復雜度 密碼最小長度,密碼復雜度策略 vim /etc/pam.d/system-auth --------------- #密碼配置 #ucredit:大寫字母個數;lcredit:小寫字母個數;dcredit:數字個數;ocredit:…

spring boot 同一個redis 操作不同的庫

1.下面是在Spring Boot中配置多個Redis數據庫的幾種方式: 1.1 配置如下# application.yml spring:redis:host: localhostport: 6379password: your_password# 連接池配置lettuce:pool:max-active: 8max-idle: 8min-idle: 0max-wait: -1mstimeout: 5000ms# 多個數據…

C語言面試題/筆試題/高頻面試題_2

9. 全局變量和局部變量的區別 定義:全局變量是定義在函數外部的變量,局部變量是定義在 函數內部的變量 存儲位置:全局變量存儲在全局區,局部變量存儲在棧區 作用域:全局變量可以在程序任意位置使用,局部變量…

Brain.js(八):RNNTimeStep 實戰教程 - 股票價格預測 - 實操需警慎

前置聲明,個人淺度炒股,但計劃將基金轉入股市。然后 股市有風險,不是技術可以完全預測的,但是在無頭緒的時候,用技術指標做個參考也不錯。 本文涉及到的股票預測,只是代碼簡單示例,實操需警慎&a…

MySQL | 尚硅谷 | 第13章_約束

MySQL筆記:第13章_約束 文章目錄 MySQL筆記:第13章_約束第13章_約束 1. 約束(constraint)概述1.1 為什么需要約束1.2 什么是約束1.3 約束的分類演示代碼 2. 非空約束2.1 作用2.2 關鍵字2.3 特點2.4 添加非空約束2.5 刪除非空約束演示代碼 3. 唯一性約束3…

《計算機網絡》(408大題)

2009 路由轉發和靜態路由的計算 子網劃分、路由聚合的計算 注:CIDR中的子網號可以全為0或1,但是其主機號不允許。 注: 這里其實是把到互聯網的路由當做了一個默認路由(當一個目的網絡地址與路由表中其他都不匹配時,…

NanoLog起步筆記-6-StaticLogInfo

nonolog起步筆記-6-StaticLogInfo StaticLogInfo文件名和行號文件名和行號的傳入log參數 RuntimeLogger::registerInvocationSitelogid為什么只能被賦一次值 reserveAlloc加入消息頭finishAlloc返回 StaticLogInfo 寫C語言編譯前端時,給我印象深刻的一部分是&#…

軟件工程 概述

軟件 不僅僅是一個程序代碼。程序是一個可執行的代碼,它提供了一些計算的目的。 軟件被認為是集合可執行的程序代碼,相關庫和文檔的軟件。當滿足一個特定的要求,就被稱為軟件產品。 工程 是所有有關開發的產品,使用良好定義的&…

Sui 集成 Phantom,生態迎來全新里程碑

作為領先的非托管多鏈加密👛,Phantom 宣布將支持 Sui 區塊鏈。Sui 將加入 Solana、Bitcoin 和 Ethereum 隊伍,成為該 wallet 支持的少數 L1 區塊鏈之一。 此次集成也大幅提升了 Phantom 的互操作性,同時表明 wallet 提供商和應用…

目標跟蹤領域經典論文解析

親愛的小伙伴們😘,在求知的漫漫旅途中,若你對深度學習的奧秘、JAVA 、PYTHON與SAP 的奇妙世界,亦或是讀研論文的撰寫攻略有所探尋🧐,那不妨給我一個小小的關注吧🥰。我會精心籌備,在…

如何解決 java.nio.charset.CoderMalfunctionError: 編碼器故障錯誤問題?親測有效的解決方法!

java.nio.charset.CoderMalfunctionError 是一個在 Java 中相對較少遇到的異常,通常與字符編碼轉換過程中的錯誤有關。當 Java 程序在進行字符編碼轉換時,遇到無法處理的字符或編碼故障時,就會拋出該異常。 1. 問題描述 java.nio.charset.C…

低級爬蟲實現-記錄HCIP云架構考試

因工作需要考HCIP云架構(HCIP-Cloud Service Solution Architect)證書, 特意在淘寶上買了題庫, 考過了。 事后得知自己被坑了, 多花了幾十大洋。 所以想著在授權期內將題庫“爬”下來, 共享給大家。 因為整個過程蠻有…

QGroundControl之5-AppSettings.cc

介紹 應用程序設置 Application Settings ,這里看下語言選擇功能,它是怎么和json文件關聯起來的,剛剛看的時候,很是奇怪這么多的json文件作用。 1.AppSettings.cc 文件怎么和App.SettingsGroup.json關聯 在AppSettings.cc文件沒…

jenkins郵件的配置詳解

Jenkins郵件的配置涉及多個步驟和細節,以下是詳細的配置指南: 一、前期準備 確定郵件服務:明確Jenkins將要使用的郵件服務,如QQ郵箱、163郵箱、公司郵箱(基于Microsoft 365或Exchange Server)等。獲取SMTP配置信息:根據郵件服務類型,獲取相應的SMTP服務器地址、端口號…

【ArcGIS微課1000例】0134:ArcGIS Earth實現二維建筑物的三維完美顯示

文章目錄 一、加載數據二、三維顯示三、三維符號化一、加載數據 加載配套實驗數據(0134.rar中的建筑物,2d或3d都可以),方法如下:點擊添加按鈕。 點擊【Add Files】,在彈出的Open對話框中,選擇建筑物,點擊確定,完成添加。 默認二維顯示: 二、三維顯示 右鍵建筑物圖層…

jupyterlab 增加多個kernel,正確做法

1、背景 需要增加一個kernel然后相當于隔離一個環境 juypterlab Version 3.0.14 2、用conda 安裝 例如,你在conda下有一個python 3.12 的環境 py312 ipython kernel install --user --namepy312 如果保持的話,用pip安裝相應的包就好 3、檢查是否配置好 …

案例-商品列表(組件封裝)

標簽組件封裝 1.雙擊顯示,自動聚焦 2.失去焦點,隱藏輸入框 標簽一列,不同行的標簽內容不同,但是除此之外其他基本一致,所以選擇用 標簽組件 將這一部分封裝為一個組件,需要時組件標簽展示。 首先標簽處一進…

Python 基礎學習(一)

一.基礎語法 注釋 Python中單行注釋以 # 開頭,如下: #!/usr/bin/python3# 第一個注釋 print ("Hello, Python!") # 第二個注釋多行注釋可以用多個 # 號,還有 ‘’’ 和 “”": #!/usr/bin/python3# 第一個注釋…

TIM輸入捕獲---STM

一、簡介 IC輸入捕獲 輸入捕獲模式下,當通道輸入引腳出現指定電平跳變時,當前CNT的值將被鎖存在CCR中,可用于測量PWM波形的頻率、占空比、脈沖間隔、電平持續時間等參數 每個高級定時器和通用定時器都擁有4個輸入捕獲通道 可配置為PWMI模…

【Android Studio】學習——網絡連接

實驗:Android網絡連接 文章目錄 實驗:Android網絡連接[toc]實驗目標和實驗內容:1、掌握Android聯網的基本概念;2、能夠使用URL connection實現網絡連接;3、掌握第三方庫的基本概念4、需實現的具體功能 實驗結果功能說明…