操作系统

概述

操作系统(OS,Operating System)

  1. 管理系统的硬件、软件、数据资源
  2. 控制程序运行
  3. 人机之间的接口
  4. 应用软件与硬件之间的接口
操作系统

任务

  1. 进程管理
  2. 存储管理
  3. 文件管理
  4. 作业管理
  5. 设备管理

进程管理

进程是程序在一个数据集合上运行的过程,它是系统进行资源分配调度的一个独立单元。它由程序块、进程控制块(PCB:是进程存在的唯一标志。内容包含进程标识符、状态、位置信息、控制信息、队列指针(链接同一状态的进程)、优先级、现场保护区等)和数据块三部分组成

  1. 进程可拥有资源的独立单元
  2. 进程可独立调度和分配资源的基本单位

进程 vs 程序

  1. 区别:进程是程序的一次执行过程,没有程序就没有进程
  2. 程序是一个静态的概念,而进程是一个动态的概念,它有创建而产生,完成任务后因撤销而消亡
  3. 进程是系统进行资源分配调度的独立单元,而程序不是

进程 vs 线程

进程 vs 线程

线程只能被独立调度,不可分配资源。多个线程可共享进程中的某些资源(内存地址空间、代码、数据、文件等),但是线程中的程序计数器、寄存器、栈都是独立的

进程状态

进程状态

进程同步 & 互斥

  1. 互斥:多个进程都要访问同一资源(临界资源:多个进程间需要互斥方式对其进行共享的资源。Case:打印机、缓冲区)。由于临界资源问题,多个进程之间是间接制约关系
  2. 同步:多个进程间存在依赖关系,多个进程都到达同一位置后才能继续。多个进程之间是直接制约关系。先后顺序的影响
  3. 临界区:每个进程中访问临界资源的那段代码称为临界区

PV操作

  1. P操作:荷兰语的 Passeren。对资源(S)加锁(占用资源),之后会检查资源是否充足,如果不足就会进入阻塞队列
  2. V操作:荷兰语的 Verhoog。对资源(S)解锁(释放资源)之后检查是否有阻塞队列(S <= 0),如果有则唤醒阻塞进程
  3. 信号量 S:一种特殊的变量。全局变量。表示资源数量或者排队进程数(S < 0 时),S 初值表示资源个数
  4. 互斥模型信号量(S)初始值为1
  5. PV操作一定是成对存在的
PV操作

前驱图 PG(Precedence Graph)

有向无环图,节点表示进程,箭头表示进程之间的依赖关系。可以体现直接制约(同步)关系。箭头流出对应V操作,箭头流入对应P操作

死锁

如果一个进程在等待一件不可能发生的事,则进程就死锁了。而如果一个或多个进程产生死锁,就会造成系统死锁

死锁

存储管理

页式存储

将程序和内存均划分为同样大小的块,以页为单位将程序调入内存。程序使用逻辑地址(逻辑地址 = 页号 + 页内地址),内存使用物理地址(物理地址 = 页帧号(物理块号) + 页内地址),两者使用页表一一对应。

  • 优点:利用率高,碎片小,分配及管理简单
  • 缺点:增加了系统开销;可能产生抖动现象
页表

页面淘汰原则:状态位1 & 访问位0 & 修改位0

段式存储

按用户作业中的自然段来划分逻辑空间,然后调入内存,段的长度(段长)可以不一样。 逻辑段地址 = (段号, 段内偏移量)。物理地址 = 基址 + 段内偏移量

  • 优点:多道程序共享内存,各段程序修改互不影响
  • 缺点:内存使用率低,内存碎片浪费大

段页式存储

段氏和页式的综合体。先分段,再分页。一个程序中有若干个段,每个断中可以有若干页,每个页大小相同,但每个段的大小不同。段页式地址 = 段号 + 页号 + 页内地址

  • 优点:空间浪费小、存储共享容易、存储保护容易、能动态链接
  • 缺点:由于管理软件的增加,复杂性和开销也随之增加,需要的硬件以及占用的内容也有所增加,使得执行速度大大下降

