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

news2024/11/18 6:26: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检测到中断信号后,会根据中断信号的类型去查询**“中断向量表”**,以此来找到相应的中断处理程序在内存中的存放位置
  • 中断程序一定是内核程序,需要运行在“内核态”

3.3 系统调用

  • 系统调用:操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以通过系统调用来请求获得操作系统内核的服务
  • 系统调用与库函数的区别:
    1. 普通应用程序:可直接进行系统调用,可使用库函数(有的库函数涉及系统调用,有的不涉及)
    2. 编程语言:向上提供库函数,有时会将系统调用封装成库函数,以隐藏系统调用的一些细节,使程序员编程更加方便
    3. 操作系统:向上提供系统调用,使得上层程序能请求内核的服务
    4. 裸机
  • 系统调用按功能分类
    1. 设备管理:设备的请求/释放/启动等
    2. 文件管理:文件的读/写/创建/删除等
    3. 进程控制:进程的创建/撤销/阻塞/唤醒等
    4. 进程通信:进程之间的消息传递/信号传递等
    5. 内存管理:内存的分配/回收等
  • 什么功能用系统调用?
    1. 应用程序通过系统调用请求操作系统的服务
    2. 凡是与共享资源有关的操作(存储分配、I/O操作、文件管理等),必须通过系统调用的方式向操作系统内核提出服务请求,由操作系统内核代为完成
    3. 保证系统的稳定性和安全性,防止用户进行非法操作
  • 系统调用的过程:传递系统调用的参数 → 执行陷入指令【用户态】 → 执行相应的内请求,核程序处理系统调用 【核心态】 → 返回应用程序
    1. 陷入指令是在用户态执行的,执行陷入指令之后立即引发一个内中断,使CPU进入核心态
    2. 发出系统调用请求是在用户态,而对系统调用的相应处理在核心态下进行
    3. 陷入指令 = trap 指令 = 访管指令

四、操作系统体系结构

在这里插入图片描述

  • 内核:操作系统最基本、最核心的部分
  • 内核程序:实现操作系统内核功能的程序
    在这里插入图片描述

4.1 大内核(宏内核/单内核)与 微内核

在这里插入图片描述

  • 操作系统内核需要运行在内核态,非内核功能运行在用户态
  • 变态的过程是有成本的,需要耗费时间,频繁地变态会降低系统性能
  • 微内核:使用消息传递进行间接通信
    在这里插入图片描述

4.2 分层结构、模块化、外核

  1. 分层结构
    • 最底层是硬件,最高层是用户接口
    • 每层可调用更低一层
  2. 模块化
    • 模块化将操作系统按功能划分为若干个具有一定独立性的模块
    • 内核 = 主模块 + 可加载内核模块
  3. 外核exokernel
    • 内核负责进程调度、进程通信
    • 外核负责为用户进程分配未经抽象的硬件资源,负责保证资源使用安全
    • 未经抽象的硬件资源:根据用户进程分配连续空间,减少磁头不停转换、减少虚拟硬件资源的映射
      在这里插入图片描述

4.3 系统结构的比较

在这里插入图片描述

五、操作系统引导boot

在这里插入图片描述

  1. CPU从一个特定主存地址开始,取指令,执行ROM中的引导程序 (先进行硬件自检,再开机)
  2. 将磁盘的第一块——主引导记录 读入内存,执行磁盘引导程序,扫描分区表
  3. 从活动分区 (又称主分区,即安装了操作系统的分区) 读入分区引导记录,执行其中的程序
  4. 从根目录下找到完整的操作系统初始化程序(即 启动管理器) 并执行,完成“开机”的一系列动作

六、虚拟机

  • 虚拟机virtual machine,VM:使用虚拟化技术,将一台物理机器虚拟化为多台虚拟机器,每个虚拟机器都独立运行一个操作系统
  • 虚拟机管理程序VMM = 虚拟机监控程序: virtual machine monitor/hypervisor
  • VMM分类:
    1. 第一类:直接运行在硬件上
    2. 第二类:运行在宿主操作系统上
  • 支持虚拟化的CPU通常分更多指令等级:最高权限Ring 0 — 最低权限Ring 3
  • 两类虚拟机管理程序VMM对比
    在这里插入图片描述

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

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

