【操作系统】死等状态、忙等状态、有限等待、让权等待

死等状态:操作系统中的处理进程同步时遇到的一种问题。
进程在有限时间内根本不能进入临界区,而一直在尝试进入,陷入一种无结果的等待状态。
(没有进入临界区的正在等待的某进程根本无法获得临界资源而进入进程,这种等待是无结果的,是死等状态。)-》这个时候应该放弃这个无结果的事情,保证自己等待的时间是有限的

忙等状态:操作系统中的处理进程同步时遇到的一种问题。
当一个进程正处在某临界区内,任何试图进入其临界区的进程都必须进入代码连续循环,陷入忙等状态。连续测试一个变量直到某个值出现为止,称为忙等。
(没有进入临界区的正在等待的某进程不断的在测试循环代码段中的变量的值,占着处理机而不释放,这是一种忙等状态。)-》这个时候应该释放处理机让给其他进程

有限等待:对要求访问临界资源的进程,应保证有限时间内能进入自己的临界区。以免陷入“死等”状态。(受惠的是进程自己)。

让权等待:当进程不能进入自己的临界区时,应立即释放处理机,以免进程陷入“忙等”状态。(受惠的是其他进程)。

【汇编】addr dw number number dw Y的意思:在ADDR单元中存放着数Y的地址

根据数据定义伪操作的格式:

其中变量(Variable)字段是可有可无的,它用符号地址表示,其作用与指令语句前的标号相同,但它后面不跟冒号。
如果语句中有变量,则汇编程序使其记以第一个字节的偏移地址。(例子中,A就是1存放处的地址)

所以说number 是 Y 的偏移地址
把number的值定义为word类型(dw),再把它存放入addr单元中,实现在ADDR单元中存放着数Y的地址。。

所以这两句的意思是:
addr单元处定义一个字节的值为number的变量
number处定义一个字节的值为Y的变量。。则number为Y的地址值

解释汇编中的AUGW LABEL WORD、ADDW LABEL WORD

LABEL定义ADDW(AUGW)WORD变量,但他自身没存储空间,而是和下面的ADDEND占一个空间,ADDW(AUGW)ADDEND(AUGEND)在存储器上占相同空间.一个为WORD变量类型,一个为DD变量类型。
这里,在ADDEND前申明了一个名为ADDW的标号并赋予其字(word)属性。ADDW是ADDEND的一个别名。
常用来将较小的数组成较大的数。

LABEL 一般用作定义变量和标号的属性,它是与紧接着的下一条变量和标号定义语句相关的,其类型可以为BYTEWORDDWORDQWORDNEARFAR等等。用法为:
buffer(变量) LABEL BYTE(类型)
例如:

Buffer1 LABEL WORD
Buffer2 DB 20 DUP (?)
通常,紧接着的下一条语句定义的类型与LABEL指定的类型不同。而实际上,Buffer1Buffer2的别名,两者指向内存中的同一个存储地址。换言之,同一组数据定义了两种不同的类型,在接受不同数据类型的访问时,可以指定相应的标号。如接受一个字类型数据访问时,使用Buffer1;接受字节类型数据访问时,使用Buffer2。否则因为数据类型不匹配,编译器编译时将出现异常。
lable本身不占有实际存储空间。

Sublime Text编写80×86汇编.asm文件的语法高亮插件

使用Sublime Text里面自带的Package Control安装。
使用shift+command(control)+P,输入install,选择Install Package回车~
Snip20160610_96

输入x86,选择x86 and x86_64 Assembly
Snip20160610_97

然后能看到左下角正在安装的提示~
Snip20160610_98

安装成功后重启软件就能使用了= =(只要文件名的后缀为.asm就可以自动高亮~)
Snip20160611_101