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

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 基本语法

- 循环:使用 

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

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

相关文章

当高兴、尊重和优雅三位一体是什么情况吗?

英语单词 disgrace 表示“失脸,耻辱,不光彩,名誉扫地”一类的含义,可做名词或动词使用,含义基本一致,只是词性不同。 disgrace n.丢脸;耻辱;不光彩;令人感到羞耻的人(或…

2218. 从栈中取出 K 个硬币的最大面值和

2218. 从栈中取出 K 个硬币的最大面值和 题目链接&#xff1a;2218. 从栈中取出 K 个硬币的最大面值和 代码如下&#xff1a; class Solution { public:int maxValueOfCoins(vector<vector<int>>& piles, int k) {vector<vector<int>> memo(pile…

RTOS面试合集

目录 啥是RTOS 进程的状态 RTOS的调度 什么是时间片轮转调度&#xff1f; 如何实现基于优先级的抢占调度&#xff1f; 任务调度中的“时间窗”概念是什么&#xff1f; 任务和线程 如何在RTOS中创建和删除任务&#xff1f; 任务间如何共享数据&#xff1f; 如何管理任务…

AI学习指南Ollama篇-Ollama性能优化与监控

一、引言 (一)背景介绍 随着大语言模型(LLM)在本地部署中的广泛应用,性能优化和监控成为提升效率的关键。大语言模型通常对计算资源和内存有较高要求,而本地部署环境可能受到硬件资源的限制。因此,优化模型的性能并实时监控其运行状态,对于确保高效运行至关重要。 (…

知识体系、知识管理角度的赚钱思考

从知识管理和知识体系的角度出发&#xff0c;赚钱的问题思考清单可以帮助你系统地梳理和优化自己在财富创造方面的策略。 以下是一个详细的清单&#xff0c;涵盖从知识获取、技能提升到实际应用的各个环节&#xff0c;帮助你在赚钱的道路上更加高效和有条理。 一、赚钱的目标与…

LeetCode热题100(八)—— 438.找到字符串中所有字母异位词

LeetCode热题100&#xff08;八&#xff09;—— 438.找到字符串中所有字母异位词 题目描述代码实现思路解析 你好&#xff0c;我是杨十一&#xff0c;一名热爱健身的程序员在Coding的征程中&#xff0c;不断探索与成长LeetCode热题100——刷题记录&#xff08;不定期更新&…

八股——Java基础(四)

目录 一、泛型 1. Java中的泛型是什么 ? 2. 使用泛型的好处是什么? 3. Java泛型的原理是什么 ? 什么是类型擦除 ? 4.什么是泛型中的限定通配符和非限定通配符 ? 5. List和List 之间有什么区别 ? 6. 可以把List传递给一个接受List参数的方法吗&#xff1f; 7. Arra…

naivecv的设计与实现(2): 读写gray和rgb图像

图像读写并不是图像处理的核心&#xff0c;仅仅作为调试工具&#xff0c; 是一种手段而非目的。 图像文件格式的选择 正因如此&#xff0c;对gray和rgb图像的读写&#xff0c;存在多种方法。 最常见的三种图像文件格式&#xff1a; bmppngjpg 实际上有更简单的方式&#xf…

【llm对话系统】LLM 大模型Prompt 怎么写?

如果说 LLM 是一个强大的工具&#xff0c;那么 Prompt 就是使用这个工具的“说明书”。一份好的 Prompt 可以引导 LLM 生成更准确、更相关、更符合你期望的输出。 今天&#xff0c;我们就来聊聊 LLM Prompt 的编写技巧&#xff0c;掌握这把解锁 LLM 潜能的钥匙&#xff01; 一…

设计壁纸时,色彩选择是至关重要的一步

在设计壁纸时&#xff0c;色彩选择是至关重要的一步&#xff0c;它直接影响到壁纸的整体视觉效果和情感传达。以下是一些色彩选择的技巧&#xff0c;帮助你在设计中更好地运用色彩&#xff1a; 一、了解色彩理论 色彩轮&#xff1a; 基本颜色&#xff1a;红、黄、蓝是三原色&am…

Linux shell脚本笔记-One

前言 本文主要汇总有关shell脚本常用的知识点&#xff0c;有时候使用忘记某些用法指令&#xff0c;特此汇总方便后续查阅。 一.shell脚本编写的头部定义: 定义的shell脚本头部有多种写法&#xff0c;具体根基实际系统结构处理&#xff0c;如下: #!/bin/sh &#xff…

二次封装的方法

二次封装 我们开发中经常需要封装一些第三方组件&#xff0c;那么父组件应该怎么传值&#xff0c;怎么调用封装好的组件原有的属性、插槽、方法&#xff0c;一个个调用虽然可行&#xff0c;但十分麻烦&#xff0c;我们一起来看更简便的方法。 二次封装组件&#xff0c;属性怎…

c++多态

1.多态的概念 通俗来说&#xff0c;就是多种形态&#xff0c;具体点就是去完成某个行为&#xff0c;当不同的对象去完成时会产生出不同 的状态。 2.多态的定义及实现 2.1多态的构成条件 多态是在不同继承关系的类对象&#xff0c;去调用同一函数&#xff0c;产生了不同的行为…

docker安装Redis:docker离线安装Redis、docker在线安装Redis、Redis镜像下载、Redis配置、Redis命令

一、镜像下载 1、在线下载 在一台能连外网的linux上执行docker镜像拉取命令 docker pull redis:7.4.0 2、离线包下载 两种方式&#xff1a; 方式一&#xff1a; -&#xff09;在一台能连外网的linux上安装docker执行第一步的命令下载镜像 -&#xff09;导出 # 导出镜像…

【仪器分析】FACTs-幅度

** 当然&#xff0c;这回是一篇没有插图的文章&#xff0c;但是有足够多的描述可以用来想象。 我拿这个系列当作前传试试水 引言。正弦信号可能会发生怎样的变化&#xff1f; ** 近日学FACTs&#xff0c;险些成为传函丁真&#xff0c; 如果从仪器角度考察正弦信号的测量&…

C语言-运算符

1. 按位与运算符&#xff08;&&#xff09; 按位与运算符对两个整数的每一位执行“与”操作。只有当两个相应位都为 1 时&#xff0c;结果才为 1 &#xff1b;否则为 0。 // 示例 int a 5; // 二进制: 0101 int b 3; // 二进制: 0011 int result a & b; …

解决.NET程序通过网盘传到Linux和macOS不能运行的问题

问题描述&#xff1a;.net程序用U盘传到虚拟机macOS和Linux可以正常运行&#xff0c;但是网盘传过去就不行。 解决方法&#xff1a; 这是文件权限的问题。当你通过U盘将文件传输到虚拟机的macOS和Linux系统时&#xff0c;文件的权限和所有权可能得到了保留或正确设置。但如果…

TCP是怎么判断丢包的?

丢包在复杂的网络环境中&#xff0c;是一种常见的现象。 TCP&#xff08;传输控制协议&#xff09;作为一种可靠传输协议&#xff0c;内置了多种机制来检测和处理丢包现象&#xff0c;从而保证数据的完整性和传输的可靠性。本文将介绍TCP判断丢包的原理和机制。 一、TCP可靠传…

牛客周赛 Round 77 题解

文章目录 A-时间表B-数独数组D-隐匿社交网络E-1or0 A-时间表 签到题 #include <bits/stdc.h> using namespace std;int main() {int a[6] {20250121,20250123,20250126,20250206,20250208,20250211};int n; cin >> n;cout << a[n - 1];return 0; }B-数独数…

二分查找题目:寻找两个正序数组的中位数

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法一思路和算法代码复杂度分析 解法二思路和算法代码复杂度分析 题目 标题和出处 标题&#xff1a;寻找两个正序数组的中位数 出处&#xff1a;4. 寻找两个正序数组的中位数 难度 8 级 题目描述 要求 给定两个大…