进程和进程的调度

简介: 进程和进程的调度

今天,为大家带来进程和进程的调度的学习

1.认识计算机

2.什么是操作系统

3.什么是进程

4.进程管理

5.进程的属性

6.进程的调度

7.进程调度的过程

8.内存分配


1.认识计算机


计算机的组成有五大部分

1.CPU(是计算机的大脑,负责逻辑运算和控制)

2.内存

3.外存

4.输入设备

5.输出设备

由存储空间排序

硬盘>内存>>cpu

数据访问速度

cpu>>内存>硬盘


2.认识操作系统(OS)

操作系统作系统是一组软件集合,管理计算机软硬件资源,并且协调CPU运行


22d6faa9cbe749beb812eed75c49903e.png

上述图就是计算机中操作系统所处的位置,可以看出在很关键的位置

对下要管理CPU,内存,外存,以及IO设备,对上要管理各种应用程序

我们所要谈的进程就是基于操作系统来说的,操作系统有一个功能,那就是进程管理


3.什么是进程(process)

进程说的通俗一点就是任务,也就是一个跑起来的程序,可以称为程序

进程是操作系统对一个正在运行的程序的一种抽象,换言之,可以把进程看做程序的一次运行过程;

在操作系统内部,进程是操作系统进行资源分配的基本单位。

进程就是跑起来的程序


我们先来看看进程

打开电脑的任务资源管理器


这里有很多正在运行的程序,就称为进程

电脑的这些程序在运行时需要向操作系统申请内存,现在有这么多进程,就需要进行进程管理,这样计算机才能有序工作


4进程的管理:


进程管理分为两步

1.描述一个进程

就是用一个结构体或者一个类将进程的信息表示出来

2.组织一个进程

用数据结构将结构体或者对象放在一起


5进程的属性

既然我们要将进程的结构体(PCB   >> process  control  block )进行组织,那么就得了解它的属性,PCB的属性非常多,我们今天就挑几个典型的来说一说


1.进程标识  pid


每一个进程都必须有唯一的一个身份标识


2.内存指针


进程就是跑起来的程序,跑起来的程序需要占用一定的内存资源,那么内存指针可以告诉操作系统哪部分的内存资源被占用了


3.文件描述符表


没有运行的程序并且在硬盘上存储的就称为文件,当一个文件运行时被标记,文件一旦打开就产生了一个文件描述符,当打开的文件很多的时候,就会标记产生很多文件描述符,这个时候把这些文件描述符放到一个表里面,这个表叫做文件描述符表


4.这个属性,不是一个属性,是一组和CPU资源相关的属性,,这组属性辅助操作系统进行进程调度


(1)进程状态


进程有两种状态,一个是就绪状态,一个是阻塞状态


就绪状态:进程已经准备好,随时可以上CPU执行


阻塞状态:进程还没准备好,暂时无法上CPU执行


(2)进程的优先级


进程的调度不一定公平,会遵循优先级,优先级调度


(3.)进程的上下文


就是记录进程运行到哪里的存档,当A进程突然离开CPU,那么B进程进入CPU执行,执行完后进程A回来继续执行,就从进程A的突然中断的地方继续执行


在进程上来说,就是进程运行中,CPU内部的寄存器存储的值,寄存器有很多作用,在这里的作用就是保存当前进程执行的中间结果,包括了执行到哪一条指令


寄存器有一个存档和读档的操作


所谓存档:进程在中途离开CPU的时候,寄存器会记录进程执行到哪一步了,那么CPU把寄存器上的值存到PCB的上下文中


所谓读档:当进程回到CPU中,CPU将PCB上的存档记录读取到寄存器上


(4)进程的记账信息


记录进程在CPU执行的时间长短,便于操作系统进行进程的调度


6进程调度:当CPU空闲时,操作系统从就绪队列上选择一个进程执行

操作系统使用双向链表组织PCB

进程的创建:创建一个链表结点

进程的销毁:删除一个链表节点

进程列表的遍历:遍历该链表


7.进程的调度过程


1.并行:同一时刻,同一个cpu,两个核心,同时执行两个进程,互不干扰


2.并发:同一个CPU,一个核心,先执行进程1,执行一会儿,再去执行进程2,执行一会儿,再去执行进程3,切换的速度非常快,快到几乎感受不到,所以看起来就像同时执行了


所以,进程的执行采用并行+并发的形式来执行.很多时候,把并行和并发统称为并发,这个并发是宏观意义上的并发


8.内存的分配


操作系统对内存资源的分配是空间模式,即不同的进程在执行的时候使用内存的不同区域,不会互相影响


扩展一下.,操作系统对进程执行分配的内存是虚拟地址,看似是一样的内存地址,但是通过映射到真实内存上,就是不一样的地址,不一样的内存区域


每个进程访问的内存地址都不是真正的物理内存地址


画个图理解一下

9decbd9b4dd2420d9319e9c00229dcf1.png使用虚拟地址有效避免了野指针问题以及进程之间会相互干扰的问题

所以,进程有稳定性和独立性,每一个进程都有独立的内存地址空间,不会被干扰到

今天的内容就分享到这里,我们下期再见!!!


