进程调度的基本过程

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

一. 进程是什么?

进程可以简单理解成跑起来的程序,xx.exe都称为"可执行文件",把这些运行起来的可执行文件,称为“进程”,如下面的QQ等等都是一个进程.

二. 操作系统是如何管理进程的?

操作系统管理进程,会用到进程控制块(PCB)或者叫进程表,我们可以把进程表理解为是一种数据结构,把进程当作链表中的一个结点;

进程管理就是把一个进程用类似结构体把信息描述出来

然后把一堆进程组织起来,类似一个进程就是链表中的一个节点

首先,为了管理进程,系统会先创建一个PCB,就类似链表的节点一样

(1)标记进程身份:为每个进程创建一个pid,每个进程需要一个唯一的身份标识;

(2)内存指针:当前这个进程使用的内存是那一部分

(3)为进程创建文件描述符表:进程每次打开一个文件,就会产生一个文件描述符,一个进程可能打开很多文件,对应一组文件描述符,把这些文件描述符放在一个顺序表中,就构成"文件描述符表"

因此进程是操作系统进行资源分配的基本单位

三. 系统如何调度进程?

对于我们人大部分时候,一次性只能做一件事情,比如看电视和写作业这两个事情大概率不会一起做,因为我们注意力不能同时放在两个事情,但是会有人会边做作业边看电视,原理就是把注意力来回的从看电视和写作业中来回跳.


对于进程,CPU的一个核心同时只能执行一个进程,那么计算机是如何做到可以同时运行多个程序的呢?大致也是上述原理,只要跳的够快就能一起做很多事情.


操作系统对CPU资源的分配,采用的是时间模式 —— 不同的进程在不同的时间段去使用 CPU 资源.


进程的运行,需要从操作系统这里申请资源,进程是操作系统进行资源分配的基本单位。


接下来的一组属性,就是描述和CPU资源相关的属性,这些都是辅助进行,进程调度


1.进程状态:a.就绪态:该进程已经准备好,随时可以上cpu执行


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


2.进程的优先级:进程之间的调度不一定是公平的,需要一定的优先调度                


3.进程的上下文:所谓上下文就是描述了当前进程执行到哪里这样的存档记录,当进程在离开CPU的时候就要把当前运行的中间结果,“存档”等待下次进程回来CPU上,恢复之前的“存档‘,从上次的结果继续往后执行.具体到进程,所谓的上下文具体指就是进程运行过程中,CPU内部的一系列寄存器的值,寄存器有很多种,最经典的就是保存当前进程执行的中间结果,包括进程执行到哪一条指令,进程离开CPU就需要把这些寄存器的值保存到CPU的上下文字段中.


4.进程的记账信息:统计了每个进程在CPU上执行了多久,可以作为调度的参考依据.


四. 并行与并发

并行: 就是两个核心同时执行两个进程


并发: 就是一个核心做完1,在做2再做3,只要切换得够快就可以看起来这三个进程是同时进行的. 很多时候会把并行和并发称为并发