相关文章

防火墙之iptables(二)

防火墙之iptables(二) 一.SNAT原理与应用 1.应用环境 局域网主机共享单个公网IP地址接入Internet(私网不能被Internet中正常路由)2.SNAT原理 修改数据包的源地址内网访问外网 将从内网发送到外网的数据包的源IP由私网IP转换成…

Java-API简析_java.lang.Double类(基于JDK1.8)(浅析源码)

【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://blog.csdn.net/m0_69908381/article/details/130805572 出自【进步*于辰的博客】 其实我的【Java-API】专栏内的博文对大家来说意义是不大的。…

海睿思分享 | 浅谈医院大数据中心建设

随着大数据在医疗行业临床诊疗、医院管理、健康管理等领域应用热度增加,越来越多医院设立了大数据中心或者在信息中心基础上开展了大数据的建设。 什么是大数据中心?大数据中心和CDR的区别是什么?医院应该怎样进行大数据建设? 1 …

记录监控日志数据

日志数据简介 日志数据是系统、应用程序或网络设备上发生的所有事件的记录。启用日志记录后,系统会自动生成日志并带有时间戳。日志数据提供详细信息,例如谁是事件的一部分、发生的时间、发生的位置和方式。因此,它是解决操作问题和检测安全…

数据结构课程设计一元稀疏多项式计算器

数据结构课程设计任务书 学生姓名: 专业班级: 指导教师: 工作单位: 题 目: 一元稀疏多项式计算器 基础要求: 一元稀疏多项式简单计算器的基本功能是…

C++ 基础学习5

C 基础学习5 std::variantstd::remove、erasestd::string::erasestd::filesystemconst和constexpr的区别coreDump和异常的区别 实战 std::variant 参考:https://blog.csdn.net/hang_ning/article/details/123826220 https://blog.csdn.net/janeqi1987/article/deta…

SpringBoot使用-基于Idea搭建WebSocket应用

文章目录 前言搭建WebSocket应用的实操流程验证总结前言 SpringBoot是所有基于Spring开发项目的起点,使得开发者能快速搭建 Spring 项目。在Idea集成工具环境下,通过使用SpringBoot,开发人员选用合适的Maven设置,能够方便地搭建WebSocket应用。 搭建WebSocket应用的实操流…

Elastic Stack

一、简介 ELK是一个免费开源的日志分析架构技术栈总称,官网https://www.elastic.co/cn。包含三大基础组件,分别是Elasticsearch、Logstash、Kibana。但实际上ELK不仅仅适用于日志分析,它还可以支持其它任何数据搜索、分析和收集的场景&#…

推荐5款简单实用的win10小工具

今天要给大家推荐5款压箱底的宝贝软件了,百度搜索一下就能找到下载链接了。 1.笔记与知识管理——Evernote Evernote是一款功能强大的笔记管理工具,它可以帮助你记下生活中的点点滴滴并进行管理。这个工具拥有简洁的界面和强大的功能,可以添加文本、图片、录音、网…

tomcat maxThread 压力测试 700 并发以内最好

以前一直简单的认为多线程高效率。其实多线程本身并不能提高 cpu 效率&#xff0c;线程过多反而会降低 cpu 效率。当 cpu 核心数<线程数时&#xff0c;cpu 就需要在多个线程直接来回切换&#xff0c;以保证每个线程都会获得 cpu 时间&#xff0c;即通常我们说的并发执行。所…

基于python的WEIBO热点话题检测

微博是一个拥有海量用户的社交媒体平台&#xff0c;每天都会涌现出大量的话题和热点讨论。本文将介绍如何使用Python来实现微博热点话题检测技术&#xff0c;通过对微博文本的分析和处理&#xff0c;准确地捕捉到当前最热门的话题。 1. 数据获取 为了进行微博热点话题的检测&…

