首页 > 其他分享 >1.操作系统概述【操作系统:设计与实现】

1.操作系统概述【操作系统:设计与实现】

时间:2023-05-05 23:34:31浏览次数:54  
标签:学科 操作系统 知识点 python NAND 指令 概述 u32 设计

课程官网:https://jyywiki.cn/OS/2023/

几个python的库:
z3 能求解方程组的 python 库
sympy 计算符号计算的库
numpy 数组、矩阵计算相关的

学习的时候存在的一定的割裂性,因为不同学科之间存在概念的独立性,学科之间的互通也被打破了。主要的点是A学科用到了B学科的知识点,但A学科并不会介绍学科B知识点出现的背景,并且学科B可能也没有给出该知识点出现是为了解决什么问题,或者说它可以用来解决什么样的问题。另外一个可能的原因在于,学科B当时所提出的知识点,并没有立即得到应用,当A学科用了,也只是用了,而没有强调其特性以及解决的问题。

任何工具的出现是为了应用和创新,如果只是单纯提出某种概念和定义是没有意义的。

老师提到了数学中关于群的概念可以看下这门课:http://www.math.clemson.edu/~macaule/classes/f22_math4120/

Demo:模拟数字系统

  • logisim.c 模拟数字电路的代码
  • seven-seg.py 根据数字电路模拟的结果显示成数码管
  • Makefile 编译

逻辑电路的输入在程序中定义为 bool 类型,名字为 wire。定义了两个寄存器(触发器),b0 和 b1,这个两个寄存器的输入和输出分别是 X1、X和Y1、Y。b0 和 b1 的目的是使得 X=X1,Y=Y1。

执行程序的逻辑,就可以推出A -> G 的数值,在根据 seven-seg.py 中数码管的位置就可以得到对应的数字显示。

需要理解的地方是 NAND,这是一个与非门,可以通过它来构造其他的逻辑门。

#define NAND(X, Y)  (!((X) && (Y)))        // 与非门
#define NOT(X)      (NAND(X, 1))           // 非门
#define AND(X, Y)   (NOT(NAND(X, Y)))      // 与门
#define OR(X, Y)    (NAND(NOT(X), NOT(Y))) // 或门

另外一个需要理解的地方是 python 程序中的 exec,这是一个内置函数,用于执行字符串的python程序,例如:

exec("print('hello world')") // 执行 print 函数,输出 hello world

logicsim.c 编译得到的可执行文件最终输出的一行结果是:

A = 1; B = 1; C = 1; D = 1; E = 1; F = 1; G = 0;

这些内容就会被当成 python 的语句来执行。然后再通过 global 函数,就可以得到对应的参数值,如:

global()["A"] = 1

Demo 模拟 RISC-V 指令执行

  • rvemu.c 模拟 RISC-V 的 CPU
  • uncore.c 工具类的函数
  • Makefile 编译
  • ji-tu.txt 这个是要执行的指令

rvemu.c 这个文件中的main函数模拟了CPU的执行。

定义了一个指令的结构体:inst_t,实质上是一个 u32 的值,但是按照位划分为不同的字段,根据的是 R-type 类型的指令的来分的,具体可以查看 RV32I 指令类型。

typedef struct {
	u32 op:7; // 操作数占用 7 位
	u32 rd:5;
	u32 f3:3;
	u32 rs1:5;
	u32 rs2:5;
	u32 f7:7;
} inst_t;

inst_fetch函数则是从输入部分一次读入一条指令。

对照:https://blog.csdn.net/weixin_46623752/article/details/125355508
没太看懂它这个指令具体的含义,是如何解决鸡兔同笼问题的。
需要再补充看下这部分。

标签:学科,操作系统,知识点,python,NAND,指令,概述,u32,设计
From: https://www.cnblogs.com/linlh/p/17375670.html

