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

零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?

一、核心优势&#xff1a;专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发&#xff0c;是一款收费低廉但功能全面的Windows NAS工具&#xff0c;主打“无学习成本部署” 。与其他NAS软件相比&#xff0c;其优势在于&#xff1a; 无需硬件改造&#xff1a;将任意W…...

应用升级/灾备测试时使用guarantee 闪回点迅速回退

1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间&#xff0c; 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点&#xff0c;不需要开启数据库闪回。…...

椭圆曲线密码学(ECC)

一、ECC算法概述 椭圆曲线密码学&#xff08;Elliptic Curve Cryptography&#xff09;是基于椭圆曲线数学理论的公钥密码系统&#xff0c;由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA&#xff0c;ECC在相同安全强度下密钥更短&#xff08;256位ECC ≈ 3072位RSA…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言&#xff1a; 通过AI视觉技术&#xff0c;为船厂提供全面的安全监控解决方案&#xff0c;涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面&#xff0c;能够实现对应负责人反馈机制&#xff0c;并最终实现数据的统计报表。提升船厂…...

day52 ResNet18 CBAM

在深度学习的旅程中&#xff0c;我们不断探索如何提升模型的性能。今天&#xff0c;我将分享我在 ResNet18 模型中插入 CBAM&#xff08;Convolutional Block Attention Module&#xff09;模块&#xff0c;并采用分阶段微调策略的实践过程。通过这个过程&#xff0c;我不仅提升…...

Cesium1.95中高性能加载1500个点

一、基本方式&#xff1a; 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

【Go】3、Go语言进阶与依赖管理

前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课&#xff0c;做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程&#xff0c;它的核心机制是 Goroutine 协程、Channel 通道&#xff0c;并基于CSP&#xff08;Communicating Sequential Processes&#xff0…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难&#xff0c;相信大家会学的很愉快&#xff0c;当然对于有后端基础的朋友来说&#xff0c;本期内容更加容易了解&#xff0c;当然没有基础的也别担心&#xff0c;本期内容会详细解释有关内容 本期用到的软件&#xff1a;yakit&#xff08;因为经过之前好多期…...

以光量子为例,详解量子获取方式

光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学&#xff08;silicon photonics&#xff09;的光波导&#xff08;optical waveguide&#xff09;芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中&#xff0c;光既是波又是粒子。光子本…...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...