【王道·操作系统】第一章计算机系统概述【未完】

news2024/10/7 20:25:29

一、 操作系统的基本概念

1.1 概念(定义):什么是操作系统

  • 操作系统operating system,OS:控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配;以提供给用户和其他软件方便的接口和环境;是计算机系统中最基本的系统软件:
    1. os是系统资源的管理者
    2. 向上提供方便易用的服务
    3. 是最接近硬件的一层软件
  • 执行一个程序前需要将该程序放到内存中,才能被CPU处理
  • 封装思想:os将一些丑陋的硬件功能封装成简单易用的服务,使用户能更方便地使用计算机;用户无需关心底层硬件的原理,只需对操作系统发出命令

1.2 功能和目标:操作系统要做什么

  • 资源的管理者:处理机管理、存储器管理、文件管理、设备管理
  • 向上提供方便易用的服务:
    1. 给普通用户的:GUI图形化用户接口(graphical user interface); 命令接口(联机命令接口 = 交互式命令接口、脱机命令接口 = 批处理命令接口)
    2. 程序接口(程序代码间接的进行系统调用 = 广义指令使用程序接口)
    3. 其中:命令接口与程序接口又称为用户接口
  • 对硬件机器的拓展:没有任何软件支持的计算机称为裸机;覆盖了软件的机器称为扩充机器/虚拟机

1.3 操作系统的特征:并发、共享、虚拟、异步

  • 并发与共享是两个最基本的特征,二者互为存在条件
    1. 并发性:计算机系统中同时存在着多个运行着的程序
    2. 共享性:系统中的资源可供内存中多个并发程序的进程共同使用
  • 没有并发和共享就谈不上虚拟和异步

1.3.1 并发

  • 并发:两个或多个事件在同一时间间隔内发生;宏观上是同时发生的,微观上是交替发生
  • 并行:两个或多个事物在同一个时刻同时发生
  • 操作系统是伴随着“多道程序技术”而出现的,因此操作系统和程序并发是一起诞生的
  • 并发性是操作系统一个最基本的特性
    1. 单核CPU同一时刻只能执行一个程序,各个程序只能并发地执行
    2. 多核CPU同一时刻可以同时执行多个程序,多个程序可以并行地执行

1.3.2 共享

  • 共享:资源共享,系统中的资源可供内存中多个并发执行的进程同时使用
  • 共享方式:
    1. 互斥共享方式:一个时间段内只允许一个进程访问该资源,如硬件设备摄像头等
    2. 同时共享方式:允许一个时间段内由多个进程“同时”对它们进行访问,如文件读取等

1.3.3 虚拟

  • 虚拟:把一个物理上的实体变为若干个逻辑上的对应物
  • 物理实体是实际存在的,逻辑上的对应物是用户感受到的
  • 虚拟存储器技术,是虚拟技术的“空分复用技术”;虚拟处理器,是虚拟技术的“时空复用技术”

1.3.4 异步

  • 异步:在多道程序环境下,允许多个进程并发执行;但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,即进程的异步性

二、操作系统的发展与分类

在这里插入图片描述

  1. 手工操作阶段

    • 主要缺点:用户独占全机、人机速度矛盾导致资源利用率极低
  2. 批处理阶段——单道批处理系统

    • 引入脱机输入/输出技术,并由**监督程序(操作系统的雏形)**负责控制作业的输入、输出
    • 主要优点:缓解了一定程度人机速度矛盾,资源利用率有所提升
    • 主要缺点:内存中仅能有一道程序运行;CPU有大量的时间是在空闲等待I/O完成;资源利用率依然很低
  3. 批处理阶段——多道批处理系统

    • 操作系统正式诞生,用于支持多道程序并发运行,每次往内存中读入多道程序
    • 主要优点:多道程序并发执行,共享计算机资源;资源利用率大幅提升,CPU和其他资源更能保持“忙碌”状态,系统吞吐率增大
    • 主要缺点:用户响应时间长,没有人机交互功能
  4. 分时操作系统

    • 计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互
    • 主要优点:用户请求可以被即时响应,解决了人机交互问题;允许多个用户同时使用一台计算机,且对计算机的操作相互独立,感受不到别人的存在
    • 主要缺点:不能处理紧急任务(操作系统对各个用户/作业完全公平,循环地为其服务一个时间片)
  5. 实时操作系统在这里插入图片描述

    • 计算机系统接收到外部信号后及时进行处理,并在严格的时限内处理完成事件
    • 主要优点:能优先响应一些紧急任务,保证及时性和可靠性
    • 分类:硬实时操作系统(必须在绝对严格的规定时间内完成处理,如导弹控制系统)、软实时操作系统(能接受偶尔违反时间规定,如订票系统)
  6. 网络操作系统:伴随着计算机网络的发展而诞生的,能把网络中各个计算机有机地结合起来,实现数据传送等功能,实现网络中各种资源的共享 (如文件共享)和各台计算机之间的通信 (如: windows NT 就是一种典型的网络操作系统,网站服务器就可以使用)

  7. 分布式操作系统:主要特点是分布性和并行性,系统中的各台计算机地位相同,任何工作都可以分布在这些计算机上,由它们并行、协同完成这个任务

  8. 个人计算机操作系统:如Windows XP、MacoS,方便个人使用。

