找到关于操作系统的2047 篇文章

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

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+ 次查看

线程是在 Windows API 中使用 CreateThread() 函数创建的,并且——就像在 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) 是一种消息传递机制。服务器进程发布一个全局可见的连接端口对象。当客户端需要子系统或服务的服务时,它会打开服务器连接端口对象的句柄并向端口发送连接请求。服务器创建通道并向客户端返回一个句柄。该通道由一对私有通信端口组成:一个用于客户端到服务器的消息,另一个用于服务器到客户端的消息。通信通道支持回调机制,因此客户端和服务器可以在它们通常预期时接受请求... 阅读更多

RPC 中的封送处理是什么?

Arnab Chakraborty
更新于 2019 年 10 月 16 日 08:23:45

2K+ 次查看

远程过程调用 (RPC) 是一种客户端-服务器机制,它使一台机器上的应用程序能够对另一台机器上的代码进行过程调用。客户端调用一个本地过程——一个存根例程——该例程将其参数打包到消息中并将其发送到网络上的特定服务器进程。然后,客户端存根例程被阻塞。同时,服务器解包消息,调用过程,将返回结果打包到消息中,并将其发送回客户端存根。客户端存根解除阻塞,接收消息,解包 RPC 的结果,并将它们返回给调用方。这... 阅读更多

上下文切换和中断处理有什么区别?

Arnab Chakraborty
更新于 2019 年 10 月 16 日 08:22:20

1K+ 次查看

上下文切换涉及存储方法或线程的上下文或状态,以便在需要时可以重新加载它,并且可以从与之前相同的点恢复执行。这可能是多任务软件系统的一个特性,并且允许单个硬件被多个进程共享。当发生中断时,硬件会自动切换一部分上下文。处理程序可以保存更多上下文,具体取决于实际硬件和软件设计的细节。通常,仅修改上下文的一小部分以减少数量... 阅读更多

Microsoft 接口定义语言

Arnab Chakraborty
更新于 2019 年 10 月 16 日 08:20:33

242 次查看

定义Microsoft 接口定义语言 (MIDL) 定义客户端和服务器程序之间的接口。Microsoft 提供的 Platform Software Development Kit (SDK) 中包含 MIDL 编译器,使开发人员能够创建远程过程调用 (RPC) 接口和 COM/DCOM 接口所需的接口定义语言 (IDL) 文件和应用程序配置文件 (ACF)。MIDL 还支持为 OLE 自动化生成类型库。应用程序MIDL 可用于基于 Windows 操作系统的所有客户端/服务器应用程序。MIDL 还可用于为包括 Unix 和 Apple 等操作系统在内的异构网络环境创建客户端和服务器程序。... 阅读更多

广告