【操作系統】I/O軟件層次結構

文章目錄

  • 1. 前言
  • 2. I/O軟件層次結構
    • 2.1 用戶層軟件
    • 2.2 設備獨立性軟件
    • 2.3 設備驅動程序
    • 2.4 中斷處理程序

1. 前言

偶然看到“程序員的護城河是什么”這個話題,作為一個工作兩年多的程序員吧,經常看到網上關于各種35歲危機、裁員甚至猝死之云云。最近也不僅思考起了這個問題:我的護城河是什么

我的護城河不單單是指一直作為一個程序員不被開除,而是我有哪些能力讓自己始終不擔心生計?或者說是應該提升哪些能力使得自己不對未來那么擔憂和迷茫。

思考了一段時間。

首先,要排除家里“有礦”的前提(就算有礦那也得在精神層面不斷提升自己吧)。我覺得第一就是要有始終學習的習慣,不然淘汰只會提前到來;第二是要分析自己,找到自己更容易獲得資源的那個方向(這樣至少機會多點),然后先慢慢積累著。耐心的等待著量變到質變的那一刻;第三就是做好手上的事情,始終覺得“不務正業”的風險太高了,做好擅長的事情,除此之外還要盡可能的了解其他知識達到擴展知識面的目的;最后就是覺得應該在工作中積極爭取,不能只做一畝三分地,要主動出擊,爭取機會(當然了,也不能超出能力范圍太多,否則適得其反)。

以上就是我這個工作不算久的職場人的一點思考,或許還略顯淺顯,歡迎大家交流。

那么接下來繼續學習吧。

2. I/O軟件層次結構

為了讓IO相關的硬件設備能夠被上層方便的使用,相關的軟件程序是必不可少的。我們通過下圖看些IO的軟件層次結構:

在這里插入圖片描述

2.1 用戶層軟件

用戶層軟件工作在用戶態,主要有兩個作用:

  • 實現用戶交互接口;
  • 通過庫函數實現系統調用;

2.2 設備獨立性軟件

設備獨立性軟件相當于所有設備的管理者。它向上一層提供調用接口,具有設備保護、容錯處理、設備分配與回收、數據緩沖區管理、邏輯設備與物理設備映射等功能。

2.3 設備驅動程序

不同設備硬件特性不同,但CPU的指令相同,因此需要各硬件設備商負責編寫自己的驅動程序軟件。驅動程序負責控制硬件設備,將CPU指令轉換成設備操作。驅動程序是以獨立進程的形式存在的

2.4 中斷處理程序

對于IO軟件而言,中斷處理程序也是必不可少的。當CPU發出IO指令后,調用中斷程序,保存現場并阻塞當前進程,轉向IO操作;當設備完成IO后再次向CPU發起中斷信號,中斷程序繼續執行。因此中斷程序還具有直接操作硬件的能力。

在這里插入圖片描述

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

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

相關文章

modbus協議及modbus TCP協議

