操作系统基础
概念
控制和管理操作系统软件和硬件
用户观点:用户和计算机之间的接口
基本概念
特征
并发,共享,虚拟,异步
功能
处理机管理,存储器管理,文件管理,设备管理
作为用户和硬件接口
命令接口(用户)
联机命令接口(分时或实时系统)
脱机命令接口(批处理系统)
程序接口(编程人员)
由系统调用组成
分类
批处理系统
单道
多道
宏观上并行,微观上串行
资源利用率高,系统吞吐量大,用户相应时间长,无人机交互能力
分时
同时性,交互性,独立性,及时性
实时
及时性,可靠性
软实时系统:必须规定时间完成
硬实时系统:可以偶尔违反时间
体系结构
内核
1.时钟管理
计时
时钟中断实现进程切换
2.中断机制
目的:提高CPU利用率
只有一小部分属于内核,负责保护和恢复中断现场信息,转移到相关处理程序。
3.原语
4.系统控制的数据结构和处理
进程管理
存储器管理
设备管理
中断和异常
发生中断和异常,进入核心态(硬件实现)
中断(外中断)
CPU执行指令外部事件,通常用于输入输出
时钟中断
时间片到引发中断
分为可屏蔽和不可屏蔽
可屏蔽(INTR)
不可屏蔽(NMI)
紧急硬件故障
异常(内中断)
不能被屏蔽,一旦出现,立即处理
引发
非法操作及专业的陷入指令
分为故障,自陷和终止
故障(软件中断)
指令执行引起的异常,如除数为0,运算溢出,缺页故障
自陷(软件中断)
事先安排的“异常”事件
终止(硬件中断)
硬件故障
系统调用
功能分类
设备管理
文件管理
进程控制
进程通信
内存管理
用户可以执行陷入指令(又称访管指令或trap指令)来发起系统调用
系统调用
状态码:管态、目态,决定是否可以使用特权指令
用户态转向核心态例子
1.系统调用
2.中断
3.错误状态
4.用户程序企图执行特权指令
用户态转向核心态堆栈由用户堆栈转换成系统堆栈(也属于该进程)
操作系统结构
分层法
最底层为硬件,最高层为用户接口,每层只能调用紧邻他的低层功能和服务(单向依赖)
优点
便于系统调试和验证,简化了系统设计和实现
一层一层的调试,若有错误,那肯定是这层出现问题
易扩展和维护
缺点
合理定义各层较难
效率较差
模块化
衡量模块化大小
模块化独立性标准:
内聚性:越高,独立性越好
耦合性:越低,独立性越好
宏内核
主要模块作为一个紧密联系的整体运行在核心态
微内核
内核最基本功能保留在内核,把不需要再核心态执行功能移到用户态执行
通常包括
1.与硬件处理紧密相关的部分
2.基本功能
3.客户和服务器的通信
一个模块错误只会使模块崩溃,而不会使整个系统崩溃
基本功能
1.进程(线程)管理
2.低级存储器管理
页表和地址变换,依赖硬件
关于虚拟存储器,页面置换算法,内存的回收和分配
3.中断和陷入处理
把硬件相关放入微内核
特点
扩展性和灵活性:新增功能只需加服务器,不用改内核
可靠性和安全性
可移植性:移植需要进行修改较少
外核
为虚拟机分配资源
操作系统引导
计算机利用CPU运行特定程序
识别硬盘上的操作系统
通过程序启动操作系统
1.激活CPU
激活的CPU读取ROM的boot程序,将指令寄存器置为BIOS(基本输入输出系统)第一条指令,便开始执行BIOS指令
2.硬件自检
检查硬件是否故障
3.加载带有操作系统的硬盘
4.加载主引导记录MBR
5.扫描硬盘分区表
6.加载分区并引导记录PBR
7.加载启动管理器
8.加载操作系统
虚拟机
装入内存方式
绝对装入
按装入模块中的地址装入内存,装入后逻辑地址和物理地址完全相同
可重定位装入
装入后进行重定位
动态运行时装入
装入模块后,并不将逻辑地址转换成物理地址,在运行时才地址转换
模块链接
静态链接
在程序运行前,将各目标模块和库函数链接成一个完整的装入模块
装入时动态链接
将源程序编译后得到目标模块,用边装入边链接的方式装入内存
动态运行时链接
程序运行时再进行链接
习题补充
多任务操作系统:多个任务并发运行的操作系统
缺页发生在用户态,执行在内核态
用户态进行访问虚拟地址时,如果缺页,在内核态进行缺页处理
用户界面
包括命令接口,程序接口和操作环境
进程越多
CPU利用率先增加后减小
原因:上下文切换,竞争资源
引入多道程序技术的前提条件
系统具有中断功能
中断机制是多道程序设计的基础。它允许CPU在执行一个程序时被外部事件(如I/O操作完成、定时器到期等)打断,并转向处理这些事件。
DOS系统
是单道批处理系统
相关文章:

