[1.#]第一章 计算机系统概述——知识回顾

news2024/11/16 23:35:13

第一章 计算机系统概述

知识回顾

image-20230305140615006

  (对于考研408而言)

  这个章节主要以选择题形式考察。

  总的来说,这个章节考察的深度、难度不会太大。另外,这个章节的分值占比是比较低的。

  不过,对第一章的学习,有助于我们理解操作系统和普通的应用程序是怎么在电脑上有条不紊的运行的。特别是上图做了标记的3个部分,有助于理解操作系统的运行原理。

先说图中没有标记的几个小节:

  第一个小节中,学习了操作系统的概念和功能。

  需要回忆一下,操作系统向上层提供了哪些接口。包括它给用户提供了哪些接口;又给应用程序提供了哪些接口。

  第二个小节中,学习了操作系统的发展历史。

  单道批处理阶段、多道批处理阶段、分时操作系统和实时操作系统,这几个阶段,各自的优点和缺点是什么。

  第三个小节中,学习了操作系统的特征。

  分别是,并发、共享、异步和虚拟。操作系统的这些特征,随着时候的学习,肯定会理解的越来越深,不需要死记硬背。

  最后一个小节中,学习了操作系统的两种体系结构。

  分别是大内核和微内核。它们两个各自的优点和缺点分别是什么,这个也是需要回顾一下的知识。

图中做了标记的几个小节:(标了小红旗的)

  在操作系统的运行机制这个小节中。

  我们学到了,CPU上有可能会运行两种程序:一种是操作系统内核程序,一种是普通的应用程序。

image-20230305141604047

  操作系统内核程序是管理者,普通应用程序是被管理者。

  所以,当CPU上正在运行操作系统内核程序的时候,我们可以说,此时CPU是在为管理者办事。而当CPU上面正在运行的是普通应用程序的时候,我们可以说此时CPU是正在为被管理者办事。

image-20230305141839391

  其中,只有当CPU正在为管理者办事的时候,它才会执行特权指令。

  需要重点理解的是,在什么时候,CPU会从内核态转变为用户态;又在什么时候,CPU会从用户态转变为内核态?

  当我们的电脑刚开机的时候,CPU上面跑的肯定是操作系统内核程序。也就是说,刚开始,CPU是在为管理者办事。但是,当时机成熟的时候,这个管理者会告诉CPU,接下来你应该去执行哪一个应用程序。

  也就是说,从内核态转变为用户态这个过程,其实是操作系统的主动行为。当它希望把CPU的使用权让给应用程序的时候,CPU才会转向用户态

  什么时候CPU又需要从用户态转为内核态呢?当CPU处于用户态的时候,说明CPU此时正在为某一个被管理者办事、正在执行某一个应用程序。

  在执行这个应用程序的过程当中,它有可能会接收到某一来自外部的中断信号,当它收到这个外部中断信号的时候,就会暂停执行应用程序,立即转为执行操作系统的某一内核程序。或者,在执行这个应用程序的过程当中,发生了一些特殊的情况,也就是异常,当CPU在执行应用程序的指令的过程中检测到了异常,它也会立即停止执行当前的应用程序,转而执行某一操作系统内核程序。

  即,**当发生了中断或异常的时候,会促使CPU由用户态又转变回内核态。**也就是CPU会被重新召回、为管理者办事。

  这种运行机制即使并没有特别高深。在中国古代已经有了类似这样的运行机制了,就像古代的皇帝、太监、大臣。

管理者与被管理者

image-20230305142846177

image-20230305142906200

image-20230305142924180

image-20230305142947537

异常的情景

image-20230305142959757

系统调用的情景

image-20230305143449486

中断(专指外中断)的情景

image-20230305143616937


  所以,其实操作系统的运行机制的设计思想离我们并不遥远(虽然看起来抽象)。要先在宏观上理解操作系统和应用程序是怎样有条不紊地上CPU运行,它们对CPU的运行权是怎样相互交接的。之后再不断地巩固、加深理解其背后的具体细节。

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

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

相关文章

使用 Sublime Text 4 优雅地写C++

使用 Sublime Text 4 优雅地写C 进入sublime官网下载sublime的安装包(当然也可以在官网下载页面下载portable版本,不过建议下载默认的setup版本) 双击安装包: 应该一会就下载完成了。 此时可以在应用列表看到sublime:…

谈谈 爬虫遇到的 Access denied Error code 1020

这几天在练习爬虫的时候,遇到一个问题, 通过 python 代码从站点中拿到了目标图片的 url , 但是,在持久化到本地时,出现了错误,所有保存下来的图片都报错:文件损坏, 而且,…

【博学谷学习记录】超强总结,用心分享|狂野大数据课程【DataFrame的相关API】的总结分析

操作dataFrame一般有二种操作的方式, 一种为SQL方式, 另一种为DSL方式 SQL方式: 通过编写SQL语句完成统计分析操作DSL方式: 领域特定语言 指的通过DF的特有API完成计算操作(通过代码形式)从使用角度来说: SQL可能更加的方便一些, 当适应了DSL写法后, 你会发现DSL要比SQL更加…

LeetCode:最长回文子串(动态规划)

一、题目 https://leetcode.cn/problems/longest-palindromic-substring/description/ 二、 算法思想 使用动态规划思想解决,如果一个子串是回文的,并且它的左右两边各加上一个字符后仍然是回文的,那么这个子串加上这两个字符后也一定是回文…

浅谈 TCP 握手/数据传输/挥手过程以及 tcpdump 抓包工具使用

前言浅谈 OSITCP三次握手数据传输四次挥手Socket 服务端/客户端通信测试服务端代码客户端代码tcpdump 命令监控命令总结FAQ怎么确认数据包的大小?TCP 拥塞如何避免?如何理解 TCP keep-alive 原理?总结前言 在网络知识体系,TCP 这块的三次握…

【计算机组成原理】指令系统

目录 指令格式 按指令数目分类: 零地址指令 一地址指令 二地址指令 三地址指令 四地址指令 按指令长度分类: 指令字长 机器字长 存储字长 按操作码的长度分类 定长操作码 可变长操作码 定长指令字结构可变长操作码------>拓展操作码指令…

女子举重问题

一、问题的描述 问题及要求 1、搜集各个级别世界女子举重比赛的实际数据。分别建立女子举重比赛总成绩的线性模型、幂函数模型、幂函数改进模型,并最终建立总冠军评选模型。 应用以上模型对最近举行的一届奥运会女子举重比赛总成绩进行排名,并对模型及…

Java分布式事务(二)

文章目录🔥分布式事务处理_认识本地事务🔥关系型数据库事务基础_并发事务带来的问题🔥关系型数据库事务基础_MySQL事务隔离级别🔥MySQL事务隔离级别_模拟异常发生之脏读🔥MySQL事务隔离级别_模拟异常发生之不可重复读&…

信息安全与数学基础-笔记-②同余

知识目录同余完全剩余系剩余类完全剩余系❀简化剩余系❀欧拉函数逆元!欧拉定理 !同余 a,b 两个数字,都模m,当两个数字模m后余的数一样即为同余。 例子: a bq r (mod m),这里的a 和 r 就是同余 &#xff…

如何使用Unity3d实现多人对战联机游戏

所需资源 课程来源(请支持正版课程) 安装Unity Hub 安装Visual Studio 角色模型 环境准备 ①Unity设置 不设置的话编写有些代码没有自动补全 点开 Preferences 选择 visual studio ②角色导入 点击 windows—>Package Manager 左上角 My Ass…

数据结构与算法(七):排序算法

排序算法是《数据结构与算法》中最基本的算法之一,排序算法可以分为内部和外部排序。 内部排序:数据记录在内存中进行排序。 外部排序:因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 常…

xgboost:分割Sparsity-aware Split Finding

Sparsity-aware Split Finding1 在许多现实问题中,输入xxx是稀疏的是很常见的。造成稀疏性的可能原因有很多: 1)数据中存在缺失值; 2)统计中频繁出现零项; 3)特征工程的处理结果,如独热编码。 重要的是使算法意识到数据中的稀…

