公众号:浮世Talk
逍遥浮世,与道俱成。人来人往,与君共勉。
操作系统定义
操作系统(Operating System,OS)是计算机系统中的核心系统软件,负责管理和控制计算机系统中的硬件和软件资源,合理地组织计算机工作流程和有效地利用资源,在计算机与用户之间起接口的作用。
操作系统分类
按照操作系统的功能划分,操作系统的基本类型有批处理操作系统、分时操作系统、实时操作系统、网络操作系统、分布式操作系统、嵌入式操作系统、微内核操作系统等。
操作系统基本原理
进程管理
进程是程序在一个数据集合上运行的过程,他是系统进行资源分配和调度的一个独立单位。它由程序块、进程控制块(PCB)和数据块三部分组成。
进程和程序的区别:进程是程序的一次执行过程,没有程序就没有进程。程序是一个静态的概念,而进程是一个动态的概念
进程的状态
由进程运行的间断性,决定了进程至少具有以下三种状态:
运行:在处理机上运行。
就绪:获得了除处理机外的一切所需资源,一旦得到处理机就能运行。
阻塞:由于所需资源不足,处于等待或睡眠状态,属于暂时停止执行状态。
进程的五态模型是在三态模型中,增加了挂起操作,用于表述权重低的任务资源被权重高的任务所抢占。
禁止就绪和静止阻塞状态,均需要通过激活后才能回到三态模型中。
进程的同步与互斥
互斥是要保证临界资源在某一时刻只被一个进程访问,同步即是使各进程按一定的制约顺序和速度执行,因此可以概况为:进程的互斥是资源的竞争关系,而同步是进程间的协作关系。
信号量与PV操作
临界资源:诸进程间需要互斥方式对其进行共享的资源,例如:打印机、磁带机等
临界区:每个进程中访问临界资源的那段代码信号量:一种特殊的变量
PV操作中的P是荷兰语的Passeren,V是荷兰语的Verhoog。
利用 P、V 原语和信号量可以方便地解决并发进程对临界区的进程互斥问题。
死锁
如果一个进程在等待一件不可能发生的事情,则进程进入死锁状态。而如果一个或多个进程产生死锁,就会造成系统死锁。
造成死锁的四大条件
-
互斥:所需资源通过互斥方式对其进行共享
-
保持等待:进程会对资源进行锁定等待,不会释放资源
-
不剥夺:进程在对资源进行调用时候,不会根据优先级进行资源掠夺,抢夺其他进程的资源
-
环路等待:进程之间相互等待资源,即A进程等待B进程完成,B进程等待C进程完成,C进程等待A进程完成,形成等待环路
死锁的预防:打破上述的死锁四大条件之一。
死锁的避免:有序资源分配法,银行家算法。
存储管理
逻辑地址与物理地址
逻辑地址在计算机体系结构中是指应用程序角度看到的内存单元、存储单元、网络主机的地址。
物理地址是指主存的某个可以让数据总线访问的特定存储单元地址。
地址重定向
程序和数据装入内存时,需对目标程序中的地址进行修改。这种把逻辑地址转变为内存物理地址的过程称作为地址重定向。
静态重定位
目标程序装入内存时进行地址转换,在程序执行期间将不会再发生变化。
优点:无须硬件地址变化机构(寄存器)的支持,只需要程序本身是可重定位的。
缺点:位置固定,不便共享。
动态重定位
程序运行期间完成逻辑地址到物理地址的转变,其实现机制依赖硬件地址变化机构(基地址寄存器)。
优点:位置可变,不必连续;易于共享。
缺点:需要附加硬件支持。
存储管理方案
页式存储
将程序与内存均划分为相同大小的块,以页为单位将程序调入内存。
优点:利用率高,碎片小,分配及管理简单。
缺点:增加了系统开销;可能产生抖动现象。
地址结构
页式存储地址由两部分组成:页号和页内地址(偏移量)。页的大小一般为512B~8KB。
假设页地址长度为32位,操作系统页大小为 4K,即通过短除法,对十进制字节大小转换成二进制,计算出十进制数码4096的二进制数表示为:从右到左数,最多存在12个连续的0位数码,得到页内偏移量为12。
地址映射
淘汰机制
-
优先淘汰访问位置为0(最近未被访问)数据
-
其次淘汰修改位置为0(最近未被修改)数据
-
最后淘汰状态位置为0(不在内存中)数据
段式存储
按用户作业中的自然段来划分逻辑空间,然后调入内存,段的长度可以不一样。
优点:多道程序共享内存,各段程序修改互不影响。
缺点:内存利用率低,内存碎片浪费大。
地址映射
段页式存储
段式与页式的综合体。先分段,再分页。1个程序有若干段,每个段中可以有若干项,每个页的大小相同,但每个段的大小不同。
优点:空间浪费小,存储共享容易,存储保护容易,能动态连接。
缺点:由于管理软件的增加,复杂性和开销也随之增加,需要的硬件以及占用的内容也有所增加,使得执行速度大大下降。
地址结构
段页式存储地址由三部分组成:段号、页号和页内地址。
动态地址转换
快表
快表是一块容量小的相联存储器(AssociativeMemory),由高速缓存器组成,速度快,并且可以从硬件上保证内按容并行查找,一用般来存放当前访问最频繁少数的活动页面的页号。
快表: 将 页 表 存 Cache 于 上; 慢 表 : 将 表页 存 于 内 存上。
文件管理
索引文件结构
文件索引结构是指一个文件的信息存放在若干不连续的物理块中,系统为每个文件建立一个专用的数据结构——索引表,并将这些块号存放在索引表中。
文件在逻辑上一定是连续的,在物理上是可以分散的。
位示图
位示图是利用二进制的一位(0或1)来表示磁盘中的一个盘块(物理块)的使用情况,当其值为0时表示空闲,当值为1时表示占用。
树形目录结构
文件属性
-
R 只读文件属性
-
A 存档属性
-
S 系统文件
-
H 隐藏文件
文件名组成
-
驱动器号
-
路径
-
主文件名
-
扩展名
绝对路径与相对路径
绝对路径:是从盘符开始的路径。
相对路径:是从当前目录开始的路径。
若当前目录为:D1,要求F2路径,则:绝对路径:/D1/W2/F2,相对路径:W2/F2。
特殊操作系统
嵌入式操作系统 EOS
嵌入式系统主要由嵌入式硬件平台、相关支撑硬件、嵌入式操作系统、支撑软件和应用软件组成。其中,嵌入性、专用性和计算机系统是嵌入式系统的三个核心要素。
典型的嵌入式系统具有以下特点
-
系统专用性强
-
系统实时性强
-
软硬件依赖性强
-
处理器专用
-
多种技术紧密结合
-
系统透明性
-
系统资源受限
嵌入式操作系统特点
-
微型化
-
代码质量高
-
专业化
-
实时性强
-
可裁剪可配置
针对不同的硬件平台,操作系统通常建立在一个硬件抽象层(HAL)上,该层位于底层硬件和内核之间,为内核提供各种方便移植的宏定义接口,在不同的平台间移植时,只需要修改宏定义即可。
与硬件相关,与操作系统相关。
交叉开发环境
由于嵌入式单板的资源有限,不能在单板上运行开发和调试工具,通常需要交叉编译调试的方式进行开发调试,即“宿主机+目标机”的形式,宿主机一般采用串口连接,也可同时通过网口或者JTAG连接。
低功耗设计
基于硬件的低功耗设计:板级电路低功耗设计;选择低功耗处理器;总线的低功耗设计;接口驱动电路的设计;分区分时供电技术。
基于软件的低功耗设计:编译优化技术(指令开销);软件与硬件的系统设计(硬件功能交由软件完成);算法优化(低时间复杂度)。
实时操作系统(RTOS)
实时性能指标
-
任务切换时间
-
中断处理相关的时间指标
-
-
中断延迟时间
-
中断响应时间
-
-
系统响应时间(对用户的输入或请求作出反应的时间)
-
信号量混洗时间(指从一个任务释放信号量到另一个等待该信号量的任务被激活的时间延迟)
多任务调度算法
-
优先级调度算法:分配一个相对固定的优先顺序,然后调度程序根据优先级的高低排序,按时间顺序进行高优先级任务优先调度。(非抢占式)
-
抢占式调度算法:是在优先级调度算法的基础上,允许高优先级任务抢占低优先级任务而运行。
-
时间轮转调度算法:调度程序会依次调度每个任务运行一个小的时间片,然后再调度另一个任务。每个任务运行完一个时间片,无论是否结束都会释放CPU让下一个任务运行。(纯粹的时间轮转调度无法满足实时系统的要求,取而代之的是给予优先级的抢占式时间轮转调度)
-
最晚截止期调度算法:指调度程序按每个任务的最接近其截至期末端的时间进行调度。
-
最早截至期调度算法:指调度程序按每个任务的截至时间,选择最早到截止期头端时间的任务进行调度。
在RTOS中,大多数RTOS调度算法都是抢占式的。
实时操作系统比较
常见的嵌入式RTOS有:VxWorks、RT-Linux、QNX、pSOS。
微内核操作系统
现代操作系统大多拥有两种工作状态,分别是核心态和用户态。一般应用程序工作在用户态,而内核模块和最基本的操作系统核心在核心态。
将传统的操作系统代码放置到更高层,从操作系统中去掉尽可能多的东西,而只留下最小的核心,称之为微内核(C/S结构)。
操作系统的内核服务:异常和中断、计时器、I/O管理等。
- THE END -