一、Modbus協議 1.起源 Modbus由Modicon公司于1979年開發,是一種工業現場總線協議標準。 Modbus通信協議具有多個變種,其中有支持串口,以太網多個版本,其中最著名的是Modbus RTU(通信效率最高,基于串口&am…

springboot前后端分離項目配置https接口(ssl證書)

文章目錄 說明vue.js前端部署vue.js項目axios請求配置本地創建日志文件創建Dockerfile文件配置ssl證書nginx.confvue項目打包上傳創建容器部署 后端springboot項目部署配置ssl證書打包部署 補充:jsk證書和pfx證書補充:兩種證書的轉化JKS轉PFXPFX 轉 JKS …

Elasticsearch:將最大內積引入 Lucene

作者:Benjamin Trent 目前,Lucene 限制 dot_product (點積) 只能在標準化向量上使用。 歸一化迫使所有向量幅度等于一。 雖然在許多情況下這是可以接受的,但它可能會導致某些數據集的相關性問題。 一個典型的例子是 Cohere 構建的嵌入&#x…

使用 Lhotse 高效管理音頻數據集

Lhotse 是一個旨在使語音和音頻數據準備更具靈活性和可訪問性的 Python 庫,它與 k2 一起,構成了下一代 Kaldi 語音處理庫的一部分。 主要目標: 1. 以 Python 為中心的設計吸引更廣泛的社區參與語音處理任務。 2. 為有經驗的 Kaldi 用戶提供…

SpringBoot——啟動類的原理

優質博文:IT-BLOG-CN SpringBoot啟動類上使用SpringBootApplication注解,該注解是一個組合注解,包含多個其它注解。和類定義SpringApplication.run要揭開SpringBoot的神秘面紗,我們要從這兩位開始就可以了。 SpringBootApplicati…

Spring實例化對象

默認proxyBeanMethods true,這種方法是用的代理模式創建對象,每次創建都是同一個對象,如果改為false每次都是不同的對象 FactoryBean的使用 定義的類A,造出來一個類B,可以在創造bean之前做一些自己的個性化操作

MFS分布式文件系統

目錄 集群部署 Master Servers ?Chunkservers ?編輯Clients Storage Classes LABEL mfs高可用 pacemaker高可用 ?編輯ISCSI 添加集群資源 主機 ip 角色 server1 192.168.81.11 Master Servers server2 192.168.81.12 Chunkservers server3 192.168.81.13 Chunkserver…

【產品安全平臺】上海道寧與Cybellum將整個產品安全工作流程整合到一個專用平臺中,保持構建的互聯產品的網絡安全和網絡合規性

Cybellum將 整個產品安全工作流程 整合到一個專用平臺中 使設備制造商能夠 保持他們構建的互聯產品的 網絡安全和網絡合規性 產品安全性對 每個人來說都不一樣 每個行業的系統、工作流程和 法規都存在根本差異 因此,Cybellum量身定制了 Cybellum的平臺和技…

為何內存不夠用?微服務改造啟動多個Spring Boot的陷阱與解決方案

在生產環境中我們會遇到一些問題,此文主要記錄并復盤一下當時項目中的實際問題及解決過程。 背景簡述 最初系統上線后都比較正常風平浪靜的。在系統運行了一段時間后,業務量上升后,生產上發現java應用內存占用過高,服務器總共64…

打印出一個底部有n個*的漏斗c語言

題目描述 打印出一個底部有n個*的漏斗 輸入 第一行輸入一個T;表示有T組測試數據 下面每一行都有一個n表示漏斗底部*的個數 n保證是奇數 輸出 輸出打印結果 兩個測試答案之間要用換行分割 /*printf("這是第%d行 我要打印%d個* \n",Num,i); */ *********** *…

愛創科技總裁謝朝暉榮獲“推動醫藥健康產業高質量發展人物”

中國醫藥市場規模已經成為全球第二大醫藥市場,僅次于美國。近年來,隨著中國經濟的持續增長和人民生活水平的提高,醫藥市場需求不斷擴大。政府對醫療衛生事業的投入也在不斷加大,為醫藥行業的發展創造了良好的政策環境。為推動醫藥…

SparkSession介紹

一、 介紹 SparkSession是Spark 2.0中引入的新概念,它是Spark SQL、DataFrame和Dataset API的入口點,是Spark編程的統一API,也可看作是讀取數據的統一入口;它將以前的SparkContext、SQLContext和HiveContext組合在一起&#xff0…

結構體與指針_sizeof_static_extern_函數指針數組_函數指針_回調函數

一、結構體與指針 #include <stdint.h> #include <stdlib.h> #include <stdio.h> #define up_to_down(uuu) (downdemo_t *)(uuu->beg) #define __plc__ typedef struct updemo_s{uint8_t *head;uint8_t *beg;uint8_t *end; }updemo_t; typedef struct do…

陪玩圈子系統APP小程序H5,詳細介紹,源碼交付,支持二開!

陪玩圈子系統&#xff0c;頁面展示&#xff0c;源碼交付&#xff0c;支持二開&#xff01; 陪玩后端下載地址&#xff1a;電競開黑陪玩系統小程序&#xff0c;APP&#xff0c;H5: 本系統是集齊開黑&#xff0c;陪玩&#xff0c;陪聊于一體的專業APP&#xff0c;小程序&#xff…

2:kotlin集合(Collections)

集合有助于數據分組&#xff0c;方便后續操作 集合類型說明Lists有序的可重復的集合Sets無序的不可重復的集合Maps鍵值對映射集合&#xff0c;鍵唯一&#xff0c;且一個鍵只能映射到一個值 每個集合類型都可以是可變的或者只讀的 List List按照添加的順序存儲內容&#xff…

Linux進程通信——共享內存

概念 共享內存&#xff08;Shared Memory&#xff09;&#xff0c;指兩個或多個進程共享一個給定的存儲區。 特點 共享內存是最快的一種 IPC&#xff0c;因為進程是直接對內存進行存取。 因為多個進程可以同時操作&#xff0c;所以需要進行同步。 信號量共享內存通常結合在一…

Open3D (C++) 計算兩點云之間的最小距離

目錄 一、 算法原理二、代碼實現三、結果展示本文由CSDN點云俠原創,原文鏈接。如果你不是在點云俠的博客中看到該文章,那么此處便是不要臉的爬蟲與GPT。 一、 算法原理 Open3D中ComputePointCloudDistance函數提供了計算從源點云到目標點云的距離的方法,計算點云的距離。也…

python數據結構與算法-05_棧

棧 棧這個詞實際上在計算機科學里使用很多&#xff0c;除了數據結構外&#xff0c;還有內存里的棧區 &#xff08;和堆對應&#xff09;&#xff0c;熟悉 C 系語言的話應該不會陌生。 上一章我們講到了先進先出 queue&#xff0c;其實用 python 的內置類型 collections.deque …

【C語法學習】26 - strcmp()函數

文章目錄 1 函數原型2 參數3 返回值4 比較機制5 示例5.1 示例1 1 函數原型 strcmp()&#xff1a;比較str1指向的字符串和str2指向的字符串&#xff0c;函數原型如下&#xff1a; int strcmp(const char *str1, const char *str2);2 參數 strcmp()函數有兩個參數str1和str2&a…

HCIP-四、MUX-vlanSuper-vlan+端口安全

四、MUX-vlan&Super-vlan端口安全 MUX-vlan實驗拓撲實驗需求及解法1. 在SW1/2/3分別創建vlan10 20 30 402. SW1/2/3之間使用trunk鏈路&#xff0c;僅允許vlan10 20 30 40 通過。3. SW與PC/Server之間使用access鏈路。4. ping驗證&#xff1a; Super-vlan端口安全實驗拓撲實…