三、操作系统的运行机制

  • 指令:处理器CPU能识别、执行的最基本命令

3.1 运行机制

在这里插入图片描述

3.1.1 两种程序:内核程序、应用程序

  • 应用程序:跑在操作系统之上的程序,只能使用“非特权指令”
  • 内核程序:实现操作系统的程序,简称内核kernel;内核是操作系统最重要最核心的部分,也是最接近硬件的部分
  • CPU设计和生产时就划分了特权指令和非特权指令

3.1.2 两种指令:特权指令、非特权指令

3.1.3 两种处理器状态:核心态、用户态

  • CPU有两种状态:核心态、用户态
    1. 处于内核态时,说明此时正在运行的是内核程序,此时可以执行特权指令
    2. 处于用户态时,说明此时正在运行的是应用程序,此时只能执行非特权指令
  • CPU中有一个PSW程序状态字寄存器,通过其中的二进制位区分内核态还是用户态
  • 状态切换:
    1. 内核态 → 用户态: 执行一条特权指令–修改PSW的标志位为“用户态”,意味着操作系统将主动让出CPU使用权
    2. 用户态 → 内核态:由**“中断”引发,硬件自动完成变态过程**,触发中断信号意味着操作系统将强行夺回CPU的使用权
    3. 凡是需要操作系统介入的地方,都会触发中断信号,如非法使用特权指令

3.2 中断和异常

在这里插入图片描述

3.2.1 中断的作用

  • CPU上会运行两种程序,一种是操作系统内核程序,一种是应用程序
  • “中断”是让操作系统内核夺回CPU使用权的唯一途径
  • “中断”会使CPU由用户态变为内核态,使操作系统重新夺回对CPU的控制权

3.2.2 中断的类型

  • 内中断
    1. 与当前指令有关,中断信号来源于CPU内部
    2. 例子:特权指令、非法指令、陷入指令(如系统调用,不是特权指令)
    3. 陷阱、陷入trap:由陷入指令引发,是应用程序故意引发的
    4. 故障fault:由错误条件引起的,可能被内核程序修复;修复后把 CPU使用权还给应用程序,以继续执行,如:缺页故障
    5. 终止abort:由致命错误引起,内核程序无法修复该错误,因此一般不再将CPU使用权还给引发终止的应用程序,而是直接终
  • 外中断:与当前指令无关,中断信号来源于CPU外部
    1. 时钟中断
    2. I/O中断

3.2.3 中断机制的基本原理

  • 不同的中断信号,需要用不同的中断处理程序来处理
  • 当CPU检测到中断信号后,会根据中断信号的类型去查询**“中断向量表”**,以此来找到相应的中断处理程序在内存中的存放位置
  • 中断程序一定是内核程序,需要运行在“内核态”

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LC 谐振电路

LC电路是各种电子设备中的基本电子组件,尤其是在诸如调谐器,滤波器,混频器和振荡器之类的电路中使用的无线电设备中。在学习之前,我们复习一下电感和电容的原理。 电容就是储存电荷的容器,最基本构成是如下图所示的一个…

uniapp使用express连接mysql数据库

一、安装 express 脚手架 使用winR再输入cmd打开命令提示符,输入如下内容全局安装脚手架 npm i express-generator -g 二、在项目根目录下创建服务 可以在命令提示符中cd到自己项目的根目录下,也可以在HBuilder X里内置的终端运行代码 C:\HBuilderProj…

波奇学C++:动态内存管理,new和delete

内存分区 内存可分为栈,堆,静态区/数据段,常量区/代码段 栈:函数栈帧,临时变量,开辟空间 堆:动态申请的数据 静态区/数码段:静态数据,全局变量 常量区/代码段&#x…

django admin后台管理系统上传添加的图片保存到阿里云oss中

目录 一、配置admin上传图片到阿里云oss 二、配置admin后台上传到阿里云oss的图片为自定义名 问题描述:在开发自己的应用/网页前后台时可以调用阿里云oss的接口将图片上传至oss保存和读取,非常方便。但在django自带的admin后台中如何配置添加的图片也上…

视频美颜SDK在直播领域的应用与挑战

目前,视频美颜技术在视频拍摄领域“大展神通”,因为视频美颜SDK可以帮助主播在直播中展现更加美好的形象,吸引更多的观众,并提升用户体验。然而,视频美颜SDK在直播领域的应用也面临着一些挑战。 一、视频美颜SDK在直…

回溯法【2-5】

假设一个推销员问题由下图定义,用回溯法求解 从1号结点出发的相应最短巡回路径(每个顶点刚好到达一次)。若用bestL表示搜索过程中产生的当前最优解,剪枝函数 L 设计为: L 已走过的路径长度 当前结点相关的最短边 所…

