当前位置: 首页 > news >正文

作業系統:設計與實現-母本

2023 南京大學《作業系統:設計與實現》

課程主頁(含講義):https://jyywiki.cn/OS/2023/

【Python 实现操作系统模型 [南京大学2023操作系统-P4] (蒋炎岩)-哔哩哔哩】 https://b23.tv/jakxDbh

用Python实现操作系统模型讲义

一、操作系统基础概念

1.1 定义

操作系统(Operating System,OS)是管理计算机硬件与软件资源的程序,同时也是计算机系统的内核与基石。它负责管理系统的进程、内存、文件系统以及设备驱动等,为用户和其他应用程序提供一个方便、高效且安全的运行环境。

1.2 功能

- 进程管理:负责进程的创建、调度、终止等操作。进程是程序的一次执行过程,操作系统通过进程管理来实现多任务并发执行,提高系统资源利用率。

- 内存管理:管理计算机的内存资源,包括内存分配、回收以及内存保护等。确保各个进程能够安全、高效地使用内存。

- 文件系统管理:负责文件的存储、检索、修改和保护。文件系统提供了一种层次化的目录结构,方便用户和应用程序对文件进行管理和操作。

1.3 分类

- 批处理操作系统:用户将作业提交给系统操作员,系统操作员将多个作业组成一批,依次执行。适用于计算量大、不需要交互的任务。

- 分时操作系统:将CPU时间划分成时间片,轮流分配给各个交互型作业使用。用户可以通过终端与系统进行交互,及时获得响应。

- 实时操作系统:能在规定的时间内对外部事件做出响应,主要用于对时间要求严格的控制系统,如工业控制、航空航天等领域。

1.4 常见操作系统特点与应用场景

- Windows:具有图形化用户界面,易于使用,软件资源丰富,广泛应用于个人计算机和办公领域。

- Linux:开源、高度可定制,具有良好的稳定性和安全性,常用于服务器、云计算以及嵌入式系统等。

- macOS:基于Unix,拥有简洁美观的界面和良好的用户体验,主要应用于苹果公司的Mac系列电脑,在创意设计领域有较高的市场份额。

二、状态机概念及在操作系统中的应用

2.1 基本定义

- 状态(State):系统在某一时刻的状况,一个状态机可以包含多个状态。

- 状态转换(Transition):系统从一个状态转移到另一个状态的过程,通常由特定的事件触发。

- 事件(Event):能够引起状态转换的外部或内部刺激。

2.2 在操作系统中的应用场景 - 进程状态转换

- 就绪(Ready):进程已获得除CPU以外的所有必要资源,等待被调度执行。

- 运行(Running):进程正在CPU上执行。

- 阻塞(Blocked):进程因等待某一事件(如I/O操作完成)而暂时无法执行。

当进程被创建时,进入就绪状态;调度程序将就绪队列中的进程调度到CPU上执行,进程进入运行状态;运行中的进程如果需要等待I/O操作完成,会进入阻塞状态;当I/O操作完成后,阻塞的进程又会回到就绪状态。

三、Python语言基础

3.1 数据类型

- 整数(int):用于表示整数,如1、2、3等。

- 浮点数(float):用于表示小数,如1.23、3.14等。

- 字符串(str):用于存储文本数据,用单引号或双引号括起来,如'hello'、"world"。

- 列表(list):一种有序的可变序列,可以包含不同类型的数据,如[1, 'apple', 3.14]。

- 字典(dict):一种无序的键值对集合,用于存储和查找数据,如{'name': 'John', 'age': 25}。

3.2 基本语法

- 循环:使用 

相关文章:

作業系統:設計與實現-母本

2023 南京大學《作業系統:設計與實現》 課程主頁(含講義):https://jyywiki.cn/OS/2023/ 【Python 实现操作系统模型 [南京大学2023操作系统-P4] (蒋炎岩)-哔哩哔哩】 https://b23.tv/jakxDbh 用Python实现操作系统模型讲义 一、操作系统基础概念 1.1 定义 操作系统(Oper…...

穿心莲内酯(andrographolide)生物合成CYP72-文献精读106

