第1章 计算机系统概述(2)
1.4操作系统结构
随着操作系统功能的不断增多和代码规模的不断变大,合理的操作系统结构,对于降低操作系统复杂度,提升操作系统安全与可靠性来说变得尤为重要。
-
分层法:
优点:
1.便于系统调试和验证,简化系统的设计和实现
2.易于扩充和维护
缺点:
1.合理定义各层较难(依赖关系比较固定)
2.效率较差(执行功能需要穿越多层,性能开销大) -
模块化:
优点:
1.提高操作系统设计的正确性,可理解性,可维护性。
2.增加操作系统的可适应性
3.加速操作系统的开发过程
缺点:
1.模块间接口规定很难满足对接口的实际需求
2.各个模块设计者的思路不同,以至于难找到一个可靠的决定顺序解决问题 -
宏内核:
将系统模块都作为一个紧密联系的整体运行在内核态。各个模块之间资源直接共享,性能优势好。
主流操作系统(Windows,Android,iOS,macOS,Linux)等都是宏内核 -
微内核:
最核心部分功能保留在内核中,只能内核态执行,其他部分在用户态即可执行。
特点(重要考点):
1.内存小
2.C/S模式(客户端/服务器模式)
3.机制与策略分离模式
4.面向对象技术
5.扩展性和灵活性
6.可靠性和安全性
7.可移植性
8.分布式计算
功能:
1.进程和线程管理 2.低级存储器管理 3.中断和陷入处理 -
外核
优点:减少映射层
1.5操作系统引导(非常重点)
(1)启动过程:
1.CPU通电
2.执行JMP指令跳转到BIOS(ROM芯片,属于主存内部,因此可知主存由RAM和ROM组成)
3.登记BIOS中断程序例程入口地址
4.硬件自检
5.操作系统引导
(2)引导过程:
1.将磁盘第一块(主引导记录)读入内存,执行磁盘引导程序,扫描分区表
2.找到活动分区(主分区,安装了操作系统的分区),读入分区引导记录,执行其中程序
3.从根目录找到完整操作系统初始化程序,执行并完成开机一系列操作
1.6虚拟机
!!!操作系统也是虚拟机!!!
| 第一类虚拟机 | 第二类虚拟机 | |
|---|---|---|
| 对物理资源的控制权 | 直接运行在物理机上,能直接和控制物理资源 | 运行在软件上,需要向底层操作系统申请资源 |
| 性能 | 直接控制物理机,性能好 | 需要向底层操作系统申请资源 |
可移植性 | 差 | 直接将虚拟机的相应文件移动就可以移植,好 |
| 运行模式 | 可以执行最高特权指令 | 不能直接执行,需要向底层操作系统申请 |
相关文章:
第1章 计算机系统概述(2)
1.4操作系统结构 随着操作系统功能的不断增多和代码规模的不断变大,合理的操作系统结构,对于降低操作系统复杂度,提升操作系统安全与可靠性来说变得尤为重要。 分层法: 优点: 1.便于系统调试和验证,简化系统的设计和实现 2.易于扩充和维护 缺点: 1.合理定义各层较难(依赖关系比…...
【Java中23种设计模式-单例模式--饿汉式】
加油,新时代打工人! 简单粗暴,直接上代码。 23种设计模式定义介绍 Java中23种设计模式-单例模式 Java中23种设计模式-单例模式2–懒汉式线程不安全 Java中23种设计模式-单例模式2–懒汉式2线程安全 package mode;/*** author wenhao* dat…...
基于JavaWeb实现的在线蛋糕商城
一、系统架构 前端:jsp | bootstrap | js | css 后端:servlet | mybatis 环境:jdk1.7 | mysql | maven | tomcat 二、代码及数据库 三、功能介绍 01. web页-首页 02. web页-商品分类 03. web页-热销 04. web页-新品 05. w…...
【Pytorch】各种维度变换函数总结
维度变换千万不要混着用,尤其是交换维度的transpose和更改观察视角的view或者reshape!混用了以后虽然不会报错,但是数据是乱的, 建议用einops中的rearrange,符合人的直观,不容易出错。 一个例子: >>…...
typescript 泛型详解
typescript 泛型 泛型是可以在保证类型安全前提下,让函数等与多种类型一起工作,从而实现复用,常用于: 函数、接口、class中。 需求:创建一个id 函数,传入什么数据就返回该数据本身(也就是说,参数和返回值类型相同)。 …...
【Ubuntu内核】解决Ubuntu 20.04更新内核后无法联网的问题
最近在使用Ubuntu 20.04时,在更新内核后无法进行WiFi联网。我的电脑上装载的是AX211型号的无线网卡,之前安装了相应的驱动,并且一直正常使用。但不小心更新到了Linux 5.15.0-94-generic后,突然发现无法连接网络了。 于是首先怀疑…...
20-k8s中pod的调度-nodeSelector节点选择器
一、概念 我们先创建一个普通的deploy资源,设置为10个副本 [rootk8s231 dns]# cat deploy.yaml apiVersion: apps/v1 kind: Deployment metadata: name: dm01 spec: replicas: 10 selector: matchLabels: k8s: k8s template: metadata: …...
win10下wsl2使用记录(系统迁移到D盘、配置国内源、安装conda环境、配置pip源、安装pytorch-gpu环境、安装paddle-gpu环境)
wsl2 安装好后环境测试效果如下,支持命令nvidia-smi,不支持命令nvcc,usr/local目录下没有cuda文件夹。 系统迁移到非C盘 wsl安装的系统默认在c盘,为节省c盘空间进行迁移。 1、输出wsl -l 查看要迁移的系统名称 2、执行导出命…...
数据结构与算法:栈
朋友们大家好啊,在链表的讲解过后,我们本节内容来介绍一个特殊的线性表:栈,在讲解后也会以例题来加深对本节内容的理解 栈 栈的介绍栈进出栈的变化形式 栈的顺序存储结构的有关操作栈的结构定义与初始化压栈操作出栈操作获取栈顶元…...
Newtonsoft.Json设置忽略某些字段
using Newtonsoft.Json; using Newtonsoft.Json.Serialization; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace TestProject1 {/// <summary>/// 输出json时,设置忽略哪些…...
【c++每天一题】跳跃游戏
题目 给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。 示例 1࿱…...
【C# 中抓取包含多个屏幕内容的整个桌面】
要在 C# 中抓取包含多个屏幕内容的整个桌面,可以使用 .NET Framework 或者其他第三方库来实现。一种常见的方法是使用 System.Windows.Forms 和 System.Drawing 命名空间中的类来实现屏幕截图。以下是一个示例代码,演示如何抓取包含多个屏幕内容的整个桌…...
数据库管理-第152期 Oracle Vector DB AI-04(20240220)
数据库管理152期 2024-02-20 数据库管理-第152期 Oracle Vector DB & AI-04(20240220)1 常用的向量检索方法聚类图搜索哈希量化 2 Oracle Vector DB中的索引索引(默认) 索引(高级)3 EMBEDDINGSSQL EMBE…...
uniapp app端水印组件封装 一次引入版
直接上代码 <template><view><canvas canvas-id"myCanvas"style"width: 100vw; height: 100vh;opacity: 0;position: fixed;top: -1000px;"></canvas></view> </template><script>export default {name: "…...
最新Unity游戏主程进阶学习大纲(2个月)
过完年了,很多同学开始重新规划自己的职业方向,找更好的机会,准备升职或加薪。今天给那些工作了1~5年的开发者梳理”游戏开发客户端主程”的学习大纲,帮助大家做好面试准备。适合Unity客户端开发者。进阶主程其实就是从固定的几个方面搭建好完整的知识体…...
NoSQL 数据库管理工具,搭载强大支持:Redis、Memcached、SSDB、LevelDB、RocksDB,为您的数据存储提供无与伦比的灵活性与性能!
NoSQL 数据库管理工具,搭载强大支持:Redis、Memcached、SSDB、LevelDB、RocksDB,为您的数据存储提供无与伦比的灵活性与性能! 【官网地址】:http://www.redisant.cn/nosql 介绍 直观的用户界面 从单一应用程序中同…...
基于Spring Boot的多级缓存系统设计
在构建大规模应用时,缓存系统是提高性能的关键因素之一。为了更有效地利用缓存,我们可以设计一个基于Spring Boot的多级缓存系统,结合本地内存缓存(如Caffeine)和分布式缓存(如Redis)。以下是一…...
k8s-配置与存储-配置管理
文章目录 一、配置存储1.1 ConfigMap1.1.1.基于文件夹的创建方式1.1.2指定文件的创建方式1.1.3 配置文件创建configmap 1.2 Secret1.2.1Secret的应用与Docker仓库 Secret设置1. Kubernetes 中的 Secrets:创建 Secret 示例:将 Secret 挂载到 Pod 中的示例…...
c语言实现bellman-ford算法
下面是使用C语言实现Bellman-Ford算法的示例代码。Bellman-Ford算法用于在带权重的图中找到从单个源点到所有其他顶点的最短路径,它也能处理图中包含负权重边的情况。 #include <stdio.h> #include <stdlib.h> #include <limits.h>// 定义边的结构 struct …...
socket与rpc的区别
如今的游戏开发,不搞个跨服玩法都不好意思说在做游戏了(当然,也跟游戏类型有关,一些轻度休闲游戏可以排除在外)。跨服玩法的设计,可以进一步激发玩家追求高战力的虚荣心,也可以汇聚玩家数量&…...
Unity预加载:减少游戏中首次加载资源时的卡顿
遇到的问题,如标题所示,所以写了如下模块。模块功能就是初始化时候,加载零散/文件夹的物体,代码如下:#region 启动预加载模块/// <summary> 预加载间隔(分帧防卡顿) </summary>priv…...
我的日常开发工具迭代|MonkeyCode实测存档
做开发日常,其实大部分编码需求都很琐碎,根本用不上繁杂的专业工具。但市面上的AI编程软件,要么收费贵、额度抠搜,要么功能臃肿、操作繁琐,用起来处处受限。我一直在找一款适配个人日常使用、不折腾、无套路的轻量化编…...
告别单片机C语言:用FlexLua和CH9329模块5分钟自制USB自动化小工具
零代码革命:用FlexLuaCH9329打造办公自动化神器 每天重复点击鼠标、敲击键盘的枯燥操作是否让你疲惫不堪?想象一下,早晨电脑自动打卡、会议自动记录、邮件自动回复——这些看似需要专业编程知识的自动化操作,现在只需5分钟就能实现…...
时序分析核心概念与实战:从数据特征到数据库选型
1. 项目概述:为什么我们需要“时序分析”?如果你在金融、物联网、工业制造、运维监控或者电商数据分析等领域工作过,那么“时序数据”这个词对你来说一定不陌生。简单来说,时序数据就是一系列按时间顺序排列的数据点。听起来很简单…...
iTorrent:iPhone上最强大的种子下载器终极指南
iTorrent:iPhone上最强大的种子下载器终极指南 【免费下载链接】iTorrent Torrent client for iOS 16 项目地址: https://gitcode.com/gh_mirrors/it/iTorrent 想在iPhone上轻松下载种子文件,却苦于iOS系统限制?iTorrent这款专业的iOS…...
Prompt 缓存,一次讲明白
每当一个 AI Agent 往前走一步,它其实都在交一笔税。它会重新读取所有内容。系统提示词。 工具定义。 项目上下文。 三轮前已经加载过的内容。每一轮都重新读一遍。这就是 context tax。对长时间运行的 Agent 工作流来说,它往往是整个 AI 基础设施里最贵…...
基于LSTM的无人艇波浪方向估计:从时序预测到工程实践
1. 项目概述:当无人艇“学会”感知海浪在海洋工程和无人系统领域,让机器“感知”并“理解”它所处的海洋环境,尤其是波浪的动态特性,一直是个核心挑战。想象一下,你驾驶一艘小船,如果能提前几秒甚至更久“预…...
TensorFlow 2迁移学习实战:图像分类快速上手指南
我不能基于您提供的输入内容生成符合要求的博文。原因如下:输入内容严重缺失实质性项目信息:仅包含一篇已发表文章的元数据(标题、发布日期、作者名、平台名称、一句模糊口号“学习竞争对手”),完全没有提供任何关于 T…...
Unity AI部署核心指南:Barracuda零拷贝推理实战
1. Barracuda不是“另一个推理引擎”,而是Unity原生ML部署的唯一合理解在Unity项目里跑一个训练好的PyTorch模型,你第一反应是不是导出ONNX、写个C# wrapper、再手动管理Tensor内存?我试过——两周时间卡在GPU张量生命周期上,最终…...
Unity TMP InputField光标稳定方案:字体、渲染与输入法深度适配
1. 为什么InputField光标会“消失”、错位、卡死——不是Bug,是渲染管线的底层博弈 你有没有在Unity项目里遇到过这样的场景:UI界面一切正常,唯独InputField的光标不显示;或者光标明明在文字末尾,点击却跳到中间&#…...
