[现代操作系统] 操作系统引论

现代操作系统 第一章 引论 习题 第1章 引论 习题 注:非引用部分,为自己思考后答案,非标准答案。 Q1:操作系统的主要两大作用是什么? A:考察操作系统有两种观点:资源管理观点和扩展的机器观点,对应着两种功能:为用户程序提供抽象和管理计算机资源。 Q2:在1.4节中描述了9中不同类型的操作系统,列举每种操作系统的应用。 A: 大型机操作系统---大型公司的数据中心 ---提供批处理、事务处理和分时; 服务... 阅读详情

操作系统引论

0.1. 位置

os

0.2. 功能

0.2.1. 向应用程序提供抽象–自顶向下

抽象是管理复杂性的一个关键, 好的抽象可以把一个几乎不可能管理的任务划分为两个可管理的部分:
* 有关抽象的定义和实现
* 用这些抽象解决问题

0.2.2. 资源管理–自底向上

在相互竞争的程序之间有序地控制对处理器, 存储器以及其他 I/O 接口设备的分配

0.3. 发展历史

0.3.1. 第一代 (1945~1955)–真空管和穿孔卡片

ENIAC , 程序设计是用纯粹的机器语言,

使用: 程序员在墙上的机时表上预约一段时间,, 然后到机房中将他的插件板接到计算机中, 在接下来的几小时等待 (计算的都是简单的数字运算, 如制作对数表)

0.3.2. 第二代 (1955~1965)–晶体管和批处理系统

批处理系统 (batch system), 在输入室中手机全部的作业 , 然后用一台相对便宜的计算机, 读到磁带上. 磁带被送到机房里并装到磁带机上. 然后操作员装入一个特殊的程序 (现代操作系统的前身), 它从磁带上读入第一个作业并运行. 如此反复

0.3.3. 第三代 (1965~1980)–集成电路芯片和多道程序设计

多道程序设计 (multiprogramming): 若当前作业因等待磁带或其他 I/O 操作而暂停时, 为了不让 CPU 一直等待这一个作业, 将内存分几个部分, 每一部分存放不同的作业, 在一个作业等待 I/O 时, 可以让另一个作业使用 CPU.

在内存中防止多个作业需要特殊的硬件来保护, 以免作业的信息被窃取或受到攻击.

程序员希望得到更快响应, 由此出现分时系统(timesharing).

0.3.4. 第四代 (1980~)–个人计算机

大规模集成电路 (LSI) 的发展, 晶体管个数在单位平方厘米面积的芯片上可达数千个.

逐步发展处 网络操作系统, 分布式操作系统

0.4. 操作系统结构

0.4.1. 单体结构

单体结构

  • 主程序: 处理服务过程请求
  • 服务过程: 执行系统调用
  • 实用过程: 辅助服务过程

0.4.2. 层次式系统

by Dijkstra

0.4.3. 微内核

传统上, 所有的层都在内核中, 但是这样并没有必要. 尽可能减少内核态中功能的做法更好. 要知道, 代码量越大, bug 越多.

思想
为了实现高可靠性, 将操作系统划分成更小的, 良好定义的模块. 只有其中一个模块–微内核 运行在内核态上.

0.4.4. Client-Server 模式

将进程划分为两类,
* 服务器: 提供服务
* 客户端: 使用服务
通常在系统最底层是微内核

0.4.5. 虚拟机

0.4.5.1. 优点
  • 节省硬件成本, 如不同服务器 (web, ftp, mail…) 可以在一台宿主机上
  • 同时运行多个 OS 的需求 (如软件开发过程, 运行在某些 OS 不支持的程序)
  • 检查点, 虚拟机的迁移: 仅需移动内存映像
0.4.5.2. 条件
  • 敏感指令( sensitive instruction ).: 有内核态和用户态的 CPU 的一组只能在内核态执行的指令集, 比如 I/O 指令, 改变 MMU 状态的指令等,
  • 特权指令( privileged insttruction): 在用户态下执行会引起陷入

当 敏感指令是 特权指令的子集时, 机器才是可虚拟化的

解决的基本思想: 创建容器使得虚拟机在其内运行

