当前位置: 首页 > news >正文

【操作系统】考研真题攻克与重点知识点剖析 - 第 1 篇:操作系统概述

前言

  • 本文基础知识部分来自于b站:分享笔记的好人儿的思维导图与王道考研课程,感谢大佬的开源精神,习题来自老师划的重点以及考研真题。
  • 此前我尝试了完全使用Python或是结合大语言模型对考研真题进行数据清洗与可视化分析,本人技术有限,最终数据清洗结果不够理想,相关CSDN文章便没有发出。
  • 从这篇文章开始,这里我将按章节顺序,围绕考研真题展开操作系统总共5章的知识,边学习边整理数据。

请注意,本文中的部分内容来自网络搜集和个人实践,如有任何错误,请随时向我们提出批评和指正。本文仅供学习和交流使用,不涉及任何商业目的。如果因本文内容引发版权或侵权问题,请通过私信告知我们,我们将立即予以删除。

文章目录

  • 前言
    • 操作系统的定义
    • 操作系统功能
      • 管理硬件(前五块也就是操作系统的所有内容)
    • 知识回顾思维导图
      • 特征
    • 操作系统的特征思维导图
    • 操作系统的启动
      • 哈工大版本
      • 王道版本
    • 操作系统的运行环境(王道)
      • 预备知识:程序是如何运行的?
      • 内核程序v.s.应用程序
      • 特权指令v.s.非特权指令
      • CPU的状态
    • 操作系统的运行机制思维导图
      • 中断与异常
        • 中断的作用
        • 中断的分类
    • 中断和异常思维导图
      • 系统调用(广义指令)
        • 系统调用与库函数的区别
        • 什么功能要用到系统调用?
        • 系统调用的过程
      • 系统调用思维导图
    • 操作系统历史
      • 哈工大分两条线讲
      • 王道版本
        • 操作系统(OS)发展阶段
        • OS的发展与分类思维导图
    • 操作系统体系结构(新考点)
      • 操作系统的内核
      • 分层结构
      • 模块化
      • 宏内核(大内核)
      • 微内核
      • 外核
    • 虚拟机(新考点)
      • 第一类VMM
      • 第二类VMM
  • 考研真题
    • 408 - 2023
      • 12. 计算程序执行速度和用户CPU时间
    • 408 - 2022
      • 12. 计算平均CPI和CPU执行时间
      • 20. 高级语言程序转换为可执行目标文件的过程
    • 408 - 2021
      • 12. 计算机浮点运算速度与操作次数的关系
    • 未完待续,逐张试卷整理中,会一直更新到2009

操作系统的定义

在这里插入图片描述

操作系统功能

管理硬件(前五块也就是操作系统的所有内容)

  • CPU管理

  • 内存管理

  • I/O(终端)管理

  • 磁盘管理

  • 文件管理

  • 网络管理、电源管理、多核管理(不讲,课程高级操作系统讲解)
    多进程视图:- CPU管理- 内存管理

文件操作视图:- I/O(终端)管理- 磁盘管理- 文件管理
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

知识回顾思维导图

在这里插入图片描述

特征

  • 并发

    • 并发(进程)

      • 多道程序环境,宏观上多道程序同时执行,每个时刻单处理机仅有一道程序执行,微观上程序分时交替执行
    • 并行

      • 同一时刻完成两种或两种以上工作,需要硬件支持
        在这里插入图片描述
        在这里插入图片描述
  • 共享

    • 互斥共享方式

      • 某些资源在一段时间内只允许一个进程访问该资源
    • 同时访问方式

      • 一段时间内允许多个进程对资源进行访问,分时共享
        在这里插入图片描述
  • 并发和共享的关系
    在这里插入图片描述

  • 虚拟

    • 一个物理上的实体变为若干逻辑上的对应物

      • 时分复用技术

      • 空分复用技术
        在这里插入图片描述
        在这里插入图片描述

  • 异步

    • 由于资源有限,进程的执行不是一贯到底,走走停停,以不可预知的速度前进
      在这里插入图片描述