操作系统基础
概念 控制和管理操作系统软件和硬件 用户观点:用户和计算机之间的接口 基本概念 特征 并发,共享,虚拟,异步 功能 处理机管理,存储器管理,文件管理,设备管理 作为用户和硬件接口 命令接口&am…...

函数调用流程可用工具
方法 1、gdb,这个网上很多找找就有 2、tcmalloc,直接在调用的地方调一个malloc就可以看到调用的流程,具体见tcmalloc 3、backtrace,个人感觉这么最方便,具体见backtrace...

UniApp 页面布局基础
一、UniApp 页面布局简介 在当今的移动应用开发领域,跨平台开发已成为一种主流趋势。UniApp作为一款极具影响力的跨平台开发框架,凭借其“一套代码,多端运行”的特性,为开发者们提供了极大的便利,显著提升了开发效率。…...

2D图像测量到3D点云之物体三维尺寸测量!!!!
0,引言 本文将从双目采集的2D图像到3D点云进行转化,并进行物体尺寸测量,旨在为读者展示2D图像如何关联3D点云,并进行相关工业应用。 将2D图像转化为3D点云,并进行物体尺寸测量的技术,在工业领域有着广泛的…...

[TOTP]android kotlin实现 totp身份验证器 类似Google身份验证器
背景:自己或者公司用一些谷歌身份验证器或者microsoft身份验证器,下载来源不明,或者有广告,使用不安全。于是自己写一个,安全放心使用。 代码已开源:shixiaotian/sxt-android-totp: android totp authenti…...

2025决战智驾:从中阶卷到L3,车企需要抓好一个数据闭环
作者 |王博 编辑 |德新 全国都能开之后,智驾继续走向哪里? 2024年末,大部分主流车企已经实现了无(高精度)图全国都能开。而第一梯队的玩家,从以规则为主的算法框架,向神经网络模型为主的新架构…...

电子电气架构 --- 汽车电子电器设计概述
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 所谓鸡汤,要么蛊惑你认命,要么怂恿你拼命,但都是回避问题的根源,以现象替代逻辑,以情绪代替思考,把消极接受现实的懦弱,伪装成乐观面对不幸的…...

SpringAI从入门到熟练
学习SpringAI的记录情况 文章目录 前言 因公司需要故而学习SpringAI文档,故将自己所见所想写成文章,供大佬们参考 主要是为什么这么写呢,为何不抽出来呢,还是希望可以用的时候更加方便一点,如果大家有需求可以自行去…...

[算法] [leetcode-20] 有效的括号
20 有效的括号 给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合…...

R语言入门笔记:第一节,快速了解R语言——文件与基础操作
关于 R 语言的简单介绍 上一期 R 语言入门笔记里面我简单介绍了 R 语言的安装和使用方法,以及各项避免踩坑的注意事项。我想把这个系列的笔记持续写下去。 这份笔记只是我的 R 语言入门学习笔记,而不是一套 R 语言教程。换句话说:这份笔记不…...

【亚马逊云】基于Amazon EC2实例部署 NextCloud 云网盘并使用 Docker-compose 搭建 ONLYOFFICE 企业在线办公应用软件
文章目录 1. 部署EC2实例2. 安装 Docker 服务3. 安装docker-compose4. 创建Docker-compose文件5. 创建nginx.conf文件6. 运行docker-compose命令开始部署7. 访问ONLYOFFICE插件8. 访问NextCloud云盘9. 下载并启用ONLYOFFICE插件10. 上传文件测试11. 所遇问题12. 参考链接 1. 部…...

java Redisson 实现限流每秒/分钟/小时限制N个
1.引入maven包: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency><groupId>org.redisson</groupId><artifactId>red…...
【漫话机器学习系列】029.累积分布函数(Cumulative Distribution Function)
累积分布函数(Cumulative Distribution Function, CDF) 累积分布函数(CDF)是概率论和统计学中的一个基本概念,用于描述随机变量取值的累积概率分布情况。它在理论研究和实际应用中广泛使用。 定义 给定随机变量 X&am…...

设计模式之访问者模式:一楼千面 各有玄机
~犬📰余~ “我欲贱而贵,愚而智,贫而富,可乎? 曰:其唯学乎” 一、访问者模式概述 \quad 江湖中有一个传说:在遥远的东方,有一座神秘的玉楼。每当武林中人来访,楼中的各个房…...

AI 编程的世界:用Cursor编写评分项目
AI 编程的世界:用Cursor编写评分项目 今天是2024年的最后一天,祝大家在新的一年,健康开心快乐! 岁末之际,星辰为伴,灯火长明,我终于在 2024 年的最后一天成功上线了 AI 编程项目。回首这一年&am…...