相关文章

  • JAVA中的两个容器StringBuilder和StringJoiner概述
    JAVA中的两个容器StringBuilder和StringJoiner概述StringBuilder可以看成一个容器,创建之后里面的内容是可以修改的方法名说明publicStringBuilderappend(任意类型)添加数据,并返回对象本身publicStringBuilderreverse()反转容器中的内容publicintlength()返......
  • pta_【CPP0026】以点类Point及平面图形类Plane为基础设计三角形类Triangle
    #include<iostream>#include<cmath>usingnamespacestd;//点类PointclassPoint{private:doublex;doubley;public:Point(doublexv=0,doubleyv=0);/*构造函数*/Point(constPoint&p);/*拷贝构造*/~Point();/*......
  • [Leetcode] 0705. 设计哈希集合
    705.设计哈希集合EnglishVersion题目描述不使用任何内建的哈希表库设计一个哈希集合(HashSet)。实现MyHashSet类:voidadd(key)向哈希集合中插入值key。boolcontains(key)返回哈希集合中是否存在这个值key。voidremove(key)将给定值key从哈希集合中删除。如果......
  • 《安富莱嵌入式周报》第311期:300V可调节全隔离USB PD电源,开源交流负载分析仪,CANFD Tra
    周报汇总地址:http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12&filter=typeid&typeid=104 视频版:https://www.bilibili.com/video/BV1Hh4y1H7dR1、运行速度1Hz木头材料晶体管https://liu.se/en/news-item/varldens-forsta-tratransistor研究人员设计并测试了第......
  • 软件分析和设计过程的重要图形(架构图)
    架构图(4+1视图)总体一种视图:场景视图(用例图)一文掌握14种UML图:https://cloud.tencent.com/developer/article/1684161【概念】用例图是指由参与者、用例,边界以及它们之间的关系构成的用于描述系统功能的视图。【目的】用来描述整个系统的功能。用例图中包含以下三种......
  • camunda工作流实战项目(表单设计器+流程编辑器,零代码创建流程)
    一、整体情况介绍基于ruoyi平台和camunda工作流开发而成,结合bpmn.js流程编辑器和vform表单设计器,实现常规流程零代码创建。具备流程中心的能力,支持外部任务,可协调多个业务系统协同工作具备SaaS平台的能力,支持多租户,各业务系统可作为租户,创建自己的流程,通过外部任务与自身业务......
  • 架构师日记-深入理解软件设计模式
    作者:京东零售刘慧卿一设计模式与编程语言1.1什么是设计模式设计模式(Designpattern):由软件开发人员在软件开发中面临常见问题的解决方案,是经过长时间的试验积累总结出来的,它使设计更加灵活和优雅,复用性更好。从实用的角度来看,它代表了某一类问题的最佳实践。设计模式到底解......
  • 6-4 【CPP0026】以点类Point及平面图形类Plane为基础设计三角形类Triangle
    6-4【CPP0026】以点类Point及平面图形类Plane为基础设计三角形类Triangle分数 10作者 C++多态编程单位 石家庄铁道大学以平面图形类Plane为基类公有派生三角形类Triangle,main(void)函数完成对其的测试。Point类结构说明: Point类的数据成员包括:①私有......
  • 【2】Django项目-人力资源管理系统-设计表结构
    Django项目-人力资源管理系统-设计表结构一、在models.py中编写表结构创建两张表:部门表和用户信息表fromdjango.dbimportmodels#Createyourmodelshere.classDepartment(models.Model):'''部门表'''dp_name=models.CharField(max_length=32,verbo......
  • 界面设计时界面参考
    为了把毕设界面做的好看些,因此我去了墨刀这一界面设计网站进行界面设计,学习如何做一个好界面。https://modao.cc/community/mtlbzxaak2qmklfz?title=%E5%85%AC%E4%BA%A4%E4%BA%91%E5%AE%89%E5%85%A8%E4%B8%BB%E5%8A%A8%E7%9B%91%E6%8E%A7%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9Fht......