并发和共享互为存在条件(最基本特征)

操作系统的特征思维导图

在这里插入图片描述

操作系统的启动

哈工大版本

  • 在这里插入图片描述

    • x86 PC为例

    • BIOS映射区:固化在主存ROM中,用于检查RAM、键盘、显示器、软硬磁盘等,并将磁盘第一个扇区读入主存

    • 引导扇区代码(bootsect.s一段汇编代码):将操作系统读入内存,转入setup.s执行

      • 补充:该程序的主要作用是首先把从磁盘第2个扇区开始的4个扇区的setup模块加载到内存紧接着bootsect后面位置((0x90200)),再把磁盘上setup模块后面的system模块加载到内存0x10000开始的地方
    • setup模块(setup.s汇编代码执行)

      • 读硬件参数存储到内存数据结构中,初始化gdt表

        • gdt表(全局描述表):保护模式下,以数组的形式存储全局的段的描述符

        • idt表(中断描述符表):记录了中断号和调用函数之间的关系

      • system模块移动到物理内存起始位置处(0x0000),启动保护模式,转跳到0x0000处

    • system模块

      • head.s:初始化一些gdt表、idt表、页表

      • main.c:一堆初始化函数

王道版本

  • 在这里插入图片描述

    • CPU执行ROM中引导程序(硬件自检,再开机)

    • 磁盘第一块------主引导记录读入内存,执行磁盘引导程序,扫描分区表

    • 以活动分区读入分区引导记录,并执行

    • 以根目录下找到完整操作系统初始化程序(启动管理器)并执行、开机

操作系统的运行环境(王道)

预备知识:程序是如何运行的?

在这里插入图片描述

内核程序v.s.应用程序

在这里插入图片描述

特权指令v.s.非特权指令

在这里插入图片描述

CPU的状态

  • 在这里插入图片描述
    在这里插入图片描述

    • 内核态(管态/核心态):CPU可以执行特权指令,操作系统内核程序运行在核心态

    • 用户态(目态):CPU只能执行非特权指令

    • 内核态->用户态

      • 执行一条特权指令,修改PSW中“用户态”,操作系统主动让出CPU使用权
    • 用户态->内核态

      • 由“中断”引发(内中断、陷入指令、访管指令、Trap指令),硬件完成,操作系统强行夺回CPU使用权
        在这里插入图片描述

操作系统的运行机制思维导图

在这里插入图片描述

中断与异常

中断的作用

在这里插入图片描述
在这里插入图片描述

中断的分类

在这里插入图片描述

  • 异常(内中断)

    • 例外、陷入、访管、Trap指令,硬件故障,软件中断

在这里插入图片描述

  • 中断(外中断)

    • 来自CPU执行指令之外的事件发生导致中断(外设请求、人为干预)
      在这里插入图片描述
  • 中断处理过程

    • 中断隐指令(硬件完成)

      • 关中断

      • 保存断点

      • 中断服务程序寻址

    • 中断服务程序(软件实现)

      • 保存现场和屏蔽字

      • 开中断

      • 执行中断服务程序

      • 关中断

      • 恢复现场和屏蔽字

      • 开中断

      • 中断返回
        在这里插入图片描述

中断和异常思维导图

在这里插入图片描述

系统调用(广义指令)

  • 操作系统接口(哈工大)

    • 三种用户使用方式(上层提供服务)

      • 都是通过c语言调用一些操作系统提供的重要函数实现,重要函数即操作系统接口,表现为函数调用,因为由系统提供,称为系统调用

        • 命令行:本质是系统初始化完,最后执行的一段死循环等待用户输入的程序

        • 图形按钮:基于消息机制

          • 消息机制:操作系统实现一个消息队列,应用程序循环调用一个函数,从操作系统将消息拿出来,每取出一个就会调用对应的消息处理函数
        • 应用程序

    • POSIX:IEEE制定的一个标准族

      • 统一不同操作系统的系统调用接口:fork、open、EACCES等
    • 系统调用的实现

      • 在这里插入图片描述

        • 用户调用printf,通过库函数变成int 0x80代码,系统在初始化时将int 0x80代码做成一个system call进入内核态,system call中断处理调用system call table去查表,根据传递的系统调用号,最后调用sys_write
  • 系统调用概念

    • 用户在程序中调用操作系统子功能,可视为特殊的公共子程序
  • 系统调用过程

    • 传递系统调用参数

    • 执行陷入指令(访管指令/trap指令)主动引发一个内中断

    • 执行服务程序

    • 返回用户态

