11 2018 档案

摘要:中断和中断处理 处理器的速度跟外围硬件设备的速度往往不再一个数量级上,因此,如果内核采取让处理器向硬件发出一个请求。 然后专门等待回应的办法,如果专门等待回应,明显太慢。所以等待期间可以处理其他事务,等待完成了请求操作后,再回来进行处理。 所以内核提供了一种机制,让内核在需要的时候再向内核发出信号。 阅读全文
posted @ 2018-11-25 15:22 习惯就好233 阅读(587) 评论(0) 推荐(0)
摘要:内核数据结构 Linux内核实现了这些通用数据结构,而且提倡大家在开发时重用。 内核开发者应该尽可能地使用这些数据结构,而不要自作主张的山寨方法。 通用的数据结构有以下几种:链表、队列、映射和二叉树 一、链表 1.1 单向链表和双向链表 链表是Linux中最简单、最普通的数据结构。 最简单的数据结构 阅读全文
posted @ 2018-11-21 14:43 习惯就好233 阅读(598) 评论(0) 推荐(0)
摘要:系统调用 内核提供了用户进程和内核交互的接口,使得应用程序可以受限制的访问硬件设备。 提供这些接口主要是为了保证系统稳定可靠,避免应用程序恣意妄行。 一、内核通信 系统调用在用户空间进程和硬件设备之间添加中间才能。作用有三: 为用户空间提供一种硬件的抽象接口。无需理会物理结构是怎么样的。 系统调用保 阅读全文
posted @ 2018-11-19 12:45 习惯就好233 阅读(603) 评论(0) 推荐(0)
摘要:进程调度 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间。 调度程序没有太复杂的原理,最大限度地利用处理器时间的原则是,只要有可以执行的进程,那么就总会有进程正在执行。 一、多任务 多任务系统可以划分为两类:非抢占式多任务和抢占式多任务。 Linux提供了抢占式的多任务模式,在此模式下 阅读全文
posted @ 2018-11-15 14:13 习惯就好233 阅读(396) 评论(0) 推荐(0)
摘要:进程管理 进程:处于执行期的程序。 线程:在进程中活动的对象 虚拟机制 虚拟处理器:多个进程分享一个处理器 虚拟内存:多个线程共享虚拟内存 一、进程描述符和任务结构 进程存放在双向循环链表中(队列),链表中的项为task_struct,称为进程描述符。在头文件<linux/sched.h>中。 st 阅读全文
posted @ 2018-11-13 16:56 习惯就好233 阅读(407) 评论(0) 推荐(0)
摘要:一、Linux内核中的一些基本概念 内核空间:内核可独立于普通应用程序,它一般处于系统态,拥有受保护的内存空间和访问硬件设备的所有权限。这种系统态和被保护起来的内存空间,称为内核空间。 进程上下文:当应用程序执行一条系统调用,通过系统调用运行在内核空间,而内核被称为运行在进程上下文中。 当你开发内核 阅读全文
posted @ 2018-11-09 13:14 习惯就好233 阅读(243) 评论(0) 推荐(0)