It all returns to nothing.

死锁 Q&A

1. 试举例说明竞争不可抢占资源所引起的死锁。不可抢占资源:也就是在p1进程占有使用的时候,p2进程不能去抢。 在两个进程都在运行中,且在进行下一步的时候操作所需的不可抢占资源都被对方正在占有。进程此时没有办法进行下一步结束释放资源,也不能自己终止,就进入了无限等待的状态,此为死锁。

死锁 Q&A

关于“取指-执行”小记

计算机是一个不断进行“取指-执行”的自动化设备,内存的使用也离不开这个“取指-执行”的基本过程。现在有一条指令 mov %eax,[300],如何“取指-执行”这条指令呢?我们将自己想象成一台计算机认真梳理整个过程: 这条指令需要放在内存中; 用 PC 指针指向这条指令; 将这条指令取到 CPU 的IR寄存器中; 解释这条指令发现要从300这个内存单元中取出一个32位二进制数赋给EAX寄存器;

关于“取指-执行”小记

处理机调度 Q&A

1. 高级调度与低级调度的主要任务是什么?为什么要引入中级调度? 高级调度又称为作业调度。它是批处理系统中使用的一种调度。其主要任务是按照某种算法从外存的后备队列上选择一个或多个作业调入内存,并为其创建进程、分配必要的资源,然后再将所创建的进程控制块插入就绪队列中。

处理机调度 Q&A

进程描述与控制 Q&A

1. 什么是前趋图?为什么要引入前趋图?前驱图是一个有向无环图,用于描述进程之间执行的先后顺序。图中的每个结点可用来表示一个进程或程序段,节点间的有向边则表示两个结点之间存在的偏序或前驱关系。 原因:为了更好地描述进程地顺序和并发执行情况。

进程描述与控制 Q&A

操作系统引论 Q&A

1. 设计现代 OS 的主要目标是什么方便性,有效性,可扩展性,开放性 2. OS 的作用可表现在哪几个方面 硬件...

操作系统引论 Q&A

指令设计的三个原则和加速大概率事件

记录 计算机组成与接口:硬件/软件设计 一书中指令部分频繁提到的三个原则和一个概念。 硬件设计的三条原则 简单源于规整 。规整性使MIPS指令集具有很多特点:所有指令长度统一、算术指令总是需要三个寄存器操作数和寄存器字段在每种指令格式的位置相同。 越小越快...

指令设计的三个原则和加速大概率事件

解释器代码表示笔记

乔姆斯基层次结构乔姆斯基层次结构表示不同机器所接受的语言类别。乔姆斯基层次结构的语言类别如下: 类型0称为无限制语法 类型1称为上下文相关语法 类型2称为上下文无关语法 类型3称为常规语法/正则语法 这是一个层次结构,类型3的语言也是类型2、1、0。类型2的语言也是类型1、0。以此类推。

解释器代码表示笔记

我的音乐播放器,Rubber2

这是本学期一门课程(移动互联)的课程作业,这门课安排的语言是kotlin,但是我用了两下感觉编程体验并不好。后来得知是可以使用任何语言的,于是就选择了较为趁手的Vue.js,再结合uni-app套件实现安卓打包,理论上也可以打包成为ipa,不过我目前还没测试过。 github地址为:https://github.com/ShaoChenHeng/Rubber2 更多的描述内容已经写在github页面了,可以自行查看,这里不再赘述。

我的音乐播放器,Rubber2

SICP回顾:cons函数、使用过程定义数据结构(下)

接着写上一篇的内容,我打算实现三个基本函数cons、car、cdr,尝试了几种方法都没能很好的实现,并且前两种方法在后来的测试中发现都有问题(第二种方法在嵌套使用的时候仍然有bug)。我逛了一圈github,发现有一位老哥已经用python实现了SICP的大部分习题,htt...

SICP回顾:cons函数、使用过程定义数据结构(下)

SICP回顾:cons函数、使用过程定义数据结构(上)

最近在使用python完成SICP2.2部分的一些经典例题,因为在我看来使用不同的语言来完成一件相同的事情能够加深印象和理解。用python实现例题的部分也会再写成一篇文章,但是这里遇到了一些问题,需要先记录一下。 首先是我对2.2节的感悟:构造一个复杂的东西,是需要许多模块进行组合的。这些模块也可以进行拆分,但是拆分到最底层的某些部分,这些部分的构造一定是简单又正确的。(看上去是一句废话,但是要把一个东西构造成简单但是又正确的,还是比较困难的一件事情) 2.2节的最简单又正确的构造就是三个基本的函数cons、car...

SICP回顾:cons函数、使用过程定义数据结构(上)