系统调用与库函数的区别

在这里插入图片描述

什么功能要用到系统调用?

在这里插入图片描述

系统调用的过程

在这里插入图片描述

系统调用思维导图

在这里插入图片描述

操作系统历史

哈工大分两条线讲

  • IBSYS

    • OS/360

      • MULTICS

        • UNIX

          • LINUS

          • System

            • Mac OS

              • iOS
  • CP/M

    • QDOS

      • MS-DOS

        • WINDOWS

王道版本

操作系统(OS)发展阶段
  • 手工操作阶段在这里插入图片描述

    • 单道批处理阶段在这里插入图片描述

      • 多道批处理系统在这里插入图片描述

        • 分时操作系统在这里插入图片描述

          • 实时操作系统在这里插入图片描述

            • 网络操作系统

              • 分布式计算机系统

                • 个人计算机操作系统

                  • 微型计算机操作系统
                    在这里插入图片描述
OS的发展与分类思维导图

在这里插入图片描述

  • 所有工作需要人工干预

    • 自动性:作业自动执行

      • 操作系统出现

        • 交互性强

          • 抢占式,优先级高者优先

            • 服务于计算机网络,集中式控制方式

              • 并行工作,协同完成任务,无主从之分
  • 用户独占全机,资源利用率低

    • 顺序性:作业依次执行

      • 中断技术,无人机交互

          - 及时,可靠,交互性不如分时
        
  • CPU等待手工操作,利用率低

    • 单道性:仅有一道程序执行

      • 宏观上并行,微观上串行

          - 硬实时系统:飞机控制系统,导弹系统
        

软实时系统:订票系统

操作系统体系结构(新考点)

在这里插入图片描述

操作系统的内核

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

分层结构

  • 内核分多层,每层可单向调用更低一层提供的接口

    • 便于调试和验证(逐层调试验证),易扩充维护

    • 难以定义各层边界,效率低,不可夸层调用
      在这里插入图片描述

模块化

  • 将内核分为多个模块,模块间相互协作,内核=主模块+可加载内核模块

    • 易维护,可多模块同时开发;支持动态加载新的内核模块;任何模块可以直接调用其他模块

    • 模块间相互依赖,难以调试

在这里插入图片描述

宏内核(大内核)

  • 在这里插入图片描述

变态:CPU转态的转换
在这里插入图片描述

- 所有功能都放在内核中- 性能高,内核内部功能可以互相直接调用- 内核功能复杂,难以维护,内核某个功能模块出错,可能导致系统崩溃

微内核

在这里插入图片描述

变态:CPU转态的转换

  • 在这里插入图片描述

    • 只把中断、原语、进程通信等核心功能放入内核。进程管理、文件管理、设备管理等功能以用户进程的形式运行在用户态

    • 内核小功能少、易于维护,可靠性高;功能模块崩溃不会导致整个系统崩溃

    • 性能低,需要频繁切换用户态/核心态,用户态下各功能模块不可以直接互相调用,只能内核的“消息传递”间接通信
      在这里插入图片描述

外核

  • 内核负责进程调度、进程通信等功能,外盒负责为用户进程安全分配硬件资源

    • 外核可直接给用户进程分配“不虚拟、不抽象”的硬件资源

    • 减少虚拟硬件资源的“映射层”,提升效率

    • 降低了系统一致性,系统复杂
      在这里插入图片描述

虚拟机(新考点)

