进程调度的基本过程

简介: 进程调度的基本过程

狭义定义:进程是正在运行的程序的实例。

广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。也就是说进程是系统进行资源分配的基本单位。

一个跑起来的程序就叫做进程,每个进程想要执行都需要消耗一定的系统资源(硬件资源)。我们可以打开任务管理器来查看后台运行的进程和占用的资源。

那么进程在系统中是如何管理的呢,我们从两个角度考虑:

1.描述:使用类/结构体,把被管理的一个对象各个属性都表示出来。

2.组织:使用数据结构,把这些表示出来的对象串起来(为了后续的增删改查)。

系统中有一个专门的结构体(操作系统内核使用的是C/C++写的)描述进程的属性,这个结构体称为“进程控制块” PCB,一个进程可以使用一个或多个PCB来表示。

系统中会使用类似于双向链表这样的数据结构来组织多个PCB。

创建新的进程就是创建PCB并把PCB插入到链表中。

销毁进程就是把PCB从链表中删除并释放。

展示进程列表就相当于遍历链表的每个节点。

PCB中引入了一些属性,用来支持操作系统实现进程调度的效果。

(1)进程的状态:①就绪状态有两种情况一是指进程正在CPU上执行,二是进程没有在CPU上执行,但随时可以去CPU上执行。②阻塞状态:某个进程某种执行条件不具备,就导致进程暂时无法参与CPU的调度执行。

(2)进程的优先级:操作系统在调度多个进程时并不会“一视同仁”,有些进程优先级更高,就优先调度。

(3)进程的上下文:进程从CPU离开之前,需要”保存现场“,把当前CPU中各种寄存器的状态都记录到内存中,等下次进程回到CPU上执行的时候,就可以把寄存器的值恢复回去,进程就会沿着上次执行到的位置继续向后执行。

(4)进程的记账信息:通过优先级机制,对不同的进程分配了不同权重的资源。记账信息,会记录当前进程持有CPU的情况(在CPU执行多久了)就可以作为操作系统调度进程的参考依据。

虚拟地址空间

早期的操作系统,程序运行时分配的内存就是”物理内存“,操作系统要给进程提供稳定的运行环境,就引入了”虚拟地址空间“的概念,不是直接分配物理内存,而是分配虚拟的内存空间。

这里的A和B看到的内存都是虚拟内存,比如A操作某个内存中的数据,就需要把操作的虚拟内存地址告诉系统,系统再把操作的虚拟地址翻译成物理地址(有一个类似于hash表这样的映射结构,称为”页表“)。如过给的虚拟地址是一个非法的,比如一个越界访问。系统就能及时发现,就不会波及其他进程。

相关文章
|
6天前
|
算法 大数据 调度
深入理解操作系统:进程管理与调度策略
【4月更文挑战第27天】 在现代计算机系统的核心,操作系统扮演着至关重要的角色。它不仅管理硬件资源,还为应用程序提供必要的服务。其中,进程管理是操作系统的一个关键组成部分,它负责创建、执行以及终止进程。而进程调度策略则是确保系统高效运行的基石。本文将探讨操作系统中的进程管理机制及其调度策略,分析它们如何影响系统性能,并讨论当前的挑战及未来可能的发展方向。
|
5天前
|
算法 调度 UED
作业调度算法(含详细计算过程)和进程调度算法浅析
作业调度算法(含详细计算过程)和进程调度算法浅析
37 1
作业调度算法(含详细计算过程)和进程调度算法浅析
|
6天前
|
算法 Ubuntu Linux
【操作系统原理】—— 进程调度
【操作系统原理】—— 进程调度
7 0
|
6天前
|
存储 弹性计算 Linux
Linux:进程调度
Linux:进程调度
25 7
|
6天前
|
算法 大数据 Linux
深入理解Linux内核的进程调度机制
【4月更文挑战第30天】操作系统的核心职能之一是有效地管理和调度进程,确保系统资源的合理分配和高效利用。在众多操作系统中,Linux因其开源和高度可定制的特点,在进程调度机制上展现出独特优势。本文将深入探讨Linux内核中的进程调度器——完全公平调度器(CFS),分析其设计理念、实现原理及面临的挑战,并探索未来可能的改进方向。
|
6天前
|
算法 Linux 调度
探索Linux内核:进程调度的奥秘
【4月更文挑战第30天】 在多任务操作系统中,进程调度是核心功能之一,它决定了处理器资源的分配。本文深入分析了Linux操作系统的进程调度机制,从调度器的基本原理到复杂的调度策略,以及它们如何影响系统性能和用户体验。通过剖析进程优先级、时间片分配以及实时性要求等方面,揭示了Linux如何在众多运行着的进程中做出快速而公平的决策,确保系统的高效与稳定运行。
|
6天前
|
算法 安全 大数据
深入理解操作系统之进程管理与调度
【4月更文挑战第30天】 在现代计算机系统中,操作系统的核心职能之一是高效地管理和调度进程,确保系统的稳定运行和资源利用的最优化。本文将深入探讨操作系统中的进程管理机制、进程调度算法以及它们在多核处理器环境下的实现。通过对不同操作系统中进程调度策略的比较,我们将揭示进程管理的关键技术和性能权衡,同时对未来操作系统设计中可能面临的挑战进行展望。
|
6天前
|
算法 Linux 调度
深入理解操作系统之进程调度策略
【4月更文挑战第29天】 在多任务操作系统中,进程调度策略是核心组件之一,它决定了处理器资源的分配。不同于常规的摘要重述内容,本文将通过分析不同的进程调度算法,揭示它们对系统性能的影响,以及在不同应用场景下的适用性。文章首先概述了操作系统中的进程概念和调度的重要性,然后详细探讨了几种主流的调度策略,包括先来先服务(FCFS)、短作业优先(SJF)、轮转调度(RR)及多级反馈队列(MFQ)。最后,文章评估了这些策略在现代操作系统中的应用,并提出了未来可能的发展趋势。
|
6天前
|
机器学习/深度学习 人工智能 算法
深入理解操作系统的进程调度策略
【4月更文挑战第29天】 本文旨在探讨操作系统中的核心机制之一——进程调度。通过对不同进程调度算法的比较分析,我们不仅揭示了各种算法背后的原理和设计理念,还讨论了它们在现代多核处理器环境下的性能表现和适用场景。文章首先回顾了进程调度的基本概念,随后详细阐述了几种经典调度策略,包括先来先服务、短作业优先以及时间片轮转等。接着,本文通过模拟实验对比了这些策略在不同工作负载下的表现,并提出了改进的调度方案。最后,文章展望了未来进程调度研究的方向,特别是在人工智能和机器学习领域的应用前景。
11 3
|
6天前
|
算法 安全 调度
深入理解操作系统:进程管理与调度策略
【4月更文挑战第29天】 在本文中,我们将深入探讨操作系统的核心组件之一——进程管理。首先,我们将解释进程的概念以及它们在操作系统中的作用。接着,我们将详细讨论不同的进程调度策略,包括先来先服务、短作业优先和轮转调度等。此外,我们还将分析这些调度策略的优缺点,并探讨它们在不同场景下的应用。最后,我们将展望操作系统进程管理的未来发展趋势。

相关实验场景

更多