操作系统进行外部设备管理的基本方法是采用中断技术。当中断服务程序运行结束时,CPU再转回主程序继续运行。图5-12 输入/输出中断的处理流程对图5-12要进一步说明的是,在输入/输出设备进行启动的准备工作时,CPU在继续运行主程序。完成相应的中断服务功能。简单说,通道技术就是再设计一个独立于CPU的功能简单的CPU,专门处理外部设备和主机的数据交换事情。......
2023-11-18
对于由n个数据元素构成的线性序列,如果只允许在其头部位置插入数据元素和删除数据元素,则这种逻辑结构的数据结构称为堆栈。
很多应用问题的软件设计需要使用堆栈这种数据结构。例如,在7.4.2节讨论过递归结构,递归结构程序的执行过程如图8-3所示。当主程序调用一个递归结构的子程序时,程序的执行过程是 主程序调用该子程序,若子程序不满足递归出口的条件,则该子程序继续调用子子程序,若子子程序不满足递归出口的条件,则该子子程序继续调用子子子程序,直到某次调用的子程序满足递归出口的条件,递归调用过程结束,开始逐级返回;返回的次序是最后被调用的子程序要最先返回,最先被调用的子程序要最后返回。
要实现图8-3所示的递归结构程序的执行过程,就需要有一种数据结构来保存当前子程序的参数和临时变量等数据,以便于在程序返回时能继续执行尚未执行完的部分。例如,对于7.4.2节讨论的计算阶乘的递归算法如下:
PROCEDURE Fact(n)
{
IF(n==1)THEN y=1;
ELSE y=n*Fact(n-1);(www.chuimin.cn)
}
图8-3 递归结构程序的执行过程
假设主程序是Fact(3),则程序的执行过程如图8-4所示。
图8-4 Fact(3)的执行过程
在执行子程序Fact(3)时,由于Fact(2)还未计算出,所以需要保存当前的参数n(此时n=3)的数值,再继续调用Fact(2);在执行子程序Fact(2)时,由于Fact(1)还未计算出,所以需要保存当前的参数n(此时n=2)的数值,再继续调用Fact(1);在执行子程序Fact(1)时,由于此时满足递归出口的条件,所以结束递归调用过程,得到计算结果y=1并把该计算结果返回到上一级子程序Fact(2);在返回到子程序Fact(2)后,继续未完成的计算,得到计算结果y=2,并把该计算结果返回Fact(3);在返回到子程序Fact(3)后,继续未完成的计算,得到计算结果y=6,并把该计算结果返回主程序。由于递归程序的执行过程是最后被调用的子程序要最先被返回,最先被调用的子程序要最后被返回(即后进先出),这正好和堆栈的后进先出特性吻合。所以,系统要保证递归结构程序执行过程的正确进行,就必须在调用下一级子程序前,把当前子程序中要保存的数据保存到堆栈中。
归纳而言,堆栈是由n个数据元素构成的有限的线性序列,并且要求对这个数据元素序列上的插入和删除操作只允许在头部位置进行。换句话说,堆栈是一种保存数据元素并完成数据元素序列先进后出转换的数据结构。
有关计算机导论的文章
操作系统进行外部设备管理的基本方法是采用中断技术。当中断服务程序运行结束时,CPU再转回主程序继续运行。图5-12 输入/输出中断的处理流程对图5-12要进一步说明的是,在输入/输出设备进行启动的准备工作时,CPU在继续运行主程序。完成相应的中断服务功能。简单说,通道技术就是再设计一个独立于CPU的功能简单的CPU,专门处理外部设备和主机的数据交换事情。......
2023-11-18
磁带早在计算机出现以前就被发明,早先的磁带主要用于记录声音,20世纪50年代中期,磁带开始用做计算机的外存。磁带转动的原理是,主动轮转动带动收带盘转动,收带盘转动带动文件盘转动。由于磁带是顺序存储设备,所以存储在磁带上的文件称为顺序文件。图2-15所示的是磁带上数据的组织方式。但是,随着近年来磁带机性能的不断提高,磁带机又开始广泛使用。......
2023-11-18
按计算机承担的任务性质划分,归纳起来,计算机应用主要分以下几个方面。近年来,由于计算机科学技术的迅速发展,特别是网络技术和多媒体技术的迅速发展,计算机不断应用于新的领域。......
2023-11-25
计算机系统由硬件和软件两大部分组成。但计算机系统的大脑可由人来支配,处理不同的应用问题可由人来控制安装不同的大脑组织。计算机系统处理的主体是数据。外存设备的存储介质均可更换,如软盘机中的软盘盘片可从软盘机中取出。图1-1 计算机系统的组成结构我们把对计算机中的数据进行某种有意义的操纵称作处理数据。计算机系统是辅助人完成计算任务的。大部分计算机系统中使用的计算机都是通用的。......
2023-11-18
大部分高级语言都给出了可以方便表示这两种情况的循环语句。这样循环体的语句组S将总共被执行/c次。用第7章讨论的计算1+2+3++100问题的C语言程序来说明两种方式的循环语句。图7-3 for循环执行流程示例显然,对于循环次数已知的循环问题来说,使用第二种循环语句比使用第一种循环语句更简洁明了。......
2023-11-18
递归结构是算法中的另一种重复结构。下面仍然以查找问题和阶乘问题为例,给出递归结构算法的两个例子,然后以阶乘问题递归算法的执行过程为例,讨论递归结构算法的执行流程。的伪码形式的递归算法:PROCEDURE Factorial2{IFTHEN y=1;ELSE y=n*Factorial2(n-1);}2.递归结构算法的执行流程用例6-4算法的执行过程讨论递归结构算法的执行流程。递归算法中的递归调用过程不能无休止的进行,任何递归算法都要考虑递归调用的结束条件,这称作递归出口。......
2023-11-18
“黑客”最初是用来称呼那些试图测试计算机程序能力极限的计算机用户。但后来当某些人尝试非法访问计算机系统时,新闻媒体就用“黑客”来称呼那些试图未经授权对计算机系统进行访问的人。“黑客”的行为是错误的,一些对计算机知识有着深入了解的人,为了展示自己的才能,实现自我价值,或被利益诱惑而成为“黑客”,并对一些政府部门或企业的内网进行攻击,这些都是违法的行为。......
2023-11-25
相关推荐