通常的程序(一般为串行)是什么意思与并发有什么区别???

通常的程序(一般为串行)是什么意思与并发有什么区别???,第1张

比如你有2个程序,一个程序A是往地址0x2000里面写入整数5,另一程序B往相同地址0x2000写入8,那么如果是串行,那么就是先A执行,再B执行。最后地址0x2000里面是8.所以串行的意思是程序一个个按顺序执行,只有前一个执行完,后面的才执行。

并发的意思是,程序A和程序B同时执行,那地址0x2000里面到底写入啥?这个时候就设计到程序的并发控制了。所以并发的意思是程序同时执行。

1、程序执行宏观上并行。

2、程序执行微观上串行。

3、设备和处理机只能串行。程序解释指解释程序。解释程序是一种语言处理程序,在词法、语法和语义分析方面与编译程序的工作原理基本相同,但在运行用户程序时,它直接执行源程序或源程序的内部形式中间代码。

  早期计算机各个程序只能串行执行、系统资源利用低。为了解决上述问题,人们就发明了 *** 作系统,引入了中断机制,实现了多道程序的并发执行,提高了系统资源的利用率。

   中断是多程序并发执行的前提条件。

  从上面过程可以看出:

  中断的本质: 发生中断就意味着需要 *** 作系统介入,开展管理工作。

  当发生了中断,就意味着需要 *** 作系统的介入,开展管理工作。由于 *** 作系统的管理工作( 如进程切换、分配IO设备)需要使用特权指令,因此CPU要从用户态转换为核心态。 中断就可以使CPU从用户态转换为核心态,使 *** 作系统获得计算机的控制权。因此,有了中断,才能实现多道程序并发执行。

   用户态到核心态的转换就是通过中断机制实现的,并且中断是唯一途径。

  核心态到用户态的切换时通过执行一个特权指令,将程序状态字(PSW)标志位设置为用户态。

  中断可以分为:内中断和外中断。

   内中断 :内中断的信号来源于CPU内部、与当前执行的指令有关。如整数除0。

   外中断 :外中断的信号来源于CPU外部、与当前执行的指令无关。如用户强制结束一个进程、IO设备完成 *** 作发生的中断信号。

  (1) 执行完每个指令后,CPU都要检查当前是否有外部中断信号。

  (2) 如果检测到外部中断信号,则需要保护被中断进程的CPU环境(如 程序状态字PSW、程序计数器、各种通用寄存器 )。

  (3) 根据中断信号类型转入相应的中断处理程序。

  (4) 恢复进程的CPU环境并退出中断,返回原进程继续往下执行。

  (1) 中断是为了实现多道程序并发执行而引入的一种技术。

  (2) 中断的本质就是发生中断时需要 *** 作系统介入开展管理工作。

  (3) 发生CPU会立即进入核心态,针对不同的中断信号,采取不同的处理方式。

  (4) 中断是CPU从用户态进入核心态的唯一途径。

  (5) 中断分为内中断和外中断。

  (6) 进程中断时, *** 作系统会保存CPU的运行环境,如程序状态字(PSW)、程序计数器、各种通用寄存器,这是为了当进程再次运行时可以从中断的状态处继续运行。

本文完

  如发现错误,请指正!!!


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11784248.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存