0.4.5.3. Ⅰ 型管理程序

在其上的 OS 称为客户操作系统

virtual machine

虚拟机在用户态以用户进程的身份运行, 因此不允许执行敏感指令, 否则崩溃

在支持 VT 技术的 CPU 上, 客户操作系统执行敏感指令会发生陷入. 管理程序分析指令
* 来自客户操作系统: 管理程序调度将要执行的指令
* 来自虚拟机中用户程序: 仿真面对运行在用户态的敏感指令时真是硬件的行为

0.4.5.4. Ⅱ 型管理程序

在其上的 OS 称为宿主操作系统, 如上图 b

VMware 就是采用的这种管理程序:
当运行一个二进制文件, VMware 先浏览代码段以寻找基本块(basic block).

所谓基本块就是以 jump, call, trap 等改变控制流的指令结束的可顺序执行的指令序列, 而基本块中就不含其他改变 程序计数器 的指令

如果基本块中含有敏感指令, VMware 将其替换为相应的 VMware 过程调用, 基本块的最后一条指令也被过程对用替换

这种 找出, 仿真敏感指令 的技术成为 二进制翻译(binary translation)

所以, 即使在不可虚拟化的硬件上, Ⅱ 型 也能正常: 因为所有的敏感指令被仿真, 不会被真正的硬件执行, 管理程序的调用可以代替.

0.4.5.5. 准虚拟化 (paravirtualized)

前面介绍的两种, 在其上的客户操作系统都是没有修改过的. 可以更改客户操作系统的源码, 将其中的敏感指令都转换为 管理程序调用. 这就要给管理 程序 定义 过程调用集合, 从而形成 API, 虽然这个接口是供客户 OS, 而不是 应用程序.

其实就将管理程序变成了一个微内核.

这种方法就是准虚拟化, 这样会使得虚拟机技术更容易被支持和使用

问题:
* 如果所有敏感指令都被代替, 操作系统不能在物理机器上运行
* 如果市场下有很多管理程序, 有不同的 API 接口

Amsden 的一个解决方案:
当内核需要执行一些敏感指令操作时会调用特殊的例程 (称为 VMI 虚拟机接口), VMI 形成的底层与硬件或管理程序进行交互. 将 VMI 设计得通用化, 不依赖硬件或特定的管理程序

《现代操作系统》知识点整理 操作系统是控制和管理计算机系统内各种硬件和软件资源、有效地组织多道程序运行的系统软件(或程序集合),是用户与计算机之间的接口。 阅读详情

相关推荐

《现代操作系统(原书第3版)》(Modern Operating Systems (3rd Edition) ).PDF

《现代操作系统(原书第3版)》(Modern Operating Systems (3rd Edition) ).PDF

《现代操作系统》

第2章 进程与线程 2.1 进程 2.1.1 进程模型 在进程模型中, 计算机上所有可运行的软件, 通常也包括操作系统, 被组织成若干顺序进程 (sequential process) , 简称进程(process) 。 一个进程就是一个正在执行程序的实例, 包括程序计数器、 寄存器和变量的当前值。 这里的关键思想是: 一个进程是某种类型的一个活动, 它有程序、 输入、 输出以及状态。 单个处理器可 以被若干进程共享, 它使用某种调度算法决定何时停止一个进程的工作, 并转而为另一个进程提供服务。 2.1.2

ByteX的博客 3803

PCIe Gen4 Switch芯片PM40028调试踩坑实录:从boot引脚设置到串口无输出的诡异问题

本文记录了PCIe Gen4 Switch芯片PM40028的实战调试过程,重点剖析了从boot引脚配置错误导致串口无输出,到使用逻辑分析仪定位并解决启动问题的完整排障思路。文章深入探讨了芯片启动流程、硬件信号测量方法,并总结了高速硬件调试的核心经验与系统性排查清单,为工程师解决类似PCIe Gen4设备调试难题提供实用指南。

i8j9k0l1的博客 250

《现代操作系统(中文第四版)》第二章 进程与线程

