文章目录
进程管理
进程的概念
进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。它由程序块、进程控制块 (PCB)和数据块三部分组成。
进程与程序
进程与程序的区别:进程是程序的一次执行过程,没有程序就没有进程。
程序是一个静态的概念,而进程是一个动态的概念,它由创建而产生,完成任务后因撤销而消亡,进程是系统进行资源分配和调度的独立单位,而程序不是。
进程与线程
进程的2个基本属性:可拥有资源的独立单位;可独立调度和分配资源的基本单位。
进程的状态
信号量与PV操作
进程的同步与互斥
临界资源:诸进程间需要互斥方式对其进行共享的资源,如打印机、
磁带机等
临界区:每个进程中访问临界资源的那段代码称为临界区
信号量:是一种特殊的变量
前趋图
前趋图两要素:结点、有向边
— 结点:表示一个进程或一个程序段,乃至一条语句
— 有向边:两结点间的前趋关系
其中直接制约(同步)是由于进程间的相互合作而引起的,而间接制约(互斥)则是由于进程间共享临界资源而引起的。
举例:
(1) 两队举行篮球比赛是间接制约,其中篮球是临界资源。篮球同一时间只能在一方手中
(2) 流水线生产的各道工序是直接制约,各道工序间需要相互合作,每道工序的开始都依赖于前一道工序的完成。
前趋图可以这样描述:
={(P1,P2),(P1,P3),(P1,P4),(P2,P5),(P3,P5),(P4,P6),(P4 ,P7),(P5,P8),(P6,P8 ),(P7,P9),(P8,P9)}
前趋图中不允许有循环
答案为c
答案为A、C、B
死锁
进程管理是操作系统的核心,但如果设计不当,就会出现死锁的问题。如果一个进程在等待一件不可能发生的事,则进程就死锁了。而如果一个或多个进程产生死锁,就会造成系统死锁。
银行家算法
银行家算法的运行过程如下:
初始化:获取当前系统中的各类资源总数、各个进程的最大资源需求量、已分配资源量等信息。
请求资源:当一个进程请求资源时,首先需要检查该请求是否合法,即请求的资源数目是否小于等于该进程的最大需求量,并且小于等于系统当前可用资源数目。
预分配资源:如果请求是合法的,系统会先预分配资源给该进程,并模拟系统状态进行安全性检查。
安全性检查:进行安全性检查,判断是否可以为该进程分配资源而不导致系统陷入死锁状态。
— a. 通过遍历各个进程,检查是否存在满足资源需求的安全序列。安全序列是指一个进程执行完毕并释放资源后,系统仍然能够满足其他进程的资源需求。
— b. 如果存在安全序列,表示系统处于安全状态,可以为该进程分配资源,允许进程执行。
— c. 如果不存在安全序列,表示系统处于不安全状态,该进程必须等待,以避免可能的死锁。
回收资源:当一个进程执行完毕后,释放占用的资源,更新系统的资源分配情况。
循环执行:重复步骤2到步骤5,直到所有进程完成。
存储管理
页式存储:
将程序与内存均划分为同样大小的块,以页为单位将程序调入内存
高级程序语言使用逻辑地址;运行状态,内存中使用物理地址。
逻辑地址=页号+页内地址
物理地址=页帧号+页内地址
例如,页式存储系统中,每个页的大小为4KB。
逻辑地址:
10 1100 1101 1110
对应的物理地址为
110 1100 1101 1110
优点:利用率高,碎片小,分配及管理简单
缺点:增加了系统开销,可能产生抖动现象
淘汰原则
一般不考虑状态位为0的
1.访问位为0
2.修改位为0
段式存储
按用户作业中的自然段来划分逻辑空间,然后调入内存,段的长度可以不一样。
逻辑段地址:(段号,段内偏移量)
合法段地址(0,25k)
非法段地址(0,35k)【逻辑地址到物理地址转换时地址越界,超出0号段30k的偏移量】
优点:多道程序共享内存,各段程序修改互不影响
缺点:内存利用率低,内存碎片浪费大
段页式存储
段式与页式的综合体。先分段,再分页。1个程序有若干个段,每个段中可以有若干页,每个页的大小相同,但每个段的大小不同。
地址构成:段号 + 页号 + 页内地址
优点:空间浪费小、存储共享容易、存储保护容易、能动态连接缺点:由于管理软件的增加,复杂性和开销也随之增加,需要的硬件以及占用的内容也有所增加,使得执行速度大大下降
页面置换算法
当系统的内存不足时,操作系统会使用页面置换算法将一部分页面从内存中换出,以便为新的页面腾出空间。常见的页面置换算法有最佳(Optimal)、先进先出(FIFO)、最近最久未使用(LRU)等。这些算法根据页面的使用情况和优先级来选择被置换出去的页面,在取舍速度和效果之间做出权衡。
文件管理
索引文件结构
文件在逻辑上一定是连续的,在物理上可以是分散的
逻辑位置(字节或页号)对应索引方式
不同所以方式指向对象(数据块&索引表)
不同索引方式访问磁盘的次数
索引盘 | 数据盘 | |
---|---|---|
直接索引 | 0 | 1 |
一级间接索引 | 1 | 1 |
二级间接索引 | 2 | 1 |
C、D
位示图
管理存储空间分配状态的数据结构,用0和1表示空闲或占用
树形目录结构
文件属性
R只读文件属性
A存档属性
S系统文件
H隐藏文件
文件名的组成
驱动器号
路径
主文件名
扩展名
绝对路径与相对路径
绝对路径:是从盘符开始的路径。
相对路径:是从当前目录开始的路径
若当前目录为:D1,要求F2路径,则:绝对路径:/D1/W2/F2,相对路径:W2/F2
嵌入式操作系统(EOS)
嵌入式系统主要由嵌入式硬件平台、相关支撑硬件、嵌入式操作系统、支撑软件和应用软件组成。其中,嵌入性、专用性和计算机系统是嵌入式系统的三个核心要素。
典型的嵌入式系统具有以下特点
1.系统专用性强
2.系统实时性强
3.软硬件依赖性强
4.处理器专用
5.多种技术紧密结合
6.系统透明性
7.系统资源受限
嵌入式操作系统特点:
(1)微型化、(2)代码质量高、(3) 专业化、(4)实时性强、(5)可裁减可配置。
针对不同的硬件平台,操作系统通常建立在一个硬件抽象层(HAL)上,该层位于底层硬件和内核之间,为内核提供各种方便移植的宏定义接口,在不同的平台间移植时,只需要修改宏定义即可。
与硬件相关,与操作系统相关。
交叉开发环境
低功耗设计
基于硬件的低功耗设计
板级电路低功耗设计;选择低功耗处理器,总线的低功耗设计;接口驱动电路的设计;分区分时供电技术。
基于软件的低功耗设计
编译优化技术(指令开销) ;软件与硬件的协同设计(硬件功能交由软件完成);算法优化(低时间复杂度)。
实时操作系统(RTOS)
实时性指标
任务切换时间
中断处理相关的时间指标
— 中断延迟时间
— 中断响应时间
系统响应时间(对用户的输入或请求作出反应的时间)
信号量混洗时间(指从一个任务释放信号量到另一个等待该信号量的任务被激活的时间延迟)
多任务调度算法
实时系统存在多种调度算法。
优先级调度算法:分配一个相对固定的优先顺序,然后调度程序根据优先级的高低排序按时间顺序进行高优先级任务优先调度。 (非抢占式)
抢占式优先级调度算法:是在优先级调度算法基础上,允许高优先级任务抢占低优先级任务而运行。
时间轮转调度算法:调度程序会依次调度每个任务运行一个小的时间片,然后再调度另一个任务。每个任务运行完一个时间片,无论是否结束都会释放CPU让下一个任务运行。(纯粹的时间轮转调度无法满足实时系统的要求,取而代之的是基于优先级的抢占式时间
轮转调度)
最晚截止期调度算法:指调度程序按每个任务的最接近其截止期末端的时间进行调度。
最早截止期调度算法:指调度程序按每个任务的截止期时间,选择最早到截止期头端时间的任务进行调度。
在RTOS中,大多数的RTOS调度算法都是抢占式的。
常见的嵌入式RTOS(实时操作系统,Real-Time OperatingSystem)
VxWorks、RT-Linux、QNX、pSOS。
比较类型 | VxWorks | RT-Linux |
---|---|---|
工作方式 | 操作系统与应用程序处于同一存储空间 | 操作系统与应用程序处于不同存储空间 |
多任务支持 | 支持多任务(线程)操作 | 支持多进程、多线程操作 |
实时性 | 实时系统 | 实时系统 |
安全性 | 任务间无隔离保护 | 支持进程间隔离保护 |
标准API | 支持 | 支持 |
微内核操作系统
现代操作系统大多拥有两种工作状态,分别是核心态和用户态。般应用程序工作在用户态,而内核模块和最基本的操作系统核心工作在核心态。
将传统的操作系统代码放置到更高层,从操作系统中去掉尽可能多的东西,而只留下最小的核心,称之为微内核。 (C/S结构)
实质 | 优点 | 缺点 | |
---|---|---|---|
单体内核 | 将图形、设备驱动及文件系统等功能全部在内核中实现,运行在内核状态和同一地址空间。 | 减少进程间通信和状态切换的系统开销,获得较高的运行效率。 | 内核庞大,占用资源较多且不易剪裁。系统的稳定性和安全性不好。 |
微内核 | 只实现基本功能,将图形系统、文件系统、设备驱动及通信功能放在内核之外。 | 内核精练,便于剪裁和移植。系统服务程序运行在用户地址空间,系统的可靠性、稳定性和安全性较高。可用于分布式系统 | 用户状态和内核状态需要频繁切换,从而导致系统效率不如单体内核。 |