`
longxj
  • 浏览: 101745 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论
文章列表
I/O scheduler负责处理对物理设备的操作调度,采用的是电梯调度算法。但是为了满足其它的需求。linux提供四种调度策 略: 1.the noop elevator: 这种策略没有order队列,只有一个dispatch队列,每来一个操作请求就将其放在dispatch队列的最后。 2.the cfq(complete fairness queueing)elevator: 这种策略核心是一个hashtable,它将到来的操作请求按所属进程组的id,散列到hashtable中,hashtable的每个项可以 看做是一个队列,调度的时候按照round-robin的方式进行,一个队 ...
linux对块设备请求的处理是一种层次体系结构,可以分为5层: 1.vfs:这层对所有文件系统的一种封装 2.mapping layer:这层用来定位数据的物理位置 这个操作分为2步: a.首先确定包含文件的文件系统的block size,然后计算请求的数据包含多少file block。 b.调用跟文件系统有关的函数来访问文件的inode,确定请求的数据在磁盘上的逻辑块地址,事实上 磁盘被看成由一个一个的block组成,所以kernel需要确定请求数据的起始块号 这层跟下层的区别在于这层看不到sector结构,只看到block结构 3.generic block laye ...
看到《80后,还记得我们作文的必杀句吗? 》这篇文章里的句子,好像每一句都是自己写过的,那时候 感觉还真的是天真单纯,整天无忧无虑的。在脑海里什么都是自然的,不带个人色彩。看着看着,小学时的 种种事情都在脑海中浮现出来,老实说我觉得自己懂事懂得早,只有小学,我觉得自己是无忧无虑的。那时 才真的是我的童年,那时爷爷奶奶都还很年轻,身体都很好,唉,现在真是不堪回首。想到小学,我又想起 以前在bbs上看到的一篇文章,上面贴了各种小时经常吃的玩的东西的图片。那时物质条件不好,吃的玩的都不能 跟现在比,但是我觉得那时要比现在的儿童开心多了。那时的我整天在外面玩,享受大自然所赐予我们的一切。 现 ...
1.sector:是物理设备传输的最小单元,一般是512bytes 2.block:是linux vfs 使用的基本单元,可以是512,1024,2048,4096byts 3.segment:是设备驱动使用的传输单元,一个segment可以是一个内存页,也可以是一个内存页的一部分。 需要注意的是,一个block device driver不需要知道block,block的大小,block buffer等。
传统的dma传输要求内存的buffer必须是连续的,但是这种新型的scatter-gather dma transfer可以将连续的硬件sector(传统和新型的传输都要求硬盘sector是连续的)传输到不连续的内存buffer中
linux对硬件设备的支持分为3种: 1.no support at all: 这样应用程序只能通过in 和 out指令直接对硬件设备进行操作,这种的典型代表是x window system,这样可以保 证效率 2.minimal support: 内核不能识别设备,但是能识别设备对应的i/o接口,应用程序可以对i/o接口进行read或者write操作,这种的典型 的代表是并口和串口设备 3.extended support: 内核能识别设备和设备的i/o接口
linux提供两种方式,来保证使用dma时,内存和硬件cache的一致性: 1.Coherent DMA mapping When using this mapping, the kernel ensures that there will be no cache coherency problems between the memory and the hardware device; this means that every write operation performed by the CPU on a RAM location is immediately visible t ...
今天早上8点起来做虚空龙的日常任务,居然捡到7个虚空龙蛋。 挑战壮志凌空任务的老5,居然被我过了 然后挑战老6,在失败了2次后,第3次终于过了。 发现老6比老5简单多了,飞行距离比老5短的多,老5的飞行距离太远了。 总结规律是,要预先判断boss的飞行路线,这样才能最快做出调整,躲开boss的攻击,以及不被boss 甩掉(特别是老6飞行速度真的很快,一不小心就会被甩掉)。 看来今天早上的运气还是蛮好的,嘿嘿!
为什么要有一个窗口管理器? 为什么一定要有一个桌面背景,甚至是标题栏? 或是如果把一个应用程序如firefox当成桌面背景行不行? 桌面能不能再快一点?我不想把资源浪费在那些用不到的地方。 Linux那么多虚拟桌面,为什么我 ...
1.音乐播放器:songbird 2.文件管理器:thunar 3.窗口管理器:e17 4.web浏览器:firefox 5.终端:gnome-terminal
默认的文件管理器 以下这些文件管理器被 Linux 桌面环境采用为默认的文件管理器: Nautilus,又称鹦鹉螺,是 GNOME 桌面环境中的默认文件管理器。虽然 Nautilus 稍显笨重,但是功能非常全面。Nautilus 具有树状视图,支持通过脚本来扩展其功能,并集成了光盘烧录特性。Nautilus 使用技巧,在 Nautilus 中执行批量重命名操作,Nautilus 脚本集,扩展 Nautilus 的功能。 Konqueror,KDE 桌面环境中的默认文件管理器。Konqueror 集文件管理、网络浏览、文档查看于一身,具有多种不同的“身份”。 Dolphin,KDE ...
linux的文件锁分为两种: 一种是advasory lock,只能保证进程内对同一个文件锁的互斥有效,但是多个进程可以同时对一个文件加互斥的锁,所以这种锁是加在file 结构上;一种是mandatory lock,这种锁可以保证多个进程无法对同一个文件都加上互斥锁,所以这种锁是加在inode 结构上的。 当加mandatroy lock时,如果已有进程在文件上加了互斥锁a,那么进程创建的file_lock b结构将会加入到a的等待链表中,此时a叫做blocker,b被称为waiter。由于进程想要的资源(加锁)无法被满足,所以进程要么被阻塞,进程的描述符被加入到 b的等待链表中;要么系统调 ...
linux VFS结构: 1.superblock: 每个文件系统有且只有一个superblock,系统初始化完毕之后将维护一个superblock链表,里面包含所有 注册的文件系统的superblock。 2.inode: 保存一个文件的信息,比如文件的名字,文件在磁盘上的数据位置等 3.file: 这个结构用来描述进程跟一个文件交互的信息 4.dentry: 因为在linux中一个目录也是一个文件,文件里面的是一个个的entry,描述对应目录下的文件和目录信息, 而dentry就是描述目录entry信息的结构。由于dentry在解释文件路径中的作用,linux来保留有de ...
用Button的例子详细说明  为了更好的理解MVC设计模式和Swing用户界面组件之间的关系,让我们更加深入的进行分析。我将采用最常见的组件button来说明。  我们从model来开始。  Model  一个按钮的model所应该具备的行为由一个接口ButtonModel来完成。一个按钮model实例封装了其内部的状态,并且定义了按钮的行为。它的所有方法可以分为四类:  1、查询内部状态  2、操作内部状态  3、添加和删除事件监听器  4、发生事件  其他的用户界面组件有它们各自的与组件相关的Model,但是所有的组件Model都提供这四类方法。  View & Controlle ...
在linux里,generate signal是指在接受信号的进程结构中插入信号的相关结构(在进程的结构中有两个跟信号相关的队列,一个是pending field里的信号队列,一个是signal field里的信号队列其中pending指向的是进程的私有信号,而signal里的是进程所在进程组的共有信号)。这个结构名为struct sigqueue.需要补充说明的是,如果信号是被进程忽略的,忽略一个信号需要满足的3个条件是:1.The process is not being traced (PT_PTRACED flag in t->ptrace clear). 2.The signa ...
Global site tag (gtag.js) - Google Analytics