![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux内核设计与实现小结
文章平均质量分 88
lcf枫
shopee 后台开发
展开
-
文章标题
进程管理看过了操作系统相关的书籍总是很容易忘记,偶然看了一部分Linux内核设计与实现终于找到了其中的原因:操作系统类书籍讲求大而全,蜻蜓点水。Linux相当于把它实例化,是我们切切实实可以看到的东西。本文记一下看书的知识点以及自己的观点。由于不做内核相关的开发,前两章节就先跳过。进程管理进程就是处于执行期的程序(目标码存放在某种存储介质上)。在执行的期间还包括了其他许多资源(文件,信号,内核内部数原创 2017-08-29 14:05:37 · 227 阅读 · 0 评论 -
进程调度
进程调度调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间。进程调度程序(常常简称调度程序)可看做在可运行态进程之间分配有限的处理器时间资源的内核子系统。调度程序是像Linux这样的多任务操作系统的基础。只有通过调度程序的合理调度,系统资源才能最大限度地发挥作用,多进程才会有并发执行的效果。多任务多任务操作系统就是能同时并发地交互执行多个进程的操作系统。多任务原创 2017-08-29 14:10:01 · 831 阅读 · 0 评论 -
内核数据结构
内核数据结构内核常用的数据结构有:链表队列映射二叉树链表链表是Linux内核中最简单、最普通的数据结构。链表是一种存放和操作可变数t元素〔常称为节点)的数据结构。单向链表 双向链表 循环链表/* an element in a linked list */struct list_element { void data; /* the原创 2017-08-29 14:13:36 · 342 阅读 · 0 评论 -
内核同步
内核同步在使用共享内存的应用程序中,程序员必须特别留意保护共享资源,防l}共享资源并发访问。内核也不例外。共享资源之所以要防止并发访问,是因为如果多个执行线程同时访问和操作数据,就有可能发生各线程之间相互覆盖共掌数据的情况,造成被访问数据处手不一致状态。临界区和竟争条件所谓临界区(也称为临界段)就是访问和操作共享数据的代码段。多个执行线程并发访问同一个资源通常是不安全的,为了避免在原创 2017-08-29 14:14:58 · 264 阅读 · 0 评论 -
内核同步方法
内核同步方法原子操作我们首先介绍同步方法中的原子操作,因为它是其他同步方法的基石.原子操作可以保证指令以原子的方式执行—执行过程不被打断。众所周知,原子原本指的是不可分割的微粒,所以原子操作也就是不能够被分割的指令。内核提供了两组原子操作接口—— 一组针对整数进行操作,另一组针对单独的位进行操作。整数操作:typedef struct { volatile in原创 2017-08-29 14:15:43 · 310 阅读 · 0 评论 -
系统调用
系统调用在现代操作系统中.内核提供了用户进程与内核进行交互的一组接口。这些接口让应用程序受限地访向硬件设备,提供了创建新进程并与已有进程进行通信的机制,也提供了申请操作系统其他资源的能力。与内核通信系统调用相当于是中间层。它为用户空间提供了一种硬件的抽象接口。举例来说,当需要读写文件的时候,应用程序就可以不去管磁盘类型和介质,甚至不用去管文件所在的文件系统到底是哪种原创 2017-08-29 14:17:32 · 379 阅读 · 0 评论 -
中断和中断处理
中断和中断处理任何操作系统内核的核心任务,都包含有对连接到计算机上的硬件设备进行有效管理,如硬盘、蓝光碟机、健盘、鼠标、3D处理器,以及无线电等。而想要管理这些设备,首先要能和它们互通音信才行。两者的速率往往是不匹配的,如果依靠内核去询问会降低性能。所以提出一种让硬件有需要时向内核发出信号,让内核去做处理。该机制称为中断机制。中断中断使得硬件得以发出通知给处理器。从物理原创 2017-08-29 14:18:32 · 735 阅读 · 0 评论 -
Linux 文件系统
曾经在工作中遇到文件无法创建的问题。报错是inode节点耗尽。仔细查看是由于产生的文件太小。 inode也会消耗硬盘空间,所以硬盘格式化的时候,操作系统自动将硬盘分成两个区域。一个是数据区,存放文件数据;另一个是inode区(inode table),存放inode所包含的信息。每个inode节点的大小,一般是128字节或256字节。inode节点的总数,在格式化时就给定,一般是每1KB或每2原创 2018-05-02 12:03:05 · 152 阅读 · 0 评论