第一类VMM

  • 在这里插入图片描述

    • 安装Guset OS时,VMM要在原本的硬盘上自行分配存储空间

    • 性能更好,可迁移性更差

    • 第一类VMM运行在最高特权级,可以执行最高特权指令

第二类VMM

  • 在这里插入图片描述

    • 拥有自己的虚拟磁盘,实际上上Host OS文件系统中的一个大文件,分配到的是虚拟内存

    • 性能差,需要Host OS为中介

    • 第二类VMM部分运行在用户态,部分运行在内核态。Guest OS发出系统调用会被VMM截获,转化为VMM对Host OS的系统调用

在这里插入图片描述

考研真题

408 - 2023

12. 计算程序执行速度和用户CPU时间

若机器M的主频为1.5 Hz,在M上执行程序P的指令条数为5 × 10^5,P的平均CPI为1.2,则P在M上的指令执行速度和用户CPU时间分别为哪个选项?

A. 0.8 GIPS, 0.4 ms

B. 0.8 GIPS, 0.4 us

C. 1.25 GIPS, 0.4 ms

D. 1.25 GIPS, 0.4 us
基础知识

在理解和解析这个问题之前,需要了解以下基础知识:

  1. 主频(Clock Frequency):主频是计算机处理器(CPU)的时钟频率,通常以赫兹(Hz)为单位表示。它表示CPU每秒钟的时钟周期数。例如,如果主频为1.5 Hz,那么CPU每秒钟将执行1.5亿个时钟周期。

  2. 指令执行速度(IPS,Instructions Per Second):指令执行速度是计算机在单位时间内执行的指令数。它通常以GIPS(Giga Instructions Per Second)为单位表示。计算指令执行速度需要考虑主频和每条指令的平均CPI(Cycles Per Instruction)。

  3. 指令条数:指令条数是程序中包含的机器指令的数量。这是一个影响程序执行时间的因素。

  4. 用户CPU时间:用户CPU时间是指程序在CPU上执行的实际时间,通常以毫秒(ms)为单位表示。它取决于总时钟周期数和主频。

解析:

首先,我们需要计算程序P在机器M上的指令执行速度和用户CPU时间。以下是计算过程:

  • 程序P的指令条数为5 × 10^5。
  • P的平均CPI为1.2。
  • 机器M的主频为1.5 Hz。

计算程序P的总时钟周期数:
总时钟周期数 = 指令条数 × 平均CPI = 5 × 10^5 × 1.2 = 6 × 10^5

机器M的主频为1.5 Hz,这意味着每秒有1.5 × 10^9 个时钟周期。

现在,计算指令执行速度(IPS,Instructions Per Second):
指令执行速度 = 主频 / 平均CPI = (1.5 × 10^9) / 1.2 = 1.25 × 10^9 IPS = 1.25 GIPS

最后,计算用户CPU时间:
用户CPU时间 = 总时钟周期数 / 主频 = (6 × 10^5) / (1.5 × 10^9) = 0.4 × 10^(-3) 秒 = 0.4 ms

所以,程序P在机器M上的指令执行速度为1.25 GIPS,用户CPU时间为0.4毫秒(ms)。因此,答案是选项C:1.25 GIPS, 0.4 ms。

408 - 2022

12. 计算平均CPI和CPU执行时间

问题: 某计算机主频为1GHz,程序P运行过程中,共执行了10000条指令,其中,80%的指令执行平均需1个时钟周期,20%的指令执行平均需10个时钟周期。程序P的平均CPI(Cycles Per Instruction)和CPU执行时间分别是多少?

A. 2.8,28μs

B. 28,28μs

C. 2.8,28ms

D. 28,28ms

解答:

基础知识:

  • CPI(Cycles Per Instruction): CPI 表示每条指令执行所需的平均时钟周期数。它是衡量计算机性能的一个重要指标。公式为:

    [CPI = \frac{\text{总时钟周期数}}{\text{执行的指令数}}]

  • CPU执行时间: CPU执行时间表示程序运行所需的时间,通常以秒为单位。

