1:操作系统导论
1.1操作系统的定义
•Anoperatingsystemactsanintermediarybetweenuserofacomputerandthecomputer
hardware.
◦ 操作系统充当计算机⽤⼾和计算机硬件之间的中介
•Thepurposeofanoperatingsystemistoprovideanenvironmentinwhichausercanexecute
programsinaconvenientandefficientmanner.
◦ 操作系统的⽬的是提供⼀个⽤⼾可以⽅便和有效地执⾏程序的环境
•Anoperatingsystemissoftwarethatmanagesthecomputerhardware.
◦ 操作系统是管理计算机硬件的软件
计算机操作系统的架构
1.2硬盘内部结构
磁头如何读写盘⽚数据?
•磁臂移动到指定的圈道
•等待要访问的数据点旋转到磁头下发
•读写操作:
◦ 读:将从磁盘上读到的磁性转化0或1
◦ 写:将0或1转化成相应的磁性写⼊磁盘
主引导扇区(BootSector)
•硬盘的0柱⾯、0磁头、1扇区称为主引导扇区,在这扇区⾥存放着⼀段代码:主引导记录MBR(MainBootRecord),它⽤于硬盘启动时将系统控制权转给⽤⼾指定的、在分区表中登记了某个操作系统分区
•MBR的内容是在硬盘分区时由分区软件写⼊该扇区的,MBR不属于任何⼀个操作系统,不随操作系统的不同⽽不同,即使不同,MBR也不会夹带操作系统的性质,具有公共引导的特性 Bootstrapofcomputer
•打开电源
•CPU将控制权交给BIOS(基本输⼊输出系统,存放在CMOS中)
•BIOS运⾏⼀个程序:通电⾃测试程序
•BIOS确认所有外部设备:硬盘或扩充卡
•BIOS找到磁盘的引导区,将其中的主引导程序bootloader装⼊内存。(主引导程序时⼀段代码,它可以将OS余下部分装⼊内存)
•引导操作系统结束,操作系统接管计算机
•操作系统等待事件发⽣…
1.3中断
•当有事件(Event)发⽣时,CPU会收到⼀个中断(Interrupt)信号,可以是硬中断也可以是软中
断
•CPU会停下正在做的事,转⽽执⾏中断处理程序,执⾏完毕会回到之前被中断的地⽅继续执⾏
•OperatingSystemisanInterruptdrivensystem
◦ 操作系统是⼀个由中断驱动的系统
1.4存储系统
•CPU负责将指令(Instruction)从内存(Memory)读⼊,所以程序必须在内存中才能运⾏
•内存以字节为存储单位,每个字节都有⼀个地址与之对应。通过load/store指令即可访问地址的内
存数据
◦ load:将内存输⼊读⼊到寄存器
◦ store:将寄存器数据写⼊到内存
IO设备 设备的控制器 设备驱动程序 IO子系统 计算机cpu
我新买一个IO设备,要安装这个设备的驱动程序,这样IO子系统才会通过驱动程序,来操作IO设备。
1.5处理器系统
单处理器系统:
•Single-processSystem
•只有⼀颗注CPU,执⾏通⽤指令集
•带有其他专⽤处理器,为特定设备服务,如:磁盘、键盘、图形控制器等
注意其他专用的CPU是指:比如会专门有一个监听键盘操作的CPU,当你操作键盘的时候,这个CPU会处理你的键入信息。并不会让主CPU来处理,主CPU主要是干应用程序里的工作。
◦ 它们能够执⾏的指令有限,不处理⽤⼾进程
◦ 操作系统会向它们发出任务,并监控它们的状态
多处理器系统:
•Multiprocessor/MulticoreSystem
•有两个或多个紧密通信的CPU,它们共享计算机总线、时钟、内存和外设等
非对称处理:虽然有多个CPU但是其中有一个主要的CPU,当处理的任务很复杂的时候,就交给主要的CPU处理。
对称处理:每个CPU性能都差不多。
集群系统:
•ClusteredSystem
•该系统由若⼲节点(Node)通过⽹络连接在⼀起,每个节点可为单处理器系统或多处理器系统,
节点之间是松耦合(looselycoupled)关系
◦ ⾼可⽤性(highavailability)
每个节点之间的关系是松耦合关系:即两个计算机之间的关系并不是非常的紧密,其中一个宕机了,并不会影响另一个,其他计算机仍然可以继续完成宕机计算机的任务。
◦ ⾼性能计算(high-performancecomputing)
1.6:操作系统结构
单道单⽤⼾模式
多道程序设计
•操作系统最重要的⼀点是具有多道程序能⼒
•单道程序不能让CPU和IO设备始终忙碌,多道程序设计通过安排任务使⽤的CPU总有⼀个执⾏任
务,从⽽提⾼CPU利⽤率
•实现的硬件保证:处理器和IO设备具备并⾏⼯作的能⼒
分时系统
小结:
为什么只有将任务放到内存上才会被执行。
在计算机系统中,任务的执行需要通过将其加载到内存中进行操作。这是因为内存(RAM)是计算机中用于存储和执行程序的主要组件之一。
当你启动一个程序或执行一个任务时,操作系统会将程序的相关代码和数据从存储设备(如硬盘)加载到内存中。内存的特点是读写速度快,可以快速访问和处理数据,因此将任务加载到内存中可以提供更高的执行效率。
另外,CPU(中央处理器)是执行计算机指令的核心部件,它从内存中读取指令并执行相应的操作。如果任务未加载到内存中,CPU 就无法访问和执行相关的指令和数据。因此,将任务放到内存上是为了确保CPU可以正确地执行任务。
此外,内存还提供了多个程序之间共享数据的机制。多个任务可以同时加载到内存中,并通过共享内存中的数据进行通信和交互。
总而言之,将任务放到内存上执行是为了实现快速访问和处理数据、确保CPU可以执行相关指令,并提供多任务间的数据共享机制。
相关文章:

