操作系统OS Chapter1
操作系统OS
- 一、概念和功能
- 1.概念
- 2.功能
- 3.目标
- 二、特征
- 1.并发
- 2.共享
- 3.虚拟
- 4.异步
- 三、发展
- 四、运行机制
- 五、中断和异常
- 1.中断的作用
- 2.中断的类型
- 3.中断机制的原理
- 六、系统调用
- 七、操作系统结构
- 八、操作系统引导
- 九、虚拟机
一、概念和功能
1.概念
操作系统(OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配;已提供给用户和其他软件方便的接口和环境;是计算机系统中最基本的系统软件。
2.功能
- 处理机管理
- 存储器管理
- 文件管理
- 设备管理
3.目标
为上层提供方便易用的服务。
二、特征
1.并发
并发是指俩个或多个事件在同一时间间隔内发生。
2.共享
共享即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。
3.虚拟
虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体是实际存在的,而逻辑上的对应物是用户感受到的。
4.异步
异步是指在多道环境下,允许多个程序并发执行,但由于资源有限,进程的进行不是一贯道底的,而是走走停停的,以不可预知的速度向前推进,这就是进程的异步性。
三、发展
手工操作 -> 批处理阶段 -> 分时操作系统 -> 实时操作系统
手工操作阶段:用户在计算机上算题的所有工作都要人工干预,如程序的装入、运行、结果的输出等。人机矛盾严重。
批处理阶段:为了解决人机矛盾及CPU 和I/O设备之间速度不匹配的矛盾,出现了批处理系统。按发展历程又分为单道批处理系统、多道批处理系统(多道程序设计技术出现以后)。
分时操作系统阶段:
实时操作系统阶段:
四、运行机制
内核(Kernel)是操作系统最主要核心的部分,由许多内核程序组成操作系统内核。
在具体实现上,将CPU的运行模式划分为用户态(目态)和核心态(又称管态、内核态)。
可以理解为CPU 内部有一个小开关,当小开关为0时,CPU 处于核心态,此时CPU 可以执行特
权指令,切换到用户态的指令也是特权指令。当小开关为1时,CPU 处于用户态,此时CPU只
能执行非特权指令。应用程序运行在用户态,操作系统内核程序运行在核心态。应用程序向操作
系统请求服务时通过使用访管指令,从而产生一个中断事件将操作系统转换为核心态。
1)特权指令,是指不允许用户直接使用的指令,如I/O指令、置中断指令,存取用于内存保
护的寄存器、送程序状态字到程序状态字寄存器等的指令。
2)非特权指令,是指允许用户直接使用的指令,它不能直接访问系统中的软硬件资源,仅限于访问用户的地址空间,这也是为了防止用户程序对系统造成破坏。
五、中断和异常
1.中断的作用
CPU上会运行俩种程序,一种是操作系统内核程序,一种是应用程序。
“中断”是让操作系统内核夺回CPU使用权的唯一途径。
2.中断的类型
内中断:与当前执行的指令有关,中断信号来自CPU内部
外中断:与当前执行的指令无关,中断信号来自CPU外部
3.中断机制的原理
不同的中断信号,需要不同的中断处理程序来处理。当CPU检测到中断信号后,会根据类型去查询中断向量表,来找到相应的中断处理程序地址。
六、系统调用
系统调用,是指用户在程序中调用操作系统所提供的一些子功能,系统调用可视为特殊的公共子程序。系统中的各种共享资源都由操作系统统一掌管,因此在用户程序中,凡是与资源有关的操作(如存储分配、进行I/O传输及管理文件等),都必须通过系统调用方式向操作系统提出服务请求,并由操作系统代为完成。
这些系统调用按功能大致可分为如下几类:
设备管理:完成设备的请求或释放,以及设备启动等功能。
文件管理:完成文件的读、写、创建及删除等功能。
进程控制:完成进程的创建、撤销、阻塞及唤醒等功能。
进程通信:完成进程之间的消息传递或信号传递等功能。
内存管理:完成内存的分配、回收以及获取作业占用内存区大小及始址等功能。
七、操作系统结构
宏内核,也称单内核或大内核,是指将系统的主要功能模块都作为一个紧密联系的整体运行在核心态,从而为用户程序提供高性能的系统服务。因为各管理模块之间共享信息,能有效利用相互之间的有效特性,所以具有无可比拟的性能优势。
微内核结构的主要优点:
①扩展性和灵活性。
许多功能从内核中分离出来,当要修改某些功能或增加新功能时,只需在相应的服务器中修改或新增功能,或再增加一个专用的服务器,而无须改动内核代码。
②可靠性和安全性。
③可移植性。与CPU 和I/O硬件有关的代码均放在内核中,而其他各种服务器均与硬件平台无关,因而将操作系统移植到另一个平台上所需做的修改是比较小的。
④分布式计算。
微内核结构的主要问题是性能问题,因为需要频繁地在核心态和用户态之间进行切换,操作系统的执行开销偏大。
分层结构:将系统分为若干层,最底层为硬件,最高层为用户接口。高层可以调用紧邻低层的功能和服务(单向)。
优点:便于调试;容易扩充和维护
缺点:依赖关系固定后,不够灵活;效率差
模块化:模块化是将操作系统按功能划分为若干具有一定独立性的模块。每个模块具有某方面的功能,冰规定好各模块的接口,使各模块之间可以通过接口通信。
优点:
①提高了操作系统设计的正确性、可理解性和可维护性;
②增强了操作系统的可适应性;
③加速了操作系统的开发过程。
缺点:
①模块间的接口规定很难满足对接口的实际需求。
②各模块设计者齐头并进,每个决定无法建立在上一个已验证的正确决定的基础上,因此无法找到一个可靠的决定顺序。
外核(Exokernel):负责为用户进程分配未经抽象的硬件资源,保证资源使用安全
外核机制的优点:
减少了映射层。在其他的设计中,每个虚拟机都认为它有自己的磁盘,其盘块号从0到最大编号,这样虚拟机监控程序就必须维护一张表格以重映像磁盘地址(或其他资源),有了外核,这个重映射处理就不需要了。外核只需要记录已经分配给各个虚拟机的有关资源即可。
将多道程序(在外核内)与用户操作系统代码(在用户空间内)加以分离,而且相应的负载并不重,因为外核所做的只是保持多个虚拟机彼此不发生冲突。
缺点:
降低了系统的一致性,让系统变得更复杂
八、操作系统引导
常见操作系统的引导过程如下:
①激活 CPU。激活的 CPU 读取 ROM中的 boot 程序,将指令寄存器置为 BIOS(基本输入/输出系统)的第一条指令,即开始执行BIOS 的指令。
②硬件自检。启动 BIOS程序后,先进行硬件自检,检查硬件是否出现故障。如有故障,主板会发出不同含义的蜂鸣,启动中止;如无故障,屏幕会显示CPU、内存、硬盘等信息。
③加载带有操作系统的硬盘。硬件自检后,BIOS 开始读取 Boot Sequence(通过 CMOS里保存的启动顺序,或者通过与用户交互的方式),把控制权交给启动顺序排在第一位的存储设备,然后CPU 将该存储设备引导扇区的内容加载到内存中。
④加载主引导记录 MBR。硬盘以特定的标识符区分引导硬盘和非引导硬盘。如果发现一个存储设备不是可引导盘,就检查下一个存储设备。如无其他启动设备,就会死机。主引导记录MBR的作用是告诉CPU 去硬盘的哪个主分区去找操作系统。
⑤扫描硬盘分区表,并加载硬盘活动分区。MBR包含硬盘分区表,硬盘分区表以特定的标
识符区分活动分区和非活动分区。主引导记录扫描硬盘分区表,进而识别含有操作系统的硬盘分区(活动分区)。找到硬盘活动分区后,开始加载硬盘活动分区,将控制权交给活动分区。
⑥加载分区引导记录PBR。读取活动分区的第一个扇区,这个扇区称为分区引导记录(PBR),其作用是寻找并激活分区根目录下用于引导操作系统的程序(启动管理器)。
⑦加载启动管理器。分区引导记录搜索活动分区中的启动管理器,加载启动管理器。
⑧加载操作系统。
九、虚拟机
虚拟机:使用虚拟化技术,将一台物理机器虚拟化成多台虚拟机器(Vitrual Machine,VM),每个VM可以独立运行一个操作系统。
如我们可以再本机上虚拟化一个Linux操作系统,也可以在云服务器上是通过使用虚拟化软件将物理服务器划分为多个虚拟服务器,每个虚拟服务器都具有独立的操作系统、内存、存储和网络资源。
相关文章:
操作系统OS Chapter1
操作系统OS 一、概念和功能1.概念2.功能3.目标 二、特征1.并发2.共享3.虚拟4.异步 三、发展四、运行机制五、中断和异常1.中断的作用2.中断的类型3.中断机制的原理 六、系统调用七、操作系统结构八、操作系统引导九、虚拟机 一、概念和功能 1.概念 操作系统(OS&…...
UE4_Mouse_Interaction——拖拽物体的实现
鼠标拖拽物体,效果如下图: 1、新建PlayerController,更名字为MI_PlayerController,双击打开并设置参数: 2、新建GameMode,更名为MI_Gameinfo。参数如下设置: 3、新建材质,更名为BasicAsset02.参…...
Tomcat配置https
前言:本文内容为实操记录,仅供参考! 一、证书 CA证书申请下载不赘述了。 二、上传证书 进入tomcat根目录,conf同级目录下创建cert文件夹,并将证书两个文件上传到该文件夹; 三、编辑conf/server.xml文件 ① …...
Modelsim手动仿真实例
目录 1. 软件链接 2. 为什么要使用Modelsim 3. Modelsim仿真工程由几部分组成? 4. 上手实例 4.1. 新建文件夹 4.2. 指定目录 4.3. 新建工程 4.4. 新建设计文件(Design Files) 4.5. 新建测试平台文件(Testbench Files&…...
AXI-Stream——草稿版
参考自哔站:FPGA IP之AXI4-Lite AXI4-Stream_哔哩哔哩_bilibili 信号 传输层级从小到大 包(----------transfer--transfer--------)------delay--------包(----------transfer--transfer--------) TKEEP和TSTRB共同决定了是哪种数据流...
【编码器应用】第一节-编码器从从原理到应用详解
概述: 本文内容为常用电机编码器概览,将为您重点介绍编码器大致分类,以及增量编码器与西门子设备的配置连接方式。 编码器简介 编码器是利用LED光源发出的透射光对码盘进行光电扫描,光电元件接收编码器轴旋转时产生的明暗交替变…...
瑞_23种设计模式_中介者模式
文章目录 1 中介者模式(Mediator Pattern)1.1 介绍1.2 概述1.3 中介者模式的结构1.4 中介者模式的优缺点1.5 中介者模式的使用场景 2 案例一2.1 需求2.2 代码实现 3 案例二3.1 需求3.2 代码实现 🙊 前言:本文章为瑞_系列专栏之《2…...
sqlite删除数据表
1.如何删除表 在SQLite中,删除表的SQL语句是DROP TABLE。如果你想要在Python中使用SQLite库(如sqlite3)来删除一个表,你可以按照以下步骤操作: 连接到SQLite数据库。创建一个cursor对象。执行DROP TABLE语句。提交事…...
Spring Boot简介及案例
文章目录 Spring Boot简介以下是一个简单的 Spring Boot Web 应用实例**步骤 1:创建 Spring Boot 项目****步骤 2:编写 RESTful 控制器****步骤 3:配置主类****步骤 4:运行并测试应用** Spring Boot简介 Spring Boot 是一个用于简…...
Learning To Count Everything
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 摘要Abstract文献阅读:学习数一切东西1、研究背景2、提出方法3、模块详细3.1、多尺度特征提取模块3.2、密度预测模块 4、损失函数5、性能对比6、贡献 二…...
大语言模型(LLM)token解读
1. 什么是token? 人们经常在谈论大模型时候,经常会谈到模型很大,我们也常常会看到一种说法: 参数会让我们了解神经网络的结构有多复杂,而token的大小会让我们知道有多少数据用于训练参数。 什么是token?比…...
【Micro 2014】NoC Architectures for Silicon Interposer Systems
NoC Architectures for Silicon Interposer Systems 背景和动机 硅中介层 主要内容 基于interposer的多核 NOC架构 试验评估 方法 NoC Architectures for Silicon Interposer Systems Natalie Enright Jerger, University of Toronto Gabriel H. Loh AMD Research 硅中介层…...
《极客时间 - 左耳听风》01 | 程序员如何用技术变现?(上)【文章笔记 + 个人思考】
《极客时间 - 左耳听风》 原文链接 :https://time.geekbang.org/column/intro/100002201?tabcatalog 备注:加粗部分为个人思考 程序员用自己的技术变现是天经地义的事情。写程序是一门手艺活,程序员作为手艺人完全可以不依赖任何公司或者其他…...
Typora结合PicGo + Github搭建个人图床
目录 一 、GitHub仓库设置 1、新建仓库 2、创建Token 并复制保存 二、PicGo客户端配置 1、下载 & 安装 2、配置图床 三、Typora配置 一 、GitHub仓库设置 1、新建仓库 点击主页右上角的 号创建 New repository 填写仓库信息 2、创建Token 并复制保存 点击右上角…...
【JavaWeb】Day27.Web入门——Tomcat介绍
目录 WEB服务器-Tomcat 一.服务器概述 二.Web服务器 三.Tomcat- 基本使用 1.下载 2.安装与卸载 3.启动与关闭 4.常见问题 四.Tomcat- 入门程序 WEB服务器-Tomcat 一.服务器概述 服务器硬件:指的也是计算机,只不过服务器要比我们日常使用的计算…...
怎么更新sd-webui AUTOMATIC1111/stable-diffusion-webui ?
整个工程依靠脚本起来的: 可直接到stable-diffusion-webui子目录执行: git pull更新代码完毕后,删除venv的虚拟环境。 然后再次执行webui.sh,这样会自动重新启动stable-diffusion-webui....
Apache Iceberg最新最全面试题及详细参考答案(持续更新)
目录 1. 描述Apache Iceberg的架构设计和它的主要组件? 2. Iceberg如何处理数据的版本控制和时间旅行?...
从TCP/IP协议到socket编程详解
我的所有学习笔记:https://github.com/Dusongg/StudyNotes⭐⭐⭐ 文章目录 1 网络基础知识1.1 查看网络信息1.2 认识端口号1.3 UDP1.4 TCP1.4.1 确认应答机制1.4.2 TCP三次握手/四次挥手为什么是三次握手为什么是四次挥手listen 的第二个参数 backlog—— 全…...
uniapp开发小程序遇到的问题,持续更新中
一、uniapp引入全局scss 在App.vue中引入uni.scss <style lang"scss">/* #ifndef APP-NVUE */import "uni.scss";/* #endif */ </style>注意:nvue页面的样式在编译时,有很多样式写法被限制了,容易报错。所…...
C++经典面试题目(十一)
1. final和override关键字 在C中,final 和 override 是两个用于类继承和成员函数重写的关键字,它们主要在面向对象编程的上下文中使用,以增强代码的可读性和安全性。 1. final 关键字 final 关键字主要有两种用法: 用于类&…...
设计模式(6):桥接模式
一.桥接模式核心要点 处理多层继承结构,处理多维度变化的场景,将各个维度设计成独立的继承结构,使各个维度可以独立的扩展在抽象层建立关系。 \color{red}{处理多层继承结构,处理多维度变化的场景,将各个维度设计成独立…...
Java切面编程
1.切面编程 无需改变原有类的情况下对业务功能实现扩展或增强。 2.目前最流行的AOP框架有两个,分别为Spring AOP 和 AspectJ。 3.Spring AOP使用纯java实现,不需要专门的编译过程和类加载器,在运行期间通过代理方式向目标类织入增强的代码。 …...
微服务demo(二)nacos服务注册与集中配置
环境:nacos1.3.0 一、服务注册 1、pom: 移步spring官网https://spring.io,查看集成Nacos所需依赖 找到对应版本点击进入查看集成说明 然后再里面找到集成配置样例,这里只截一张,其他集成内容继续向下找 我的&#x…...
面试题库二
1、简述TCP/IP的三次握手和四次挥手 TCP(Transmission Control Protocol)是一种可靠的、面向连接的传输层协议,用于在网络中传输数据。在建立连接和断开连接时,TCP 使用了三次握手和四次挥手来确保通信的可靠性和正确性。 三次握手…...
HarmonyOS实战开发-如何实现一个简单的电子相册应用开发
介绍 本篇Codelab介绍了如何实现一个简单的电子相册应用的开发,主要功能包括: 实现首页顶部的轮播效果。实现页面跳转时共享元素的转场动画效果。实现通过手势控制图片的放大、缩小、左右滑动查看细节等效果。 相关概念 Swiper:滑块视图容…...
FFmpeg将绿幕视频处理成透明视频播放
怎么在网页端插入透明视频呢,之前在做Web3D项目时,使用threejs可以使绿幕视频透明显示在三维场景中,但是在网页端怎么让绿幕视频透明显示呢? 如图上图,视频背景遮挡住后面网页内容 想要如下图效果 之前有使用过ffmpeg…...
【2024系统架构设计】案例分析- 4 嵌入式
目录 一 基础知识 二 真题 一 基础知识 1 基本概念 ◆系统可靠性是系统在规定的时间内及规定的环境条件下,完成规定功能的能力,也就是系统无故障运行的概率。或者,可靠性是软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统的功能特性的基本能力。...
基于javaweb(springboot+mybatis)生活美食分享平台管理系统设计和实现以及文档报告
基于javaweb(springbootmybatis)生活美食分享平台管理系统设计和实现以及文档报告 博主介绍:多年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 …...
【MySQL探索之旅】MySQL数据表的增删查改——约束
📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 《MySQL探索之旅》 |《Web世界探险家》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更…...
【Linux】体验一款开源的Linux服务器运维管理工具
今天为大家介绍一款开源的 Linux 服务器运维管理工具 - 1panel。 一、安装 根据官方那个提供的在线文档,这款工具的安装需要执行在线安装, # Redhat / CentOScurl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start…...
制作网站 公司/网站优化的主要内容
想要让自己写的一个普通类创建的对象扔到Spring 容器中管理,有以下方法: 使用 常规的注解,Controller Service Repository Component 注解标注该类,然后确保 ComponentScan 扫描路径包含以上的类即可 使用 Bean 注解的方法里面 n…...
重庆网站建设设计公司哪家好/百度怎么投广告
一、什么是Lambda? 我们知道,对于一个Java变量,我们可以赋给其一个“值”。 如果想把“一块代码”赋给一个Java变量,应该怎么做呢?比如把右边那块代码,赋给一个叫做aBlockOfCode的Java变量: 在Java 8之前…...
化州网站建设/网站快速优化排名app
一、存储过程 存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户 通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执…...
网站建设的测试/西安seo外包公司
首先挂一个论文链接:https://doi.org/10.1093/bioinformatics/btac456 代码链接: https://github. com/Docurdt/DEMoS.git 摘要: 动机:癌症基因组图谱(TCGA)倡议提出的基于综合多组学资料的胃癌(腺癌)分子分型为四种主要亚型,代表了患者分…...
网站外部链接如何建设/成都关键词自然排名
form 标签用于为用户输入创建 HTML 表单。表单能够包含 input 元素,比如文本字段、复选框、单选框、提交按钮等等。表单还可以包含 menus、textarea、fieldset、legend 和 label 元素。表单用于向服务器传输数据。 <!DOCTYPEHTML> <html> <head>…...
wordpress wpuf/中文域名交易网站
先获取div img 先清空img 给刚加载时设定初始图片 img.empty(); img.append("<img srcimg/1.jpg />");设置定时器 每4秒给i6自增1 当超过图片数量时将i6重新设定为0 开始新的自增 下面是js $(document).ready(function(){ var img$("#img");var …...