当前位置: 首页 > news >正文

操作系统引论(一)

操作系统的地位和目标

计算机系统的组成

在这里插入图片描述
系统软件是和硬件相关的,这是它本质的特征。

操作系统在计算机系统中的地位

在这里插入图片描述

操作系统的设计目标

在这里插入图片描述
可扩充性是面向未来的。

操作系统的作用

1)用户与计算机硬件系统之间的接口

在这里插入图片描述

2)计算机系统资源的管理者

在这里插入图片描述

3)用作扩充机器(或虚拟机)

在这里插入图片描述
裸机是由硬件和固件构成的,并不是纯粹的裸机。

操作系统的组成及层次模型

在这里插入图片描述
处理机抽象成进程的方式管理。
上述是从理解的角度,实际的操作系统更复杂,更交叉。
在这里插入图片描述

操作系统的定义及实例

在这里插入图片描述
管理和控制:管控
有效管理:操作系统的设计目标之有效性
在这里插入图片描述
VxWorks:实时系统,航天领域
AIX:大型机上
Novell Netware: 网络

计算机系统组成及体系结构

在这里插入图片描述
这些硬件通过总线连接在一起,各个设备的控制器连接到总线上。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
a) 中央处理器直接参与内存与设备间的交互。
b) 后期引入中断机制,每传输一个机器字,中央处理器干预一次
c) 直接内存访问DMA硬件设备,每传输一个数据块,让处理器干预一次
d) 传送好多数据块,通过通道,输入输出处理器

在这里插入图片描述
内存外设都是通过接口和总线连接。
执行部件:CPU,通过指令集:(7)用户指令集 (8)系统指令集(只能为OS内核所使用),
(3)系统调用
(2)库函数
外围接口的控制机,也就是端口,我们关注对端口的访问指令。
OS对外围设备的管控,主要是通过端口,对内存通过地址,对处理器通过指令集。

用户指令集体系结构

在这里插入图片描述
0x0800,一半给内核,一半给用户空间

注:0xFFFF FFFF,即232=4GB
在这里插入图片描述
在这里插入图片描述
8086是16位外部数据总线,2^16=64K,为什么可以寻址1M呢?
因为启用了20位的地址线,8086将段寄存器中的地址左移4位,2^4=16。
8086和8088提供了4个段寄存器,它可以直接进行访问4*2^16=256K。
在这里插入图片描述
线性空间等分,就是分页的处理,好多计算机系统支持分页,未必支持分段。

系统指令集体系结构及陷入机制

在这里插入图片描述
操作系统的内核运行在系统模式下,普通用户程序运行在用户模式下。
系统模式也称之为系统态,管态。
用户模式称为用户态,目态。
访管指令就是访问系统态下的某些东西。
在这里插入图片描述
输入输出指令,对端口的访问,对硬件控制是通过端口操作指令来完成的。
在这里插入图片描述
陷入是软中断,由用户态转入系统态
由硬设备引发的中断,和当前指令的执行无关
两种中断的流程类似,上面的黑体是硬件的处理流程。
用户态切入到系统态,要经过一个陷入机制。

操作系统硬件基础举例说明

在这里插入图片描述
在这里插入图片描述

操作系统用户接口

在这里插入图片描述

操作系统联机命令接口

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

操作系统图形化用户接口

在这里插入图片描述
弹出式菜单:比如鼠标右击显示的菜单
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

系统调用概念及实现机理

在这里插入图片描述
系统调用本质上是过程调用,是操作系统提供的系统服务。
系统调用是系统内核的一个系统过程。操作系统提供的服务于应用程序的系统调用命令。
系统调用的前后会运行在不同的系统状态前,调用前在用户态,调用后陷入到系统态。
在这里插入图片描述
在这里插入图片描述
5类系统调用
编写程序并没有直接见过系统调用,而是通过函数库,间接的使用系统调用。
在这里插入图片描述
0666,八进制6是110可读可写
在这里插入图片描述
在这里插入图片描述
syscall可以实现系统调用的直接调用。
在这里插入图片描述
最终映射到系统调用号。
3 4 5 6 8 是32位的Inter体系架构的系统调用整数值,注释里的是64位的Inter体系架构的系统调用整数值。
在这里插入图片描述
在这里插入图片描述
系统调用号:__NR_打头,在AX寄存器中,最后通过0x80,即128号中断触发了系统调用。
在这里插入图片描述
在这里插入图片描述
系统调用本质上就是一种过程调用,但它又是一种特殊的过程调用,因为它涉及到了从用户态到系统态的切换。
关键是把用户传入的系统调用号转换成内核相对应的系统调用处理函数,涉及到软中端陷入机制,涉及到中断向量表,系统调用表。

