当前位置: 首页 > 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 …...

基于算法竞赛的c++编程(28)结构体的进阶应用

结构体的嵌套与复杂数据组织 在C中&#xff0c;结构体可以嵌套使用&#xff0c;形成更复杂的数据结构。例如&#xff0c;可以通过嵌套结构体描述多层级数据关系&#xff1a; struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

Spark 之 入门讲解详细版(1)

1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室&#xff08;Algorithms, Machines, and People Lab&#xff09;开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目&#xff0c;8个月后成为Apache顶级项目&#xff0c;速度之快足见过人之处&…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

&#x1f31f; 什么是 MCP&#xff1f; 模型控制协议 (MCP) 是一种创新的协议&#xff0c;旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议&#xff0c;它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

CentOS下的分布式内存计算Spark环境部署

一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架&#xff0c;相比 MapReduce 具有以下核心优势&#xff1a; 内存计算&#xff1a;数据可常驻内存&#xff0c;迭代计算性能提升 10-100 倍&#xff08;文档段落&#xff1a;3-79…...

前端开发面试题总结-JavaScript篇(一)

文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包&#xff08;Closure&#xff09;&#xff1f;闭包有什么应用场景和潜在问题&#xff1f;2.解释 JavaScript 的作用域链&#xff08;Scope Chain&#xff09; 二、原型与继承3.原型链是什么&#xff1f;如何实现继承&a…...

python执行测试用例,allure报乱码且未成功生成报告

allure执行测试用例时显示乱码&#xff1a;‘allure’ &#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;ڲ&#xfffd;&#xfffd;&#xfffd;&#xfffd;ⲿ&#xfffd;&#xfffd;&#xfffd;Ҳ&#xfffd;&#xfffd;&#xfffd;ǿ&#xfffd;&am…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

力扣-35.搜索插入位置

题目描述 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...

Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信

文章目录 Linux C语言网络编程详细入门教程&#xff1a;如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket&#xff08;服务端和客户端都要&#xff09;2. 绑定本地地址和端口&#x…...

佰力博科技与您探讨热释电测量的几种方法

热释电的测量主要涉及热释电系数的测定&#xff0c;这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中&#xff0c;积分电荷法最为常用&#xff0c;其原理是通过测量在电容器上积累的热释电电荷&#xff0c;从而确定热释电系数…...