操作系统

别说我什么都不会15 小时前
操作系统·harmonyos
鸿蒙轻内核M核源码分析系列十一 (2)信号量Semaphore信号量(Semaphore)是一种实现任务间通信的机制,可以实现任务间同步或共享资源的互斥访问。一个信号量的数据结构中,通常有一个计数值,用于对有效资源数的计数,表示剩下的可被使用的共享资源数。以同步为目的的信号量和以互斥为目的的信号量在使用上存在差异。本文通过分析鸿蒙轻内核信号量模块的源码,掌握信号量使用上的差异。本文中所涉及的源码,以OpenHarmony LiteOS-M内核为例,均可以在开源站点gitee.com/openharmony… 获取。
qq_4378964315 小时前
操作系统
动态内存分配算法对比:最先适应、最优适应、最坏适应与邻近适应在操作系统中,动态内存分配算法用于管理空闲内存块的分配和回收。最先适应算法(First Fit)、最优适应算法(Best Fit)和最坏适应算法(Worst Fit)是三种经典策略,它们的核心区别在于选择空闲块的方式不同。以下从工作原理、优缺点、应用场景三方面详细对比:
别说我什么都不会1 天前
操作系统·harmonyos
鸿蒙轻内核M核源码分析系列十 软件定时器Swtmr软件定时器(Software Timer)是基于系统Tick时钟中断且由软件来模拟的定时器。当经过设定的Tick数后,会触发用户自定义的回调函数。硬件定时器受硬件的限制,数量上不足以满足用户的实际需求。鸿蒙轻内核提供了软件定时器功能可以提供更多的定时器,满足用户需求。
别说我什么都不会2 天前
操作系统·harmonyos
鸿蒙轻内核M核源码分析系列九 互斥锁Mutex多任务环境下会存在多个任务访问同一公共资源的场景,而有些公共资源是非共享的临界资源,只能被独占使用。鸿蒙轻内核使用互斥锁来避免这种冲突,互斥锁是一种特殊的二值性信号量,用于实现对临界资源的独占式处理。另外,互斥锁可以解决信号量存在的优先级翻转问题。用互斥锁处理临界资源的同步访问时,如果有任务访问该资源,则互斥锁为加锁状态。此时其他任务如果想访问这个临界资源则会被阻塞,直到互斥锁被持有该锁的任务释放后,其他任务才能重新访问该公共资源,此时互斥锁再次上锁,如此确保同一时刻只有一个任务正在访问这个临界资源,保证
别说我什么都不会2 天前
操作系统·harmonyos
鸿蒙轻内核M核源码分析系列七 动态内存Dynamic Memory内存管理模块管理系统的内存资源,它是操作系统的核心模块之一,主要包括内存的初始化、分配以及释放。在系统运行过程中,内存管理模块通过对内存的申请/释放来管理用户和OS对内存的使用,使内存的利用率和使用效率达到最优,同时最大限度地解决系统的内存碎片问题。
别说我什么都不会3 天前
操作系统·harmonyos
鸿蒙轻内核M核源码分析系列六 任务及任务调度(3)任务调度模块调度,Schedule也称为Dispatch,是操作系统的一个重要模块,它负责选择系统要处理的下一个任务。调度模块需要协调处于就绪状态的任务对资源的竞争,按优先级策略从就绪队列中获取高优先级的任务,给予资源使用权。本文我们来一起学习下调度模块的源代码,文中所涉及的源代码,所涉及的源码,以OpenHarmony LiteOS-M内核为例,均可以在开源站点 gitee.com/openharmony… 获取。
徐徐同学3 天前
操作系统·计算机系统
【操作系统】操作系统概述操作系统是什么?简单说,它实质就是一个软件。我们知道,没有任何软件的计算机称为裸机。裸机由电子元件构成,就和废铜烂铁一样,不能用。只有有了操作系统,它才能使用。各种应用软件,如游戏,word,编程工具也不能直接安装在裸机上使用,必须建立在操作系统上才能使用。
守望时空334 天前
linux·操作系统
Linux内核升级指南升级Linux内核是一个有一定风险的操作,不过如果操作系统的内核太老了,也可能导致部分新的应用程序无法运行,此外升级内核也可能能够提升一些性能等。
别说我什么都不会4 天前
操作系统·harmonyos
鸿蒙轻内核M核源码分析系列五 时间管理在鸿蒙轻内核源码分析上一篇文章中,我们剖析了中断的源码,简单提到了Tick中断。本文会继续分析Tick和时间相关的源码,给读者介绍鸿蒙轻内核的时间管理模块。本文中所涉及的源码,以OpenHarmony LiteOS-M内核为例,均可以在开源站点gitee.com/openharmony… 获取。
塞尔维亚大汉4 天前
操作系统·harmonyos
OpenHarmony(鸿蒙南向开发)——小型系统内核(LiteOS-A)【用户态内存调测】Debug版本的musl-libc库为用户提供内存泄漏检测、堆内存统计、踩内存分析以及backtrace功能等维测手段,可以提高用户态内存相关问题的定位效率。
老猿讲编程5 天前
汽车·操作系统
探索Zephyr在汽车领域的应用潜力与挑战在汽车行业技术飞速发展的当下,探索Zephyr操作系统与汽车领域的融合具有重要意义。本文将深入剖析Zephyr在汽车行业中的应用现状、优势、挑战以及相关技术细节,并通过源代码示例辅助理解。
jllws15 天前
操作系统·深入理解计算机系统
理解计算机系统_虚拟内存(二)缓存以<深入理解计算机系统>(以下称“本书”)内容为基础,对程序的整个过程进行梳理。本书内容对整个计算机系统做了系统性导引,每部分内容都是单独的一门课.学习深度根据自己需要来定
矮油0_o5 天前
c语言·汇编·操作系统
30天开发操作系统 第 20 天 -- API大家早上好,今天我们继续努力哦。 昨天我们已经实现了应用程序的运行, 今天我们来实现由应用程序对操作系统功能的调用(即API, 也叫系统调用)。 为什么这样的功能称为“系统调用”(system call)呢?因为它是由应用程序来调用(操作)系统中的功能来完成某种操作, 这个名字很直白吧。 “API” 这个名字就稍微复杂些,是“application program interface" 的缩写, 即“应用程序(与系统之间的)接口”的意思。请大家把这两个名字记住哦,考试题目中会有的哦.……开玩笑啦,这些其实
Once_day6 天前
linux·运维·操作系统·可观测性
系统可观测性(1)基础概念Author: Once Day Date: 2025年2月8日一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦…
棕生6 天前
操作系统·协程·epoll·iocp·socket编程·架构师面试
架构师面试(二):计算机编程基础(该题目考察计算机编程基础,看看大家在学生期间有没有认真上课)下面说法正确的有哪几项?A、协程在创建、切换和销毁时,操作系统都是无法感知的;
charlie1145141916 天前
汇编·学习·操作系统·调试·mbr·手搓教程·bochs
从0开始的操作系统手搓教程 4:做好准备,跳到加载器(Loader)目录为什么要加载Loader,Loader是干什么的?上菜!NASM的预处理语句%include包含其他文件
别说我什么都不会8 天前
操作系统·harmonyos
鸿蒙轻内核M核源码分析系列二一 04 文件系统FatFS会分2部分来介绍结构体部分,先介绍FatFS文件系统的结构体,然后介绍LiteOS-M内核中提供的和FatFS相关的一些结构体。
Nicn7 天前
c++·考研·系统架构·操作系统·计算机组成原理·os
考研操作系统----操作系统的概念定义功能和目标(仅仅作为王道哔站课程讲义作用)目录操作系统的概念定义功能和目标操作系统的四个特征操作系统的分类编辑操作系统的运行机制系统调用操作系统体系结构
韩曙亮7 天前
系统架构·操作系统·进程·软考·进程管理·程序控制块·进程阻塞
【系统架构设计师】操作系统 - 进程管理 ② ( 进程状态 | 三态模型 | 五态模型 | 进程状态 划分依据 | PCB 程序控制块 的 组织方式 )程序 是 静态 的 ,进程 是 动态 的 ,程序 运行起来 就是 进程 , 进程 是 程序 的 运行实例 ;
塞尔维亚大汉8 天前
操作系统·harmonyos
OpenHarmony(鸿蒙南向开发)——小型系统内核(LiteOS-A)【扩展组件】中OpenHarmony系统的动态加载与链接机制主要是由内核加载器以及动态链接器构成,内核加载器用于加载应用程序以及动态链接器,动态链接器用于加载应用程序所依赖的共享库,并对应用程序和共享库进行符号重定位。与静态链接相比,动态链接是将应用程序与动态库推迟到运行时再进行链接的一种机制。