按照题意,程序P的指令总数为10000,其中80%的指令CPI为1,20%的指令CPI为10。首先计算平均CPI:

平均CPI = (80% × 1 + 20% × 10) = 2.8

计算机主频为1GHz,即1 × 10^9 Hz。现在可以计算CPU执行时间:

CPU执行时间 = 10000 × 2.8 / (1 × 10^9) = 28μs

所以,程序P的平均CPI是2.8,CPU执行时间是28μs。

正确答案是 A. 2.8,28μs

20. 高级语言程序转换为可执行目标文件的过程

问题: 将高级语言源程序转换为可执行目标文件的主要过程是什么?

A. 预处理→编译→汇编→链接

B. 预处理→汇编→编译→链接

C. 预处理→编译→链接→汇编

D. 预处理→汇编→链接→编译

解答:

基础知识:

将高级语言源程序转换为可执行目标文件的主要过程通常包括以下步骤:

  1. 预处理(Preprocessing): 在这个阶段,预处理器根据预处理指令(如宏定义、条件编译等)对源代码进行处理。预处理器会展开宏定义、包含头文件等,生成经过预处理的源代码。

  2. 编译(Compilation): 在这个阶段,编译器将预处理后的源代码转换为汇编代码。编译器对代码进行词法分析、语法分析、语义分析,生成相应的中间代码或汇编代码。

  3. 汇编(Assembly): 在这个阶段,汇编器将汇编代码转换为机器码指令。汇编器将汇编代码中的每条指令翻译成机器码表示。

  4. 链接(Linking): 在这个阶段,链接器将各个源文件编译生成的目标文件及所需的库文件合并在一起,生成最终的可执行目标文件。链接器会解析符号引用关系,将函数和变量的引用与其定义进行匹配,并进行地址重定位等操作,使得程序能够正确地执行。

因此,正确的过程是:预处理→编译→汇编→链接,选项A是正确的。

答案是 A. 预处理→编译→汇编→链接

拓展

例如gcc编译器将hello.c转换为可执行目标文件hello的过程如下:

对应的命令如下:

预处理:gcc -E hello.c -o hello.i
编译:gcc –S hello.i –o hello.s
汇编:gcc –c hello.s –o hello.o
链接:gcc hello.o –o hello

408 - 2021

12. 计算机浮点运算速度与操作次数的关系

问题:2017 年公布的全球超级计算机 TOP 500 排名中,我国“神威·太湖之光”超级计算机蝉联第一,其浮点运算速度为93.0146 PFLOPS,说明该计算机每秒钟内完成的浮点操作次数约为?

A. 9.3×10^13次
B. 9.3×10^15次
C. 9.3 千万亿次
D. 9.3 亿亿次

答案:D

基础知识:
PFLOPS(PetaFLOPS)表示每秒钟完成的浮点操作次数达到了10^15次。根据题目中提供的数据,神威·太湖之光超级计算机的浮点运算速度为93.0146 PFLOPS~每秒9.3×10次浮点运算,因此每秒钟完成的浮点操作次数约为9.3×10^16次。

未完待续,逐张试卷整理中,会一直更新到2009

相关文章:

【操作系统】考研真题攻克与重点知识点剖析 - 第 1 篇:操作系统概述

前言 本文基础知识部分来自于b站:分享笔记的好人儿的思维导图与王道考研课程,感谢大佬的开源精神,习题来自老师划的重点以及考研真题。此前我尝试了完全使用Python或是结合大语言模型对考研真题进行数据清洗与可视化分析,本人技术…...

Mac删除照片快捷键ctrl加什么 Mac电脑如何批量删除照片

Mac电脑是很多人喜欢使用的电脑,它有着优美的设计、高效的性能和丰富的功能。如果你的Mac电脑上存储了很多不需要的照片,那么你可能会想要删除它们,以节省空间和提高速度。那么,Mac删除照片快捷键ctrl加什么呢?Mac电脑…...

