【计算机操作系统:二、操作系统的结构和硬件支持】

第2章 操作系统的结构和硬件支持

2.1 操作系统虚拟机

操作系统虚拟机是一种通过软件技术对硬件资源进行抽象和虚拟化的机制,使用户能够以逻辑方式访问和使用计算机资源。

  1. 定义与概念

    • 虚拟机是操作系统虚拟化技术的核心产物,通过模拟硬件资源为多个操作系统提供运行环境。

    • 提供应用程序与硬件之间的隔离,提高系统的安全性和稳定性。

  2. 虚拟机的实现方式

    • 全虚拟化:模拟硬件环境,使操作系统完全不感知底层虚拟化的存在。

    • 半虚拟化:部分硬件资源由虚拟化平台直接管理,例如通过支持虚拟化的CPU指令优化性能。

    • 容器虚拟化:通过共享操作系统内核实现轻量化虚拟化,每个容器独立运行应用程序。

  3. 应用场景

    • 资源整合:将多个虚拟机部署在单一硬件上,提升资源利用率。

    • 隔离环境:为开发、测试提供独立的运行环境,避免相互干扰。

    • 灾备与迁移:支持虚拟机快照、动态迁移等功能。

2.2 操作系统的组织结构
2.2.1 操作系统的结构

操作系统的结构是其功能模块的组织方式,不同结构直接影响系统的运行效率、扩展性和可维护性。

  1. 单体结构

    • 所有功能模块运行在内核空间,包括进程管理、内存管理、文件系统等。

    • 优点:性能高,模块间通信效率快。

    • 缺点:模块间高度耦合,任何修改可能影响整个系统。

  2. 微内核结构

    • 仅保留最基本的功能模块,如进程管理、内存管理。

    • 其他功能模块运行在用户空间。

    • 优点:模块独立,易于扩展和调试。

    • 缺点:模块间通信开销大。

  3. 模块化结构

    • 内核划分为多个相对独立的模块,如文件系统模块、网络模块等。

    • 优点:扩展性强,易于维护和调试。

    • 缺点:需要良好的模块接口设计。

2.2.2 运行时的组织结构
  1. 任务调度机制

    • 调度器根据调度算法分配CPU资源。

    • 常见算法包括先来先服务(FCFS)、短作业优先(SJF)、时间片轮转等。

  2. 内存管理

    • 包括虚拟内存的动态分配与回收,涉及页表、段表等。

    • 提供按需调页机制,减少内存浪费。

2.2.3 操作系统与计算机系统各层次的接口
  1. 用户接口

    • 提供用户与操作系统交互的工具,例如命令行接口(CLI)和图形用户界面(GUI)。
  2. 系统调用接口

    • 提供一组标准化的函数,用户程序通过系统调用接口请求操作系统服务。
  3. 硬件接口

    • 操作系统通过设备驱动程序与底层硬件交互,例如磁盘驱动、网络驱动等。
2.3 处理机的特权级
2.3.1 处理机的态及分类

处理机运行态定义了系统的访问权限级别,用于确保系统安全和稳定性。

  1. 用户态

    • 用于运行普通应用程序。

    • 权限受限,禁止直接操作硬件。

  2. 内核态

    • 用于运行操作系统核心代码。

    • 拥有最高权限,可以直接操作硬件资源。

  3. 态切换机制

    • 当用户程序请求系统资源或触发异常时,处理器从用户态切换到内核态。
2.3.2 特权指令

特权指令用于执行对硬件有直接影响的操作,仅能在内核态运行。

  1. 定义与分类

    • 包括I/O操作指令、内存管理指令、处理器控制指令等。
  2. 安全机制

    • 当用户态程序尝试执行特权指令时,处理器会触发异常并进入内核态处理。
2.4 中断及其处理
2.4.1 中断概念及类型

中断是计算机系统中处理异步事件的重要机制,用于确保系统对突发事件的及时响应。

  1. 类型

    • 硬件中断:由外设触发,例如键盘输入、网络包到达等。

    • 软件中断:由程序显式触发,例如系统调用。

    • 异常:由处理器检测到的错误触发,例如除零错误。

2.4.2 向量中断和探询中断
  1. 向量中断

    • 每种中断类型分配一个唯一编号,通过编号找到对应的中断处理程序。
  2. 探询中断

    • 按优先级逐一检查中断源,找到激活的中断。
2.4.3 中断进入

