系统调用(system call)和打断(interrupt)的区别

典型的处理器逐个执行指令。但有时处理器必须临时停止并保留当前指令,执行其他程序或代码段(驻留在其他地方)。完成此操作后,处理器将恢复正常执行并从停止的位置继续。系统调用和中断就是这样的情况。系统调用是对系统内置子例程的调用。中断是由外部硬件事件引起的程序控制中断。...

系统调用vs中断

典型的处理器逐个执行指令。但有时处理器必须临时停止并保留当前指令,执行其他程序或代码段(驻留在其他地方)。完成此操作后,处理器将恢复正常执行并从停止的位置继续。系统调用和中断就是这样的情况。系统调用是对系统内置子例程的调用。中断是由外部硬件事件引起的程序控制中断。

什么是系统调用?

系统调用为运行在计算机上的程序提供与操作系统对话的接口。当一个程序需要从操作系统内核请求一个服务(它本身没有权限)时,它使用系统调用。用户级进程与直接与操作系统交互的进程没有相同的权限。例如,要与外部I/O设备通信或与任何其他进程交互,程序必须使用系统调用。

什么是中断?

在计算机程序的正常执行过程中,可能会发生一些事件,导致CPU暂时停止运行。像这样的事件叫做中断。中断可能由软件或硬件故障引起。硬件中断称为(简单地)中断,而软件中断称为异常或陷阱。一旦中断(软件或硬件)被触发,控制权就被转移到一个称为ISR(中断服务程序)的特殊子程序上,该子程序可以处理由中断引起的条件。

如上所述,术语中断通常是为硬件中断保留的。它们是由外部硬件事件引起的程序控制中断。这里,external是指CPU之外的。硬件中断通常来自许多不同的来源,如定时器芯片、外围设备(键盘、鼠标等)、I/O端口(串行、并行等)、磁盘驱动器、CMOS时钟、扩展卡(声卡、视频卡等)。这意味着硬件中断几乎不会因为与执行程序相关的事件而发生。例如,用户在键盘上按键或内部硬件计时器超时等事件都会引发这种中断,并通知CPU某个设备需要注意。在这样的情况下,CPU将停止它正在做的任何事情(即暂停当前程序),提供设备所需的服务,并返回正常程序。

系统调用和中断之间有什么区别?

  • 发表于 2020-10-24 01:11
  • 阅读 ( 119 )
  • 分类:IT

你可能感兴趣的文章

这(this)和超级java(super in java)的区别

...类,派生类是子类。super关键字可用于引用超类的对象。系统中有多个对象。“this”关键字用于引用当前对象。this和super的关键区别是'this'是一个引用变量,用于引用当前对象,而'super'是一个引用变量,用于引用直接超类对象...

  • 发布于 2020-10-19 18:17
  • 阅读 ( 386 )

系统调用(system call)和图书馆呼叫(library call)的区别

关键区别-系统调用与库调用 系统调用和库调用与计算机的操作系统有关。计算机可以在两种模式下运行,即用户模式和内核模式。系统调用和库调用的关键区别在于,系统调用是内核提供的进入内核模式访问硬件资源的函数...

  • 发布于 2020-10-20 00:18
  • 阅读 ( 576 )

按值调用(call by value)和通过引用调用(call by reference)的区别

关键区别——按值调用与按引用调用 许多编程语言都使用函数。函数是执行特定任务的一组语句。主代码可以分为几个函数并调用它们。调用函数有两种方法,如按值调用和按引用调用。在按值调用方法中,变量的副本被传...

  • 发布于 2020-10-20 00:32
  • 阅读 ( 498 )

web服务器如何侦听新请求?

...e, is continuously polling for new requests or if it works by some sort of interrupt system. If it is an interrupt, what is sparking the interrupt? Is it the network card driver? web服务器如何侦听新请求? 答案 超级用户贡献者Greg Bowser为我们提供了答案: The short answer ...

  • 发布于 2021-04-11 04:35
  • 阅读 ( 180 )

bdc公司(bdc)和调用事务(call transaction)的区别

BDC与Â 调用事务 BDC或批处理数据通信和调用事务是接口技术的两种方式。在BDC和call事务之间可能会遇到许多不同之处。 在比较两者时,批处理数据通信是最古老的接口技术。BDC接口最重要的方面是异步处理。这意味着它用于多...

  • 发布于 2021-06-23 07:06
  • 阅读 ( 149 )

轮询(polling)和打断(interrupt)的区别

...上的所有设备来查找发送该请求的设备。 什么是打断(interrupt)? 在程序执行过程中,微处理器可以通过特殊的IRQ线接收中断信号。中断通常是通过调用相应的系统子例程进行中断处理来执行的,这些子例程被称为BIOS或DOS中断...

  • 发布于 2021-06-25 09:09
  • 阅读 ( 565 )

陷阱(trap)和打断(interrupt)的区别

trap和interrupt之间的主要区别是,trap由用户程序触发,以调用OS功能,而中断由硬件设备触发,以允许处理器执行相应的中断处理程序例程。 操作系统是事件驱动的。在执行程序时,事件可能会突然发生。它将触发操作系统执行...

  • 发布于 2021-06-30 21:37
  • 阅读 ( 932 )

系统gc(system gc)和java中的运行时gc(runtime gc in java)的区别

Java中系统gc和运行时gc的主要区别在于系统gc是类方法,而运行时gc是实例方法。 Java是一种高级的通用编程语言。它是健壮和安全的,并且提供平**立性和支持多线程。此外,它允许面向对象编程。因此,使用Java构建应用程序更...

  • 发布于 2021-07-01 04:58
  • 阅读 ( 219 )

应用程序编程接口(api)和系统调用(system call)的区别

API和系统调用的主要区别在于,API是一组协议、例程和函数,允许在各种应用程序和设备之间交换数据,而系统调用是一种方法,允许程序从内核请求服务。 API由协议和函数组成,这些协议和函数定义了不同组件之间的通信方...

  • 发布于 2021-07-01 06:58
  • 阅读 ( 454 )

信号(signal)和打断(interrupt)的区别

...信号中,对发生的特定动作没有直接响应。 什么是打断(interrupt)? 中断是由CPU以外的组件在外部发生的事件。它通知CPU某种外部事件。诸如联网设备的IO设备可以发送中断来指示所接收的数据分组。此外,计时器可以向CPU通知超...

  • 发布于 2021-07-01 09:16
  • 阅读 ( 716 )
swu093
swu093

0 篇文章

相关推荐