ChatGPT提示工程课程,吴恩达OpenAI

Principle 1: Write clear and specific instructions 使用明确的分隔符,是LLM知道这个某个单独的字段。 前提设置: import openai import osfrom dotenv import load_dotenv, find_dotenv _ load_dotenv(find_dotenv()) # read local .env fileopena…

LeetCode·每日一题·1080. 根到叶路径上的不足节点·递归

作者:小迅 链接:https://leetcode.cn/problems/insufficient-nodes-in-root-to-leaf-paths/solutions/2279048/di-gui-zhu-shi-chao-ji-xiang-xi-by-xun-g-7rfd/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系…

如何使用 VSCode 软件运行C代码

VSCode 的下载和扩展的配置可以参考文章:VSCode 的安装与插件配置。 VSCode 是很好用的编辑器,通过给其配置 MinGW-w64 插件就可以在它上面编译运行C代码了。 在没有配置 MinGW-w64 插件时,在 VSCode 中运行下面的代码后打印如下图所示。 这…

【C语言】C的编译过程预处理

目录 一、 程序的翻译环境和执行环境1、翻译环境预处理编译汇编链接 2、执行环境 二、预处理详解1、预定义符号2、#define#define 语法#define 定义宏#define 替换规则 3、#和##4、宏和函数对比 一、 程序的翻译环境和执行环境 在ANSI C的任何一种实现中,存在两个不…

为什么我们拥有庞大的语言模型,而Vision Transformers的规模却很小?

编者按:本文探讨了语言模型为何会比视觉模型的参数数量大得多的原因,并详细介绍了传统ViT训练方法在扩展时出现不稳定性的问题。 为此,本文介绍了如何改进架构以实现扩展,并讨论了实现模型最优状态的方法。同时,如何在…

Docker部署skywalking9.2版本

注意使用docker部署skywalking和使用tar包部署有点不一样OAP和UI需要分别部署原因是: SkyWalking UI 和 OAP 是 SkyWalking 的两个主要组件,它们之间的关系是前端和后端的关系。SkyWalking UI 是一个 Web 应用程序,它提供了一个漂亮的 UI 界面…

连续降税、人民币结算,巴西潜力爆发!开发细节见内!

本文内容 /CONTENT 01/中巴贸易现状 02/主要进口类别 03/通关和贸易政策 04/市场商业环境 05/本地公司的注册程序 06/巴西的主要节日 最近巴西降低关税,宣布人民币结算。想转市场的朋友不妨考虑巴西。 巴西作为南美洲最大的国家,当地人口占53%(…

ios音频焦点

音频焦点 两个或者两个以上的app可以同时向同一输出流播放音频。系统会将所有音频流混合在一起,但这样会给用户带来很大的困扰。为了避免所有音乐app同时播放,ios引入了“音频焦点”的概念。在ios中,音频焦点是操作系统为了管理音频硬件而引…

uvc驱动ioctl分析上

uvc驱动ioctl分析上 文章目录 uvc驱动ioctl分析上uvc_ioctl_querycap查询设备的能力uvc_ioctl_enum_fmt处理V4L2设备的枚举格式(enum_fmt)的ioctl操作uvc_ioctl_enum_fmt_vid_out枚举视频输出格式uvc_ioctl_enum_fmt_vid_cap枚举视频捕获格式 uvc_v4l2_g…

低代码到底有多爽?解放双手,推荐一款C端的低代码产品

前言引入 低代码(LowCode)就是一种可视化搭建系统,从字面意思来讲,一是可视化;二是少写代码。由此可见,低代码的出现是为了减轻和降低开发者的负担,让开发者减少重复劳动,避免资源和…

基于Angular+Nginx+Java+Spring开发的医院信息系统(HIS)源码

基于云计算技术的SaaS服务的医院信息系统源码 云HIS系统有效实现医疗数据共享与交换,解决数据重复采集及信息孤岛等问题。重构管理服务流程,重建统一的信息架构体系,重造病人服务环境,向不同类型的医疗机构提供SaaS化HIS服务解决…

如何在不损失质量的情况下压缩优化图像大小

您是否知道在将图像上传到 WordPress 之前对其进行优化会对您的网站速度产生巨大影响? 在开始时,许多初学者只是简单地上传图片,而没有针对网络对其进行优化。这些大图像文件会使您的网站变慢。 您可以通过将图像优化最佳实践作为常规博客程…

如何对高压功率放大器进行初步故障排查?

在使用测试仪器仪表进行实验检测的过程中,可能多少都遇到过这种情况:仪器开不了机无法点亮、设备幅值与理论值有较大差距、输出电压波形失真、设备异常过载、设备异响异味等等.... 作为测试仪器仪表的一种,功率放大器也可能会出现这种情况&a…

基于Java+SpringMvc+vue+element实现高效学生社团平台管理

基于JavaSpringMvcvueelement实现高效学生社团平台管理 博主介绍:5年java开发经验,专注Java开发、定制、远程、指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码联系方式…