- 博客(103)
- 收藏
- 关注
原创 【OpenHarmony】初识设备间互联互通的统一基础:分布式软总线
很久没有写出一篇能够分享出来的学习心得了,零零散散地写了好多,总是不太满意。今年8月份开始正式投入精力去学习open harmony,记得第一次接触open harmony的那一个星期,我导师(华哥)就跟我说:可以理解一下什么是软总线。总线的概念当然不是第一次接触,当"软总线"第一次出现在脑子里的时候,立马就联想到了计算机组成原理里的总线。再结合平常积累的知识,比如说鸿蒙OS的特征,计算机科学常用逻辑上的、概念上的、虚拟的…
2024-12-09 13:57:24
1809
原创 以太网的简单概念、MAC地址与IP地址的关系
有了MAC地址,当然还需要IP地址。网络层可以 通过IP地址 将数据从一个网络发送到另一个网络。数据链路层可以将一个结点 通过MAC地址 传递到相同链路 的另一个结点。**
2023-09-15 11:40:46
3671
1
原创 计算机里基本硬件的组成以及硬件协同
徒弟负责打杂,例如师傅想要柜子里的草药—党参,师傅就把党参的位置写在纸条上,然后徒弟根据纸条上的位置,去柜子里找,找到了就把党参放在柜台上,等待师傅拿就可以了。
2023-07-29 20:43:37
674
原创 后缀表达式的运算 以及 最详细的中缀表达式转为后缀表达式
第一种是按照上面的方法,将它完完整整地化为中缀表达式后,进行计算;第二种是......
2023-07-20 18:46:38
3286
原创 让进程能够“相互沟通”的高级方式一:匿名管道
我们都知道进程是具有独立性的,意味着进程之间无法相互通信。但在一些情况下,不得不让进程之间进行通信。例如,数据的传输,数据的共享。
2023-05-30 21:16:20
326
1
原创 从索引结点出发探索软、硬链接
对于整个计算机系统的资源管理,我们可以认为,OS先将这些资源的数据信息,给描述起来构成一个部分,然后再将它们组织起来,就能够实现由OS集中管理。举一个最经典的例子,进程的引入是为了实现程序的并发执行,同一时间间隔内,系统中可能存在大量的进程,OS就需要对这些进程进行管理。首先,OS将进程的各种属性信息描述起来,形成了一个叫做PCB的数据结构,Linux上的PCB叫做task_struct。然后,再将这些PCB组织起来,组织的方式多种多样,例如链接、索引等。文件的原理也是如此。
2023-05-25 20:00:31
915
原创 根据虚拟地址,如何求出页号和偏移量?
虚拟地址划分成和。物理地址同样可划分为和如何划分,关键点在于页面的大小。假设给你一个十进制表示的地址20000,一个页面的大小为4KB,那么如何找出地址20000的具体位置呢?先不探讨这个问题的答案,先来看看下面的这个举例。如果有12个人,头上的数字代表他的学号,按照学号低到高排序。一个组有三个人(一个组的大小为3),如何判断学号为8的人在哪一个组,又在哪一个组的第几个呢?现在在回过来看和上面的原理是一样的:地址从0开始的、页号从0开始。
2023-04-26 22:18:38
6260
2
原创 红黑树的插入调整情况分析
原来整个树中从根结点到叶子节结点的所有路径上黑色结点数量是一样的,现在以grandparent为根的子树中,黑色结点多了一个,为了维持性质,就必须把grandparent变成红色。当然,这只是我们的假设,grandparent也有可能就是根结点,为了防止这种事情发生,不管整棵树的根结点再此之前被我们变成了什么颜色, 最后都需要将整棵树的根结点强制变成黑色的。
2023-03-30 20:53:06
514
原创 STL中map的下标操作解析
类型,也就是说调用这个函数后, 会返回一个键值对。获取到第二层阐述的迭代器所指向的键值对,这个键值对是最开始,map[k]中以k作为关键字的键值对。获取到此时map[k]中以k作为关键字的键值对的第二个元素,也就是键值对的value.使用map[k]中的k作为关键字,并且创建了一个匿名对象作为值,构建出一个。STL中:map可以使用下标进行操作,set则不可以。map中对下标操作符[]进行了重载,实际上就是调用了。它返回的是,键值对中value的引用。插入到调用这个函数的map对象中。
2023-03-21 20:47:29
980
原创 内部排序:希尔排序
希尔排序,又称为“缩小增量排序”,是直接插入排序的优化。对于直接插入排序,当待排记录序列处于正序时,时间复杂度可达O(n),若待排记录序列越接近有序,直接插入排序越高效。希尔排序的思想正是基于这个点进行优化。
2023-01-05 15:44:39
497
6
原创 深度解读面试题:链表中环的入口结点(附代码,可过在线OJ)
求链表中环的入口结点,是一道十分经典的面试题。但是很多人往往并不清楚求解它的原理和思路,究竟是什么。本文将带你逐步去探索,求解该问题的思路。
2022-12-06 15:26:06
429
原创 关于跳表Skip List的模拟实现以及随机化层数的探究
以该表查找19为例,从表头的最高层开始查找,最高层指向9,19比9大,那么肯定在后面,所以跳到值为9的这个结点,值为9的结点最高层指向值为21的结点,21比19小,说明19在值为9的结点和值为的21结点之间。看值为9的结点的下一层,它指向值为17的结点,19比17大,说明19肯定在值为17的结点后面。值为17的结点最高层指向值为19的结点,就找到了!
2022-10-23 12:46:07
1033
原创 利用I/O多路复用系统调用select实现一个高效服务器模型
select只负责等待文件描述符就绪(可以同时等待多个),然后通知应用程序进行I/O读写操作。
2022-09-20 11:43:33
232
原创 深入浅出计算机网络OSI模型之应用层(此文重点剖析http协议)
应用层是OSI模型中的最高层。它为应用程序的通信提供服务并且规定应用程序在通信时的协议。
2022-09-07 21:17:59
1382
原创 使用C++库实现两个线程交替打印(一个线程打印奇数、一个线程打印偶数)
由于线程的执行函数我使用了lambda表达式,为了让两个线程使用的是同一把锁,把锁创建在了main函数内,并在lambda表达式内使用了引用捕捉。
2022-08-24 11:06:16
1725
2
原创 C++11相较于C++98 标准新增内容:包装器
使用function包装器将这些可调用对象包装成了一个类型,模板也就只需要定义出一份特定的,极大地提升了模板的效率。
2022-08-23 11:41:09
442
原创 线程的同步与互斥
临界资源:能被多线程执行流共享访问的资源临界区:线程内部,访问临界资源的代码原子性:一件事情要么不执行,如果执行的话,一直执行完毕互斥:任意时刻只允许一个线程进入临界区访问临界资源同步:访问临界资源的过程,在安全的前提下,让访问临界资源具有合理性。...
2022-08-08 17:26:40
2372
原创 Linux多线程的概念
线程是在进程内部(地址空间内)运行的一个执行分支(执行流),属于进程的一部分,粒度比进程更细、更轻量化。在还没有谈及多线程之前,我们所谈论的进程,内部都是单执行流的,也就是进程只有一个PCB。...
2022-07-30 21:37:17
149
原创 小试牛刀Linux信号
生活中处处是信号。当早晨的闹钟响起当赛道上的信号枪响起当路口的红绿灯绿灯亮起……当信号产生时,我们就知道接下来该做什么了。
2022-07-29 15:07:11
804
原创 进程间通信学习笔记
但进程之间是相互独立的,一个进程无法看到另一个进程的资源。操作系统提供公共资源的方式可以以文件的方式、队列的方式、也有可能是以原始内存块的方式,这也就导致了进程通信的方式有多种。...
2022-07-28 11:21:45
270
原创 文件操作系统调用接口、文件描述符的剖析、重定向的原理
对文件进行操作的第一步首先就是要将文件打开,文件未打开之前是保存在磁盘中的,而打开后就被加载到内存中了,之后我们就能对文件进行操作。
2022-07-01 15:41:55
284
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人