• 【操作系统】I/O软件层次结构


    1. 前言

    偶然看到“程序员的护城河是什么”这个话题,作为一个工作两年多的程序员吧,经常看到网上关于各种35岁危机、裁员甚至猝死之云云。最近也不仅思考起了这个问题:我的护城河是什么

    我的护城河不单单是指一直作为一个程序员不被开除,而是我有哪些能力让自己始终不担心生计?或者说是应该提升哪些能力使得自己不对未来那么担忧和迷茫。

    思考了一段时间。

    首先,要排除家里“有矿”的前提(就算有矿那也得在精神层面不断提升自己吧)。我觉得第一就是要有始终学习的习惯,不然淘汰只会提前到来;第二是要分析自己,找到自己更容易获得资源的那个方向(这样至少机会多点),然后先慢慢积累着。耐心的等待着量变到质变的那一刻;第三就是做好手上的事情,始终觉得“不务正业”的风险太高了,做好擅长的事情,除此之外还要尽可能的了解其他知识达到扩展知识面的目的;最后就是觉得应该在工作中积极争取,不能只做一亩三分地,要主动出击,争取机会(当然了,也不能超出能力范围太多,否则适得其反)。

    以上就是我这个工作不算久的职场人的一点思考,或许还略显浅显,欢迎大家交流。

    那么接下来继续学习吧。

    2. I/O软件层次结构

    为了让IO相关的硬件设备能够被上层方便的使用,相关的软件程序是必不可少的。我们通过下图看些IO的软件层次结构:

    在这里插入图片描述

    2.1 用户层软件

    用户层软件工作在用户态,主要有两个作用:

    • 实现用户交互接口;
    • 通过库函数实现系统调用;

    2.2 设备独立性软件

    设备独立性软件相当于所有设备的管理者。它向上一层提供调用接口,具有设备保护、容错处理、设备分配与回收、数据缓冲区管理、逻辑设备与物理设备映射等功能。

    2.3 设备驱动程序

    不同设备硬件特性不同,但CPU的指令相同,因此需要各硬件设备商负责编写自己的驱动程序软件。驱动程序负责控制硬件设备,将CPU指令转换成设备操作。驱动程序是以独立进程的形式存在的

    2.4 中断处理程序

    对于IO软件而言,中断处理程序也是必不可少的。当CPU发出IO指令后,调用中断程序,保存现场并阻塞当前进程,转向IO操作;当设备完成IO后再次向CPU发起中断信号,中断程序继续执行。因此中断程序还具有直接操作硬件的能力。

    在这里插入图片描述

  • 相关阅读:
    使用消息队列的原因以及消息队列的流派
    Python基础之MySql数据库交互
    【torch-sparse及pytorch-geometric 安装】
    9.25
    AI、AIGC、AGI、ChatGPT它们的区别?
    人工智能发展前景
    nodejs基于vue小型企业银行账目管理系统
    ARM的七种工作模式
    2022软件测试高频面试题汇总(附带答案)——建议收藏
    大模型prompt-文章生成
  • 原文地址:https://blog.csdn.net/qq_41622852/article/details/134556704