找到关于 Windows 的177 篇文章

分时操作系统

Arnab Chakraborty
更新于 2023年10月4日 13:00:06

25K+ 次浏览

操作系统 (OS) 本质上是一组软件,用于管理计算机硬件资源并为计算机程序提供通用服务。操作系统是计算机系统中系统软件的关键组成部分。分时操作系统是操作系统的一种重要类型。分时允许许多位于不同终端的人同时使用一台特定的计算机系统。多任务或分时系统是对多道程序设计的逻辑扩展。处理器的时间在多个用户之间同时共享,称为分时。分时系统和多道批处理系统的主要区别在于…… 阅读更多

批处理操作系统

Arnab Chakraborty
更新于 2019年10月17日 11:11:37

14K+ 次浏览

操作系统 (OS) 本质上是一组软件,用于管理计算机硬件资源并为计算机程序提供通用服务。操作系统是计算机系统中系统软件的关键组成部分。批处理操作系统是操作系统的一种重要类型。使用批处理操作系统的用户不会直接与计算机交互。每个用户都在脱机设备(如穿孔卡片)上准备其作业,并将其提交给计算机操作员。为了加快处理速度,将具有相似需求的作业批量组合在一起并作为一个组运行。程序员退出…… 阅读更多

操作系统中的Dekker算法

Arnab Chakraborty
更新于 2019年10月17日 11:07:57

11K+ 次浏览

Dekker算法Dekker算法是临界区问题的第一个解决方案。该算法有很多版本,第5版或最终版本满足以下所有条件,并且是所有版本中最有效的。临界区问题的解决方案必须确保以下三个条件:互斥、进展、有界等待第一版Dekker算法成功实现了互斥。它使用变量来控制线程执行。它不断检查临界区是否可用。示例main(){ int thread_no = 1; startThreads(); } Thread1(){ do { // 入口段 // 等待threadno为1 … 阅读更多

函数式编程语言

Arnab Chakraborty
更新于 2019年10月17日 10:53:32

483 次浏览

函数式编程语言专门设计用于处理符号计算和列表处理应用程序。函数式编程基于数学函数。一些流行的函数式编程语言包括:Lisp、Python、Erlang、Haskell、Clojure等。函数式编程语言分为两类,即:纯函数式语言——这些类型的函数式语言只支持函数式范例。例如——Haskell。不纯函数式语言——这些类型的函数式语言支持函数式范例和命令式编程风格。例如——LISP。函数式编程——特性函数式编程的特性如下:函数式编程语言的设计基于… 阅读更多

恢复进程实例的进程监控

Arnab Chakraborty
更新于 2019年10月17日 10:51:37

605 次浏览

如果多个进程因条件x而挂起,并且某个进程执行了x.signal()操作,那么我们可以通过一个简单的解决方案来确定接下来应该恢复哪个挂起的进程,那就是使用先进先出(FCFS)排序,以便最先等待的进程首先恢复。然而,在许多情况下,这种简单的调度方案是不够的。为此,可以使用条件等待结构。此结构具有以下形式x.wait(c);这里c是一个整数表达式,在执行wait()操作时进行计算。c的值…… 阅读更多

Peterson问题

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

17K+ 次浏览

Peterson解决方案为解决临界区问题提供了一个良好的算法描述,并说明了设计满足互斥、进展和有界等待要求的软件所涉及的一些复杂性。do { flag[i] = true; turn = j; while (flag[j] && turn == j); /*临界区*/ flag[i] = false; /*剩余部分*/ } while (true);Peterson解决方案中进程Pi的结构。此解决方案仅限于两个进程,它们在临界区和剩余部分之间交替执行。这些进程编号为P0和P1。我们使用Pj…… 阅读更多

硬件同步

Arnab Chakraborty
更新于 2019年10月17日 09:18:41

14K+ 次浏览

在硬件同步中,我们将探索使用从基于硬件到基于软件的API(可供应用程序程序员使用)的技术来解决临界区问题的几种其他解决方案。这些解决方案基于锁定的前提;但是,此类锁的设计可能非常复杂。这些硬件特性可以使任何编程任务更容易并提高系统效率。在这里,我们介绍一些在许多系统上可用的简单硬件指令,并展示如何有效地使用它们来解决临界区问题。如果我们可以在修改共享变量时阻止中断发生。临界区问题可以…… 阅读更多

Windows线程的数据结构

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

536 次浏览

Windows实现Windows API,它是Microsoft操作系统系列(Windows 98、NT、2000和XP,以及Windows 7)的主要API。基本上,Windows应用程序作为单独的进程运行,每个进程可能包含一个或多个线程。此外,Windows使用一对一映射,其中每个用户级线程都映射到一个关联的内核线程。线程的一般组件包括:唯一标识线程的线程ID表示处理器状态的寄存器集在用户模式下运行线程时使用的用户堆栈和内核…… 阅读更多

轻量级进程 (LWP)

Arnab Chakraborty
更新于 2019年10月17日 09:07:48

3K+ 次浏览

许多系统实现多对多模型或两级模型,在用户线程和内核线程之间放置一个中间数据结构。此数据结构(通常称为轻量级进程或LWP)如下图所示。LWP看起来像是应用程序可以在其上调度用户线程运行的虚拟处理器,对用户线程库而言。每个轻量级进程都附加到一个内核线程,并且操作系统调度内核线程在物理处理器上运行。如果内核线程阻塞(例如,在等待I/O时),LWP也会阻塞…… 阅读更多

调度器激活

Arnab Chakraborty
更新于 2019年10月17日 09:05:22

2K+ 次浏览

用户线程库和内核之间通信的一种技术称为调度器激活。它的工作原理如下:内核为应用程序提供一组虚拟处理器 (LWP),应用程序可以将用户线程调度到可用的虚拟处理器上。此外,内核必须通知应用程序某些事件。此过程称为上行调用。上行调用由线程库使用上行调用处理程序进行处理,并且上行调用处理程序必须在虚拟处理器上运行。当应用程序线程即将阻塞时,会发生触发上行调用的一个事件。在这种情况下…… 阅读更多

广告