操作系统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操作系统,也可以在云服务器上是通过使用虚拟化软件将物理服务器划分为多个虚拟服务器,每个虚拟服务器都具有独立的操作系统、内存、存储和网络资源。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/500945.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

harbor api v2.0

harbor api v2.0 v2.0 v2.0 “harbor api v2.0”与原来区别较大,此处harbor也做了https。另外,通过接口拿到的数据也是只能默认1页10个,所以脚本根据实际情况一页页的抓取数据 脚本主要用于统计repo、image,以及所有镜像的tag数&…

HTML网站的概念

目录 前言: 1.什么是网页: 2.什么是网站: 示例: 3.服务器: 总结: 前言: HTML也称Hyper Text Markup Language,意思是超文本标记语言,同时HTML也是前端的基础&…

IF= 13.4| 当eDNA遇上机器学习法

近日,凌恩生物客户重庆医科大学在《Water Research》(IF 13.4)发表研究论文“Supervised machine learning improves general applicability of eDNA metabarcoding for reservoir health monitoring”。该研究主要介绍了一种基于eDNA的机器学…

mysql的主从配置

MySQL主从复制是一种常见的数据库复制技术,用于实现数据在一个主数据库服务器和一个或多个从数据库服务器之间的同步。在主从配置中,主服务器负责接收和处理写操作,然后将这些变更通过binlog日志传播到从服务器,从服务器根据主服务…

【MySQL】7.MHA高可用配置及故障切换

什么是MHA MHA(MasterHigh Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件 mha用于解决mysql的单点故障问题; 出现故障时,mha能在0~30秒内自动完成故障切换; 并且能在故障切换过程中&#xff0…

《让你的时间多一倍》逃离时间陷阱,你没有自己想的那么懒 - 三余书屋 3ysw.net

让你的时间多一倍 今天我们来阅读法比安奥利卡尔的作品《让你的时间多一倍》。或许你会心生疑虑,这本书是否又是一本沉闷的时间管理指南?但我要告诉你的是,尽管时间管理这个话题已经为大众所熟知,这本书却为我们揭示了一个全新的…

【Roadmap to learn LLM】Large Language Models in Five Formulas

by Alexander Rush Our hope: reasoning about LLMs Our Issue 文章目录 Perpexity(Generation)Attention(Memory)GEMM(Efficiency)用矩阵乘法说明GPU的工作原理 Chinchilla(Scaling)RASP(Reasoning)结论参考资料 the five formulas perpexity —— generationattention —— m…

PyCharm中配置PyQt5并添加外部工具

Qt Designer、PyUIC和PyRcc是Qt框架下的三个重要工具,总的来说,这三个工具各司其职,相辅相成,能显著提升Qt开发的速度与效率。 Qt Designer:是一个用于创建图形用户界面的工具,可轻松构建复杂的用户界面。…

matlab及其在数字信号处理中的应用001:软件下载及安装

目录 一,matlab的概述 matlab是什么 matlab适用于的问题 matlab的易扩展性 二,matlab的安装 1,解压所有压缩文件 2,解压镜像压缩文件 3,运行setup.exe 4,开始安装 5,不要运行软件…

EasyBoss ERP上线实时数据大屏,Shopee本土店铺数据实时监测

近日,灵隐寺PPT汇报用上数据大屏疯狂刷屏,有做东南亚本土电商的老板发现这种数据大屏的模式可以很好地展现店铺运营状况。 所以就有老板来问:EasyBoss能不能也上线实时数据大屏的功能?没问题!立马安排! 要有…

BasicVSR++模型转JIT并用c++libtorch推理

BasicVSR模型转JIT并用clibtorch推理 文章目录 BasicVSR模型转JIT并用clibtorch推理安装BasicVSR 环境1.下载源码2. 新建一个conda环境3. 安装pytorch4. 安装 mim 和 mmcv-full5. 安装 mmedit6. 下载模型文件7. 测试一下能否正常运行 转换为JIT模型用c libtorch推理效果 安装Ba…

只出现一次的数字 II

题目链接 只出现一次的数字 II 题目描述 注意点 nums中,除某个元素仅出现一次外,其余每个元素都恰出现三次设计并实现线性时间复杂度的算法且使用常数级空间来解决此问题 解答思路 本题与只出现一次的数字的数字类似,区别是重复的数字会…

深度学习InputStreamReader类

咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE相关知识点了,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好…

SpringMVC注解及使用规则

文章目录 前言一、SpringMVC注解是什么?二、使用步骤1.注解使用2创建JSP3 SpringMVC视图1. 逻辑视图(Logical View)2. 物理视图(Physical View)区别和关系 4 SpringMVC注解总结 总结 前言 提示:这里可以添…

Java运算符-三元运算符,这你必须得会!

哈喽,各位小伙伴们,你们好呀,我是喵手。 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。 我是一名后…

08-研发流程设计(上):如何设计Go项目的开发流程?

在Go 项目开发中,我们不仅要完成产品功能的开发,还要确保整个过程是高效的,代码是高质量的。 所以,Go 项目开发一定要设计一个合理的研发流程,来提高开发效率、减少软件维护成本。研发流程会因为项目、团队和开发模式…

基于SSM的百货中心供应链管理系统设计与实现(论文+源码)_kaic

摘 要 社会发展日新月异,用计算机应用实现数据管理功能已经算是很完善的了,但是随着移动互联网的到来,处理信息不再受制于地理位置的限制,处理信息及时高效,备受人们的喜爱。本次开发一套百货中心供应链管理系统有管理…

政安晨:【Keras机器学习实践要点】(九)—— 保存、序列化和导出模型

政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 收录专栏: TensorFlow与Keras机器学习实战 希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正! 这篇文章是保存、序列化和导出模型的完整指南。 …

python实战之进阶篇(一)

定义类 1. 构造方法 2. 实例方法 3. 类方法 类似于Java中的静态方法, 使用方式: 类名.类方法 4. 私有变量 5. 私有方法 6. 使用属性set和get

vue3+threejs新手从零开发卡牌游戏(二十一):添加战斗与生命值关联逻辑

首先将双方玩家的HP存入store中,stores/common.ts代码如下: import { ref, computed } from vue import { defineStore } from piniaexport const useCommonStore defineStore(common, () > {const _font ref() // 字体const p1HP ref(4000) // 己…