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

现代操作系统 第一章 引论 习题 第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

无线图像传输新突破:深度JSCC算法在低带宽环境下的性能实测

本文深入探讨了基于深度学习的信源信道联合编码(JSCC)算法在低带宽无线图像传输中的突破性表现。通过实测数据对比,深度JSCC在低信噪比环境下展现出卓越的鲁棒性,有效对抗传统方案的“悬崖效应”,实现图像质量的平滑下降,为远程医疗、工业巡检等严苛场景提供了新的解决方案。

weixin_29090089的博客 504

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

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

陌养的编程之路 887

腾讯滑块验证码collect参数逆向与JSVMP对抗实战

本文深入解析腾讯滑块验证码collect参数的逆向过程与JSVMP虚拟机对抗技术。通过详细的环境搭建、抓包分析和JSVMP逆向技巧,揭示collect参数的生成逻辑与加密流程,并提供完整的模拟实现方案和常见问题排查方法,助力开发者突破腾讯天御验证码的防护机制。

weixin_29009501的博客 1573

【 Git学习记录(三)】推荐四款主流的Git代码托管平台 —— GitHub、GitLab、Gitee、Coding

了解过Git之后,作为一个程序猿最基本的,你还需要了解目前主流的在线代码托管平台,并至少选择其中一款在平时开发中使用。这里特别介绍以下四款: 国外平台 GitHub —— 全球最流行的代码托管平台 GitLab —— 基于git的仓库管理程序 国内平台 Gitee —— 开源中国旗下的代码托管平台 Coding —— 支持社交元素的代码托管平台 一. GitHub 链接地址:https://github.com/ GitHub目前是全球最流行的代码托管平台(别称:全球最大的同性交友.

JZevin的博客 6090

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

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

weixin_51625283的博客 1075

双Orin PCIe RC&EP模式互通

orin pcie 互通

乐于分享 3876

现代操作系统 第一章 引论

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

qq_53111905的博客 1350

RuntimeError: The current installed version of g++ (4.8.5) is less than the mininum version CUDA解决方案

本文主要介绍了RuntimeError: The current installed version of g++ (4.8.5) is less than the mininum version CUDA解决方案,希望能对学习python的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 8万+

OpenClaw对接本地大模型:Llama3/Qwen/ChatGLM全适配,完全私有化部署

OpenClaw对接本地大模型,是企业级AI智能体落地的必经之路——它不仅解决了数据隐私和合规问题,还能大幅降低成本、提升响应速度、实现定制化。这篇文章我给大家完整拆解了两套部署方案:Ollama(新手首选,5分钟搞定)和vLLM(生产环境首选,高性能),覆盖了Llama3/Qwen/ChatGLM三大主流模型,还有真实的落地案例、高级优化、踩坑避坑指南,看完你就能零代码完成完全私有化的部署。从零开发自定义工具,给OpenClaw添加专属业务能力;

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 808

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

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

lbllol365的博客 346

解决RabbitMq登录时报出Not management user(Login failed)错误以及rabbitmqctl(RabbitMq)新增用户和用户角色权限

解决RabbitMq登录时报出Not management user(Login failed)错误以及rabbitmqctl(RabbitMq)查看用户权限、新增用户和用户角色权限。

念兮为美 7479

现代操作系统(引论)

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

身在边城 心在编程 850

【异常】OpenClaw总Token超限400报错400 Total tokens of image and text exceed max message tokens. Request id:

摘要: 多模态大模型调用中,图文总Token超限导致的400报错是常见问题。本文分析了该报错的触发原因(文本+图片Token总和超出接口限额),并从技术层面解释了多模态Token的计数规则。解决方案分为三个层次:1)紧急修复(精简文本、压缩图片、拆分请求);2)标准化根治(预校验Token、图片预处理、限额适配);3)进阶兜底(分块处理、模型升级、容错机制)。通过前置管控与源头优化,可有效解决并预防此类问题,提升业务稳定性。

奶爸的编程之路,也就一周冷个三天 831

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

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

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

luciozhang的博客 934

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

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

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

grefwfdxz 550

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

现代操作系统学习(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、付费专栏及课程。

余额充值