文章目录
- 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发起中断信号,中断程序继续执行。因此中断程序还具有直接操作硬件的能力。