描述中断请求信号到中断处理程序开始执行的全过程,涉及保存现场、加载中断向量等。

2.4.4 软件中断处理过程

软件中断由程序触发,常用于系统调用或内核功能测试,处理过程包括参数传递和结果返回。

2.5 UNIX、Linux系统结构
2.5.1 UNIX系统的体系结构
  1. 分层结构

    • 硬件层、内核层、系统调用接口层、用户层。

    • 每一层次独立,便于维护和扩展。

  2. 模块划分

    • 包括文件系统模块、进程管理模块、设备管理模块等。
2.5.2 UNIX系统的核心结构
  1. 核心模块

    • 负责内存管理、进程调度、设备驱动等基本功能。
  2. 内核功能

    • 提供进程间通信机制。

    • 管理文件系统,支持多种文件系统格式。

2.5.3 Linux系统的内核结构

Linux内核采用模块化设计,支持动态加载模块和内核更新。

  1. 模块划分

    • 文件系统模块、网络协议栈、设备驱动模块。
  2. 特性

    • 高度可移植性,支持从嵌入式设备到超级计算机的多种硬件架构。
2.6 Linux系统的特权级与中断处理
2.6.1 Linux系统的特权级

Linux系统采用两级特权机制:用户态和内核态。

  1. 切换机制

    • 用户程序通过系统调用进入内核态。

    • 内核态完成任务后返回用户态。

2.6.2 中断处理的上半部和下半部
  1. 上半部

    • 处理紧急的中断请求,例如硬件状态检查。
  2. 下半部

    • 延迟执行非紧急任务,例如网络包处理。
2.6.3 中断处理下半部的实现机制
  1. 实现机制

    • 使用软中断、任务队列等延迟执行框架。
  2. 实际案例

    • 网络数据包的接收和协议解析分布于上半部和下半部。

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

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

相关文章

流程图(四)利用python绘制漏斗图

流程图(四)利用python绘制漏斗图 漏斗图(Funnel Chart)简介 漏斗图经常用于展示生产经营各环节的关键数值变化,以较高的头部开始,较低的底部结束,可视化呈现各环节的转化效率与变动大小。一般重…

继承(5)

大家好,今天我们继续来学习继承的相关知识,来看看子类构造方法(也叫做构造器)是如何做的。 1.6 子类构造方法 父子父子,先有父再有子,即:子类对象构选时,需要先调用基类构造方法,然后执行子类的构造方法 ★此时虽然执行了父类的…

Vue框架主要用来做什么?Vue框架的好处和特性.

在快速发展的互联网时代,前端开发技术的变革日新月异,为开发者带来了前所未有的机遇与挑战。Vue.js,作为前端开发领域的一颗璀璨新星,以其轻量级、高效灵活的特性,赢得了广大开发者的青睐。本文将深入探讨Vue框架的主要…

搭建Hadoop分布式集群

软件和操作系统版本 Hadoop框架是采用Java语言编写,需要java环境(jvm) JDK版本:JDK8版本 ,本次使用的是 Java: jdk-8u431-linux-x64.tar.gz Hadoop: hadoop-3.3.6.tar.gz 三台Linux虚拟节点: CentOS-7-x86_64-DVD-2…

电子应用设计方案87:智能AI收纳箱系统设计

智能 AI 收纳箱系统设计 一、引言 智能 AI 收纳箱系统旨在为用户提供更高效、便捷和智能的物品收纳与管理解决方案,通过融合人工智能技术和创新设计,提升用户的生活品质和物品整理效率。 二、系统概述 1. 系统目标 - 实现物品的自动分类和整理&#xf…

MySQL数据结构选择

系列文章目录 一、MySQL数据结构选择 二、MySQL性能优化explain关键字详解 三、MySQL索引优化 文章目录 系列文章目录前言一、索引1.1、什么是索引1.2、构建索引的过程1.3、索引的更新和维护1.4、索引的查询和管理1.5、InnoDB 和 MyISAM 的索引实现1.6、联合索引和最左前缀法则…

shell基础使用及vim的常用快捷键

一、shell简介 参考博文1 参考博文2——shell语法及应用 参考博文3——vi的使用 在linux中有很多类型的shell,不同的shell具备不同的功能,shell还决定了脚本中函数的语法,Linux中默认的shell是 / b in/ b a s h ,流行的shell…

(leetcode算法题)76. 最小覆盖子串

