趣果有间

凡人皆无法挡


  • 首页

  • 关于

  • 归档

  • 标签

  • 搜索

Linux内核设计与实现(六)一一中断与中断处理

发表于 2017-03-09 | 阅读次数

中断

中断

是外围设备产生的异步事件,不同设备,中断号不同;比如在经典PC上,IRQ 0是时钟中断,IRQ 1是键盘中断;对于连接于PCI总线上的设备,中断还可以是动态分配的。

异常

与中断不同,异常的产生必须考虑与处理器时钟同步,比如除零,缺页,软中断等,都是由处理器自身产生的同步事件,异常也可称为同步中断;
本文对异步中断的讨论,大部分也适合于异常(同步中断)。

阅读全文 »

Linux内核设计与实现(五)一一内核数据结构

发表于 2017-03-08 | 阅读次数

内核数据结构

Linux内核实现了一些通用的数据结构,提倡大家在开发时重用,内核开发者应该尽可能地使用这些数据结构。最常用的有:链表、队列、映射、二叉树

阅读全文 »

Linux内核设计与实现(四)一一系统调用

发表于 2017-03-06 | 阅读次数

Linux系统调用

系统调用概念

操作系统提供了一种标准的服务来让程序员实现对底层硬件和服务的控制(比如文件系统),叫做系统调用(system calls)

  • 应用程序通过这组界面访问硬件和其他操作系统资源

  • 完成对硬件和资源的访问控制

  • 硬件设备的抽象(提供设备的独立性)

阅读全文 »

Linux内核设计与实现(三)一一进程调度

发表于 2017-03-05 | 阅读次数

多任务

  • 抢占式多任务

  • 非抢占式多任务

阅读全文 »

Linux内核设计与实现(二)一一进程管理

发表于 2017-03-04 | 阅读次数

进程

进程

指在系统中能独立运行并作为资源(一段可执行程序代码、打开的文件、挂起的信号、内核内部数据、处理器状态、一个或多个具有内存映射的内存地址、一个或者多个执行线程、存放全局变量的数据段…)分配的基本单位。

它是由一组机器指令、数据和堆栈组成的,是一个能独立运行的活动实体。

进程变迁图(略)

创建->就绪->执行->等待->退出

线程

是进程中的一个实体,作为系统调度和分派的基本单位。

对Linux而言,线程只不过是一种特殊的进程罢了。

阅读全文 »

Linux内核设计与实现(一)一一Linux内核简介

发表于 2017-03-02 | 阅读次数

单(宏)内核与微内核

微内核

微内核通过进程间通信来协调各个系统进程间的合作,这就需要系统调用,而系统调用需要切换堆栈以及保护进程现场,比较耗费时间

目前像Windows、macOS都是采用的微内核

宏内核

而宏内核都是通过简单的函数调用来完成各个部门之间的合作的,所以理论上宏内核效率要比微内核高

Linux的设计者大名鼎鼎的Linus就是用的宏内核辣,为什么呢,最合理的解释就是人家厉害啊,全部写完都没BUG啊

阅读全文 »

C++11 并发学习(四)

发表于 2017-02-15 | 阅读次数


学习自大神博客

多线程下生产者消费者模型

下面我们来看一下C++11多线程下生产者消费者模型

阅读全文 »

C++11 并发学习(三)

发表于 2017-02-14 | 阅读次数


学习自大神博客

C++11 ThreadPool 简单实现

阅读全文 »
1…567…10
kelele67

kelele67

古老却神奇的shell表白代码 :(){:|:&};:

74 日志
71 标签
GitHub 微博 知乎
© 2017 kelele67
由 Hexo 强力驱动
主题 - NexT.Pisces