目录
相关文章
|
3天前
|
算法 调度 UED
探索操作系统中的进程调度:理论与实践
【9月更文挑战第24天】 在数字世界的心脏跳动着的是操作系统,它像一位精明的指挥家,精心安排每个音符的演奏。本文将带你进入操作系统的内核,一探进程调度的秘密。我们将从简单的批处理系统谈起,穿越时间隧道,见证现代多道程序设计系统的复杂性与优雅。你将看到代码如何赋予理论以生命,理解调度算法背后的哲理。让我们一起跟随甘地的指引,成为我们希望在世界上看到的改变。
|
2天前
|
存储 算法 前端开发
深入理解操作系统:进程调度与优先级队列算法
【9月更文挑战第25天】在操作系统的复杂世界中,进程调度是维持系统稳定运行的核心机制之一。本文将深入探讨进程调度的基本概念,分析不同的进程调度算法,并着重介绍优先级队列算法的原理和实现。通过简洁明了的语言,我们将一起探索如何优化进程调度,提高操作系统的效率和响应速度。无论你是计算机科学的初学者还是希望深化理解的专业人士,这篇文章都将为你提供有价值的见解。
|
5天前
|
算法 Unix 调度
探索操作系统的心脏:进程管理与调度
【9月更文挑战第22天】在数字世界的复杂迷宫中,操作系统(OS)是指引路径的明灯。本文深入探讨了操作系统的核心功能——进程管理和调度机制,揭示了它们如何确保多任务同时流畅运行。通过比喻和简化的解释,我们将解码进程生命周期的奥秘,并理解调度算法如何在公平性和效率间取得平衡。无论你是技术新手还是资深开发者,这篇文章都将带给你新的视角和深刻的见解。
|
7天前
|
算法 Unix Linux
深入理解操作系统:进程管理与调度
【9月更文挑战第20天】在探索计算机科学的核心,我们不可避免地会遇到操作系统——这一复杂而精妙的软件系统。本文将深入剖析操作系统的关键组成部分之一:进程管理与调度。我们将通过浅显易懂的语言和直观的代码示例,逐步解开进程生命周期的奥秘,并探讨如何高效地进行进程调度。无论你是初学者还是有一定基础的开发者,这篇文章都将为你提供新的视角和深入的理解。
33 13
|
6天前
|
算法 调度
深入理解操作系统:进程调度与优先级反转
【9月更文挑战第21天】在操作系统的心脏跳动着的,是进程调度器。它决定了哪个进程运行,何时运行,以及如何优雅地共享CPU资源。本文将通过浅显易懂的语言和直观的代码示例,探索进程调度的奥秘,揭示优先级反转问题及其解决方案,带领读者领略操作系统中这一精妙绝伦的设计。
|
8天前
|
监控 算法 程序员
探索操作系统的核心:进程管理与调度
【9月更文挑战第19天】本文深入浅出地探讨了操作系统中至关重要的一环——进程管理与调度。通过直观的语言和生动的案例,我们将了解进程是什么,它们如何被操作系统所管理,以及调度算法对系统性能的影响。文章旨在为读者揭示操作系统背后的秘密,同时提供实用的代码示例来加深理解。无论你是计算机专业的学生还是对操作系统有兴趣的程序员,这篇文章都将为你打开新世界的大门。
|
16天前
|
算法 人机交互 调度
进程调度算法_轮转调度算法_优先级调度算法_多级反馈队列调度算法
轮转调度算法(RR)是一种常用且简单的调度方法,通过给每个进程分配一小段CPU运行时间来轮流执行。进程切换发生在当前进程完成或时间片用尽时。优先级调度算法则根据进程的紧迫性赋予不同优先级,高优先级进程优先执行,并分为抢占式和非抢占式。多队列调度算法通过设置多个具有不同优先级的就绪队列,采用多级反馈队列优先调度机制,以满足不同类型用户的需求,从而优化整体调度性能。
35 15
|
10天前
|
算法 调度 Python
探索操作系统的内核——一个简单的进程调度示例
【9月更文挑战第17天】在这篇文章中,我们将深入探讨操作系统的核心组件之一——进程调度。通过一个简化版的代码示例,我们将了解进程调度的基本概念、目的和实现方式。无论你是初学者还是有一定基础的学习者,这篇文章都将帮助你更好地理解操作系统中进程调度的原理和实践。
|
13天前
|
算法 调度 Python
深入理解操作系统:进程管理与调度
【9月更文挑战第14天】操作系统是计算机系统的核心,负责管理和控制计算机硬件资源,并提供用户和应用程序所需的服务。本文将介绍操作系统中进程管理与调度的基本概念、原理和实现方法,并通过代码示例进行说明。通过阅读本文,读者可以深入了解操作系统的工作原理和机制,提高对计算机系统的理解和掌握能力。
|
9天前
|
算法 调度 开发者
深入理解操作系统的进程调度策略
【9月更文挑战第18天】本文将通过浅显易懂的方式,带你深入了解和掌握操作系统中一个至关重要的概念——进程调度。我们将从基础概念出发,逐步探讨进程调度的策略、算法及其在操作系统中的实现方式。无论你是初学者还是有一定基础的开发者,这篇文章都将为你打开一扇通往操作系统深层知识的大门,让你对进程调度有更深刻的理解和认识。
15 3

相关实验场景

更多