计算机考研精炼 操作系统
第 14 章 操作系统概述
14.1 基本概念
14.1.1 操作系统的基本概念
如图 14 - 1 所示,操作系统是计算机系统中的一个重要组成部分,它位于计算机硬件和用户程序(用户)之间,负责管理计算机的硬件资源,为用户和应用程序提供一个统一的、友好的、安全的接口,使计算机能够高效运行。
操作系统具有 4 个基本特征,包括并发性、共享性、虚拟性和异步性。并发性指的是操作系统可以在一段时间内处理多个任务。共享性指的是操作系统可以让多个进程共享计算机中的各类资源。虚拟性指的是操作系统可以为每个进程提供一个虚拟的计算机环境,包括通过时分复用虚拟 CPU,通过空分复用虚拟内存等。异步性是指操作系统可以响应不同的事件并采取相应的措施,而不必等待前一个事件处理完成。这种事件可以是来自用户的输入、来自硬件设备的中断、来自其他进程的信号等。例如,在一个多任务操作系统中,当一个进程被阻塞等待输入时,操作系统可以切换到其他进程并继续执行,而不必等待当前进程的输入完成。当输入完毕后,操作系统会再次切换回该进程并继续执行。
显然,如果要体现共享性,至少需要多个进程并发,而进程并发也必须共享资源,因此,虚拟性和异步性也需要依赖于并发性和共享性。由此可以说,并发性和共享性是操作系统最基本的两个特征。
14.1.2 操作系统的发展历程
操作系统的发展历程可以追溯到 20 世纪 50 年代。最初的操作系统是批处理系统,随后发展出分时系统、实时系统、分布式系统等多种类型的操作系统。现代操作系统一般具有多任务处理、多用户支持、虚拟内存、文件系统、网络支持等功能。批处理系统是过去 408 真题的重点,考生应该重点关注。由于近年 408 真题风格多变,与实时系统和分时系统相关的考题未必不会出现在未来的真题中。
14.1.3 程序运行环境
1. CPU 运行模式
CPU 运行模式分为内核模式和用户模式两种。内核模式下的程序可以访问所有的系统资源,包括内核数据结构和硬件资源等;而用户模式下的程序只能访问受限的系统资源,不能直接访问内核数据结构和硬件资源,必须通过系统调用等方式才能访问这些资源。
2. 中断和异常的处理
中断和异常是操作系统处理外部事件的重要机制。中断是由硬件设备发出的信号,表示设备已经完成了某个操作或发生了某个事件;异常则是由程序执行过程中遇到的错误或异常情况所触发的事件。操作系统可以通过中断和异常来响应外部事件,并采取相应的措施。
如图 14 - 2 所示,中断处理流程主要分为如下几个步骤。
(1)测定是否有未响应的中断信号。
(2)保护被中断进程的 CPU 环境。
(3)转入相应的中断处理程序。
(4)中断处理。
(5)恢复 CPU 的现场并退出中断。3. 系统调用
系统调用是程序访问操作系统服务的一种机制。程序在用户模式下通过系统调用向操作系统请求服务,例如读 / 写文件、创建进程、进程间通信等。系统调用是程序与操作系统之间的接口,操作系统根据系统调用提供相应的服务并返回结果。
图 14 - 3 所示为系统调用的基本流程。
(1)应用程序通过系统调用向操作系统发起请求,这个过程需要传递系统调用参数。
(2)执行 trap 指令,使 CPU 从用户模式转为内核模式。
(3)操作系统在内核模式下执行系统服务。
(4)操作系统完成系统服务后,返回到用户模式,继续执行。
4. 程序的链接与装入
程序的链接和装入是指将程序中的模块链接成一个可执行文件,并将可执行文件装入内存中执行的过程。链接过程将程序中的各个模块链接起来形成一个完整的程序,而装入过程将可执行文件装入内存中并分配相应的地址空间。程序的链接和装入过程如图 14 - 4 所示。
5. 程序运行时内存映像与地址空间
程序运行时,操作系统会为其分配一定的地址空间,包括代码段、数据段和堆栈段等。代码段存放程序的可执行代码,数据段存放程序运行时所需的数据,堆栈段则用于存放程序的运行时栈。操作系统还会维护程序运行时的内存映像,包括代码、数据、堆栈等的物理地址和虚拟地址的映射关系,以及页面置换和内存保护等机制,以保证程序运行的安全性和稳定性。操作系统为每个进程分配独立的虚拟地址空间,使每个进程都有自己独立的地址空间,可以独立地访问内存中的数据。进程之间的地址空间是相互独立的,每个进程只能访问自己的地址空间,不能直接访问其他进程的地址空间。
14.1.4 操作系统结构
根据应用场景的不同,操作系统可以设计成不同的结构,如图 14 - 5 所示,宏内核和微内核就是两种常见的结构。
1. 分层
分层式操作系统是一种将操作系统的不同功能划分为多个层次的操作系统设计范式,每个层次负责一定的功能,层与层之间通过标准接口进行通信。分层式操作系统具有良好的模块化结构和可扩展性,同时层次结构也有助于提高操作系统的可靠性和安全性。
2. 模块化
模块化操作系统是一种基于模块化设计的操作系统,将操作系统的各个组件划分为独立的模块,模块之间通过标准接口进行通信。模块化操作系统具有较好的可扩展性和可维护性,可以方便地添加新的功能模块或替换已有的模块,但由于模块之间的耦合性较高,因此模块化操作系统的性能和可靠性相对较差。
相关文章:
计算机考研精炼 操作系统
第 14 章 操作系统概述 14.1 基本概念 14.1.1 操作系统的基本概念 如图 14 - 1 所示,操作系统是计算机系统中的一个重要组成部分,它位于计算机硬件和用户程序(用户)之间,负责管理计算机的硬件资源,为用户和…...
多商户电商系统整套源码开源,支持二次开发,构建多店铺高效联动运营方案
在数字化浪潮席卷全球的今天,电商行业竞争愈发激烈,多商户电商平台凭借其独特的生态优势,成为众多企业和创业者的热门选择。一套优质的多商户电商系统不仅能为商家提供稳定的销售渠道,还能为平台运营者创造巨大的商业价值。分享一…...
MS31860T——8 通道串行接口低边驱动器
MS31860T 是一款 8 通道低边驱动器,包含 SPI 串口通信、 PWM斩波器配置、过流保护、短路保护、欠压锁定和过热关断功能, 芯片可以读取每个通道的状态。MS31860T 可以诊断开路的负载情况,并可以读取故障信息。外部故障引脚指示芯片的故障状态。…...
解决GoLand无法Debug的问题
文章目录 解决GoLand无法Debug的问题问题描述解决方案方法一:安装并替换Delve调试工具方法二:通过GoLand自动安装方法三:配置自定义Delve路径 验证解决方案常见问题排查总结 解决GoLand无法Debug的问题 问题描述 在使用GoLand进行Go语言开发…...
centos升级glibc
描述 参考的文章 基于CentOS更新 glibc - 解决 GLIBC_2.29‘ not found_glibc2.29-CSDN博客 执行步骤 # 下载资源 wget https://ftp.gnu.org/gnu/libc/glibc-2.34.tar.gztar xvf glibc-2.34.tar.gz 服务器上可以能会出现下载较慢的情况,可以再自己的电脑上下载&…...
【Unity】如何解决UI中的Button无法绑定带参数方法的问题
问题描述: 1.直接为Button绑定一个带参数方法,报错了。 解决办法: 将该方法通过另一个方法进行封装即可。...
回收铼树脂RCX-5143
Tulsimer RCX-5143 是一种专为回收铼(Re)设计的大孔弱碱阴离子交换树脂,其核心功能是从酸性浸出液中选择性吸附高铼酸根,并通过高效洗脱实现铼的富集与纯化。以下从技术参数、工艺应用、经济性及行业案例等维度展开分析࿱…...
蓝桥杯赛后总结
首先需要声明一下,编程小白博主参加的是第十六届蓝桥杯大赛(软件赛)C/C组。 个人感受而言,第十六届蓝桥杯软件赛C/C组是比较有难度的,特别是填空题,一共两道题,小白的我是一道填空题也不会做&a…...
PCB设计工艺规范(三)走线要求
走线要求 1.走线要求2.固定孔、安装孔、过孔要求3.基准点要求4.丝印要求 1.走线要求 印制板距板边距离:V-CUT 边大于 0.75mm,铣槽边大于0.3mm。为了保证 PCB 加工时不出现露铜的缺陷,要求所有的走线及铜箔距离板边:V-CUT边大于 0.75mm,铣槽边…...
第十节:文本编辑
理论知识 文本编辑器的基本概念:文本编辑器是用于创建和编辑文本文件的工具。在 Linux 系统中,常见的文本编辑器有 vi、vim、nano 等。vi 和 vim 编辑器:vi 是一款经典的文本编辑器,vim 是 vi 的增强版,提供了更多的功…...
【Hive入门】Hive性能优化:执行计划分析EXPLAIN命令的使用
目录 1 EXPLAIN命令简介 1.1 什么是EXPLAIN命令? 1.2 EXPLAIN命令的语法 2 解读执行计划中的MapReduce阶段 2.1 执行计划的结构 2.2 Hive查询执行流程 2.3 MapReduce阶段的详细解读 3 识别性能瓶颈 3.1 数据倾斜 3.2 Shuffle开销 3.3 性能瓶颈识别与优化 4 总结 在大…...
Spring AI应用系列——基于ARK实现多模态模型应用
ARK 在这里指的是阿里云推出的 AIGC 研发平台 ARK,是阿里云面向开发者和企业用户打造的一站式 AIGC(AI Generated Content,人工智能生成内容)开发平台。 1. 引言 本文将深入探讨 ARK Multi-Model 的实现原理、架构设计以及关键参…...
从边缘到云端:边缘计算与云计算的协同未来
在数字化转型的浪潮中,云计算和边缘计算作为两种重要的计算范式,正在深刻改变着我们的生活和工作方式。云计算以其强大的计算能力和数据存储能力,已经成为企业数字化转型的核心支撑;而边缘计算则凭借其低延迟和高效率的特点&#…...
基于策略模式实现灵活可扩展的短信服务架构
基于策略模式实现灵活可扩展的短信服务架构 引言 在企业级应用开发中,短信服务是不可或缺的基础功能之一。随着业务发展,我们可能需要接入多个短信服务提供商(如阿里云、腾讯云、第三方短信网关等),并能够在不修改核…...
安全指南 | MCP安全检查清单:AI工具生态系统的隐形守护者
随着大型语言模型(LLM)技术的迅猛发展,MCP(Model Context Protocol)已经成为连接AI模型与外部工具、数据源的关键桥梁。它为AI应用(如Claude Desktop、Cursor等)提供了更高效的集成体验…...
ChipCN IDE KF32 导入工程后,无法编译的问题
使用ChipON IDE for KungFu32 导入已有的工程是时,发现能够编译,但是点击,同时选择硬件调试时 没有任何响应。查看工程调试配置时,发现如下问题: 没有看到添加有启动配置,说明就是这里的问题了(应该是IDE的…...
Win下的Kafka安装配置
一、准备工作(可以不做,毕竟最新版kafka也不需要zk) 1、Windows下安装Zookeeper (1)官网下载Zookeeper 官网下载地址 (2)解压Zookeeper安装包到指定目录C:\DevelopApp\zookeeper\apache-zoo…...
Vue2 vs Vue2.7 深度对比
Vue2 vs Vue2.7 深度对比 前言 作为 Vue 生态中承前启后的重要版本,Vue2.7 在保留 Vue2 核心特性的同时,引入了 Vue3 的诸多创新设计。本文将深入解析二者差异,通过架构对比、代码实战和性能基准测试,为企业技术选型提供决策依据…...
WPF使用高性能图表
WPF高性能图表实现方案 一、WPF图表技术选型对比 技术方案优点缺点适用场景WPF原生控件无需第三方依赖,完全可控开发成本高,性能有限简单图表需求OxyPlot轻量级,跨平台,开源功能相对基础中小型应用LiveCharts现代API,支持动画复杂场景性能一般中…...
当算力遇上贫困补助:能否让补助精准到户?
目录 一、让"贫困画像"从模糊到高清 二、破解扶贫"三大世界难题" 三、算力扶贫路上的三座大山 算力应该温暖谁? 以往扶贫的画面是“扶贫干部背着米面油翻山越岭”,当算力发展到一定程度,会呈现出一种新的画面:农民伯伯用手机扫描…...
基于连接感知的实时困倦分类图神经网络
疲劳驾驶是导致交通事故的主要原因之一。脑电图(EEG)是一种直接从大脑活动中检测睡意的方法,已广泛用于实时检测驾驶员的睡意。最近的研究表明,使用基于脑电图数据构建的大脑连接图来预测困倦状态的巨大潜力。然而,传统的脑连接网络与下游预测…...
Set系列之HashSet源码分析:原理剖析与实战对比
引言:哈希集合的基石 1.1 集合框架的核心地位 数据存储的三大特性:唯一性、无序性、快速访问HashSet的市场占有率:Java集合框架中使用率TOP3(占日常开发场景的45%) 1.2 为什么需要深入理解HashSet? 隐藏…...
vscode vim插件操作查缺补漏
一.多光标编辑 在 VSCode 中使用 Vim 插件 (VSCodeVim) 实现多光标选择和同时编辑的常用方法: 1. 逐个添加匹配项 (推荐) 快捷键: CtrlD (Win/Linux) / CmdD (Mac)操作: 将光标放在想选中的单词上。重复按此快捷键,会依次选中下…...
Python 爬取微店商品列表接口(item_search)的实战指南
在电商数据分析、市场调研或竞品分析中,获取商品列表信息是常见的需求。微店作为知名的电商平台,提供了丰富的商品资源和相应的 API 接口。本文将详细介绍如何使用 Python 爬虫技术,通过微店的 item_search 接口根据关键词搜索商品列表&#…...
游戏性能测试
1. 分阶段,看目的,确定高中低三档测试机,最低档机的确定需要和客户端主程和制作人等共同确定 确定三档机的方式: 1. 要上线地区的top100,根据用户占比,划分出三档 2. 根据用研部门提供的数据,确…...
Webug4.0通关笔记06- 第8关CSV注入
目录 CSV注入漏洞 1.CSV漏洞简介 2.漏洞原理 (1)公式执行 (2)DDE机制 (3)OS命令执行 3.漏洞防御 第08关 CSV注入 1.打开靶场 2.修改源码 3.注入命令 4.导出excel表 5.打开excel表 CSV注入漏洞…...
最新DeepSeek-Prover-V2-671B模型 简介、下载、体验、微调、数据集:专为数学定理自动证明设计的超大垂直领域语言模型(在线体验地址)
DeepSeek-Prover-V2-671B模型 简介、下载、体验、微调、数据集:专为数学定理自动证明设计的超大垂直领域语言模型(在线体验地址) 体验地址:[Hugging Face 在线体验]https://huggingface.co/playground?modelIddeepseek-ai/DeepS…...
iView Admin的side menu改为top menu
和iView Admin结缘于某次在“顾问群”里问,“有什么开源前端框架推荐吗?”。群里一位老开发答,“试试iView Admin”。于是我就试了试,发现很好用,对新手也很友好,试过撸一个管理后台的前端用了4天ÿ…...
2025上海车展 | 移远通信推出自研NG-eCall QuecOpen方案,助力汽车安全新标准加速落地
4月29日,在2025上海国际汽车工业展览会期间,全球领先的物联网和车联网整体解决方案供应商移远通信宣布,正式发布自主研发的NG-eCall(下一代紧急呼叫系统)QuecOpen解决方案。 该方案凭借高度集成的软硬件协同设计&…...
使用gitea发布软件包
1、新建hello工程 (1)HelloApplication.java package cn.ac.trimps.sv;import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplicati…...
如何加速机器学习模型训练:深入探讨与实用技巧
在机器学习和深度学习的应用中,训练模型通常需要耗费大量时间。随着数据集的增大、模型复杂度的提升以及任务的多样化,训练速度变得越来越重要。无论是在学术研究中,还是在工业应用中,加速训练过程不仅能提高工作效率,…...
HBuider中Uniapp去除顶部导航栏-小程序、H5、APP适用
文件pages.json中改"globalStyle" "globalStyle": {"navigationBarTextStyle": "black","navigationBarBackgroundColor": "#F8F8F8","backgroundColor": "#F8F8F8","titleNView"…...
scGPT-spatial:持续预训练scGPT用于空间转录组
空间转录组学已成为一种关键技术,可在细胞的空间环境中对其基因表达进行分析。公开可用的空间数据的迅速增长,为我们进一步理解驱动细胞命运决定和疾病进展的微环境提供了契机。然而,现有的基础模型大多是在scRNA-seq数据上进行预训练的&…...
ERP管理系统对企业财务管理有什么重要意义
在知识经济浪潮的推动下,企业的核心资产正经历着从传统厂房设备向知识产权的历史性跨越。专利技术、品牌价值、人才储备等无形资产逐渐成为驱动企业发展的核心引擎,但这类资产的非实体性与价值波动性,却让传统财务管理工具陷入"看得见摸…...
【数据库原理及安全实验】实验五 数据库备份与恢复
指导书原文 数据库的备份与恢复SSMS 【实验目的】 1) 熟悉并掌握利用界面操作进行数据库备份和恢复的原理和操作。 【实验原理】 1) 数据库的恢复包括大容量日志恢复模式和简单恢复模式。其中大容量日志恢复模式,简单地说就是要对大容量操作进行最小日志记录&a…...
【人脸去遮挡前沿】三阶段级联引导学习如何突破真实场景遮挡难题?
一、现实痛点:当人脸被遮挡,AI “认脸” 有多难? 你是否遇到过这样的场景? 中考体育测试:2025 年天津泰达街中考考场要求考生 “脸部无遮挡” 才能通过人脸识别入场,戴口罩、帽子的学生需现场调整发型。智能门锁:奇景光电在 CES 2025 推出的 WiseEye 掌静脉模块,通过掌…...
Kettle下载安装教程
## 什么是Kettle Kettle(现在也称为Pentaho Data Integration,简称PDI)是一款开源的ETL(Extract-Transform-Load)工具,用于数据抽取、转换和加载。它允许用户通过图形化界面设计和执行数据集成流程…...
树的序列化 - 学习笔记
树的序列化可以有很多种类:可以变成 dfs 序,可以变成欧拉序,还有什么括号序的科技。 但是除了第一个以外其他的都没什么用(要么也可以被已有的算法给替代掉)。所以表面上是讲树的序列化,实际上还是讲的 df…...
数电发票整理:免费实用工具如何高效解析 XML 发票数据
如今数字电子发票越来越普及,但是数电发票的整理还是颇有讲究~ 今天给大家介绍一个 XML 发票阅读器。使用它完全不收取任何费用,且无广告干扰,对财务人员而言十分实用。 01 软件介绍 这款软件就是XML格式(数电票)阅读…...
ubuntu22.04 qemu arm64 环境搭建
目录 创建 安装 Qemu 启动 # 进入qemu虚拟机后执行 qemu编译器安装 创建 qemu-img create ubuntu22.04_arm64.img 40G 安装 qemu-system-aarch64 -m 4096 -cpu cortex-a57 -smp 4 -M virt -bios QEMU_EFI.fd -nographic -drive ifnone,fileubuntu-22.04.5-live-server-a…...
数据转储(go)
随着时间推移,数据库中的数据量不断累积,可能导致查询性能下降、存储压力增加等问题。数据转储作为一种有效的数据管理策略,能够将历史数据从生产数据库中转移到其他存储介质,从而减轻数据库负担,提高系统性能&…...
LeetCode167_两数之和 Ⅱ - 输入有序数组
LeetCode167_两数之和 Ⅱ - 输入有序数组 标签:#数组 #双指针 #二分查找Ⅰ. 题目Ⅱ. 示例 0. 个人方法官方题解一:二分查找官方题解二:双指针 标签:#数组 #双指针 #二分查找 Ⅰ. 题目 给你一个下标从 1 开始的整数数组 numbers …...
【AI平台】n8n入门5:创建MCP服务,及vscode调用MCP测试
前言 用n8n搭建一个MCP服务,然后用开发环境的MCP测试工具,测试调用一下。例子简单,只为了解原理。在开发环境,安装测试mcp服务的工具,vscode和Trae操作类似,而且在一个机器上的话,安装的插件公…...
第六部分:实战项目与拓展
欢迎来到 OpenCV 教程的第六部分!你已经走过了从像素操作到特征提取、再到基础目标检测的旅程。现在,我们将迎接更激动人心的挑战:将这些技术结合起来,构建更贴近实际应用的系统。 本部分将带领你从更高层面思考如何设计一个计算…...
SQL Server连接异常 证书链是由不受信任的颁发机构颁发的
使用SQL Server连接数据库时报错如下: 标题: 连接到服务器 ------------------------------ 无法连接到 DESKTOP-N2KOQ8J\SQLEXPRESS。 ------------------------------ 其他信息: A connection was successfully established with the server, but then an erro…...
WebGL图形编程实战【5】:层次构建 × Shader初始化深度剖析
层次结构模型 三维模型和现实中的人类或机器人不一样,它的部件并没有真正连接在一起。如果直接转动上臂,那么肘部以下的部分,包括前臂、手掌和手指,只会留在原地,这样手臂就断开了。 所以,当上臂绕肩关节转…...
126. 单词接龙 II
题目 按字典 wordList 完成从单词 beginWord 到单词 endWord 转化,一个表示此过程的 转换序列 是形式上像 beginWord -> s1 -> s2 -> ... -> sk 这样的单词序列,并满足: 每对相邻的单词之间仅有单个字母不同。转换过程中的每个…...
【LeetCode Hot100】二叉树篇
前言 本文用于整理LeetCode Hot100中题目解答,因题目比较简单且更多是为了面试快速写出正确思路,只做简单题意解读和一句话题解方便记忆。但代码会全部给出,方便大家整理代码思路。 94. 二叉树的中序遍历 一句话题意 返回二叉树中序遍历的数…...
MySQL基础关键_002_DQL
目 录 一、初始化 二、简单查询 1.部分语法规则 2.查询一个字段 (1)查询员工编号 (2)查询员工姓名 3.查询多个字段 (1)查询员工编号、姓名 (2)查询部门编号、名称、位置 …...
游戏引擎学习第249天:清理调试宏
欢迎大家,让我们直接进入调试代码的改进工作 接下来,我们来看一下上次停留的位置。如果我没记错的话,上一场直播的结尾我有提到一些我想做的事情,并且在代码中留下了一个待办事项。所以也许我们今天首先做的就是解决这个问题。但…...