什么是操作系统中的进程
在这个教程中,我们将学习操作系统中的进程。这是操作系统中最重要的概念之一。这非常重要,因为我们会在名为操作系统的科目中随处听到进程这个词。
操作系统的主要职责或工作是在规定时间内完成给定的进程。因此,进程这个术语对于名为操作系统的科目非常重要。现在,让我们以非常深入的方式学习有关进程这个术语的所有信息。
进程的定义
基本上,进程是一个简单的程序。
正在运行的活动程序称为进程。进程是所有计算事物的基础。虽然进程与计算机代码相对应,但方法并不相同。进程是“活跃”的实体,而程序则被认为是某种“被动”实体。进程所持有的属性包括硬件状态、RAM、CPU和其他属性。
操作系统中的进程
进程是正在运行的软件或计算机代码。任何过程必须按照精确的顺序执行。描述必须在任何系统中实现的基本工作单元的实体称为进程。
换句话说,我们将计算机程序创建为文本文件,当执行时,创建执行程序中列出的所有任务的进程。
当程序加载到内存中时,它可以被划分为四个组件:堆栈、堆、文本和数据,以形成一个进程。下图展示了内存中进程的简化表示。
栈
进程栈存储临时信息,例如方法或函数参数、返回地址和局部变量。
堆
这是一个进程在运行时动态分配的内存。
文本
它包括存储在处理器寄存器中的信息以及由程序计数器值指示的最近活动。
数据
在此部分讨论全局和静态变量。
程序
程序是一组指令,当允许完成特定任务时执行这些指令。程序通常是用像C、C++、Python、Java、R、C#(C sharp)等编程语言编写的。
计算机程序是一组指令,当由计算机执行时,可以完成特定的任务。
进程和程序之间的区别
序号 | 进程 | 程序 |
---|---|---|
1 | 进程是正在运行的软件或计算机代码。任何过程必须按照精确的顺序执行。描述必须在任何系统中实现的基本工作单元的实体称为进程。 | 程序是一组指令,在允许完成特定任务时执行这些指令。 |
2 | 进程是动态的 | 程序是静态的 |
3 | 进程是活跃的 | 程序是被动的 |
4 | 进程在执行期间创建并直接加载到主存中 | 程序已存在于内存中,并且存在于辅助存储器中。 |
5 | 进程有其自己的控制系统,称为“进程控制块” | 程序没有任何控制系统。它只是在指定时调用,当调用时执行整个程序 |
6 | 进程会自己随时间改变 | 程序不能自行更改。必须由程序员进行更改。 |
7 | 除了用于管理和执行的程序数据外,进程需要额外的数据。 | 程序基本上分为两部分。一部分是代码部分,另一部分是数据部分。 |
8 | 进程有重要的资源需求;它们需要像内存地址、中央处理单元、输入或输出等资源,直到它们在操作系统中存在为止。 | 程序只需要内存空间来存储其指令;不需要其他资源。 |
进程控制块
操作系统通过进程控制块帮助进程创建、调度和终止。进程控制块(PCB)是操作系统的一部分,它有助于管理进程的运行。每个操作系统进程都有一个与之相关的进程控制块。通过保持不同事物的数据,包括它们的状态、I/O状态和CPU调度,PCB跟踪进程。
现在,让我们使用进程控制块中存在的组件来了解进程控制块。
进程控制块包括:
- 进程ID
- 进程状态
- 程序计数器
- CPU寄存器
- CPU调度信息
- 会计和商业信息
- 内存管理信息
- 输入输出状态信息
现在,让我们详细了解每个组件。
1) 进程ID
它是进程的标识符。这非常有用,可以找到该进程并辨识出该进程。
2) 进程状态
现在,让我们详细了解每个进程状态。我将解释每个状态。
i) New状态
直接从辅存中被操作系统取出并放入主存中的程序称为New进程状态。
ii) Ready状态
当一个进程被创建后,首先进入的是Ready状态。这是等待分配CPU的状态。操作系统会从辅存中提取新进程并将它们放入主存中。Ready状态进程指的是已经在主存中准备好执行的进程。大量进程可以同时处于活跃状态。
iii) Running状态
根据调度机制,操作系统会从Ready状态选择一个进程进行运行。因此,如果我们的系统只有一个CPU,则任何时刻只能有一个进程在运行。如果有n个处理器,则可以在系统中并发执行n个进程。
iv) Waiting或Blocking状态
进程可能会从Running状态转换到Block或Wait状态,具体取决于调度机制或进程的固有行为。
当等待特定资源分配或等待用户输入时,操作系统会将进程切换到阻塞或等待状态,并将CPU分配给其他进程。
v) Terminated状态
进程完成执行后,进入终止状态。操作系统将结束进程并删除整个上下文(进程控制块)。
3) 程序计数器
计算机处理器中的程序计数器(PC)是一个CPU寄存器,它存储要从内存中执行的下一条指令的地址。这是任务执行速度和监控执行当前阶段所需的数字计数器。
程序计数器的其他名称包括指令计数器、指针寄存器、指令地址寄存器或顺序控制寄存器。
4) CPU寄存器
在进程处于运行状态时,处理器寄存器的内容存储在此处。CPU寄存器分为累加器、索引寄存器、通用寄存器、指令寄存器和条件代码寄存器等多个类别。
5) CPU调度信息
需要安排一个程序进行执行。这个时间点决定了它何时从Ready状态转换为Running状态。CPU调度信息包括进程优先级、调度队列指针(表示执行顺序)以及几个其他调度参数。
6) 会计和商业信息
会计和商业地址信息包括CPU使用情况、进程实际使用时间、作业或进程数量等信息。
7) 内存管理信息
内存管理信息部分包含有关页面、段表以及基址和限址寄存器的值的信息。它依赖于操作系统的内存系统。
8) 输入输出状态信息
输入输出状态信息部分包括与进程状态相关的输入和输出信息。