数据安全认证:保护您的数据安全的关键步骤

随着信息技术的飞速发展,数据安全问题日益凸显。数据泄露、网络攻击等事件频发,给企业和个人带来极大的损失。因此,数据安全认证成为保护数据安全的重要措施。本文将探讨数据安全认证的重要性、认证流程和相关标准,以期帮助读者更…...

表白墙/留言墙 —— 初级SpringBoot项目,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学

🧸欢迎来到dream_ready的博客,📜相信你对这篇博客也感兴趣o (ˉ▽ˉ;) 用户登录前后端开发(一个简单完整的小项目)——SpringBoot与session验证(带前后端源码)全方位全流程超详细教程 目录 项目前端页面展…...

【海德教育】报考建筑八大员需要满足下列条件:

1 、初级(具备以下条塌氏件之一) ( 1 )本专业或相关专业中专以上学历竖陆。 ( 2 )从事本职业工作 2 年以上。 2 、中级(具备以下条件之一) ( 1 )本专业或相关专业大专以上学历。 ( 2 )连续从事本职业工作 4 年以上。 ( 3 )取得余衫顷本职业初级证书,从事本职业工作 …...

酷开科技,让家庭更有温度!

生活中总有一些瞬间,会让我们感到无比温暖和幸福。一个拥抱、一句问候、一杯热茶,都能让我们感受到家庭的温馨和关爱。酷开科技也用自己的方式为我们带来了独属于科技的温暖,通过全新的体验将消费者带进一个充满惊喜的世界,让消费…...

九州未来入选“2023边缘计算产业图谱”三大细分领域

10月26日,边缘计算社区正式发布《2023边缘计算产业图谱》,九州未来凭借深厚的技术积累、优秀的产品服务、完善的产品解决方案体系以及开源贡献,实力入选图谱——边缘计算平台、边缘计算开源、边缘云服务提供商三大细分领域,充分彰…...

centos ubantu IP一直变化,远程连接不上问题

文章目录 一、为什么IP地址会变1.主机DHCP导致 二、解决IP地址变化1.centos2.ubantu 总结 虚拟机能连接为互联网,但下一次启动IP地址再发生变化,无法使用ssh远程连接 一、为什么IP地址会变 1.主机DHCP导致 虚拟机系统(ubantu,centos…)启动后会向本地申请IP地址租约,租聘的I…...

多线程---JUC

文章目录 什么是JUC?Callable接口ReentrantLockReentrantLock VS synchronized 原子类线程池信号量SemaphoreCountDownLatch 什么是JUC? JUC是:java.util.concurrent这个包名的缩写。它里面包含了与并发相关,即与多线程相关的很多…...

事务隔离级别

隔离级别 概念理解 事务的概念 事务是数据库管理系统中的一个基本单位,它代表了一组数据库操作。 事务是一个不可分割的工作单元,要么全部成功执行,要么全部失败回滚。 事务的目标是确保数据库的一致性、隔离性、持久性和原子性&#xff…...

centos7安装配置及Linux常用命令

目录 一.centos7的安装 1.1centos7的简介 1.2步骤 ​编辑 1.3登录 ​编辑 1.4MobaXterm使用 二.Linux常用命令&模式 1.1 常用命令 1.2 三种模式 命令模式 编辑模式 末行模式 1.3 命令使用&换源 换源 1.4 拍照备份 一.centos7的安装 1.1centos7的简…...

C语言调用lua

C语言是一种非常流行的编程语言,而Lua是一种基于C语言开发的脚本语言。相信大家都知道,Lua可以使用C语言来扩展其功能,进而实现更复杂的功能。而在Lua的各种实现中,luajit也是其中一种非常流行的实现。在本篇博客中,我…...

算法通关村第十二关黄金挑战——最长公共前缀问题解析

大家好,我是怒码少年小码。 最长公共前缀 LeetCode 14:编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”。 示例: 输入:strs [“flower”,“flow”,“flight”]输出&#xff…...

Python运维学习Day02-subprocess/threading/psutil