文件管理

  1. 顺序结构
  2. 链式结构
  3. 索引结构
结构 访问方式 速度 存储连续性 适用场景
顺序结构 直接计算偏移 最快 必须连续 大文件、顺序读写
链式结构 顺序查找指针 无需连续 日志、存储小文件
索引结构 直接查索引表 无需连续 数据库、大型文件系统

索引结构

  1. UNIX 默认有13个索引结点(地址指向,物理块号)
  2. 0-9号是直接索引方式。索引结点直接指向物理块,物理块直接保存了文件的逻辑页或数据(0到9号逻辑页
  3. 10号索引结点是一级间接索引方式。索引结点指向一级间接索引表(10到一级间接索引表个数 + 9号逻辑页
  4. 11号索引结点是二级间接索引方式。经过两次间接查找才能确定物理块号
  5. 12号索引结点是三级间接索引方式。经过三次间接查找才能确定物理块号
  6. 文件在逻辑上一定是连续的,在物理上可以是分散的

空闲空间管理

空闲空间管理用于追踪磁盘上的空闲存储块,以便分配给新文件或释放已删除文件占用的空间

方法 主要思想 优点 缺点
空闲区表法 记录每个空闲区域的起始地址和大小 适合存储连续大文件,存取快 可能导致碎片化
位示图法 用二进制位(0/1)表示磁盘块是否空闲 结构简单,占用空间小 查找连续空闲块可能较慢
链式空闲表法 用链表存储空闲块地址 易于动态管理 访问速度较慢
成组链接法 结合链式和块存储,提升效率 查找快,减少遍历 需要额外的存储块存索引
索引空闲表法 用索引表管理空闲块 支持快速查找 需要额外存储索引表

位示图法

用二进制位表示磁盘块是否空闲:

  • 0:表示该块空闲
  • 1:表示该块已占用
位示图法

树形目录结构

  1. 文件属性
    • R:只读文件属性
    • A:存档属性
    • S:系统文件
    • H:隐藏文件
  2. 文件名组成:驱动器号 + 路径 + 主文件名 + 扩展名
  3. 绝对路径:是从盘符开始的路径
  4. 相对路径:是从当前目录开始的路径

嵌入式操作系统(EOS)

嵌入式系统主要由嵌入式硬件平台、相关支撑运满满、嵌入式操作系统、支撑软件和应用软件组成。其中,嵌入性专用性计算机系统是嵌入式系统的三个核心要素。典型的嵌入式系统具有以下特点:

  • 系统专用性强
  • 系统实时性强
  • 软硬件依赖性强
  • 处理器专用
  • 多种技术紧密结合
  • 系统透明性
  • 系统资源受限
  1. 嵌入式操作系统特点:微型化、代码质量高、专业化、实时性强、可裁减、可配置
  2. 针对不同的硬件平台,操作系统通常建立在一个硬件抽象层(HAL,与硬件相关,与操作系统相关,也称 BSP(板级支撑包))上,该层位于底层硬件和内核之间,为内核提供各种方便移植的宏定义接口,在不同的平台间移植时,只需要修改宏定义即可
  3. 宿主机和目标机之间需要建立逻辑连接和物理线路的连接
  4. 在宿主机上必须采用交叉编译器来生成目标机的可执行代码

硬件抽象层

硬件抽象层(Hardware Abstraction Layer,简称 HAL)是嵌入式操作系统中的一种软件结构,它为上层应用程序和硬件之间提供了一个抽象接口。通过 HAL,操作系统和应用程序可以不直接依赖硬件的具体实现,而是通过标准接口与硬件进行交互。简而言之,HAL 使得硬件操作和具体的硬件平台无关,让应用层代码可以 在不同硬件平台之间移植,而不需要修改应用代码。

  1. 硬件抽象层将操作系统和硬件平台隔开
  2. 硬件抽象层使软硬件的设计与调试可以并行
  3. 硬件抽象层与硬件密切相关,可对操作系统隐藏硬件的多样性
作用 描述
硬件抽象 为上层应用和操作系统提供硬件无关接口,屏蔽具体硬件的差异。
硬件移植性 使得操作系统和应用程序能够在不同硬件平台上运行,提高了系统的移植性。
简化开发 降低硬件开发的复杂性,开发者只需关注 HAL 提供的接口,而不必深入理解硬件细节。
统一接口 提供统一的硬件访问接口,不同硬件可以实现相同的接口,从而简化了多硬件平台的支持。
硬件资源管理 管理硬件资源,如中断、时钟、存储器、外设接口等,使操作系统能统一管理这些资源。

嵌入式系统开发设计 - 交叉开发环境

交叉开发环境

嵌入式系统开发设计 - 低功耗设计

基于硬件的低功耗设计

  • 板级电路低功耗设计
  • 选择低功耗处理器
  • 总线的低功耗设计
  • 接口驱动电路的设计
  • 分区分时供电技术

基于软件的低功耗设计

  • 编辑优化技术:指令开销
  • 软件与硬件的协同设计:硬件功能交由软件完成,减少硬件规模,从而降低电路功耗
  • 算法优化:低时间复杂度

实时操作系统(RTOS)

常见的嵌入式 RTOS

实时性能指标

  1. 任务切换时间
  2. 中断处理相关的时间指标
    • 中断延迟时间
    • 中断响应时间
  3. 系统响应时间:对用户的输入和请求做出反应的时间
  4. 信号量混洗时间:指从一个任务释放信号量到另一个等待该信号量的任务被激活的时间延迟

多任务调度算法

大多数 RTOS 调度算法都是抢占式方式(可剥夺方式)

优先级调度算法

分配一个相对固定的优先顺序,然后调度程序根据优先级的高低排序,按时间顺序进行高优先级任务优先调度(非抢占式)

抢占式优先级调度算法

在优先级调度算法基础上,允许高优先级任务抢占低优先级任务而运行

时间轮转调度算法

调度程序会依次调度每个任务运行一个小的时间片,然后再调度另一个任务,每个任务运行完一个时间片,无论是否结束都会释放 CPU 让下一个任务运行(纯粹的时间轮转调度无法满足实时系统的要求,取而代之的是基于优先级的抢占式时间轮转调度)

最晚截止期调度算法

调度程序按每个任务的最接近其截止期末端的时间进行调度

最早截止期调度算法

调度程序按每个任务的截止期时间,选择最早到截止期头端时间的任务进行调度

微内核操作系统

微内核操作系统

单体内核 vs 微内核

单体内核 vs 微内核
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,490评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,581评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,830评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,957评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,974评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,754评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,464评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,357评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,847评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,995评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,137评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,819评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,482评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,023评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,149评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,409评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,086评论 2 355

推荐阅读更多精彩内容

  • 第2章-操作系统 2.1. 操作系统的类型与结构 计算机系统由硬件和软件两部分组成。操作系统是计算机系统中最基本的...
    代码匠心阅读 162评论 0 1
  • 第一章:操作系统概论 操作系统的目的:方便性,有效性,扩展性 操作系统的特点:并发行,共享性,虚拟性,异步性引入操...
    Hsicen阅读 1,841评论 0 3
  • 操作系统概论 操作系统的概念 操作系统是指控制和管理计算机的软硬件资源,并合理的组织调度计算机的工作和资源的分配,...
    野狗子嗷嗷嗷阅读 11,936评论 3 34
  • 1. 基础知识 1.1、 基本概念、 功能 冯诺伊曼体系结构1、计算机处理的数据和指令一律用二进制数表示2、顺序执...
    yunpiao阅读 5,319评论 1 22
  • 根据//www.greatytc.com/p/8935da4d0f8c 以及一些补充 第一章:概述 什么...
    一步一看阅读 1,674评论 0 0