操作系统最核心的概念就是进程,这是对正在运行程序的一个抽象。进程是操作系统提供的最古老的也是最重要的抽象概念之一,即使可以使用的cpu只有一个,他们也具有支持并发操作的能力,它们将一个单独的cpu变换成多个虚拟的cpu。

陌养的编程之路 887

反序列化漏洞详解

目录 一、什么是序列化和反序列化 二、什么是反序列化漏洞 三、序列化函数(serialize) 四、反序列化(unserialize) ​五、什么是PHP魔术方法 六、一些常见的魔术方法 七、魔术方法的利用 八、反序列化漏洞的利用 1.__destruct()函数 2.__wakeup() 3.toString() ​九、反序列化漏洞的防御 一、什么是序列化和反序列化 序列化是将对象转换为字符串以便存储传输的一种方式。而反序列化恰好就是序列化的逆过程,反序列化会将字符串.

LJH1999ZN的博客 3万+

蒙特卡洛+概率潮流!基于蒙特卡洛和新能源出力模拟的概率潮流分布程序代码!

最后,导出光照强度、风速、网损和节点电压的概率分布图,并计算了各节点电压和网损的平均值和方差,展示了接入前后的节点电压对比图。在不确定性增加的电力系统中,概率潮流成为含随机因素规划问题的求解前提,可以更加真实地反映电力系统的全面信息。此外,概率潮流还可用于研究风电和光伏发电出力以及电动汽车消耗功率和向电力系统反向供电功率的不确定性对电力系统的影响,发现系统运行中的潜在风险,为系统运行控制提供参考。概率潮流的目的是揭示电网中随机变量对系统的影响,发现电网中的薄弱环节,为规划和调度部门的决策提供有价值的信息。

weixin_48747334的博客 1918

操作系统---操作系统引论

本文主要介绍操作系统引论,感兴趣的小伙伴可以点进来看看

weixin_51625283的博客 1075

麦克斯韦电磁场理论

1)从知识先后上说:麦克斯韦方程组为理解光的传播、反射、折射等现象提供了理论基础。不理解基础,怎么能理解上层建筑。2)从如何学懂上说,把基础学习的越牢,越深刻,后续学习上层建筑就会水到渠成一些,不会越学越多疑问。而是越学越少疑问。

weixin_55255438的博客 2825

现代操作系统 第一章 引论

现代操作系统 第一章 引论 文章目录现代操作系统 第一章 引论计算机硬件介绍CPU存储器I/O 设备总线实时操作系统微内核习题 本文为读书摘要(个人认为重要的知识点),穿插课后习题的选取(主要选取考察概念性的习题) 考察操作系统有两种观点:资源管理观点和扩展的机器观点。 在资源管理观点中,操作系统的任务是有效地管理系统的各个部分。 (自底向上,对下管理资源) 在扩展的机器观点中,系统的任务是为用户提供比实际机器更便于运用的抽象。 (自顶向下,对上提供抽象) 这些抽象包括进程、地址空间以及文件。

qq_53111905的博客 1350

29、高速低功耗采样保持放大器设计

本文详细介绍了适用于低功耗模数转换器的高速低电压采样保持放大器(SHA)的设计技术,包括传统SHA的局限性、采样技术分类以及全NPN型和BiCMOS型SHA的具体设计实现。同时,文章深入探讨了优化输入电容、采样开关驱动及低功耗设计等具体措施,并提供了10位ADC前端和无线通信应用中的实例分析,为相关领域的工程师提供有价值的参考。

weixin_30600615的博客 424

吊打原版YOLOv8!ASF-YOLO多尺度融合+注意力机制实战解析(遥感/医疗/质检均适用)

ASF-YOLO融合YOLOv8的创新目标检测框架摘要 ASF-YOLO是针对小目标检测优化的先进框架,采用三重特征编码器和尺度序列融合技术增强多尺度特征提取能力。核心创新包括: 三重特征编码器(TPE)融合跨层级信息 尺度序列特征融合(SSFF)模块通过3D卷积处理多尺度信息 通道-位置注意力机制(CPAM)聚焦关键特征区域 Zoom_cat模块实现自适应多尺度特征融合 该框架特别适用于医学影像、遥感检测等小目标密集场景,通过动态特征权重调整显著提升检测精度。关键技术实现包含多尺度特征统一、3D卷积序列处