1:操作系统导论
1.1操作系统的定义 •Anoperatingsystemactsanintermediarybetweenuserofacomputerandthecomputer hardware. ◦ 操作系统充当计算机⽤⼾和计算机硬件之间的中介 •Thepurposeofanoperatingsystemistoprovideanenvironmentinwhichausercanexecute programsinaconvenientandeff…...

什么是微软的 Application Framework?
我是荔园微风,作为一名在IT界整整25年的老兵,今天来看一下什么是微软的 Application Framework? 到底什么是 Application Framework? 还没有真正掌握任何一套Application Framework的使用之前,就来研究这个真的不是很…...

一个关于宏定义的问题,我和ChatGPT、NewBing、Google Bard、文心一言 居然全军覆没?
文章目录 一、问题重述二、AI 解题2.1 ChatGPT2.2 NewBing2.3 Google Bard2.4 文心一言2.5 小结 一、问题重述 今天在问答模块回答了一道问题,要睡觉的时候,又去看了一眼,发现回答错了。 问题描述:下面的z的值是多少。 #define…...

【服务器数据恢复】断电导致RAID无法找到存储设备的数据恢复案例
服务器数据恢复环境: HP EVA存储,6块SAS硬盘组建的raid5磁盘阵列。上层操作系统是WINDOWS SERVER。该存储为公司内部文件服务器使用。 服务器故障&分析: 在遭遇两次意外断电后,设备重启时raid提示“无法找到存储设备”。管理员…...

Windows上不可或缺的5款宝藏软件,工作效率拉满!
职场小白与大牛的区别:小白需要耗费大半天琢磨的事情,而大牛可以只花5分钟就能处理。 “牛人”,即拥有过人之处,专业、经验、技术等等,学会灵活运用高效率的工具也是关键的一点。工具找得好,运用得快&#…...

链表内指定区间反转
题目: 将一个节点数为 size 链表 m 位置到 n 位置之间的区间反转,要求时间复杂度 O(n),空间复杂度 O(1)。 例如: 给出的链表为 1→2→3→4→5→NULL,m2,n4 返回 1→4→3→2→5→NULL 数据范围ÿ…...

Vue中如何进行地图展示与交互(如百度地图、高德地图)?
Vue中如何进行地图展示与交互 随着移动互联网的普及,地图应用已经成为人们生活中不可或缺的一部分。在Vue.js中,我们可以使用第三方地图库(如百度地图、高德地图)来实现地图的展示和交互。本文将介绍如何在Vue.js中使用百度地图和…...
uni-app组件概述
1、组件 1.1、组件的含义 组件是视图层的基本组成单元。 组件是一个单独且可复用的功能模块的封装。 组件,包括:以组件名称为标记的开始标签和结束标签、组件内容、组件属性、组件属性值。 <component-name>是开始标签,</compon…...

什么是防火墙?它有什么作用?
作者:Insist-- 个人主页:insist--个人主页 作者会持续更新网络知识和python基础知识,期待你的关注 目录 一、什么是防火墙 二、防火墙的分类 1、软件防火墙 2、硬件防火墙 三、防火墙的作用 1、防止病毒 2、防止访问不安全内容 3、阻…...

