:select单个进程能打开的最大连接数由FD_SETSIZE宏定义,32位机器为1024,64位机器为2048,虽然可以修改,然后重新编译内核,但性能可能受影响;poll本质上和select没有区别,但它没有最大连接数限制,因为是基于链表来存储的;epoll虽然连接数有上限,但很大,1G内存的机器可以打开10万左右的连接,2G内存的机器可以打开20万左右的连接;
在SPOOLing技术下,CPU要打印机打印的数据可以先输出到磁盘的输出井中(这个过程由假脱机进程控制),然后做其他的事情。若打印机此时被占用,则SPOOLing系统就会把这个打印请求挂到等待队列上,待打印机有空时再把数据打印出来。向磁盘输出数据的速度比向打印机输出数据的速度快,因此就节省了时间
2字符设备:以字符为单位发送或者接收一个字符流,而不考虑任何块结构。字符设备不可寻址,也没有磁臂伸缩+磁盘旋转这些操作,除了磁盘是块设备之外,计算机系统的大多数设备都是字符设备,例如:鼠标、键盘、打印机等。
在本章节中,同学们要掌握设备的分类,设备控制器的功能,4种IO控制方式,IO软件的层次结构,高速缓存和缓冲区,设备分配,SPOOLing技术,磁盘结构,磁盘格式化,磁盘调度算法等,最后一章,看完就结束了!
写到内存是另一个标准总线周期,也就是下图中的第三步。当写操作完成时,磁盘控制器在总线上发出一个应答信号到DMA控制器,也就是第四步。于是,DMA控制器步增要使用的内存地址,并且步减字节计数。
•关中断。处理器响应中断后,首先要保护程序的现场状态,在保护现场的过程中,CPU不应响应更高级中断源的中断请求。否则,若现场保存不完整,在中断服务程序结束后,也就不能正确地恢复并继续执行现行程序。
由于设备控制器位于CPU与设备之间,它既要与CPU通信,又要与设备通信,还应具有按照CPU所发来的命令去控制设备工作的功能,因此,现有的大多数控制器都是由以下三部分组成的:
1安全分配方式。在这种分配方式中,每当进程发出I/O请求后,便进入阻塞状态,直到其I/O操作完成时才被唤醒。在采用这种分配策略时,一旦进程已经获得某种设备(资源)后便阻塞,使该进程不可能再请求任何资源,而在它运行时又不保持任何资源。
这种分配方式的优点是,一个进程可同时操作多个设备,使进程推进迅速。其缺点是分配不安全,因为它可能具备“请求和保持”条件,从而可能造成死锁。
操作系统通常将驱动程序归类于少数的类别之一。最为通用的类别是块设备和字符设备。块设备(例如磁盘)包含多个可以*寻址的数据块,字符设备(例如键盘和打印机)则生成或接收字符流。
这一读请求看起来和其他任何读请求一样,并且磁盘控制器不需要关心这个读请求来自CPU还是来自DMA控制器。一般情况下,要写的内存地址在总线的地址线上,所以当磁盘控制器从其内部缓冲区中读取下一个字的时候,它知道将该字写到什么地方。
目前磁盘的I/O速度远低于对内存的访问速度,通常要低上4~6个数量级。因此,磁盘的I/O已成为计算机系统的瓶颈。
1输入井和输出井。这是在磁盘上开辟的两大存储空间。输入井是模拟脱机输入时的磁盘设备,用于暂存I/O设备输入的数据;输出井是模拟脱机输出时的磁盘,用于暂存用户程序的输出数据;
有话要说...