RocketMQ5.1.0单机安装与启动

RocketMQ单机安装与启动系统要求下载地址安装步骤RocketMq启动NameServer查看是否启动成功启动BrokerProxy查看是否启动成功修改tool.sh测试消息产生消息的消费关闭服务器系统要求 下载地址 官网下载地址 二进制包是已经编译完成后可以直接运行的,源码包是需要编译…

javaWeb核心02-RequestResponse

文章目录Request&Response1,Request和Response的概述2,Request对象2.1 Request继承体系2.2 Request获取请求数据2.2.1 获取请求行数据2.2.2 获取请求头数据2.2.3 获取请求体数据2.2.4 获取请求参数的通用方式基于上述理论,request对象为我…

python:使用 Jupyter notebook(测试 matplotlib 和 opencv)

环境: window1python 3.10.6 参考: https://jupyter.org/https://opencv.org/ 一、创建虚拟环境 这个步骤可以跳过(因为笔者不喜欢在全局环境安装任何东西,所以搞一个新环境)。 先选中一个目录:D:\jackl…

论文笔记 | Conducting research in marketing with quasi-experiments

这篇论文是Journal of Marketing上的论文,讲了使用准实验来进行论文研究的一些事项。外生性识别的来源、几种准实验方法的注意点还有内生性的解决。 这篇论文对于准实验或者是平常论文的展开有一个非常友善的指导功能,可以阅读~ 摘要:本文旨…

多线程实现的三种方法、线程名称的获取

文章目录多线程实现的三种方法1、通过继承Thread,并重写里面的run()方法2、实现Runnable接口,并重写其中run()方法将runnable类传递给Thread类中3、实现Callable接口,重写其中的call()方法Callable接口时有泛型的,该泛型值call()方…

字符串模式匹配,经典KMP算法你还不会?我可不允许你不会!

文章目录重点1. 简单模式匹配算法2. 部分匹配值PM的算法(Move j-1 PM[j-1])3. 部分匹配值PM的两次改进(Move j-next[j])4. 快速得到next数组5. KMP匹配算法重点 童鞋们看网上讲解的时候一定要分清楚序列是从0开始还是从1开始&…

大数据框架之Hive:第1章 Hive入门

1.1 什么是Hive 1)Hive简介 Hive是由Facebook开源,基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。 那为什么会有Hive呢?它是为了解决什么问题而诞生的呢? 下…

性能优化|记一次线上OOM问题处理

概述最近线上监控发现 OOM 涨幅较大,因此去尝试定位和修复这个问题,在修复了一些内存泄漏和大对象占用问题后, OOM 依旧未达到正常标准,在这些新上报的 hprof 文件中,发现几乎所有 case 中都有个叫 FinalizerReference 的对象&…