Fork (系统调用)
在计算机领域中,尤其是Unix及类Unix系统操作系统中,fork(进程复制)是一种创建自身行程副本的操作。它通常是内核实现的一种系统调用。Fork是类Unix操作系统上创建进程的一种主要方法,甚至历史上是唯一方法。 概述 在多任务操作系统中,行程(运行的程序)需要一种方法来创建新进程,例如运行其他程序。Fork及其变种在类Unix系统中通常是这样做的唯一方式。如果进程需要启动另一个程序的可执行文件,它需要先Fork来创建一个自身的副本…
共 24 篇文章
在计算机领域中,尤其是Unix及类Unix系统操作系统中,fork(进程复制)是一种创建自身行程副本的操作。它通常是内核实现的一种系统调用。Fork是类Unix操作系统上创建进程的一种主要方法,甚至历史上是唯一方法。 概述 在多任务操作系统中,行程(运行的程序)需要一种方法来创建新进程,例如运行其他程序。Fork及其变种在类Unix系统中通常是这样做的唯一方式。如果进程需要启动另一个程序的可执行文件,它需要先Fork来创建一个自身的副本…
{{about|電腦程式的實體|引擎的-{行程}-|衝程|物理学中的-{行程}-|路程}} 行程(),是指電腦中已執行的程式,曾经是分時系統的基本運作單位。在面向进程设计的系统(如早期的UNIX,Linux 2.4及更早的版本)中,是程式的基本执行实体;在面向线程设计的系统(如当代多数操作系统、Linux 2.6及更新的版本)中,行程本身不是基本執行单位,而是執行緒的容器。 程式本身只是指令、数据及其组织形式的描述,相當於一個名詞,行程…
wait(意指“等待”)为类UNIX操作系统系统调用。 功能 多进程系统内的进程(或任务)有时需要等待其他进程以完成自己的执行过程,而在包含父-子进程机制的类UNIX系统中,父进程能创建可独立运行的子进程,并在需要时调用wait(函数声明为pid_t wait(int stat_loc))以使自己在子进程执行过程中保持休眠状态。当任一子进程结束后,该子进程会向操作系统返回一个退出状态,而后系统即向休眠中的父进程发送一个SIGCHLD信号…
在计算机领域,进程标识符(,又略称为进程ID()、PID)是大多数操作系统的内核用于唯一标识进程的一个数值。这一数值可以作为许多函数调用的参数,以使调整进程优先级、杀死进程之类的进程控制行为成为可能。 类UNIX系统 在类UNIX操作系统中,新进程都衍自系统调用fork()。fork()调用会将子进程的PID返回给父进程,使其可以之指代子进程,从而在需要时以之为函数参数。例如,若以子进程PID为参数调用waitpid(),可使父进程以休…
在类UNIX系统中,僵尸进程是指完成执行(通过exit系统调用,或运行时发生致命错误或收到终止信号所致),但在操作系统的进程表中仍然存在其进程控制块,处于""的进程。这发生于子进程需要保留表项以允许其父进程读取子进程的退出狀態:一旦退出态通过wait系统调用读取,僵尸进程条目就从进程表中删除,称之为"回收"(reaped)。正常情况下,进程直接被其父进程wait并由系统回收。进程长时间保持僵尸状态一般是错误的并导致资源泄漏。 英文术语z…
{{主條目消歧義|-{zh-cn:交换;zh-tw:交換;}-重定向至此,关于“-{zh-cn:交换;zh-tw:交換;}-”的其它含义参见交換 (消歧義);}-。}} 上下文交換(),又稱環境切換,電腦術語,是一個儲存和重建CPU的狀態(上下文),因此令多個进程(process)可以分享單一CPU資源的計算過程。要交換CPU上的进程時,必須先行儲存目前进程的狀態,再將欲執行的进程之狀態讀回CPU中。 开销 上下文切换通常是计算密集型的…
fork炸彈(),在计算机领域中是一种利用系统調用fork(或其他等效的方式)進行的阻斷服務攻擊。與病毒與蠕蟲不同的是,fork炸彈没有傳染性,而且fork炸彈會使有进程/程序限制的系统無法開起新工作階段,對於不限制進程數的系统則使之停止回應。以fork炸彈為代表的自我複制程式有時亦被稱為wabbit。 原理与影响 fork炸弹以极快的速度创建大量进程(进程数呈以2为底数的指数增长趋势),并以此消耗系统分配予进程的可用空间使进程表饱和,…
在计算机操作系统中,轻量级进程(,縮寫:*LWP)是一种实现多任务的方法。与普通进程相比,与其他进程共享所有(或大部分)它的逻辑地址空间和系统资源;与线程相比,有它自己的进程标识符,并和其他进程有着父子关系;这是和类Unix操作系统的系统调用vfork()生成的进程一样的。另外,线程既可由应用程序管理,又可由内核管理,而只能由内核管理并像普通进程一样被调度。Linux内核是支持的典型例子。 在大多数系统中,与普通进程的区别也在于它只有一…
在计算机科学中,任务(task)的上下文()是一个任务所必不可少的一组数据(该任务可以是进程、线程)。这些数据允许任务中断,在这之后仍可在同一个地方继续执行。上下文的这一概念在中断的任务的场景下具有重大意义,其中,任务在被中断之后,处理器保存上下文并提供中断处理(interrupt service routine)。因此,上下文越小,延迟越小。 上下文的数据可能存放于处理器寄存器、任务所利用的内存、某些操作系统管理的任务所使用的控制寄存…
在現代作業系統中,行程管理()是作業系統的功能之一,特別是多任務處理的狀況下,這是必要的功能。作業系統將資源分配給各個行程,讓行程間可以分享與交換資訊,保護每個行程擁有的資源,不會被其他行程搶走,以及使行程間能夠同步。為了達到這些要求,作業系統為每個行程分配了一個資料結構,用來描述行程的狀態,以及行程擁有的資源。作業系統可以透過這個資料結構,來控制每個行程的運作。 多道程序 许多现代操作系统都支持在内存中同时加载同一程序的不同实例。例如…
{{各地中文名 | cn = 守护进程 | tw = 常駐程式、守護程式是一種在后台执行,而不由用户直接交互控制的电脑程序。此类程序会被以进程的形式初始化。-{zh-cn:守护进程程序;zh-tw:常駐程式}-的名称通常以字母d结尾,以指明这个进程实际是守护进程,并与普通的电脑程序区分开来。例如,就是指管理系统日志的守护进程,是接收传入SSH连接的守护进程。 在Unix环境下,守护进程的父进程通常(但不一定)是init进程,且在UNIX…
在相容於POSIX標準的作業系統中,行程群組(,又譯過程群組)是指一個或多個行程的集合。行程群組被使用於控制信號的分配。對於一個行程群組發出的的信號,會被個別遞送到這個群組下的每個行程成員中。 行程群組本身,也可以被集合成一個群組來管理,稱為會議群組(sessions)。歸屬於某個特定會議群組下的行程群組,不能移動到別的會議群組下;在某個行程群組下的特定行程,在創造出新的行程時,這個行程也只能屬於這個父行程所歸屬的相同會議群組。 應用 …
在操作系统领域中,孤儿进程(Orphan Process)指的是在其父进程执行完成或被后仍继续运行的一类进程。 解决办法 “收养” 在类UNIX操作系统中,为避免孤儿进程退出时无法释放所占用的资源而僵死,任何孤儿进程产生时都会立即为系统进程init或systemd自动接收为子进程,这一过程也被称为“收养”()。在此需注意,虽然事实上该进程已有init作为其父进程,但由于创建该进程的进程已不存在,所以仍应称之为“孤儿进程”。 进程组 因为…
在计算机领域,父进程()指已创建一个或多个子进程的进程。 UNIX 在UNIX里,除了进程0(即PID=0的交换进程,Swapper Process)以外的所有进程都是由其他进程使用系统调用fork创建的,这里调用fork创建新进程的进程即为父进程,而相对应的为其创建出的进程则为子进程,因而除了进程0以外的进程都只有一个父进程,但一个进程可以有多个子进程。 操作系统内核以进程标识符(Process Identifier,即PID)来识别…
过程是指一系列活动相互作用並产生一个结果。這些活動可能只发生一次,也可能是反复发生或定期发生。被称为过程的事物可以指: 业务过程 热力学过程 化学过程 程式}- (電腦科學) * 行程;}-
Windows服务是指Windows NT操作系统中的一种运行在后台的计算机程序。它在概念上类似于Unix守护进程。 Windows服务可以配置为在操作系统启动时运行,并且在Windows运行期间持续在后台运行。服务也可以手动或基于某个事件而启动。Windows NT操作系统包含众多服务,分别运行在三种用户帐户环境中:系统、网络服务和本地服务。这些Windows组件通常采用Windows服务托管进程。因为Windows服务运行在其自身的…
任务管理器可以是用于监视计算机上的进程,程序活动,以及计算机全局状态的系统监视器软件。也可以仅内建于软件之中,用于监视该软件自身活动。 任务管理器可以显示正在运行和已终止运行的后台服务及进程,可以实现终止进程和程序的功能,也能改变进程的优先级。在信息完整的情况下,其可显示后台服务的相关信息(如进程ID和组)。 在Windows系统中,用户可以通过按下组合键,或者组合键,来访问系统内建的任务管理器。 常见的任务管理器 任务管理器,适用于M…
在電腦運算中,kill是一个在多种流行操作系统上都可见到的命令,可向运行中的行程发送信号,以请求进程终止。 实现 Unix和类Unix 在Unix和类Unix操作系统中,kill是用于向进程发送信号的命令。默认发送的消息是终止信号,会要求该进程退出。但kill(杀)可能会引起误解,发送的信号可能与进程杀死无关。kill命令是一个包装了kill()系统调用的包裝函式,该系统调用按进程ID(PID)或进程组ID(PGID)数,向系统上的进程…
计算机程序(或进程、任务或线程等)进入不活跃状态并持续一段时间,称為“睡眠”。当引发程序睡眠的代码所设定的内部计时器归零,或是此程序收到唤醒信号或中断时,程序将恢复执行。 睡眠中的程序也有可能不经唤醒而直接被终止。 用法 睡眠指令通常需要输入一个参数,以说明程序睡眠至少多长时间后才恢复执行。这一时间参数的单位,有些操作系统可以提供更高精度,例如以毫秒或微秒作为单位。 Windows Windows 操作系统中,Sleep()函数仅有一个…
后台进程(Background Process)是一种在不需用户干预的情况下运行于操作系统后台的计算机进程 ,通常用于执行如、系统监测、作业调度以及等任务。 在UNIX与类UNIX系统中,后台进程的进程组ID(即PGID,可用ps命令获得)与控制终端进程组ID(即TPGID)不同,因而也可以此辨识后台进程。后台进程无法接收从键盘传送的信号(如Ctrl-C),但从更专业的定义来说,程序是否能收到用户的中断信号并非后台进程的判别标准。 虽然…