IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 程序员的自我修养——学习笔记1 -> 正文阅读

[嵌入式]程序员的自我修养——学习笔记1


计算机硬件

计算机硬件核心三部分:中央处理器CPU、内存、I/O控制芯片
CPU频率:大体上理解是,CPU操作的最小时间单位叫时钟周期,它的倒数叫频率。意思就是一秒钟CPU能执行多少条指令。频率越高,单位时间内能执行的命令越多,也就越快。时钟参考资料频率参考资料

早期计算机

  1. CPU的频率和内存的频率一致,直接连接到同一个总线Bus
  2. 为了协调I/O和总线的速度,每个I/O设备都有一个I/O控制器

发展

  1. CPU频率高于内存频率。采用 总线频率和内存频率一致,CPU倍频与总线通信的 方式
  2. I/O速度无法满足图形化芯片的需求,设计北桥芯片进行通信
  3. 为了减轻北桥芯片既要处理高速设备、又要处理低速设备的压力,设计南桥芯片。南桥主要处理低俗设备,汇总后连接到北桥

SMP和多核

  1. 频率越高,机器相应的性能会好,但是CPU的制造工艺限制,频率卡在了4GHz
  2. 提高CPU速度的另外的方式:增加CPU数量
  3. SMP对称多处理器,每个CPU完整,有cache等。
  4. 多核:共享昂贵的缓存设备,保留多个核心。
  5. 核的数量和速度提升不是线性正比,因为计算任务并不是完全相互独立。就和一个妈妈十个月才能生一个孩子,但是不能十个妈妈一个月生一个孩子。

计算机软件

  1. 管理计算机本身的软件称为系统软件。平台型软件:操作系统内核、驱动程序、运行库、系统工具;软件开发型:编译器、汇编器、链接器、开发库。
    层次结构

  2. 计算机软件有着严格的层次结构,各层之间通过接口进行通信。接口实际上就是一个通信协议,由下层定义实现,由上层调用。

  3. 层次结构的好处是,中间层都是对于下一层的封装和扩展,可以通过新加层提供其它功能。

  4. 应用程序使用运行库提供的应用程序接口API,比如Windows的运行库提供Windows API。运行库使用操作系统提供的系统调用接口,往往以软件中断的方式提供,比如Linux使用0x80号终端作为系统调用接口。操作系统和驱动程序使用硬件提供的硬件规格。

操作系统和设备驱动的作用

  1. 操作系统的功能:提供抽象的接口+管理硬件资源。操作系统不能让硬件资源闲置,要尽可能地挖掘其工作潜能。
  2. 多道程序:一个监控程序,当前程序没有使用CPU时,将另外等待CPU资源的程序启动。缺点:太粗糙,没有轻重缓急,交互性不行
  3. 分时系统:每个程序运行一段时间后主动让出CPU。缺点:程序主动让出CPU时间,如果一个程序写了个死循环,整个系统就像死机了一样。
  4. 多任务系统:操作系统接管所有硬件资源,并且运行在一个受硬件保护的级别。每个进程运行在比操作系统低权限地级别,有着自己独立的地址空间,有着自己的优先级。操作系统分配时间给进程,一段时间后剥夺CPU给另外地进程使用。即抢占式。
  5. 设备驱动屏蔽了底层硬件实现和调用的细节问题,给上层运行库和应用程序一个调用接口。比如输出到屏幕,程序设计者不用考虑到底硬件怎么输出的,比如在哪个位置呈现一个像素点。这些都交给了设备驱动程序来完成。

文件系统

  1. 文件系统管理着磁盘中文件的存储方式。比如一个长8000字节的文件,文件系统将前4096字节存储在磁盘的1000-1007山区,每个扇区512字节;4097-8000字节存储在磁盘的2000-2007扇区。
  2. 硬盘结构:一个磁盘有两个盘面,每个盘面按同心圆划分成多个磁道。每个磁道划分成若干个扇区,每个扇区大约512字节。由于靠近圆心的磁道长度小于外层的磁道,如果每个磁道划分成相同的扇区,那么外层磁道的密度肯定比内层小。所以我们采用逻辑扇区号,逻辑扇区号然后转换成盘片、盘面、磁道、扇区。
  3. 比如某个程序需要读取文件的前4096个字节,通过系统调用发送信息给设备驱动程序,设备驱动程序发送硬件命令给硬盘。

存储设备

线程进程

  1. CPU频率现在无法提升,我们采取多核措施。软件并发执行的一个方法就是多线程。
  2. 线程,轻量级进程,程序执行流的最小单元。
线程进程
独有:线程ID、当前指令指针PC、寄存器集合、栈、特定创建的私有堆多个线程组合而成,他们共享代码段、数据段、堆、进程级资源如打开文件和信号

多线程
资源

  1. 多线程的优点:某个线程得不到数据就进入等待状态,另外的线程继续执行,从而有效利用了等待的时间,比如网页访问,比如交互与计算线程;相比多进程,多线程共享数据效率更高。
  2. 并发和并行:并发是某一时刻同时运行,并行是某一时间段同时运行。对于多核,可以实现真正的并发,对于单核,一般是模拟并发,也就是并行。
  3. 线程的三种状态:就绪、运行、等待
  4. 线程调度方案:
  5. 抢占和不可抢占线程:
  6. Linux多线程:
  7. 线程安全

参考资料

  1. 俞甲子. 程序员的自我修养 : 链接、装载与库[M]. 北京 : 电子工业出版社, 2009
  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-04-30 08:52:58  更:2022-04-30 08:54:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 2:38:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码