操作系统引导过程及引导程序

在这里插入图片描述
19号中断。
在这里插入图片描述
512B,一个扇区的大小
在这里插入图片描述
hang:jmp hang 自己跳转自己,times重复执行510字节。

操作系统二次加载引导过程设计举例说明

BIOS加载引导程序,引导程序再来加载操作系统内核代码。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
10号中断用于显示。

相关文章:

操作系统引论(一)

操作系统的地位和目标 计算机系统的组成 系统软件是和硬件相关的,这是它本质的特征。 操作系统在计算机系统中的地位 操作系统的设计目标 可扩充性是面向未来的。 操作系统的作用 1)用户与计算机硬件系统之间的接口 2)计算机系统资源的管…...

2023-11-7 OpenAI 45 分钟发布会:整理发布了哪些内容更新

本心、输入输出、结果 文章目录 2023-11-7 OpenAI 45 分钟发布会:整理发布了哪些内容更新前言发布 GPT-4 Turbo价格问题 推出 OpenAI 推出了「GPTs」六大升级上下文长度升级API 和函数调用控制手段增强模型内部和外部知识库的升级多模态模型微调与定制更高的使用频率…...

索引和事务

文章目录 一、索引1.1 概念1.2 作用1.3 使用场景1.4 使用 二、事务2.1 为什么要使用事务2.2 事务的概念2.3 事务的使用 三、内容重点总结 一、索引 1.1 概念 索引是一种特殊的文件,包含对数据表所有记录的引用指针。在MySQL中,索引是基于一个或多个列的…...

全场景数实融合聚焦北京——2023(第六届)行业信息技术应用创新大会隆重召开

2023年11月3日,2023(第六届)行业信息技术应用创新大会在北京裕龙国际酒店隆重举行。中国当前正处于经济转型的关键时期,数字经济的发展对中国新经济和新格局的形成至关重要,而信息技术是数字经济发展过程中必不可少的技术铺垫,企业对信息技术的应用非常依赖业务场景。因此,本届…...

深入理解强化学习——多臂赌博机:乐观初始值

分类目录:《深入理解强化学习》总目录 目前为止我们讨论的所有方法都在一定程度上依赖于初始动作值 Q 1 ( a ) Q_1(a) Q1​(a)的选择。从统计学角度来说,这些方法(由于初始估计值)是有偏的。对于采样平均法来说,当所有…...

[黑马程序员Pandas教程]——DataFrame数据的增删改操作

