找到 1282 篇文章 关于 MCA

什么是默认信号处理器?

Arnab Chakraborty
更新于 2019年10月17日 09:00:01

1K+ 次浏览

信号是发送到程序的软件中断,用于指示已发生重要事件。信号可以通过以下两种可能的处理器之一进行处理:默认信号处理器 用户定义的信号处理器 默认信号处理器与内核处理该信号时运行的每个信号相关联。脚本或程序在接收到信号时执行的操作称为默认操作。默认信号处理器处理这些类型的不同默认操作。一些可能的默认操作是:终止进程。忽略信号。转储核心。它创建一个名为 core 的文件,其中包含... 阅读更多

什么是用户定义的信号处理器?

Arnab Chakraborty
更新于 2020年1月31日 11:05:12

913 次浏览

信号是发送到程序的软件中断,用于指示已发生重要事件。信号可以通过以下两种可能的处理器之一进行处理:默认信号处理器 用户定义的信号处理器 用户定义的信号处理器可以覆盖称为处理信号的默认操作。信号以不同的方式处理。一些信号(例如更改窗口大小)被简单地忽略;其他信号(例如非法内存访问)通过终止程序来处理。信号处理函数可以具有任何名称,但必须具有返回类型 void 并具有一个 int 参数。示例 - ... 阅读更多

信号和信号处理

Arnab Chakraborty
更新于 2019年10月17日 08:55:35

4K+ 次浏览

信号是发送到程序的软件中断,用于指示已发生重要事件。这些事件可以从用户请求到非法内存访问错误不等。某些信号(例如中断信号)指示用户已要求程序执行一些不属于通常控制流程的操作。根据信号的来源和原因,信号可以是同步的或异步的。所有信号,无论是同步的还是异步的,都遵循相同的模式:特定事件的发生会生成一个信号。接下来,信号被传递... 阅读更多

隐式线程和基于语言的线程

Arnab Chakraborty
更新于 2019年10月17日 08:46:49

3K+ 次浏览

隐式线程解决这些困难并更好地支持多线程应用程序设计的一种方法是从应用程序开发人员转移到编译器和运行时库来创建和管理线程。这被称为隐式线程,是当今的一种流行趋势。隐式线程主要是使用库或其他语言支持来隐藏线程的管理。在 C 的上下文中,最常见的隐式线程库是 OpenMP。OpenMP 是一组编译器指令以及用于 C、C++ 或 FORTRAN 编写的程序的 API,它为共享内存环境中的并行编程提供支持。OpenMP 识别... 阅读更多

C 程序中的 Windows 线程 API

Arnab Chakraborty
更新于 2019年10月16日 10:39:12

2K+ 次浏览

线程是使用 CreateThread() 函数在 Windows API 中创建的,并且——就像在 Pthreads 中一样——一组属性(如安全信息、堆栈大小和线程标志)被传递给此函数。在下面的程序中,我们对这些属性使用默认值。(默认值不会最初将线程设置为挂起状态,而是使其有资格由 CPU 调度程序运行。)创建求和线程后,父线程必须等待它完成才能输出 Sum 的值,因为该值由... 阅读更多

使用 Pthreads API 进行多线程

Arnab Chakraborty
更新于 2019年10月16日 08:36:40

2K+ 次浏览

Pthreads 指的是 POSIX 标准 (IEEE 1003.1c),它定义了用于线程创建和同步的 API,这是一个线程行为规范,而不是实现。操作系统设计者可以根据需要以任何方式实现此规范。下面显示的 C 程序演示了构建多线程程序的基本 Pthreads API,该程序在单独的线程中计算非负整数的总和。单独的线程在 Pthreads 程序中的指定函数中开始执行。在下面的程序中,这是 runner() 函数。当程序开始时,单个控制线程从 main() 开始。main()... 阅读更多

多核系统中的编程挑战

Arnab Chakraborty
更新于 2019年10月16日 08:29:58

1K+ 次浏览

向多核系统的趋势继续给系统设计人员和应用程序程序员带来压力,要求他们创建更高效地使用多个计算核心的方法。操作系统的设计者应该编写使用多个进程核心来允许并行执行的编程算法,如下面的图所示:图:多核系统上的并行执行对于应用程序程序员而言,挑战在于将其样式切换为新的多线程程序。通常,多核系统编程中存在 5 个方面的挑战:识别任务 - 这包括检查应用程序以查找可以细分为单独的... 阅读更多

内核执行内核级线程之间上下文切换的操作。

Arnab Chakraborty
更新于 2019年10月16日 08:28:43

2K+ 次浏览

上下文切换涉及存储进程或线程的上下文或状态,以便可以在需要时重新加载它,并且可以从与早期相同的点恢复执行。这是多任务操作系统的功能,并允许单个 CPU 被多个进程共享。内核执行内核级线程之间上下文切换的操作是:内核线程之间的上下文切换通常需要保存要切换出的线程的 CPU 寄存器的值,并恢复要调度的新的线程的 CPU 寄存器。

内核执行进程之间上下文切换的操作

Arnab Chakraborty
更新于 2019年10月16日 08:26:51

8K+ 次浏览

内核执行进程之间上下文切换的操作是:响应时钟中断,操作系统必须保存当前正在执行的进程的 PC 和用户堆栈指针,并将控制权转移到内核时钟中断处理程序时钟中断处理程序完成保存其余寄存器以及其他机器状态(例如浮点寄存器的状态)在进程 PCB 中的操作。操作系统调用调度程序以确定要执行的下一个进程。然后,操作系统从其 PCB 中检索下一个进程的状态并恢复寄存器。... 阅读更多

高级本地过程调用 (ALPC)

Arnab Chakraborty
更新于 2019年10月16日 08:24:50

2K+ 次浏览

高级本地过程调用 (ALPC) 是一种消息传递机制。服务器进程发布一个全局可见的连接端口对象。当客户端需要子系统或服务的服务时,它会打开服务器连接端口对象的句柄,并向端口发送连接请求。服务器创建一个通道,并向客户端返回一个句柄。该通道由一对私有通信端口组成:一个用于客户端到服务器的消息,另一个用于服务器到客户端的消息。通信通道支持回调机制,因此客户端和服务器可以在通常预期……的时候接受请求。阅读更多

广告