文章目录 1. 检测网段在线主机2. 获取系统变量的模块 psutil 1. 检测网段在线主机 import subprocessdef checkIP(ip):cmd fping -n 1 -w 1 {ip}null open(nlll,modewb)status subprocess.call(cmd,shellTrue,stdoutnull,stderrnull)if status 0:print(f"主机[{ip}]在…...

开源库存管理系统InvenTree的安装

本文是应网友 shijie880500 要求折腾的; 什么是 InvenTree ? InvenTree 是一个开源的库存管理系统,提供强大的低级别库存控制和零件跟踪。InvenTree 系统的核心是 Python/Django 数据库后端,它提供了一个管理界面(基于…...

[双指针] (二) LeetCode 202.快乐数 和 11.盛最多水的容器

[双指针] (二) LeetCode 202.快乐数 和 11.盛最多水的容器 快乐数 202. 快乐数 题目解析 (1) 判断一个数是不是快乐数 (2) 快乐数的定义:将整数替换为每个位上的和;如果最终结果为1,就是快乐数 (3) 这个数可能变为1,也可能无…...

前端、HTTP协议(重点)

什么是前端 前端是所有跟用户直接打交道的都可以称之为是前端 比如:PC页面、手机页面、平板页面、汽车显示屏、大屏幕展示出来的都是前端内容 能够用肉眼看到的都是前端 为什么要学前端 学了前端以后我们就可以做全栈工程师(会后端、会前端、会DB、会运维等) 咱…...

软件开发项目文档系列之六概要设计:构建可靠系统的蓝图

概要设计是软件开发项目中至关重要的阶段,它为整个系统提供了设计蓝图和技术方向。它的重要性在于明确项目目标、规划系统结构、确定技术选择、识别风险、以及为团队提供共同的视角,确保项目在后续开发阶段按计划进行。概要设计的主要内容包括项目的背景…...

[C++]命名空间等——喵喵要吃C嘎嘎

希望你开心,希望你健康,希望你幸福,希望你点赞! 最后的最后,关注喵,关注喵,关注喵,大大会看到更多有趣的博客哦!!! 喵喵喵,你对我真的…...

安装ora2pg遇到如下问题

通过源码安装ora2pg成功后,查询帮助信息报错 [rootlocalhost bin]# ora2pg --help Cant locate open.pm in INC (you may need to install the open module) (INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/shar…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

【Linux】C语言执行shell指令

在C语言中执行Shell指令 在C语言中&#xff0c;有几种方法可以执行Shell指令&#xff1a; 1. 使用system()函数 这是最简单的方法&#xff0c;包含在stdlib.h头文件中&#xff1a; #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX&#xff08;不访问内存&#xff09;XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)

参考官方文档&#xff1a;https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java&#xff08;供 Kotlin 使用&#xff09; 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...

Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换

目录 关键点 技术实现1 技术实现2 摘要&#xff1a; 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式&#xff08;自动驾驶、人工驾驶、远程驾驶、主动安全&#xff09;&#xff0c;并通过实时消息推送更新车…...

[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.

ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #&#xff1a…...

为什么要创建 Vue 实例

核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...

认识CMake并使用CMake构建自己的第一个项目

1.CMake的作用和优势 跨平台支持&#xff1a;CMake支持多种操作系统和编译器&#xff0c;使用同一份构建配置可以在不同的环境中使用 简化配置&#xff1a;通过CMakeLists.txt文件&#xff0c;用户可以定义项目结构、依赖项、编译选项等&#xff0c;无需手动编写复杂的构建脚本…...

小木的算法日记-多叉树的递归/层序遍历

&#x1f332; 从二叉树到森林&#xff1a;一文彻底搞懂多叉树遍历的艺术 &#x1f680; 引言 你好&#xff0c;未来的算法大神&#xff01; 在数据结构的世界里&#xff0c;“树”无疑是最核心、最迷人的概念之一。我们中的大多数人都是从 二叉树 开始入门的&#xff0c;它…...