摘要:
arm官方资料 ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition.pdf 特权等级(Privilege level) ARMv7架构支持安全扩展,如果使能了安全扩展,ARMv7-A架构分为安全模式(Secure State)和 阅读全文
摘要:
arm 虚拟地址空间划分 Documentation\arm\memory.rst Start End Use ffff8000 ffffffff copy_user_page / clear_user_page use. For SA11xx and Xscale, this is used to 阅读全文
摘要:
进程调度含义 进程调度决定了将哪个进程进行执行,以及执行的时间。操作系统进行合理的进程调度,使得资源得到最大化的利用。 在单片机上,常常使用的方式是:系统初始化 >while(1){}。(当然,单片机也可以跑类似 FreeRTOS,也可以有进程切换) 在带操作系统的 CPU 上跑的逻辑是,允许多个进 阅读全文
摘要:
Linux程序中,创建进程使用的是fork()函数,它会产生一个和父进程基本完全相同的子进程,这里先记住有相同的物理内存,区别仅仅在于pid、ppid和某些统计量。子进程后面基本都会执行exec系统调用,它会引起子进程另起内存拷贝一份,如果创建子进程都需要拷贝内存的话,辛苦拷贝的又完全放弃了,出于效 阅读全文
摘要:
栈是什么?栈有什么作用?首先,栈 (stack) 是一种串列形式的 数据结构。这种数据结构的特点是后入先出 (LIFO, Last In First Out),数据只能在串列的一端 (称为:栈顶 top) 进行 推入 (push) 和 弹出 (pop) 操作。根据栈的特点,很容易地想到可以利用数组, 阅读全文
摘要:
进程的管理与调度是所有操作系统的核心功能。从内核的角度来看,进程是内核分配资源(CPU,Memory)的重要单元,是计算机用来管理这些资源的一种抽象。 进程状态 1、TASK_RUNNING 表示进程要么正在执行,要么准备执行,等待cpu时间片的调度 2、TASK_INTERRUPTIBLE 表示进 阅读全文
摘要:
简介 工作队列是将中断操作延期执行的另一种手段。因为它们是在内核线程进程执行,允许睡眠。 对每个工作队列来说,内核都会创建一个新的内核守护线程。新的工作队列通过调用 create_workqueue 或 create_singlethread_workqueue 函数来创建。前一个函数在所有CPU上 阅读全文
摘要:
中断的分类 中断分为硬中断和软中断,其分类依据是实现机制,而不是触发机制,比如CPU硬中断,它是由CPU这个硬件实现的中断机制,但它的触发可以通过外部硬件(比如GPIO),软件的 INT 指令,或者CPU执行检测(访问非法地址、除法异常)。一些资料会把以上三种方式做区分,把INT n这种方式叫做软件 阅读全文
摘要:
什么是内核抢占呢? 周期性时钟中断:对于用户任务,当每个时钟中断到来后都会检查它的实际运行时间是否超过理想运行时间,或者运行队列中有没有优先级更高的进程,一般如果满足其中一个条件就会设置重新调度标志,然后在中断返回用户态的前夕发生调度,这是所谓的用户任务抢占。但是如果处于一个内核态的任务正在运行,这 阅读全文
摘要:
rw_semaphore,读写信号量 和mutex很像。保护临界区的原因是其同时有被修改和读的可能,如果这个资源只是被读永远不会修改,那也不需要保护。有这样一个场景,被保护的临界区大部分情况下都是读取操作,少数情况会被修改。如果使用mutex,假设此刻一个读者进入临界区,另外一个线程也是读取操作,那 阅读全文