操作系统对IO设备的操作,实质上就是对外设控制寄存器进行操作,并封装为统一接口(Linux中一切皆文件)。
终端IO
显示器
打开的相关文件,就是获得文件描述符,再通过文件描述符索引获得其PCB相关数组中的一项,之后得到文件的信息(inode)。
显示操...
阅读全文...
操作系统3-进程和线程
进程
在cpu运行时我们知道对IO操作的执行往往比计算要慢很多,可以达到1000000:1;若是使用单一的运行方式操作大量IO,cpu的利用率非常低;为了提高cpu的利用率同时防止一个应用程序被一直等待,我们就引入了进程和多进程。而操作系统的最本质工作就...
阅读全文...
阅读全文...
数据结构和算法-8-队列
队列
队列(queue)是一种先进先出的、操作受限的线性表。
ADT 队列 (Queue)
Data
同线性表,但元素只能队尾入,对头出。
Operation
init_queue(*Q) :初始化操作,建立一个空队列Q。
cl...
阅读全文...
阅读全文...
数据结构和算法-7-栈的应用
进制转换
栈先进后出的特性刚好符合十进制转二进制的方法:
#include <stdio.h>
#include <stdbool.h>
#define OK true
#define ERROR false
ty...
阅读全文...
阅读全文...
数据结构和算法-6-栈
栈
栈(stack)是一种限定在表的一端进行插入或删除操作的线性表。可以被操作的一端被称为栈顶(top),相对地,把另一端称为栈底(bootom)。
向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈...
阅读全文...
阅读全文...