Cesium教程(二十三):Cesium实现下雨场景
文章目录 实现效果代码引入js文件创建容器创建视图定义下雨场景完整代码下载实现效果 代码 在 Cesium 中利用PostProcessStageLibrary实现下雪场景,你可以按照以下步骤进行: 创建一个 PostProcessStage:首先,你需要创建一个PostProcessStage对象,它将用于定义下雪效果的渲…...

SpringCloudAlibaba技术栈-Higress
1、什么是Higress? 云原生网关,干啥的?用通俗易懂的话来说,微服务架构下Higress 就像是一个智能的“交通警察”,它站在你的网络世界里,负责指挥和调度所有进出的“车辆”(也就是数据流量)。它的…...

uniapp 微信小程序开发使用高德地图、腾讯地图
一、高德地图 1.注册高德地图开放平台账号 (1)创建应用 这个key 第3步骤,配置到项目中locationGps.js 2.下载高德地图微信小程序插件 (1)下载地址 高德地图API | 微信小程序插件 (2)引入项目…...

Springboot:后端接收数组形式参数
1、接收端写法 PermissionAnnotation(permissionName "",isCheckToken true)PostMapping("/batchDeleteByIds")public ReturnBean webPageSelf( NotNull(message "请选择要删除的单据!") Long[] ids) {for (Long string : ids) {l…...

Postman[2] 入门——界面介绍
可参考官方 文档 Postman 导航 | Postman 官方帮助文档中文版Postman 拥有各种工具、视图和控件,帮助你管理 API 项目。本指南是对 Postman 主要界面区域的高级概述:https://postman.xiniushu.com/docs/getting-started/navigating-postman 1. Header&a…...

1月第四讲:Java Web学生自习管理系统
一、项目背景与需求分析 随着网络技术的不断发展和学校规模的扩大,学生自习管理系统的需求日益增加。传统的自习管理方式存在效率低下、资源浪费等问题,因此,开发一个智能化的学生自习管理系统显得尤为重要。该系统旨在提高自习室的利用率和…...

【Redis】Redis 典型应用 - 缓存 (cache)
目录 1. 什么是缓存 2. 使用 Redis 作为缓存 3. 缓存的更新策略 3.1 定期生成 3.2 实时生成 4. 缓存的淘汰策略 5. 缓存预热, 缓存穿透, 缓存雪崩 和 缓存击穿 关于缓存预热 (Cache preheating) 关于缓存穿透 (Cache penetration) 关于缓存雪崩 (Cache avalanche) 关…...

HTML——38.Span标签和字符实体
<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>span标签和字符实体</title><style type"text/css">h1{text-align: center;}p{text-indent: 2em;}span{color: red;}</style></head><…...

ROS2+OpenCV综合应用--10. AprilTag标签码追踪
1. 简介 apriltag标签码追踪是在apriltag标签码识别的基础上,增加了小车摄像头云台运动的功能,摄像头会保持标签码在视觉中间而运动,根据这一特性,从而实现标签码追踪功能。 2. 启动 2.1 程序启动前的准备 本次apriltag标签码使…...

python Celery 是一个基于分布式消息传递的异步任务队列系统
Celery 是一个基于分布式消息传递的异步任务队列系统,主要用于处理耗时任务、定时任务和周期性任务。它能够将任务分配到多个工作节点(Worker)上执行,从而提高应用程序的性能和可扩展性。Celery 是 Python 生态中最流行的任务队列…...

嵌入式硬件杂谈(七)IGBT MOS管 三极管应用场景与区别
引言:在现代嵌入式硬件设计中,开关元件作为电路中的重要组成部分,起着至关重要的作用。三种主要的开关元件——IGBT(绝缘栅双极型晶体管)、MOSFET(金属氧化物半导体场效应晶体管)和三极管&#…...

麒麟信安云在长沙某银行的应用入选“云建设与应用领航计划(2024)”,打造湖湘金融云化升级优质范本
12月26日,2024云计算产业和标准应用大会在北京成功召开。大会汇集政产学研用各方专家学者,共同探讨云计算产业发展方向和未来机遇,展示云计算标准化工作重要成果。 会上,云建设与应用领航计划(2024)建云用…...

好用的随机生成图片的网站
官网: Lorem Picsum 获取自定义大小的随机图像 https://picsum.photos/200/300 获取正方形图像 https://picsum.photos/200 获取特定类型的图像 通过添加到 /id/{image} url 的开头来获取特定图像。 https://picsum.photos/id/237/200/300 获取静态随机图像…...

添加 env 配置,解决import路径问题
添加 env 配置,解决import路径问题 { // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid830387 “version”: “0.2.0”, “configurations”: [ {"name&q…...

Go work stealing 机制
Go语言的Work Stealing(工作窃取)机制是一种用于调度Goroutines(协程)的策略,其核心目的是最大化CPU使用率,减少任务调度的开销,并提高并发性能和吞吐量。以下是Go Work Stealing机制的详细解释…...