1.第一个问题:为什么要同步?
如果这两件事情操作了共同的数据,就需要干完一件,接着干另一件。
2.第二个问题:读和写?
数据是一整块不可分割的东西。在同步的概念里面,写数据和读数据是不同的。两个进程可以同时读取数据,但是两个进程不能同时写,或者一个读,一个写。
3.同步的粒度 :大还是小?
同步的粒度也是一个很重要的概念,如果粒度过大,则造成瓶颈,粒度过小则造成了系统的复杂性。这是一个权衡的目标。但是一开始就定义一个大粒度的同步机制,然后再逐步减小粒度是个不错的选择。实际上linux也是这么做的。
4.同步和同时执行 ?
同步和同时执行是两种概念。再单核处理器上,同时执行是不可能的,但是还是会有同步的问题。
5.同步何时发生?
1.中断。
2.进程调度。
3.多CPU的同时执行。
6.一些建议
1.锁的是数据而不是代码。
2.只有局部变量和只在一个进程中使用的变量不需要锁。
7.死锁。
死锁产生的原因是两个进程在互相等待。下面的经验很有用,如果有N个锁,请以同样的顺序获取这些锁。
8.一个很好的练习。
生产者,消费者模型。采用生产者“推”或者 消费者“拉”数据的方式,也许对同步就有了更深刻的认识。
分享到:
相关推荐
这些对应关系体现了Android操作系统在其发展过程中,对于基础层——Linux内核的选择和发展策略。值得注意的是,尽管这些版本之间存在着一定的对应关系,但随着Android的发展,其内核也经历了多次的更新和优化。 ###...
[14本经典Android开发教程] 8 Linux内核阅读心得体会 读核感悟 2 读核感悟 Linux内核启动 内核的生成 2 读核感悟 Linux内核启动 从hello world说起 3 读核感悟 Linux内核启动 BIOS 5 读核感悟 Linux内核启动 setup...
综上所述,该文档涉及到的关键知识点涵盖了从Linux内核到Android操作系统各层次的基础理论和实践,适合于初学者作为入门材料,也适合于有经验的开发者进行深入学习。由于这些内容非常重要,它们为学习者提供了关于...
本书的重点在于Android GUI框架的内部原理,而非传统的Linux内核。这表明作者关注的是Android作为一款图形操作系统的独特之处。 - **GUI框架**:深入探讨Android的GUI设计原则、实现机制及其与底层系统资源的交互...
Android,作为全球最广泛使用的移动设备操作系统之一,基于Linux内核进行深度定制与优化,以满足其特定的需求。这些改动不仅涉及性能优化、硬件支持,还包括安全增强、电源管理等方面,确保Android在移动设备上稳定...
通过对Android内核的简单分析,我们可以看出Android内核是在标准Linux内核的基础上进行了大量定制和优化。这些改进不仅提高了系统的性能和稳定性,还为Android设备提供了更多的功能和支持。对于开发者来说,深入理解...
这意味着你已经有了一个完整的Android源代码目录,这个目录包含了构建Android系统所需的所有基础组件,但并不包括Linux内核源代码。 接下来,你需要获取Linux内核源代码。通常,Android系统使用的是定制的Linux内核...
本文将详细介绍 Linux 中休眠/唤醒是如何工作的,以及 Android 中如何把这部分和 Linux 的机制联系起来的。 1. Linux 休眠机制 Linux 中的休眠机制主要分三个主要的步骤: * 冻结用户态进程和内核态任务 * 调用...
总结来说,Linux内核和Android在休眠与唤醒方面都采用了各自的方法来优化电源管理,延长电池寿命。Android在Linux的基础上添加了特定的电源管理策略,以满足移动设备的特殊需求。了解这些机制对于开发高效能、低功耗...
#### 第1章 Android基础入门 - **Android体系结构四层概述**: - **应用程序层**:这一层主要包括用户界面应用,例如联系人列表、电话应用等,这些都是安装在设备上的软件应用。 - **应用程序框架层**:包含了一...
Linux内核提供了进程管理、内存管理、设备驱动等基础服务,是Android系统运行的基础。了解Linux内核如何与Android系统交互,对于优化应用性能和解决系统问题至关重要。 1. **进程管理**:Android内核管理着所有运行...
- **2440开发板介绍**: 详细介绍用于教学的友善之臂mini2440开发板的功能和特性。 - **软硬件环境搭建**: 教授如何设置所需的软件和硬件环境以支持后续的学习。 - **第2天(开发板快乐体验)** - **开发板系统...
9. **Android开发**:虽然《android开发.PDF》和《android开发板.doc》不直接关注Linux内核,但Android是基于Linux内核的操作系统,它们可能涵盖Android系统的架构、应用开发和硬件平台适配等内容。 学习这些知识...
与标准Linux内核相比,Android内核进行了多项定制,以适应移动设备的特殊需求,如电池管理、触摸屏支持、相机接口等。 #### 获取与分析Android源代码 要深入分析Android内核,首先需获取其源代码。可以通过官方...
由于所有源代码的完全开放,这为开发者们提供了宝贵的资源,使得对Android内核进行深入分析成为可能,并为将来向其他平台的移植奠定了基础。 #### 二、获取Android源代码 1. **官方下载方式**:通过Android官方...
嵌入式Linux内核驱动是Linux系统开发中的一个重要领域,主要关注如何使硬件设备与操作系统内核进行有效通信,以实现设备的控制和管理。在嵌入式领域,由于资源有限,内核驱动的设计和优化显得尤为重要。在这个深入班...
Android是一种基于Linux内核的操作系统,主要应用于智能手机和平板电脑。开发者通常使用Java或Kotlin语言进行Android应用开发,使用Android Studio作为集成开发环境(IDE)。Android SDK(软件开发工具包)包含了...
在Ubuntu环境下为Android系统编写Linux内核驱动程序是一项复杂但重要的任务,这涉及到对Linux内核、Android系统架构以及硬件接口的深入理解。本篇将详细介绍如何在Ubuntu中为Android设备构建内核驱动,以便更好地...
随着移动设备的普及,Linux内核已成为Android操作系统的核心。此外,企业级应用如大数据、云存储和虚拟化技术也多基于Linux系统。未来的5到10年内,Linux专业人才需求预估将达到120万以上。在中国,软件行业的从业...