Two CYP72 enzymes function as Ent-labdane hydroxylases in the biosynthesis of andrographolide in Andrographis paniculata 两种CYP72酶在穿心莲(Andrographis paniculata)中作为Ent-labdane羟化酶,在穿心莲内酯(andrograp…...

IDM-VTON本地部署教程:双重编码 + 文字提示,解锁真实野外试穿

一、介绍 IDM-VTON:改进扩散模型,实现真实的野外虚拟试穿。 技术原理:改进扩散模型,利用视觉编码器提取服装高级语义信息并与交叉注意力层融合,通过并行 UNet 结构的 GarmentNet 捕捉服装低级特征并与自注意力层结合&…...

【微服务与分布式实践】探索 Sentinel

参数设置 熔断时长 、最小请求数、最大RT ms、比例阈值、异常数 熔断策略 慢调⽤⽐例 当单位统计时⻓内请求数⽬⼤于设置的最⼩请求数⽬,并且慢调⽤的⽐例⼤于阈值,则接下来的熔断时⻓内请求会⾃动被熔断 异常⽐例 当单位统计时⻓内请求数⽬⼤于设置…...

云计算与虚拟化技术讲解视频分享

互联网各领域资料分享专区(不定期更新): Sheet 前言 由于内容较多,且不便于排版,为避免资源失效,请用手机点击链接进行保存,若链接生效请及时反馈,谢谢~ 正文 链接如下(为避免资源失效&#x…...

[c语言日寄]越界访问:意外的死循环

【作者主页】siy2333 【专栏介绍】⌈c语言日寄⌋:这是一个专注于C语言刷题的专栏,精选题目,搭配详细题解、拓展算法。从基础语法到复杂算法,题目涉及的知识点全面覆盖,助力你系统提升。无论你是初学者,还是…...

数据结构---哈希表

基本概念 哈希函数(Hash Function)是一种将输入的数据(通常是任意大小的)映射到固定大小的输出(通常是一个固定长度的值)的函数。这个输出值通常称为“哈希值”(Hash Value)或“哈希…...

【C语言----数组详解】

目录 ---------------------------------------begin--------------------------------------- 一、什么是数组 二、数组的声明和初始化 1. 数组的声明 2. 数组的初始化 三、数组元素的访问 四、数组的遍历 五、数组的应用 六、多维数组 七、总结 --------------------…...

C语言字符串详解

1. C语言中的字符串基础 C语言中的字符串是程序设计中不可忽视的部分。与现代高级编程语言不同,C语言对字符串的处理方式直接、灵活,并且强大。在C语言中,字符串并不是一种特殊的数据类型,而是字符数组的一种表现形式。字符串通常…...

基础IO(2)

基础IO(2) 理解“⼀切皆⽂件” ⾸先,在windows中是⽂件的东西,它们在linux中也是⽂件;其次⼀些在windows中不是⽂件的东西,⽐如进程、磁盘、显⽰器、键盘这样硬件设备也被抽象成了⽂件,你可以使…...

深入理解 Python 中的 `__all__`:控制模块的公共接口

在 Python 编程中,模块化设计是构建可维护和可扩展代码的关键。模块不仅帮助我们组织代码,还能通过隐藏实现细节来提高代码的可读性和安全性。Python 提供了多种机制来控制模块的可见性,其中 __all__ 是一个非常重要但常被忽视的特性。本文将…...

Python面试宝典7 | 正则表达式的match()与search(),精准匹配与全局搜索

今天,我们来聊聊Python正则表达式中两个常用的方法:match()和search()。它们都用于在字符串中查找匹配的模式,但有着重要的区别。 理论篇:匹配的起始位置 match()和search()最主要的区别在于它们匹配的起始位置: ma…...

代码随想录算法训练营第三十八天-动态规划-完全背包-279.完全平方数

把目标值当作背包容量,每个平方数当作物品,题目变更为装满指定容量的背包,最小用几个物品会不会出现拼凑不出来的情况?不会,因为有数字1,对任意正整数百分百能拼凑出来因此此题目与上一道题就变得一模一样了…...

996引擎 - NPC-添加NPC引擎自带形象

996引擎 - NPC-添加NPC引擎自带形象 截图参考添加NPC参考资料截图参考 添加NPC 编辑NPC表:Envir\DATA\cfg_npclist.xls 1.1. 需要临时隐藏NPC时可以在id前加 // 1.2. 如果NPC朝向不对,可以调整dir 列。(按8方向,上是0顺时针数。我这里给的4) 1.3. 形象代码:NPC代码、怪物…...

基于 NodeJs 一个后端接口的创建过程及其规范 -- 【elpis全栈项目】

基于 NodeJs 一个后端接口的创建过程及其规范 一个接口的诞生: #mermaid-svg-46HXZKI3fdnO0rKV {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-46HXZKI3fdnO0rKV .error-icon{fill:#552222;}#mermaid-sv…...

笔记本跑大模型尝试

1,笔记本电脑资源 我是一台联想笔记本电脑,基本配置如下: CPU:12th Gen Intel(R) Core(TM) i7-1255U 1.70 GHz (12核心,2个P核和8个E核,共计10个核心) 显卡:NVIDIA GeForce MX550 内存&am…...

[论文阅读] (37)CCS21 DeepAID:基于深度学习的异常检测(解释)

祝大家新春快乐,蛇年吉祥! 《娜璋带你读论文》系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢。由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正&#xff0…...

常见端口的攻击思路

端口号端口说明攻击方向21/22/69FTP/TFTP文件传输协议匿名上传/下载、嗅探、爆破2049NFS服务配置不当139Sanba服务爆破、远程代码执行389Ldap目录访问协议注入、匿名访问、弱口令22SSH远程连接爆破、SSH映射隧道搭建、文件传输23Telnet远程连接爆破、嗅探、弱口令3389RDP远程桌…...

复古壁纸中棕色系和米色系哪个更受欢迎?

根据最新的搜索结果,我们可以看到棕色系和米色系在复古壁纸设计中都非常受欢迎。以下是对这两种颜色系受欢迎程度的分析: 棕色系 受欢迎程度:棕色系在复古壁纸中非常受欢迎,因为它能够营造出温暖、质朴和自然的氛围。棕色系的壁纸…...

RocketMQ消息是如何存储的?

大家好,我是锋哥。今天分享关于【RocketMQ消息是如何存储的?】面试题。希望对大家有帮助; RocketMQ消息是如何存储的? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 RocketMQ 使用了一个高性能、分布式的消息存储架构…...

在FreeBSD下安装Ollama并体验DeepSeek r1大模型

在FreeBSD下安装Ollama并体验DeepSeek r1大模型 在FreeBSD下安装Ollama 直接使用pkg安装即可: sudo pkg install ollama 安装完成后,提示: You installed ollama: the AI model runner. To run ollama, plese open 2 terminals. 1. In t…...

[250128] Apache HTTP Server 2.4.63 发布 | Arm 发布首个芯片系统架构的公开规范

目录 Apache HTTP Server 2.4.63 发布,十五年创新成果!Arm 发布首个芯片系统架构的公开规范 Apache HTTP Server 2.4.63 发布,十五年创新成果! Apache 软件基金会和 Apache HTTP Server 项目组自豪地宣布 Apache HTTP Server 2.4…...

为什么要学习rust

内存管理:对于我来说,我就喜欢它的内存管理。我做了一个webapi,取100万行数据,导出到xlsx,再把这个xlsx文件发送给前端。分别用了java、c#、go和rust进行了相同的操作。只有rust做到了,启动时8MB内存&#…...

Linux进程调度与等待:背后的机制与实现

个人主页:chian-ocean 文章专栏-Linux 前言: 当一个进程发起某种操作(如I/O请求、信号、锁的获取等),但该操作需要的资源暂时不可用时,进程会被操作系统挂起,进入“等待队列”或“阻塞状态”。…...

Linux任务管理与守护进程

文章目录 🍅任务管理进程组概念作业概念会话概念相关操作前台进程&后台进程jobsfgbgps命令查看指定的选项 🫒守护进程守护进程的概念作用守护进程的查看守护进程的创建原生创建守护进程调用daemon函数创建守护进程模拟实现daemon函数 🍅任…...

《Trustzone/TEE/安全从入门到精通-标准版》

CSDN学院课程连接:https://edu.csdn.net/course/detail/39573 讲师介绍 拥有 12 年手机安全、汽车安全、芯片安全开发经验,擅长 Trustzone/TEE/ 安全的设计与开发,对 ARM 架构的安全领域有着深入的研究和丰富的实践经验,能够将复杂的安全知识和处理器架构知识进行系统整…...

java 字符串日期字段格式化前端显示

在 Java 应用程序中,如果你有一个字符串类型的日期字段,并希望将其格式化后显示在前端,可以通过多种方式实现。这通常涉及到在后端将字符串转换为 Date 或 LocalDateTime 等对象,然后使用适当的注解或配置来确保它们以正确的格式序…...

LabVIEW橡胶动态特性测试系统

本文介绍了一个利用LabVIEW软件和NI高速数据采集设备构建的橡胶动态特性测试系统。该系统实现了橡胶材料动态性能的精确测量,并通过虚拟仪器技术,提高了测试数据的处理效率和准确性。系统支持实时数据处理和多种信号的动态分析,适用于工业和科…...

deepseek-r1 本地部署

deepseek 最近太火了 1&#xff1a;环境 win10 cpu 6c 内存 16G 2: 部署 1>首先下载ollama 官网&#xff1a;https://ollama.com ollama 安装在c盘 模型可以配置下载到其他盘 OLLAMA_MODELS D:\Ollama 2>下载模型并运行 ollama run deepseek-r1:<标签> 1.5b 7b 8…...

28. 【.NET 8 实战--孢子记账--从单体到微服务】--简易报表--报表定时器与报表数据修正

这篇文章是《.NET 8 实战–孢子记账–从单体到微服务》系列专栏的《单体应用》专栏的最后一片和开发有关的文章。在这片文章中我们一起来实现一个数据统计的功能&#xff1a;报表数据汇总。这个功能为用户查看月度、年度、季度报表提供数据支持。 一、需求 数据统计方面&…...

具身智能技术趋势

参考&#xff1a; 【北京大学-董豪】具身智能技术趋势分析 2024.8 回答了具身智能技术G3、G4的必要性&#xff0c;以及真实数据、仿真数据、互联网数据之间的关系 具身智能趋势 趋势&#xff1a;寻求一个通用路径实现所有的上肢操作 要求&#xff1a;① 低成本 ② 拓展到所有…...

JavaScript逆向高阶指南:突破基础,掌握核心逆向技术

JavaScript逆向高阶指南&#xff1a;突破基础&#xff0c;掌握核心逆向技术 JavaScript逆向工程是Web开发者和安全分析师的核心竞争力。无论是解析混淆代码、分析压缩脚本&#xff0c;还是逆向Web应用架构&#xff0c;掌握高阶逆向技术都将助您深入理解复杂JavaScript逻辑。本…...

C#面试常考随笔6:ArrayList和 List的主要区别?

在 C# 中&#xff0c;ArrayList和List<T>&#xff08;泛型列表&#xff09;都可用于存储一组对象。推荐优先使用List<T>&#xff0c;因为它具有更好的类型安全性、性能和语法简洁性&#xff0c;并且提供了更丰富的功能。只有在需要与旧代码兼容或存储不同类型对象的…...

【数据结构】 并查集 + 路径压缩与按秩合并 python

目录 前言模板朴素实现路径压缩按秩合并按树高为秩按节点数为秩 总结 前言 并查集的基本实现通常使用森林来表示不同的集合&#xff0c;每个集合用一棵树表示&#xff0c;树的每个节点有一个指向其父节点的指针。 如果一个节点是它自己的父节点&#xff0c;那么它就是该集合的代…...

使用 Redis List 和 Pub/Sub 实现简单的消息队列

使用 Redis List 和 Pub/Sub 实现简单的消息队列 Redis 本身不是专门的消息队列系统&#xff0c;但它提供了多种数据结构&#xff08;如 List、Pub/Sub、Stream&#xff09;来实现消息队列功能。根据不同的业务需求&#xff0c;可以选择不同的方式&#xff1a; 在 Redis 中&a…...

aerodrome交易所读合约分析

池地址 0xb2cc224c1c9fee385f8ad6a55b4d94e92359dc59token0 0x4200000000000000000000000000000000000006token1 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913tickSpacing 100stakedLiquidity 4579376109215388530 snapshotCumulativesInside tickLower tickUpperslot0 …...

mybatis(112/134)

多对一 第一种方法&#xff1a; 一的表参数设置&#xff1a; <association property"clazz" javaType"Clazz"> <id property"cid" column"cid"/> <result property"cname" column"cname"/> <…...

Node.js与MySQL模块结合:打造安全高效的用户信息管理系统

摘要 本文探讨使用Node.js构建前端项目并导入MySQL模块创建数据库连接对象的方法。文中讲解了共享数据库连接对象&#xff0c;定义SQL语句查询和更新用户信息&#xff08;排除密码字段以保护隐私&#xff09;&#xff0c;以及根据用户ID更新基本信息、重置密码和更新头像的具体…...

【C++】设计模式详解:单例模式

文章目录 Ⅰ. 设计一个类&#xff0c;不允许被拷贝Ⅱ. 请设计一个类&#xff0c;只能在堆上创建对象Ⅲ. 请设计一个类&#xff0c;只能在栈上创建对象Ⅳ. 请设计一个类&#xff0c;不能被继承Ⅴ. 请设计一个类&#xff0c;只能创建一个对象&#xff08;单例模式&#xff09;&am…...

在ubuntu下一键安装 Open WebUI

该脚本用于自动化安装 Open WebUI&#xff0c;并支持以下功能&#xff1a; 可选跳过 Ollama 安装&#xff1a;通过 --no-ollama 参数跳过 Ollama 的安装。自动清理旧目录&#xff1a;如果安装目录 (~/open-webui) 已存在&#xff0c;脚本会自动删除旧目录并重新安装。完整的依…...

【某大厂一面】数组和链表区别

在 Java 中&#xff0c;数组&#xff08;Array&#xff09;和链表&#xff08;LinkedList&#xff09;是两种常见的数据结构&#xff0c;它们在存储和操作方式上有显著的区别。了解它们的差异有助于选择适合特定应用场景的结构。下面是数组和链表之间的详细比较。 1. 存储结构…...

MySQL常用数据类型和表的操作

文章目录 (一)常用数据类型1.数值类2.字符串类型3.二进制类型4.日期类型 (二)表的操作1查看指定库中所有表2.创建表3.查看表结构和查看表的创建语句4.修改表5.删除表 (三)总代码 (一)常用数据类型 1.数值类 BIT([M]) 大小:bit M表示每个数的位数&#xff0c;取值范围为1~64,若…...

深入 Rollup:从入门到精通(三)Rollup CLI命令行实战

准备阶段&#xff1a;初始化项目 初始化项目&#xff0c;这里使用的是pnpm&#xff0c;也可以使用yarn或者npm # npm npm init -y # yarn yarn init -y # pnpm pnpm init安装rollup # npm npm install rollup -D # yarn yarn add rollup -D # pnpm pnpm install rollup -D在…...

3.日常英语笔记

screening discrepancies 筛选差异 The team found some screening discrepancies in the data. 团队在数据筛选中发现了些差异。 Don’t tug at it ,or it will fall over and crush you. tug 拉&#xff0c;拽&#xff0c;拖 He tugged the door open with all his might…...

sqlite3 学习笔记

文章目录 前言SQL的概念与表格相关的操作i.创建表格&#xff08;增&#xff09;ii 删除表格&#xff08;删&#xff09;iii 更改表格&#xff08;改&#xff09;iv 查询表格&#xff08;查&#xff09; 与记录相关的操作i 插入记录ii 删除记录iii 查询记录iv 修改记录 Linux中使…...

C++ | 红黑树

前言 本篇博客讲解c中数据结构红黑树&#xff0c;看这篇博客之前请先去看&#xff1a; C | AVL树_c avl树能有重复节点吗-CSDN博客 &#x1f493; 个人主页&#xff1a;普通young man-CSDN博客 ⏩ 文章专栏&#xff1a;C_普通young man的博客-CSDN博客 ⏩ 本人giee: 普通小青…...

使用Ollama 在Ubuntu运行deepseek大模型:以DeepSeek-coder为例

DeepSeek大模型这几天冲上热搜啦&#xff01; 咱们来亲身感受下DeepSeek模型的魅力吧&#xff01; 整个操作流程非常简单方便&#xff0c;只需要2步&#xff0c;先安装Ollama&#xff0c;然后执行大模型即可。 安装Ollama 在Ubuntu下安装Ollama非常简单&#xff0c;直接sna…...

詳細講一下RN(React Native)中的列表組件FlatList和SectionList

1. FlatList 基礎使用 import React from react; import { View, Text, FlatList, StyleSheet } from react-native;export const SimpleListDemo: React.FC () > {// 1. 準備數據const data [{ id: 1, title: 項目 1 },{ id: 2, title: 項目 2 },{ id: 3, title: 項目 3…...

《深度揭秘:TPU张量计算架构如何重塑深度学习运算》

在深度学习领域&#xff0c;计算性能始终是推动技术发展的关键因素。从传统CPU到GPU&#xff0c;再到如今大放异彩的TPU&#xff08;张量处理单元&#xff09;&#xff0c;每一次硬件架构的革新都为深度学习带来了质的飞跃。今天&#xff0c;就让我们深入探讨TPU的张量计算架构…...

QT使用eigen

QT使用eigen 1. 下载eigen https://eigen.tuxfamily.org/index.php?titleMain_Page#Download 下载后解压 2. QT引入eigen eigen源码好像只有头文件&#xff0c;因此只需要引入头文件就好了 qt新建项目后。修改pro文件. INCLUDEPATH E:\222078\qt\eigen-3.4.0\eigen-3.…...