目录: 学习目标DataFrame添加列 直接赋值添加列数据删除与去重 删除 df.drop删除行数据df.drop删除列数据数据去重 Dataframe去重Seriers去重修改DataFrame中的数据 直接修改数据replace函数替换数据按条件使用布尔值修改数据执行自定义函数修改数据 Series.apply(…...

【服务器】Java连接redis及使用Java操作redis、使用场景

一、Java连接redis-No-SQL 1、导入依赖 在你的项目里面导入redis的pom依赖 <dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.9.0</version> </dependency> 2、连接redis 连接redis …...

Spark 基础知识点

Spark 基础 本文来自 B站 黑马程序员 - Spark教程 &#xff1a;原地址 什么是Spark 什么是Spark 1.1 定义&#xff1a;Apache Spark是用于大规模数据&#xff08;large-scala data&#xff09;处理的统一&#xff08;unified&#xff09;分析引擎 Spark最早源于一篇论文 Re…...

动作捕捉系统通过SDK与LabVIEW通信

运动分析、VR、机器人等应用中常使用LabVIEW对动作捕捉数据进行实时解算。NOKOV度量动作捕捉系统支持通过SDK与LabVIEW进行通信&#xff0c;将动作数据传入LabVIEW。 一、软件设置 1、形影软件设置 1、将模式切换到后处理模式 2、加载一个刚体数据 3、打开软件设置 4、选择网…...

【PTE-day02 sqlmap操作】

1、sqlmap简介 🍇sqlmap是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的URL进行SQL注入。目前支持的数据库有MySql、Oracle、Access、PostageSQL、SQL Server、IBM DB2、SQLite、Firebird、Sybase和SAP MaxDB等. Sqlmap采用了以下5种独特的SQL注入技术 (1)…...

2021年03月 Python(四级)真题解析#中国电子学会#全国青少年软件编程等级考试

Python等级考试&#xff08;1~6级&#xff09;全部真题・点这里 一、单选题&#xff08;共25题&#xff0c;每题2分&#xff0c;共50分&#xff09; 第1题 不超过100个元素的有序数列&#xff0c;使用二分查找能找到指定的元素&#xff0c;可能的查找次数不包括&#xff1f; …...

2023.10.18 信息学日志

1. CF1689D Lena and Matrix 题目描述 n ⋅ m n \cdot m n⋅m 的矩阵&#xff0c;求矩阵上任意一点坐标使得到矩阵上的关键点曼哈顿距离最大值最小。数据范围&#xff1a; ∑ n ⋅ m ≤ 1 0 6 \sum n \cdot m \leq 10^6 ∑n⋅m≤106 题目概况 来源&#xff1a;Codeforces …...

Modbus封装库(Com,tcp,udp一应俱全)

自行封装在用的Modbus通迅库,集成了com,tcp,udp, 做个笔记吧&#xff0c; 以下头文件&#xff0c; #pragma once #include <functional> #include <vector> #include <string> #include <memory> #ifdef LIBMODBUS_EXPORTS #define LIBMODBUS_EXPORT_…...

专访HuggingFace CTO:开源崛起、创业故事和AI民主化丨智源独家

导读 HuggingFace CTO Julien Chaumond认为&#xff0c;在大模型时代&#xff0c;AI民主化至关重要。随着大语言模型和复杂人工智能系统的崛起&#xff0c;持续提升AI技术的可及性有助于确保这些技术的获取和控制不集中在少数强大实体手中。技术民主化促进了机会均等&#xff0…...

C++常用格式化输出转换

在C语言中可以用printf以一定的格式打印字符&#xff0c;C当然也可以。 输入输出及命名空间还不太了解的小伙伴可以看一看C入门讲解第一篇。  在C中&#xff0c;可以用流操作符&#xff08;stream manipulators&#xff09;控制数据的输出格式&#xff0c;这些流操作符定义在2…...

如何使用 Loadgen 来简化 HTTP API 请求的集成测试

引言 在编写 HTTP 服务的过程中&#xff0c;集成测试 1 是保证程序正确性的重要一环&#xff0c;如下图所示&#xff0c;其基本的流程就是不断向服务发起请求然后校验响应的状态和数据等&#xff1a; 为大量的 API 和用例编写测试是一件繁琐的工作&#xff0c;而 Loadgen 2 正…...

软件测试面试大家是不是一问到项目就不会了?

软件测试面试中&#xff0c;介绍做过的项目&#xff0c;可以说是必不可少的一道面试题了&#xff0c;对于面试的同学来说&#xff0c;该自己发挥呢&#xff1f; 把项目的所有功能噼里啪啦说一遍就完事了&#xff1f;当然不是&#xff0c;我们要搞清楚&#xff0c;面试官问这个…...

伐木猪小游戏

欢迎来到程序小院 伐木猪 玩法&#xff1a;控制小猪点击屏幕左右砍树&#xff0c;不能碰到树枝&#xff0c;考验手速与眼力&#xff0c;记录分数&#xff0c;快去挑战伐木吧^^。开始游戏https://www.ormcc.com/play/gameStart/199 html <script type"text/javascript…...

0007Java安卓程序设计-ssm基于Android的校园新闻管理系统

文章目录 **摘** **要**目 录开发环境 编程技术交流、源码分享、模板分享、网课教程 &#x1f427;裙&#xff1a;776871563 摘 要 网络的广泛应用给生活带来了十分的便利。所以把校园新闻管理与现在网络相结合&#xff0c;利用java技术建设校园新闻管理系统app&#xff0c;实…...

git增加右键菜单

有次不小心清理系统垃圾&#xff0c;把git右击菜单搞没了&#xff0c;下面是恢复方法 将下面代码存为.reg文件&#xff0c;双击后导出生效&#xff0c;注意&#xff0c;你安装的git必须是默认C盘的&#xff0c;如果换了地方要改下面注册表文件中相关的位置 Windows Registry …...

高性能Windows流媒体服务器部署:5大核心技术与3种实战架构深度解析

高性能Windows流媒体服务器部署&#xff1a;5大核心技术与3种实战架构深度解析 【免费下载链接】srs-windows 项目地址: https://gitcode.com/gh_mirrors/sr/srs-windows 在Windows平台上构建专业级流媒体服务系统&#xff0c;需要综合考虑协议兼容性、性能优化和部署架…...

论文创新点像挤牙膏?导师强推这几个AI论文平台

想写论文又快又好&#xff0c;关键是用对 AI 工具、走对流程——资深教授普遍推荐&#xff1a;千笔AI&#xff08;中文全流程首选&#xff09; 豆包学术版&#xff08;轻量高效&#xff09; DeepSeek 学术版&#xff08;理工 / 长文本&#xff09; Grammarly Academic&#xff…...

极致精简,功能强大的PDF编辑工具

这是一款功能全面的PDF编辑工具 你只需要导入一份PDF格式文件 就可以快速的对它进行插入 批注编辑保护转换等各种操作 而且无需登录 也可以直接使用 在插入选项中可以进行插入文字图片 页面页眉页脚页码文档背景水印视频音频等 在批注选项中可以管理批注隐藏批注 高亮显示 文本…...

为什么92%的团队用DeepSeek生成方案仍需人工重写?揭秘缺失的2个元认知层与1套校验协议

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;为什么92%的团队用DeepSeek生成方案仍需人工重写&#xff1f;揭秘缺失的2个元认知层与1套校验协议 当团队将DeepSeek-R1或DeepSeek-VL模型用于技术方案生成时&#xff0c;表面看响应迅速、逻辑连贯&…...

ssm207基于SSM的视频播放系统的设计与实现+vue(文档+源码)_kaic

第五章 系统的实现5.1 用户功能模块的实现5.1.1系统主界面用户进入本系统可查看系统信息&#xff0c;系统主界面展示如图5.1所示。图5.1网站主界面5.1.2视频详情界面用户可选择视频查看视频详情信息&#xff0c;并可进行视频播放操作&#xff0c;视频详情界面展示如图5.2所示。…...

Unity事件系统实战:用事件驱动重构你的金币拾取逻辑(告别硬编码)

Unity事件系统实战&#xff1a;用事件驱动重构你的金币拾取逻辑&#xff08;告别硬编码&#xff09;在游戏开发中&#xff0c;我们经常会遇到这样的场景&#xff1a;玩家拾取金币后&#xff0c;需要更新UI、播放音效、解锁成就、保存数据……如果把这些逻辑全部写在金币拾取的代…...

论文润色深度测评:GPT-5.5 + Gemini 3.1 Pro:教你学会1+1>2的论文润色方法

各位同仁好,我是七哥。一个在高校里从事人工智能相关领域研究,钻研用大模型AI实操的学术人。可以和七哥交流学术写作或Gemini、GPT、Claude等大模型学术实操相关问题,多多交流,相互成就,共同进步。 2026年的科研圈,AI工具的选择已经从有没有变成了强不强,七哥评测了GPT…...

Performance-Fish:让你的《环世界》后期游戏帧率提升400%的终极优化方案

Performance-Fish&#xff1a;让你的《环世界》后期游戏帧率提升400%的终极优化方案 【免费下载链接】Performance-Fish Performance Mod for RimWorld 项目地址: https://gitcode.com/gh_mirrors/pe/Performance-Fish 你是否曾在《环世界》游戏后期&#xff0c;面对庞大…...

保姆级教程:在Ubuntu上配置Frida环境,搞定Android App的IO重定向与签名绕过

在Ubuntu上构建Android逆向工程环境&#xff1a;Frida实战与IO重定向技术解析 对于习惯Linux环境的安全研究人员而言&#xff0c;Windows-centric的逆向工具链往往带来诸多不便。本文将系统性地介绍如何在Ubuntu上搭建完整的Android逆向环境&#xff0c;并深入探讨如何利用Frid…...

render_async嵌套渲染:构建复杂异步界面的完整解决方案

render_async嵌套渲染&#xff1a;构建复杂异步界面的完整解决方案 【免费下载链接】render_async render_async lets you include pages asynchronously with AJAX 项目地址: https://gitcode.com/gh_mirrors/re/render_async 在现代Web开发中&#xff0c;页面加载速度…...