关于进程与进程调度

简介: 关于进程与进程调度

什么是进程


一个运行起来的程序就是进程.

比如文件名是以 exe 结尾的就是一可执行文件(程序)


70ea57f9b55b43fa84a9de4833bb42d5.png


双击QQ.exe文件, 这个程序就跑起来了, 它在系统中形成了一个进程, 那我们怎么看到进程呢?

可以打开任务管理器, 点开进程就可以看到了:


62c0d62b1a44445f96c1309dac24d596.png


进程管理


我们可以看到上面有100多个进程, 那它们有是如何被管理的呢?

其实就是两步:


  1. 描述一个进程 : 使用 结构体 / 类, 把一个进程有哪些信息表示出来.
  2. 组织这些进程 : 使用一定的数据结构来把这些 结构体 / 对象 放到一起.

进程的结构体(PCB)里的属性


1.pid 就像我们的身份证一样, 每个进程也需要有唯一的身份标识.


2.内存指针 当前这个进程使用的内存是哪一部分


3.文件描述符表


进程每次打开一个文件, 就会产生一个"文件描述符", 标识这个被打开的文件

一个进程可能打开多个文件, 对应一组"文件描述符"

把这些文件描述符放到顺序表这样的结构里, 就构成了"文件描述符表".


4.有一组属性是专门来描述和CPU资源相关的, 这些属性都是辅助进行, 是进程调度.


1.进程状态

简单认为进程有两种状态:

就绪态: 该进程已近准备好, 可以随时上CPU执行.

阻塞态: 该进程暂时无法上CPU执行.


2.进程的优先级

进程之间的调度不一定是公平的, 有些进程会优先调度.


3.进程的上下文

就行当于是个存档记录, 描述了进程执行到了哪里, 进程在离开CPU的时候就会把当前运行的中间结果存档, 等下次进程在CPU上执行的时候, 再读档, 从上次的结果开始继续执行.


4.进程的记账信息

统计了每个进程在CPU上执行的次数, 可以作为调度的参考依据.


操作系统往往使用 双向链表 来存储PCB


  1. 创建一个进程就是创建一个节点.
  2. 删除一个进程就是把这个节点给删了.
  3. 遍历进程列表, 就是在遍历链表.


并行与并发


并行:

同一时刻, 两个核心同时执行两个进程, 此时这两进程就是 “并行” 执行的.


并发:

一个核心先执行进程1, 执行一会儿后再去执行进程2, 再执行一会儿后去执行进程3…此时这里的切换速度如果足够快, 那么看起来这些进程1,2,3就是同时 “执行” 的. 这便是并发.


因为并发与并行完全是操作系统自身控制的, 我们感受不到, 所以在很多时候我们都把 并行+并发 统称为并发.


相关文章
|
6天前
|
算法 大数据 调度
深入理解操作系统:进程管理与调度策略
【4月更文挑战第27天】 在现代计算机系统的核心,操作系统扮演着至关重要的角色。它不仅管理硬件资源,还为应用程序提供必要的服务。其中,进程管理是操作系统的一个关键组成部分,它负责创建、执行以及终止进程。而进程调度策略则是确保系统高效运行的基石。本文将探讨操作系统中的进程管理机制及其调度策略,分析它们如何影响系统性能,并讨论当前的挑战及未来可能的发展方向。
|
6天前
|
算法 调度 UED
作业调度算法(含详细计算过程)和进程调度算法浅析
作业调度算法(含详细计算过程)和进程调度算法浅析
37 1
作业调度算法(含详细计算过程)和进程调度算法浅析
|
6天前
|
算法 Ubuntu Linux
【操作系统原理】—— 进程调度
【操作系统原理】—— 进程调度
8 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天】 在本文中,我们将深入探讨操作系统的核心组件之一——进程管理。首先,我们将解释进程的概念以及它们在操作系统中的作用。接着,我们将详细讨论不同的进程调度策略,包括先来先服务、短作业优先和轮转调度等。此外,我们还将分析这些调度策略的优缺点,并探讨它们在不同场景下的应用。最后,我们将展望操作系统进程管理的未来发展趋势。

相关实验场景

更多