上一页 1 ··· 28 29 30 31 32 33 34 35 36 ··· 109 下一页
摘要: 栈是什么?栈有什么作用?首先,栈 (stack) 是一种串列形式的 数据结构。这种数据结构的特点是后入先出 (LIFO, Last In First Out),数据只能在串列的一端 (称为:栈顶 top) 进行 推入 (push) 和 弹出 (pop) 操作。根据栈的特点,很容易地想到可以利用数组, 阅读全文
posted @ 2023-05-03 00:10 流水灯 阅读(237) 评论(1) 推荐(1)
摘要: 进程的管理与调度是所有操作系统的核心功能。从内核的角度来看,进程是内核分配资源(CPU,Memory)的重要单元,是计算机用来管理这些资源的一种抽象。 进程状态 1、TASK_RUNNING 表示进程要么正在执行,要么准备执行,等待cpu时间片的调度 2、TASK_INTERRUPTIBLE 表示进 阅读全文
posted @ 2023-05-01 20:40 流水灯 阅读(230) 评论(0) 推荐(0)
摘要: 简介 工作队列是将中断操作延期执行的另一种手段。因为它们是在内核线程进程执行,允许睡眠。 对每个工作队列来说,内核都会创建一个新的内核守护线程。新的工作队列通过调用 create_workqueue 或 create_singlethread_workqueue 函数来创建。前一个函数在所有CPU上 阅读全文
posted @ 2023-05-01 15:59 流水灯 阅读(214) 评论(0) 推荐(0)
摘要: 中断的分类 中断分为硬中断和软中断,其分类依据是实现机制,而不是触发机制,比如CPU硬中断,它是由CPU这个硬件实现的中断机制,但它的触发可以通过外部硬件(比如GPIO),软件的 INT 指令,或者CPU执行检测(访问非法地址、除法异常)。一些资料会把以上三种方式做区分,把INT n这种方式叫做软件 阅读全文
posted @ 2023-04-30 17:12 流水灯 阅读(1174) 评论(0) 推荐(0)
摘要: 什么是内核抢占呢? 周期性时钟中断:对于用户任务,当每个时钟中断到来后都会检查它的实际运行时间是否超过理想运行时间,或者运行队列中有没有优先级更高的进程,一般如果满足其中一个条件就会设置重新调度标志,然后在中断返回用户态的前夕发生调度,这是所谓的用户任务抢占。但是如果处于一个内核态的任务正在运行,这 阅读全文
posted @ 2023-04-29 13:58 流水灯 阅读(196) 评论(0) 推荐(0)
摘要: rw_semaphore,读写信号量 和mutex很像。保护临界区的原因是其同时有被修改和读的可能,如果这个资源只是被读永远不会修改,那也不需要保护。有这样一个场景,被保护的临界区大部分情况下都是读取操作,少数情况会被修改。如果使用mutex,假设此刻一个读者进入临界区,另外一个线程也是读取操作,那 阅读全文
posted @ 2023-04-28 22:17 流水灯 阅读(63) 评论(0) 推荐(0)
摘要: 1. RCU 1.1 RCU 背景(读写锁的问题) 1.1.1 读写锁(写独占,读共享,写锁优先级高) 读写锁是另一种实现线程间同步的方式。 读写锁的特性为:写独占,读共享;写锁优先级高 读写锁是“写模式加锁”时, 解锁前,所有尝试对该锁进行加锁(不管是读锁还是写锁)的线程都会被阻塞;–> 写独占读 阅读全文
posted @ 2023-04-26 22:12 流水灯 阅读(836) 评论(0) 推荐(0)
摘要: 简介 在实际编程中,我们会经常碰到这种场景:进程P需要等待条件C的成立,才能继续执行某个动作。例如,当串口没有数据可以读取时,我们可以通过轮询的方式,等到有数据来的时候,串口程序再去读取。但是这种方式显得比较笨拙,影响CPU的性能。因此,内核中提供了等待队列的方式,即可以将进程P先挂到等待队列Q(w 阅读全文
posted @ 2023-04-22 20:33 流水灯 阅读(650) 评论(0) 推荐(0)
摘要: TASK_INTERRUPTIBLE 和TASK_UNINTERRUPTIBLE 的区别 TASK_INTERRUPTIBLE是可以被信号和wake_up()唤醒的,当信号到来时,进程会被设置为可运行。而TASK_UNINTERRUPTIBLE只能被wake_up()唤醒。 信号本质 信号是在软件层 阅读全文
posted @ 2023-04-22 19:36 流水灯 阅读(344) 评论(0) 推荐(0)
摘要: TTY结构体关系图 TTY设备 TTY 驱动类型如下,串口也属于TTY /* tty driver types */ #define TTY_DRIVER_TYPE_SYSTEM 0x0001 #define TTY_DRIVER_TYPE_CONSOLE 0x0002 #define TTY_DR 阅读全文
posted @ 2023-04-17 20:42 流水灯 阅读(628) 评论(0) 推荐(0)
上一页 1 ··· 28 29 30 31 32 33 34 35 36 ··· 109 下一页