相关文章
|
3月前
|
存储 负载均衡 算法
Linux2.6内核进程调度队列
本篇文章是Linux进程系列中的最后一篇文章,本来是想放在上一篇文章的结尾的,但是想了想还是单独写一篇文章吧,虽然说这部分内容是比较难的,所有一般来说是简单的提及带过的,但是为了让大家对进程有更深的理解与认识,还是看了一些别人的文章,然后学习了学习,然后对此做了总结,尽可能详细的介绍明白。最后推荐一篇文章Linux的进程优先级 NI 和 PR - 简书。
105 0
|
10月前
|
算法 调度 UED
深入理解操作系统:进程调度与优先级队列
【10月更文挑战第31天】在计算机科学的广阔天地中,操作系统扮演着枢纽的角色,它不仅管理着硬件资源,还为应用程序提供了运行的环境。本文将深入浅出地探讨操作系统的核心概念之一——进程调度,以及如何通过优先级队列来优化资源分配。我们将从基础理论出发,逐步过渡到实际应用,最终以代码示例巩固知识点,旨在为读者揭开操作系统高效管理的神秘面纱。
|
9月前
|
存储 算法 调度
深入理解操作系统:进程调度的奥秘
在数字世界的心脏跳动着的是操作系统,它如同一个无形的指挥官,协调着每一个程序和进程。本文将揭开操作系统中进程调度的神秘面纱,带你领略时间片轮转、优先级调度等策略背后的智慧。从理论到实践,我们将一起探索如何通过代码示例来模拟简单的进程调度,从而更深刻地理解这一核心机制。准备好跟随我的步伐,一起走进操作系统的世界吧!
|
10月前
|
消息中间件 算法 调度
深入理解操作系统:进程管理与调度
操作系统是计算机系统的核心,负责管理和控制硬件资源、提供用户接口以及执行程序。其中,进程管理是操作系统的重要组成部分,它涉及到进程的创建、调度、同步和通信等方面。本文将深入探讨进程管理的基本概念、进程调度算法以及进程间的同步和通信机制。通过本文的学习,读者将能够更好地理解操作系统的工作原理,并掌握进程管理的基本技能。
142 11
|
10月前
|
算法 调度 UED
深入理解操作系统:进程管理与调度策略
操作系统作为计算机系统的核心,其进程管理和调度策略对于系统性能和用户体验至关重要。本文将通过直观的代码示例和浅显易懂的语言,带领读者了解操作系统如何有效管理进程以及常见的进程调度算法。我们将从进程的基本概念出发,逐步深入到进程状态、进程控制块(PCB)的作用,最后探讨不同的调度算法及其对系统性能的影响。无论您是初学者还是有一定基础的开发者,都能从中获得有价值的信息。
|
10月前
|
负载均衡 算法 调度
深入理解操作系统:进程管理与调度
在数字世界的心脏,操作系统扮演着至关重要的角色。它如同一位精明的指挥家,协调着硬件资源和软件需求之间的和谐乐章。本文将带你走进操作系统的核心,探索进程管理的艺术和调度策略的智慧。你将了解到进程是如何创建、执行和消亡的,以及操作系统如何巧妙地决定哪个进程应该在何时获得CPU的青睐。让我们一起揭开操作系统神秘的面纱,发现那些隐藏在日常计算背后的精妙机制。
|
10月前
|
调度 开发者
深入理解操作系统之进程调度
在计算机科学领域,操作系统是核心的一环,它管理着计算机硬件资源,并提供接口供上层软件运行。本文将通过深入浅出的方式,探讨操作系统中至关重要的一个概念——进程调度。我们将从基础理论出发,逐步展开讲解进程调度的原理和实现,并配以实际代码示例,旨在帮助读者更好地理解和掌握这一主题。文章不仅适合初学者建立基础,也适合有一定基础的开发者深化理解。
|
10月前
|
算法 调度 UED
深入理解操作系统:进程管理与调度策略
【10月更文挑战第40天】在数字世界中,操作系统是连接硬件与软件的桥梁,它管理着计算机资源和提供用户服务。本文将深入探讨操作系统中的进程管理与调度策略,揭示它们如何协调多任务运行,保证系统高效稳定运作。通过代码示例,我们将展示进程创建、执行以及调度算法的实际应用,帮助读者构建对操作系统核心机制的清晰认识。
|
9月前
|
Java Linux API
[JavaEE]———进程、进程的数据结构、进程的调度
操作系统,进程任务,PCB,PID,内存指针,文件描述符表,进程的调度,并发编程,状态,优先级,记账信息,上下文
|
10月前
|
算法 调度 UED
深入理解操作系统:进程管理与调度策略
【10月更文挑战第34天】本文旨在探讨操作系统中至关重要的一环——进程管理及其调度策略。我们将从基础概念入手,逐步揭示进程的生命周期、状态转换以及调度算法的核心原理。文章将通过浅显易懂的语言和具体实例,引导读者理解操作系统如何高效地管理和调度进程,保证系统资源的合理分配和利用。无论你是初学者还是有一定经验的开发者,这篇文章都能为你提供新的视角和深入的理解。
103 3