![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统
守正待
达瓦里氏
展开
-
进程、线程 :系统资源 与 上下文切换
进程原创 2017-06-08 16:46:59 · 1416 阅读 · 0 评论 -
C语言中 const static extern
1、全局变量、局部变量局部变量:定义在函数内部的变量,作用域为函数内部。全局变量:只能定义一次,多次引用。作用域为整个文件。若同一个源文件,全局变量和局部变量重名是,在局部变量的作用域,全部变量不起作用。关键词:全局变量:函数外定义+全局可见+存放在内存的全局数据区+未初始化的的时候为0 。局部变量:函数内定义+函数内可见+存放在栈区,函数退出变量消失+不显式初始化内...原创 2019-07-26 10:54:12 · 781 阅读 · 0 评论 -
Mutex 互斥锁
对于lock,其实它是一种同步机制的统称,即锁机制。通过锁机制实现线程之间的同步,但是锁机制的实现是有很多种。除了“信号量、临界区、互斥锁”等几种外,还有其他比如条件变量等。在其他语言中也有其他锁的机制,比如.net中的monitor,其实monitor是lock的一种实现。不同语言上对于锁机制的实现就可能有些许差别。虽然有时候说的是一种锁,但是其底层的具体实现机制就有可能是临界区或者信号量机...翻译 2019-07-26 10:43:21 · 201 阅读 · 0 评论 -
Semaphore 信号量
semaphore(信号量)范围比较广,semaphore可能会有多个属性值。比如常见的生产者和消费者问题,就是多元信号量的一种。生产者可以生产多个元素,消费者可以消费的元素必须小于生产者的生产元素个数。从此也可以看出,semaphore是允许多个线程进入,访问互斥资源。除了多元信号量之外,还存在一种二元信号量。即只存在是与否,0与1两种状态。 Semaphore是一种在多线程环境下...翻译 2019-07-26 10:42:21 · 190 阅读 · 0 评论 -
spin_lock 自旋锁
自旋锁 Spin lock的实现是为了保护一段短小的临界区操作代码,保证这个临界区的操作是原子的,从而避免并发的竞争冒险。在Linux内核中,自旋锁通常用于包含内核数据结构的操作,你可以看到在许多内核数据结构中都嵌入有spinlock,这些大部分就是用于保证它自身被操作的原子性,在操作这样的结构体时都经历这样的过程:上锁->操作->解锁。如果内核控制路径发现自旋锁“开着”(可以获...翻译 2019-07-26 10:41:30 · 710 阅读 · 0 评论 -
C : 程序(进程)内存布局
程序布局(进程的物理实体)https://www.cnblogs.com/grandyang/p/4968604.htmlhttps://www.cnblogs.com/fengyv/p/3789252.html一个程序本质上都是由 BSS 段、data段、text段三个组成的。BSS段:在采用段式内存管理的架构中,BSS段(bss segment)通常是指用来存放程序中未初始化的...原创 2019-09-06 16:53:54 · 215 阅读 · 0 评论 -
C:深入 char 、char * 、char ** 、char a[ ] 、char *a[]
REF :https://blog.csdn.net/daiyutage/article/details/8604720二级指针保存的是一级指针的地址,它的类型是指针变量,而一级指针保存的是指向数据所在的内存单元的地址,虽然都是地址,但是类型是不一样的。char ch=‘a’; //定义一个字符变量-单引号,变量名为ch,并进行初始化。char str[]=“abc...原创 2019-09-06 16:46:33 · 676 阅读 · 0 评论 -
C:变量与初始化
内存中供用户使用的存储空间分为三部分:程序区、静态存储区、动态存储区。C语言中每个变量有两个属性:第一数据类型;第二存储属性。......................................................................................................................................原创 2019-09-06 16:48:38 · 827 阅读 · 0 评论 -
C:可重入函数 & 线程安全函数
线程安全:简单来说线程安全就是多个线程并发同一段代码时,不会出现不同的结果,我们就可以说该线程是安全的。线程安全产生的原因:大多是因为对全局变量和静态变量的操作。常见的线程不安全的函数:(1)不保护共享变量的函数;(2)函数状态随着被调用,状态发生变化的函数;(3)返回指向静态变量指针的函数;(4)调用线程不安全函数的函数;常见的线程安全的情况:(1)每个线程对全局...原创 2019-07-26 11:10:04 · 1533 阅读 · 1 评论 -
OverLay 原理与实现
Overlay技术:分类: 大体分为软件Overlay 硬件本文主要介绍 软件实现OVERLAY。至于硬件实现的方式或者说策略,目前能找到的资源有限,且自己还没有弄清楚,所以当前情况下暂不介绍。所谓OVERLAY 即 实现 内存区域的重复利用。RAM在SOC上,是一个快速但单位面积较大的组件,而单位面积较大代表成本较高。有一个降低成本的方法,是将程序代码放在较慢但单位面积较小的f...原创 2019-05-21 19:50:45 · 34551 阅读 · 0 评论 -
查找算法 与 数据结构 & 大数据(1)
从大方向上查找算法分为静态查找和动态查找。静态查找:数据集合稳定,不需要添加,删除元素的查找操作。 静态查找就是我们平时概念中的查找,是“真正的查找”。之所以说静态查找是真正的查找,因为在静态查找过程中仅仅是执行“查找”的操作,即:(1)查看某特定的关键字是否在表中(判断性查找);(2)检索某特定关键字数据元素的各种属性(检索性查找)。这两种操作都只是获取已经存在的一个表...翻译 2019-02-23 14:51:28 · 261 阅读 · 0 评论 -
C编译与链接 札记
C 代码经过编译后生产不同的 Section ,存放不同功能的代码或者数据。翻译 2017-09-01 17:28:48 · 635 阅读 · 0 评论 -
广义计算机系统的堆与栈
首先广义的计算机系统包括的不仅有PC 服务器,也包括嵌入式的SOC等,还包括不用上系统的8位单片机。堆和栈:1、数据结构中的堆和栈数据结构中的栈是一种先进后出的结构,可以通过链表实现,也可以通过数组实现,唯一注意的是,这个栈的访问方式要依靠程序自主维护,关键在于栈顶、栈底位置(指针)的标的和和按照FILO的方式变化;数据结构中的堆是一种经过排序的树形数据结构,每个节点都有一个值。一原创 2017-09-05 13:35:04 · 728 阅读 · 0 评论 -
ICP IAP ISP 与 JTAG SWD
ISP:In System Programing,在系统编程ICP:In Circuit Programing,在电路编程IAP:In applicating Programing,在应用编程-----------------------------------------------------------------------ISP与IAP:ISP的实现相对要简单一些...翻译 2019-07-26 10:57:37 · 279 阅读 · 0 评论