基础工程(cubeide串口调试,printf实现,延时函数)
0.基础工程(cubeide串口调试,printf实现,延时函数) 文章目录 0.基础工程(cubeide串口调试,printf实现,延时函数)外部时钟源CLOCK(RCC)系统时钟SYS与DEBUG设置UART串口设置cubeide设置…...
大厂设计师都在用的9个灵感工具
每一件伟大的设计作品都离不开设计师灵感的爆发。设计师有很多灵感来源,比如精美的摄影图片、酷炫的网站设计、APP的特色功能、友好的用户体验动画,或者一篇文章。 设计师每天都需要收集灵感,把灵感收集当成日常生活。在这篇文章中ÿ…...
安全实现SpringBoot配置文件自动加解密
需求背景 应用程序开发的时候,往往会存在一些敏感的配置属性 数据库账号、密码第三方服务账号密码内置加密密码其他的敏感配置 对于安全性要求比较高的公司,往往不允许敏感配置以明文的方式出现。 通常做法是对这些敏感配置进行加密,然后在…...

数据结构--队列2--双端队列--java双端队列
介绍 双端队列,和前面学的队列和栈的区别在于双端队列2端都可以进行增删,其他2个都是只能一端可以增/删。 实现 链表 因为2端都需要可以操作所以我们使用双向链表 我们也需要一共头节点 所以节点设置 static class Node<E>{E value;Node<E…...

网络安全:信息收集专总结【社会工程学】
前言 俗话说“渗透的本质也就是信息收集”,信息收集的深度,直接关系到渗透测试的成败,打好信息收集这一基础可以让测试者选择合适和准确的渗透测试攻击方式,缩短渗透测试的时间。 一、思维导图 二、GoogleHacking 1、介绍 利用…...
Linux 命令总结
基本操作 Linux关机,重启 # 关机 shutdown -h now# 重启 shutdown -r now 查看系统,CPU信息 # 查看系统内核信息 uname -a# 查看系统内核版本 cat /proc/version# 查看当前用户环境变量 envcat /proc/cpuinfo# 查看有几个逻辑cpu, 包括cpu型号 cat /proc/cpuinfo | grep na…...

使用腾讯手游助手作为开发测试模拟器的方案---以及部分问题的解决方案
此文主要介绍使用第三方模拟器(这里使用腾讯手游助手)作为开发工具,此模拟器分为两个引擎,一个与其他模拟器一样基于virtualbox的标准引擎,不过优化不太好,一个是他们主推的aow引擎,此引擎。关于aow没有太多的技术资料…...

牛客网论坛最具争议的Linux内核成神笔记,GitHub已下载量已过百万
原文地址:牛客网论坛最具争议的Linux内核成神笔记,GitHub已下载量已过百万 1、前言 Linux内核是一个操作系统(OS)内核,本质上定义为类Unix。它用于不同的操作系统,主要是以不同的Linux发行版的形式。Linu…...
docker如何容器迁移(实战)
手把手教你如何做容器迁移 第一步准备数据 假设要迁移一个 mysql 服务(docker部署),由于数据库过大(超过50 GB),用mysqldump备份和还原则太过耗时,下面尝试拷贝目录的方式来迁移,详…...

Android kotlin序列化之Parcelable详解与使用(二)
一、介绍 注解序列化篇:Android kotlin序列化之Parcelize详解与使用_蜗牛、Z的博客-CSDN博客 通过上一篇注解序列化,我们已了解的kotlin的序列化比Java复杂了很多。而且有好多问题,注解虽好,但是存在一些问题。 一般在大型商业…...

C++ 类设计的实践与理解
前言 C代码提供了足够的灵活性,因此对于大部分工程师来说都很难把握。本文介绍了写好C代码需要遵循的最佳实践方法,并在最后提供了一个工具可以帮助我们分析C代码的健壮度。 1. 尽可能尝试使用新的C标准 到2023年,C已经走过了40多个年头。新…...

智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

2.Vue编写一个app
1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...
【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)
1.获取 authorizationCode: 2.利用 authorizationCode 获取 accessToken:文档中心 3.获取手机:文档中心 4.获取昵称头像:文档中心 首先创建 request 若要获取手机号,scope必填 phone,permissions 必填 …...

JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...
NPOI操作EXCEL文件 ——CAD C# 二次开发
缺点:dll.版本容易加载错误。CAD加载插件时,没有加载所有类库。插件运行过程中用到某个类库,会从CAD的安装目录找,找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库,就用插件程序加载进…...

Proxmox Mail Gateway安装指南:从零开始配置高效邮件过滤系统
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storms…...