
操作系统
文章平均质量分 96
_-ARCHER-_
24届毕业于西安电子大学的渣渣工程师一枚
展开
-
FreeRTOS
FreeRTOS学习笔记原创 2023-08-12 17:29:14 · 657 阅读 · 0 评论 -
嵌入式操作系统(4):内存管理
操作系统内存管理一、连续式内存分配1. 地址空间2. 动态匹配策略3. 内存碎片4. 内存碎片处理二、非连续式内存分配1. 分段2. 分页3. 页表4. TLB5. 多级页表6. 反向页表三、虚拟内存四、页面置换一、连续式内存分配计算机体系结构: CPU、内存、外设。1. 地址空间物理地址空间:硬件支持的地址空间逻辑地址空间:一个运行的程序所拥有的内存范围应用程序的逻辑地址映射到物理地址的方式:CPU方面运算器ALU需要在逻辑地址的内存内容(CPU要逻辑地址)内存管理单元MMU寻原创 2020-07-11 20:24:30 · 1804 阅读 · 0 评论 -
C / C++系列 (4):malloc内存分配 & linux虚拟地址空间布局
变量内存分配的方式内存分配有三种方式:从静态存储区域 分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量 ,static变量 。在栈 上创建。在执行函数时,函数内局部变量 的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。从堆 上分配,亦称动态内存分配。程序在运行的时候用malloc 或new 申请任意多少的内存,程序员自己负责在何时用free或delete释放内存。动态内原创 2020-07-07 11:12:32 · 981 阅读 · 0 评论 -
嵌入式操作系统(3):同步和互斥
在这一节中线程和进程的调度其实本质是一样的,所以我们以线程来代替所有情况。一、互斥原子操作所谓原子操作(Atomic Operation)是指不会被调度机制打断的操作;这种操作一旦开始,就一直运行到结束,中间不会有任何 Context switch。PS:有时候甚至连条单条机器指令都不是原子的1.1. 需要互斥的原因由于在线程调度过程中,由于进行了上下文切换,所以程序中如果需要调用全局变量,则在对全局变量的操作的语句,在进行编译之后会拆分成数条机器代码(原子操作),在调度过程中会出现原创 2020-06-24 15:36:10 · 1553 阅读 · 0 评论 -
嵌入式操作系统(2):调度
一、调度原则何时调度:进程状态变化的时候目标:减少响应时间(及时处理用户的输出并且尽快将输出提供给用户 减少平均响应时间的波动(在交互系统中,可虞可预测性比高差异低平均更重要 增加吞吐量–两个方面(1、减少开销(操作系统开销,上下文切换)2、系统资源的高效利用(CPU,I/O设备) 减少等待时间评价调度算法指标:CPU利用率:CPU处于忙碌状态所占时间的百分比 吞吐量:在单位时间内完成的进程数量(相当于操作系统的带宽) 周转时间:一个进程从初始化到结束,包括所有等待时间所花费的时原创 2020-06-22 19:40:57 · 3045 阅读 · 1 评论 -
嵌入式操作系统(1):进程和线程
一、进程1.1. 进程概念在某种程度上, 可以将应用程序看成是一个进程(Process),其将会消耗耕种各样的计算机资源。进程定义&特点一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程。动态性:可动态创建,结束进程。 并发性:进程可以被独立调度并占用处理机运行。并发并行 独立性:不同的进程的工作不互相影响。 制约性:因访问共享的数据&资源或者进程同步而产生制约。调度程序的组成程序 = 算法 + 数据结构进程的组成进程=程序+数据+进程控制.原创 2020-06-22 09:17:39 · 2915 阅读 · 0 评论