以s "ADOBECODEBANC", t "ABC"为例,进行如下演示 对于上图的说明: 1. 上面八个状态是在从左往右滑动窗口时,每发现一个窗口满足以下条件就进行状态暂停 条件:s[l, r] 覆盖了 t 这个字符串 2. 只有出窗口之…

二、BIO、NIO编程与直接内存、零拷贝

一、网络通信 1、什么是socket? Socket 是应用层与 TCP/IP 协议族通信的中间软件抽象层,它是一组接口,一般由操作 系统提供。客户端连接上一个服务端,就会在客户端中产生一个 socket 接口实例,服务端每接受 一个客户端…

HDFS架构原理

一、HDFS架构整体概述 HDFS是Hadoop Distribute File System 的简称,意为:Hadoop分布式文件系统。HDFS是Hadoop核心组件之一,作为大数据生态圈最底层的分布式存储服务而存在。HDFS解决的问题就是大数据如何存储,它是横跨在多台计算机上的文件…

Qt项目打包成绿色软件

Qt项目打包成绿色软件 一、图标添加与配置二、编译后打包文件附录有朋友将程序发给别人后运行,发现各种问题,如: 1.无法定位程序输入点__cxa_thread_atexit于动态链接库…。 2.缺少各种**.dll文件。 问‌我运行环境上Microsoft Visual C++ Redistributable运行环境都有,版本…

自动驾驶相关知识学习笔记

一、概要 因为想知道SIL、HIL是什么仿真工具,故而浏览了自动驾驶相关的知识。 资料来源《自动驾驶——人工智能理论与实践》胡波 林青 陈强 著;出版时间:2023年3月 二、图像的分类、分割与检测任务区别 如图所示,这些更高阶的…

C# 之某度协议登录,JS逆向,手机号绑定,获取CK

.NET兼职社区 .NET兼职社区 .NET兼职社区 .NET兼职社区 有需要指导,请私信我留言V或者去社区找客服。

数值分析速成复习笔记

请确保你有10hour的有效学习时间,保你拿90 证明部分 编程部分

06-RabbitMQ基础

目录 1.初识MQ 1.1.同步调用 1.2.异步调用 1.3.技术选型 2.RabbitMQ 2.1.安装 2.2.收发消息 2.2.1.交换机 2.2.2.队列 2.2.3.绑定关系 2.2.4.发送消息 2.3.数据隔离 2.3.1.用户管理 2.3.2.virtual host 3.SpringAMQP 3.1.导入Demo工程 3.2.快速入门 3.2.1.消…

Ungoogled Chromium127 编译指南 MacOS 篇(二)- 项目要求

1. 引言 在开始编译 Ungoogled Chromium 之前,我们需要确保系统满足所有必要的硬件和软件要求。由于浏览器编译是一个资源密集型的任务,合适的硬件配置和完整的软件环境至关重要。本文将详细介绍编译 Ungoogled Chromium 所需的各项要求。 2. 硬件要求…

springBoot整合ELK Windowsb版本 (elasticsearch+logstash+kibana)

springBoot整合ELK Windowsb版本 【elasticsearchlogstashkibana】 下载软件启动服务1、elasticsearch2、kibana3、logstash 集成springboot1、添加依赖2、在logback.xml添加相关配置3、修改logstash 配置4、重启logstash 最后测试 下载软件 elasticsearch 官网 https://www.…

vulnhub靶场【DC系列】之5

前言 靶机:DC-5,IP地址为192.168.10.4 攻击:kali,IP地址为192.168.10.2 都采用VMWare,网卡为桥接模式 对于文章中涉及到的靶场以及工具,我放置网盘中https://pan.quark.cn/s/2fcf53ade985 主机发现 使用…

Postman接口测试02|接口用例设计

目录 六、接口用例设计 1、接口测试的测试点(测试维度) 1️⃣功能测试 2️⃣性能测试 3️⃣安全测试 2、设计方法与思路 3、单接口测试用例 4、业务场景测试用例 1️⃣分析测试点 2️⃣添加员工 3️⃣查询员工、修改员工 4️⃣删除员工、查询…

计算机网络 (29)网络地址转换NAT

前言 网络地址转换(Network Address Translation,NAT)是计算机网络中的一种重要协议,它主要用于将私有IP地址转换为公共IP地址,以实现内部网络与外部网络之间的通信。 一、基本概念 NAT是一种在局域网(LAN&…