FJN110的博客 526

《现代操作系统》笔记第一章 引论

第一章 引论 多数计算机有两种运行模式:内核态和用户态 操作系统运行在内核态(又称管态、和心态)中,用于对所有硬件的完全访问权,能使用硬件可以运行的任何机器指令。 其它软件运行在用户态,只能使用机器指令中的一个子集,特别禁止运行那些会影响机器的控制或者I/O操作的指令。 但在嵌入式系统(没有内核态)和解释系统(基于Java的操作系统,它采用解释方式而非硬件方式区分组件),上述区别是模糊的。 在许多系统中,一些在用户态上运行的程序协助操作系统运行特权功能,比如修改密码的程序,它不是操作系统的一部分,也不在内核

lbllol365的博客 346

【图像超分】论文复现:CVPR 2024 | 轻量化超分 | 窗口注意力改进 | CAMixerSR的Pytorch源码复现,跑通源码,获得指标和超分结果,计算复杂度,架构梳理拆解,逐行注释!

本文介绍了超分辨率重建方法CAMixerSR的代码实现与运行指南。文章亮点包括:完整跑通源码获取PSNR/SSIM指标和可视化结果;详细解析模型架构与关键代码注释,帮助快速复现基线模型。实验部分提供了测试配置文件和训练设置说明,支持2K/4K/8K大图像超分和x2/x4轻量化超分。环境依赖PyTorch和BasicSR框架,数据集包含DIV2K等常用基准。测试结果与论文指标一致,可视化输出保存至指定目录。训练配置可自定义数据集路径、GPU数量等参数。该实现突出了CAMixerSR在降低W-MSA复杂度方面的

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 436

现代操作系统(引论)

现代操作系统引论操作系统的两大主要作用是什么?列举常用的 9 种操作系统应用分时系统和多道程序系统的区别?主存与高速缓存CPU 、DMA 、多道程序内核态 vs 用户态陷阱指令进程表调用 fork exec unlink 失败的条件? 操作系统的两大主要作用是什么? 管理硬件为用户提供一个简单的计算机模型 由于用户直接和硬件打交道是一件很困难的事,所以就由操作系统为用户提供一个资源集的清晰抽...

身在边城 心在编程 850

从 SAP GUI 走向 SAP Fiori:一套面向 SAP S/4HANA 的用户迁移实战方法论

SAP S/4HANA转型中,用户从SAP GUI迁移到Fiori的难点在于业务价值的重构而非简单的界面替换。Fiori的核心价值在于角色化、实时洞察和智能决策,而非完全替代GUI。成功迁移需分阶段推进:先展示关键角色的价值,建立统一入口,再逐步提高Fiori占比。让用户参与设计比后期培训更重要,需通过具体场景(如采购优先级管理)展示效率提升。迁移策略应平衡新旧界面优势,让Fiori成为业务价值触达的主要方式,而非强制替换。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 235

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

《现代操作系统》第1章 引论

操作系统是一种运行在内核态的软件,是控制和管理计算机系统内各种硬件和软件资源,有效组织多道程序运行的系统软件(或程序集合),是用户与计算机之间的接口。 操作系统的主要功能是资源管理,程序控制和人机交互等。

luciozhang的博客 934

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【现代操作系统】第一章:引论

【现代操作系统】第一章:引论∑ 标签(空格分隔):【现代操作系统】 第一章:引论 操作系统:为用户程序提供一个更清晰的计算机模型,并管理输入/输出设备。 用户与之交互的程序,如果基于文本通常称为shell,如果基于图标则称为图形用户界面(GUI,Graphical User Interface). 每个人都会对诸如Windows,Linux,macOS等操作系统有所体验,但这些交互是很肤...

grefwfdxz 550

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

现代操作系统学习(1)———引论

