行程管理

在現代作業系統中,行程管理(英語:Process management)是作業系統的功能之一,特別是多任務處理的狀況下,這是必要的功能。作業系統將資源分配給各個行程,讓行程間可以分享與交換資訊,保護每個行程擁有的資源,不會被其他行程搶走,以及使行程間能夠同步。為了達到這些要求,作業系統為每個行程分配了一個資料結構,用來描述行程的狀態,以及行程擁有的資源。作業系統可以透過這個資料結構,來控制每個行程的運作。

多道程序

许多现代操作系统都支持在内存中同时加载同一程序的不同实例。例如,多个用户可能都在运行同一个程序,每个用户所运行的就是该程序在内存中的不同副本。有一些程序可以只在内存中加载一个副本,在不同的用户间共享通向的程序代码,这样的程序是可重入的。同一处理器(核)在任意时间点都只能执行一个程序中的一条指令,而如果每隔一段时间轮换处理器所处理的进程,暂时停止其它进程的活动,那么多个进程就可以同时在一段时间内存在,这样就是一种并发计算

多道和多任务的操作系统便是一种可以多进程并发执行的系统。多道程序要求处理器为每个进程都分配一定的时间,并在合适的时机释放。如果释放时进程尚未结束,则需要确保进程能够很方便地重启。

进程执行过程中,如果操作系统需要取回处理器的控制权,一般有两种方法:

  1. 进程执行系统调用(也叫软件中断);例如执行 I/O 请求,请求访问硬盘上的文件。
  2. 发生硬件中断;例如键盘上的按键被按下、计时器超时(抢占式多任务处理)。

一个进程停止、另一个进程开始(或者重启)的过程称作上下文交換或上下文切换。在许多现代操作系统中,进程还可以包含许多子进程,这样便引入了线程的概念。可以将线程看作子进程,即在同一进程中的独立代码执行单元。