在一个进程集合中,每个进程都在等待只能由集合中其它进程才能引发的事件,这种状态叫死锁。
死锁的条件:
1、互斥条件:一个资源不能由两个以上的进程同时使用。
2、不可剥夺条件:进程获得的资源只能由自己释放,不能被剥夺。
3、部分分配:进程可以不释放它已占有的资源而又去申请新的资源。
4、某一时刻,各进程都申请其它进程已占有的资源。
Code:
#include<toyix.h>
semaphore s1;
semaphore s2;
void f1()
{
p(&s1);
delay(500);
p(&s2);...


- [游客] 分析的很透彻。 nop地址-ax=1 这句话应该写为ax-nop地址=1 呵呵... 01/09 11:27
- [游客] 很具体呀 01/08 10:05
- [游客] 路过,顶你一下 呵呵... 01/08 10:03
- [cook702] 继续努力! 01/08 10:00
- [wuerlang] 好!来学习一下。 01/07 20:57
- [zysong] 不错。支持一下。 jmp loop jcxz跳转指令都是位移进行的跳转。为什么啊?想想,为什么不是 01/07 11:27
- [bloom] 恭喜博主了 01/05 16:18
- [playboy] 实验要求是显示绿色、绿底红色、白底蓝色的字符串。楼主实现的和要求有些出入。 01/05 12:20
- [playboy] 实验功能实现了,但代码还可以进一步精简、优化。 楼主继续努力! 01/05 12:18
- [playboy] 这个检测点就是对jmp指令的进一步了解,楼主理解的很好,根据位移转移。 01/05 12:12
- [superdiablo] 不好意思,更正一下,实验四第三题应该是0017H 01/08 23:33
- [superdiablo] 第三题应该是0018H 01/08 23:32
[2008-01-10 21:10] 死锁
阅读全文 |
作者:faseter |
评论次数(1) |
浏览次数(1383)
[2007-12-23 16:22] 汇编中断参考大全-汇总
我觉得这些中断也就是个子程序,知道了输入和输出会使用就行了,没有必要去记它,了解中断的根本原理才是重点。不过熟练几个常用的中断还是有用的;-)
中断使用举例:
=====================
键盘输入数字转化成二进制输出到屏幕〔多次调用int21h中断〕
http://www.asmedu.net/blog/user/postcontent.jsp?neighborId=4526&kindId=4140&postId=7094&readSg=1&vs=1
都发上来了,不过还是有些乱,整个目录,用的时候也好查,嘿嘿~
目录:
---------------...
中断使用举例:
=====================
键盘输入数字转化成二进制输出到屏幕〔多次调用int21h中断〕
http://www.asmedu.net/blog/user/postcontent.jsp?neighborId=4526&kindId=4140&postId=7094&readSg=1&vs=1
都发上来了,不过还是有些乱,整个目录,用的时候也好查,嘿嘿~
目录:
---------------...
[2007-11-14 11:05] 原来C语言可以这么看!
Wednesday的学习博客-EXE是怎样炼成的----冰山一角
http://www.asmedu.net/blog/user/postcontent.jsp?neighborId=1575&kindId=4176&postId=3718&readSg=1&vs=1
原来C语言的exe可以这么看!真是太利害了。这就是传说中的“反汇编”吧,先学习了。
原来看过点C,基本都忘记了,这么一看C语言的本质也和汇编没有什么区别,都可以用汇编加以解释,这个网站太牛了!
先建一个C语言学习目录,在这留个脚印...
***评论摘录:
游客 发表于 2007-11-20 14...
http://www.asmedu.net/blog/user/postcontent.jsp?neighborId=1575&kindId=4176&postId=3718&readSg=1&vs=1
原来C语言的exe可以这么看!真是太利害了。这就是传说中的“反汇编”吧,先学习了。
原来看过点C,基本都忘记了,这么一看C语言的本质也和汇编没有什么区别,都可以用汇编加以解释,这个网站太牛了!
先建一个C语言学习目录,在这留个脚印...
***评论摘录:
游客 发表于 2007-11-20 14...
[2007-10-22 16:29] TC2.0环境下C语言中嵌入汇编指令
在TC2.0环境下,加入一句汇编代码的格式如下:
asm mov ax,0
即在汇编指令的前面加入一标记asm。这只是第一步。
例如我编写程序1.c如下:
main(){
asm mov ax,0
printf("hello world!");
}
然后通过按F9进行编译和连接,结果报In-line assembly not allowed...错误。而真实情况是,TC2.0环境正常情况下是不支持汇编指令的。要想执行此程序,需要在命令行方式下通过tcc命令,并且借助TASM.EXE(汇编编译器)才能完成。但是TC2.0根目录一般情况下是没有TASM.EXE的。所以得...
asm mov ax,0
即在汇编指令的前面加入一标记asm。这只是第一步。
例如我编写程序1.c如下:
main(){
asm mov ax,0
printf("hello world!");
}
然后通过按F9进行编译和连接,结果报In-line assembly not allowed...错误。而真实情况是,TC2.0环境正常情况下是不支持汇编指令的。要想执行此程序,需要在命令行方式下通过tcc命令,并且借助TASM.EXE(汇编编译器)才能完成。但是TC2.0根目录一般情况下是没有TASM.EXE的。所以得...
阅读全文 |
作者:cook702 |
评论次数(3) |
浏览次数(2512)
[2007-10-16 15:54] 什么是算法
算法是指完成一个任务准确而完整的描述。也就是说给定初始状态或输入数据,经过计算机程序的有限次运算,能够得出所要求或期望的终止状态或输出数据。
算法常常含有重复的步骤和一些比较或逻辑判断。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。
算法的历史
“算法”的中文名称出自周髀算经;而英文名称 Algorithm 来自于9世纪波斯数学家比阿勒·霍瓦里松的名字al-Khwarizmi,因为比阿勒·霍瓦里松在数学上提出了算法这个概念。“算法”原为"algori...
算法常常含有重复的步骤和一些比较或逻辑判断。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。
算法的历史
“算法”的中文名称出自周髀算经;而英文名称 Algorithm 来自于9世纪波斯数学家比阿勒·霍瓦里松的名字al-Khwarizmi,因为比阿勒·霍瓦里松在数学上提出了算法这个概念。“算法”原为"algori...
阅读全文 |
作者:huibian |
评论次数(0) |
浏览次数(858)
[2007-12-17 17:24] 函数调用堆栈变化分析[转]
汇编初学者比较头痛的一个问题
////////////////////////////////////////////////////////////////////
比如 我们有这样一个c函数
#include
long test(int a,int b)
{
a = a + 1;
b = b + 100;
return a + b;
}
void main()
{
printf("%d",test(1000,2000));
}
写成32位汇编就是这样
;///////////////////////////////////////////////////...
////////////////////////////////////////////////////////////////////
比如 我们有这样一个c函数
#include
long test(int a,int b)
{
a = a + 1;
b = b + 100;
return a + b;
}
void main()
{
printf("%d",test(1000,2000));
}
写成32位汇编就是这样
;///////////////////////////////////////////////////...
阅读全文 |
作者:huibian |
评论次数(0) |
浏览次数(861)
[2007-12-14 17:01] [转]汇编之后
汇编之后 文章作者:dodo [转自:汇编网-新闻点评]
原文链接: http://www.asmedu.net/news.jsp?index=185
学习计算机知识的目的是为了使用计算机解决问题。为了更好的使用计算机我们必须要学会能与计算机直接沟通和交流的汇编语言。在我们认真学完《汇编语言》之后,就可以和计算机进行基本的沟通和交流了,也就是有了基础,但只有这些基础还不够,我们还需要更多的计算机方面知识。作为一个渴望知识和并不满足于现状的你,一定会想下一步该学习什么?任何简单的答复都让你质疑。但是你已学完了《汇编语言》,你应该对机器有了了解,也具备了独立判断下一步该学什么的能力...
原文链接: http://www.asmedu.net/news.jsp?index=185
学习计算机知识的目的是为了使用计算机解决问题。为了更好的使用计算机我们必须要学会能与计算机直接沟通和交流的汇编语言。在我们认真学完《汇编语言》之后,就可以和计算机进行基本的沟通和交流了,也就是有了基础,但只有这些基础还不够,我们还需要更多的计算机方面知识。作为一个渴望知识和并不满足于现状的你,一定会想下一步该学习什么?任何简单的答复都让你质疑。但是你已学完了《汇编语言》,你应该对机器有了了解,也具备了独立判断下一步该学什么的能力...
阅读全文 |
作者:Wednesday |
评论次数(0) |
浏览次数(1541)
页码数(1):
1