01 2022 档案

摘要:背景 Linux中断上半部,参见Linux中断和中断处理程序 。 Linux中断下半部,参见Linux中断下半部及推后执行的工作。 这部分讲Linux内核中断和中断处理程序。 [ ] 中断 硬件中断 -- 异步中断 中断本质上是一种电信号,由硬件设备发出,用于通知处理器特定事件。 不同设备对应不同中 阅读全文
posted @ 2022-01-30 14:00 明明1109 阅读(2538) 评论(0) 推荐(1) 编辑
摘要:计时函数 用于获取当前(日期)时间: time(2) / time_t (秒) ftime(3) / struct timeb (毫秒) gettimeofday(2) / struct timeval (微妙) clock_gettime(2) / struct timespec (纳秒) gmt 阅读全文
posted @ 2022-01-26 13:16 明明1109 阅读(284) 评论(0) 推荐(0) 编辑
摘要:这部分讲Linux内核定时器。 基本概念 系统定时器:一种可编程硬件芯片,能以固定频率产生中断。 定时器中断:系统定时器固定时间周期产生的中断,其中断处理程序负责更新系统时间,执行周期性任务。 动态定时器:一种用来推迟执行程序的工具。内核可以动态创建、销毁动态定时器。 节拍率(tick rate): 阅读全文
posted @ 2022-01-26 12:44 明明1109 阅读(2267) 评论(0) 推荐(0) 编辑
摘要:这部分讲操作系统内核中的并发和同步问题。 为什么需要同步? 因为计算机中很多共享的资源有限,如共享内存,在同一时间被多个执行并发访问的话,有可能发生各个线程间相互覆盖共享数据的情况,造成访问数据处于不一致状态,从而造成系统不稳定的隐患,而且很难跟踪和调试。 而同步就是保护共享资源的手段,避免同一时刻 阅读全文
posted @ 2022-01-24 22:32 明明1109 阅读(130) 评论(0) 推荐(0) 编辑
摘要:Linux内核提供一组同步方法,用于避免共享数据之间的竞争: 内核态进程的非抢占性 原子操作 关中断 锁 [ ] 内核态进程的非抢占性 Linux内核是非抢占的:正在运行的进程处于内核态时,不会被抢占,即使来了优先级更高进程。 以下断言,在Linux中总是成立: 内核态运行的进程不会被其他进程取代, 阅读全文
posted @ 2022-01-23 23:56 明明1109 阅读(223) 评论(0) 推荐(0) 编辑
摘要:基本概念 函数将一个或多个实参传递给其他函数,这个过程称为转发。 完美转发(perfect forwarding)是指转发过程中,保持被转发实参的所有原始性质,包括实参类型是否为const,左值 or 右值等。 转发 转发示例 编写一个转发的示例:翻转函数flip1能将2个参数逆序,传递给函数f。 阅读全文
posted @ 2022-01-19 00:22 明明1109 阅读(692) 评论(0) 推荐(1) 编辑
摘要:什么是智能指针? 智能指针是存储指向动态分配(位于堆)对象指针的类,用于生存期控制,能确保在离开指针所在作用域时,自动正确地销毁动态分配的对象,以防止内存泄漏。 智能指针通常通过引用计数技术实现:每使用一次,内部引用计数+1;每析构一次,内部引用计数-1,当减为0时,删除所指堆内存。 C++11提供 阅读全文
posted @ 2022-01-18 22:09 明明1109 阅读(1856) 评论(2) 推荐(0) 编辑
摘要:异步操作简介 什么是异步操作,为何会有异步操作? 在C++中,不能直接从thread.join()得到结果,必须定义个变量,在线程执行时,对这个变量赋值,然后执行join(),过程相对繁琐。 Linux中有AIO(异步IO)做异步操作,C++中如何进行异步操作? 答:是有的,C++11提供了异步操作 阅读全文
posted @ 2022-01-17 16:38 明明1109 阅读(1562) 评论(0) 推荐(1) 编辑
摘要:互斥量 C++11提供4种互斥量(mutex)语义,对于4个类: std::mutex 独占互斥量,不能递归加锁; std::timed_mutex 带超时的独占互斥量,超时自动解锁,不能递归加锁; std::recursive_mutex 递归互斥量,不带超时解锁功能; std::recursiv 阅读全文
posted @ 2022-01-16 23:22 明明1109 阅读(775) 评论(0) 推荐(0) 编辑
摘要:读写锁基本概念 读写锁(readers-writer lock),又称为多读单写锁(multi-reader single-writer lock,或者MRSW lock),共享互斥锁(shared-exclusive lock),以下简称RW lock。 读写锁用来解决读写操作并发的问题。多个线程 阅读全文
posted @ 2022-01-08 20:00 明明1109 阅读(8083) 评论(0) 推荐(6) 编辑