部门来了个测试开发,听说是00后,上来一顿操作给我看呆了...

公司新来了个同事&#xff0c;听说大学是学的广告专业&#xff0c;因为喜欢IT行业就找了个培训班&#xff0c;后来在一家小公司实习半年&#xff0c;现在跳槽来我们公司。来了之后把现有项目的性能优化了一遍&#xff0c;服务器缩减一半&#xff0c;性能反而提升4倍&#xff01…

快速上手MATLAB:科研、工程、数据分析,MATLAB入门(上)教你基础知识!+分享MATLAB完全学习手册资料(视频+课件+代码

快速上手MATLAB&#xff1a;科研、工程、数据分析&#xff0c;MATLAB入门&#xff08;上&#xff09;教你基础知识&#xff01; 福利&#xff1a;文末有资料分享&#xff01;&#xff01; 前言零基础的人学matlab&#xff0c;需要哪些基础知识&#xff1f; 一、认识MATLAB1. MA…

【Flutter 工程】001-Flutter 状态管理:Riverpod

【Flutter 工程】001-Flutter 状态管理&#xff1a;Riverpod 文章目录 【Flutter 工程】001-Flutter 状态管理&#xff1a;Riverpod一、概述1、官方状态管理2、状态管理解决方案3、为什么选择 RiverpodRiverpod 官方文档Riverpod 提供的几种 Provider 二、官方示例1、安装2、官…

Linux中vim编辑器

目录 Linux中vim编辑器 学习vim的原因 vim的三种模式 命令模式 输入模式 末行模式 模式切换方法 模式的常用命令 命令模式 --- 光标移动 命令模式 --- 赋值、粘贴、删除 命令模式 --- 文件内容查找 命令模式 --- 撤销编辑及保存退出 末行模式 --- 保存文件及退出vi…

探究企业角色权限管理的重要性及实践方法

角色权限管理是企业网盘工具中的重要功能。它是指将特定角色分配给用户&#xff0c;然后根据用户的工作要求为这些角色分配访问权限的过程。通过使用基于角色的权限&#xff0c;组织可以确保员工只能访问执行工作职责所需的文件和文件夹。那么企业角色权限管理有必要吗&#xf…

提高测试效率,用封装自动化框架实现Web页面自动滚动!

目录 前言&#xff1a; 一、什么是Web自动化框架&#xff1f; 二、为什么需要封装&#xff1f; 三、自动页面滚动功能实现原理 四、封装代码实现 五、总结 前言&#xff1a; Web自动化是现代软件开发过程中的重要组成部分&#xff0c;为了提高开发效率&#xff0c;开发人…

【限时开放!99元交个朋友】ChatGPT AIGC研讨社拉新!

前言 不知道你是否有这样的困惑&#xff1a;想探索ChatGPT的奥秘&#xff0c;却不知道如何入手&#xff1f;想让ChatGPT助力学习工作&#xff0c;却不知如何调教&#xff1f;想在AI浪潮中勇立潮头&#xff0c;却找不到学习路径&#xff1f;怀揣创新想法&#xff0c;却不知如何…

【广州华锐互动】数字孪生编辑器:简单高效的可视化管理系统编辑工具

广州华锐互动开发的数字孪生编辑器&#xff0c;是一款基于数字孪生技术的可视化建模工具&#xff0c;通过将现实世界中的对象数字化&#xff0c;以虚拟现实的方式展现在计算机屏幕上&#xff0c;使用户可以进行模拟、预测和优化实际场景中的操作。 数字孪生编辑器已在工业、建…

【博士论文latex写作】

1.安装编译器 到官网下载镜像&#xff1a;https://mirrors.hit.edu.cn/CTAN/systems/texlive/Images/ 选择 texlive2023.iso 也可选择百度云2022版本&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1WLVX8Zn1E4hIYRupLBabNA?pwdgm63 提取码&#xff1a;gm63 打开后…