开始写现代操作系统学习方面的博客是为了记录现代操作系统的学习过程。这里会记录一些我认为比较重点的内容。参考书目是现代操作系统(原书第三版) 操作系统和普通软件(用户态)之间的主要区别是,如果你不喜欢某个音乐软件,你可以随便换一个,但是,你不能自行写一个属于操作系统一部分的时钟中断处理程序。这个程序由硬件保护,防止用户试图对其进行修改。 要注意,有时候在嵌入式系统(该系统没有内核态)或解释系统(如

不是他人太努力,只是自己努力不够罢了 987

现代操作系统(1.引论)

第一章:引论 操作系统是计算机安装的一层软件,其任务是为用户程序提供一个更好、更简单、更清晰的计算机模型,并管理刚刚提到的所有设备。 用户与之交互的程序,基于文本的称为shell;基于图标的称为图形用户界面(GUI) 1.1 什么是操作系统 1.1.1 作为扩展机器的操作系统 1.1.2 作为资源管理者的操作系统 1.2 操作系统的历史 1.2.1 第一代(1945~1955):真空管和穿孔卡片 1 .2.2 第二代(1955~1965):晶体管和批处理系统 1.2.3 第三代(1965~1980):继

KQ的博客 1071

现代操作系统 第一章 引论 答案 自己整理版

第一章 引论 第一题 操作系统的两大作用 本书: 提供一个资源集的清晰抽象.(即把底层隐藏起来) 管理这些硬件资源.(即让应用程序合理有序的使用硬件设备等) 机组:(从硬件方面来考虑) 防止硬件设备受失控应用程序的影响 给高层提供简单一致的映像.而不用为纷繁复杂的底层硬件编写各种接口. 第二题 简述9种操作系统及其作用 大型机操作系统 服务器操作系统 多处理器操作系统 个人计算机操作系统 掌上计算机操作系统 嵌入式操作系统 传感器结点操作系统 实时操作系统 智能卡操作系统 第三题 分时操作系统和多道

weixin_42254068的博客 733

《现代操作系统》笔记 - 引论

进程: 地址空间: 文件:

magic-zhu 222

现代操作系统 第一章 引论 笔记

现代操作系统 封面上的趣图 什么是计算机系统? 现代计算机系统由一个或多个处理器、主存、磁盘、打印机、键盘、鼠标、显示器、网络接口以及各种其他输入/输出设备组成。 什么是操作系统? 操作系统是一个软件,它的任务是为用户程序提供一个更好、更简单、更清晰的计算机模型,并管理组成计算机系统的各种设备。 操作系统的两个功能? 1. 扩展机器(自顶向下的观点) 操作系...

baodiceng4914的博客 266

现代操作系统:引论

计算机的逻辑层次 计算机的逻辑层次包括:硬件->内核态(操作系统)->用户态(用户接口程序->其他应用程序)。 其中,用户接口程序使得用户能够和操作系统交互,它又包括:基于文本的shell和基于图标的GUI。 操作系统的资源管理功能 资源管理包括两种多路复用(共享)资源的方式: 时间复用 空间复用 处理器 专门寄存器 程序计数器:保存了将要取出的下一条指令的内存地

jinzhao1993的博客 621

现代操作系统--引论

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34024034的博客 108

现代操作系统 总结索引 | 第一章:引论

操作系统的两大作用;计算机硬件;各种操作系统;操作系统概念:进程,地址空间,文件,输入输出,保护,shell;系统调用:进程管理,文件管理,目录管理;操作系统结构:层次式,微内核,客户端服务器,虚拟机;C相关:make;小结

AsherGu的博客 1250

现代操作系统笔记——第一章引论

第一章引论 1、什么是操作系统 内核态与用户态区别 操作系统的任务 自顶向下观点:创建好的抽象,并实现和管理它创建的抽象对象。 自底向上观点:在相互竞争的程序之间有序地控制处理器、存储器以及其它IO接口设备的分配。 资源管理观点:记录哪个程序在使用什么资源,对资源请求进行分配,评估使用代价,并且为不同的程序和用户调解相互冲突的资源请求。 资源管理的两种不同方式 时间上复用和空间...

qq_36718317的博客 280
上一篇: C 语言实现一个简单的 shell
下一篇: [现代操作系统] I/O之硬件原理
mbinary
博客等级 码龄9年 39粉丝 77原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值