【ARM学习笔记】五、操作系统Operation System和内存管理单元MMU
扫描二维码
随时随地手机看文章
一、操作系统Operation System
第一台计算机并没有操作系统,计算机工作采用手工操作方式,使用效率极其低下。
随着计算机的性能越来越快,手工操作的慢速度和计算机的高速度之间形成了尖锐矛盾,人们迫切需要一套完整的控制程序来管理系统资源,从而提高系统资源的利用率。
于是各式各样的操作系统出现了,人们又制定了新的目标,直到Unix的出现,操作系统的基本概念、功能、基本结构和组成才慢慢形成并渐趋完善,同时,为了便于Unix的移植,Unix之父(Ken Thompson与Dennis Ritchie)又创造了C语言,并使用C语言重写了内核,并将内核源代码以“仅用于教育目的”的协议,提供给各所大学作为教学之用,成为当时操作系统课程中的范例教材,之后,各大学公司开始通过Unix源码对Unix进行了各种各样的改进和扩展,又出现了众多类Unix操作系统。
时至今日,操作系统仍然在不断更新研发,只为提供更卓越的操作体验。
对于操作系统的功能,主要有以下几点:
1.进程管理(Processing Management)
2.内存管理(Memory Management)
3.硬件交互(Hardware Interaction,或“驱动程序”,Device Driver)
4.文件系统(File System)
5.网络通信(Networking)
6.用户界面(User Interface)
7.安全机制(Security)
操作系统作为应用程序与硬件之间的桥梁,在很大程度成为影响计算机系统整体性能的瓶颈。
就如谷歌公司的Android与苹果公司的iOS,对于硬件的利用效率,完全处于不同层次
二、内存管理单元MMU
内存管理单元(Memory Management Unit)简称MMU,它是一块硬件单元,类似于存储控制器,它负责虚拟地址到物理地址的映射,并提供硬件机制的内存访问授权。
MMU可以使每个用户进程都拥有独立的地址空间,同时,内存访问权限的检查可以保护每个进程所用的内存不会被其他进程破坏。
早期的计算机由于性能低下,所用的程序是非常小的,可以全部装入内存中,随着技术的发展,物理内存无法满足应用程序的要求,所以引入了虚拟存储器。
虚拟存储器从逻辑上对内存容量进行扩充,用户看到的大容量只是一种感觉,是虚拟的,在32位的CPU系统中,这个虚拟内存地址的范围为0~0xFFFFFFFF(4GB),我们把这个地址范围称为虚拟地址空间。与虚拟地址空间、虚拟地址相对应的是物理地址空间、物理地址,它们对应实际的内存。
我们在内存中划出一小块空间,用来存储虚拟内存与物理内存之间的映射关系。
如段(Section,1MB)映射,我们使用Excel中的术语来说的话,对于32位CPU,拥有4G的虚拟地址空间,所以只需要4096个单元格,每个单元格占用4Byte,用来描述物理内存的一段(1MB),只需在内存划分出16KB即可
除此至外,还有页(Page)映射方式,页的大小有3种,大页(64KB)、小页(4KB)、极小页(1KB)。
同时,上面所说的单元格,其实在MMU中称作“描述符”,在描述符中,不但保存了段、大页、小页、极小页的其实物理地址,还保存了对应的内存访问权限。
在配置好MMU之后,MMU将开始相应CPU的请求,根据描述符中的内容,做出相应的操作。
同时,为了提供性能和程序的运行速度,还引入了TLB和Cache。
<完结>