进程和进程的调度

简介: 进程和进程的调度

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

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使用虚拟地址有效避免了野指针问题以及进程之间会相互干扰的问题

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

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


相关文章
|
19天前
|
算法 调度 UED
深入理解操作系统:进程调度与优先级队列
【10月更文挑战第31天】在计算机科学的广阔天地中,操作系统扮演着枢纽的角色,它不仅管理着硬件资源,还为应用程序提供了运行的环境。本文将深入浅出地探讨操作系统的核心概念之一——进程调度,以及如何通过优先级队列来优化资源分配。我们将从基础理论出发,逐步过渡到实际应用,最终以代码示例巩固知识点,旨在为读者揭开操作系统高效管理的神秘面纱。
|
16天前
|
算法 调度 UED
深入理解操作系统:进程管理与调度策略
【10月更文挑战第34天】本文旨在探讨操作系统中至关重要的一环——进程管理及其调度策略。我们将从基础概念入手,逐步揭示进程的生命周期、状态转换以及调度算法的核心原理。文章将通过浅显易懂的语言和具体实例,引导读者理解操作系统如何高效地管理和调度进程,保证系统资源的合理分配和利用。无论你是初学者还是有一定经验的开发者,这篇文章都能为你提供新的视角和深入的理解。
38 3
|
20天前
|
算法 Linux 定位技术
Linux内核中的进程调度算法解析####
【10月更文挑战第29天】 本文深入剖析了Linux操作系统的心脏——内核中至关重要的组成部分之一,即进程调度机制。不同于传统的摘要概述,我们将通过一段引人入胜的故事线来揭开进程调度算法的神秘面纱,展现其背后的精妙设计与复杂逻辑,让读者仿佛跟随一位虚拟的“进程侦探”,一步步探索Linux如何高效、公平地管理众多进程,确保系统资源的最优分配与利用。 ####
57 4
|
21天前
|
缓存 负载均衡 算法
Linux内核中的进程调度算法解析####
本文深入探讨了Linux操作系统核心组件之一——进程调度器,着重分析了其采用的CFS(完全公平调度器)算法。不同于传统摘要对研究背景、方法、结果和结论的概述,本文摘要将直接揭示CFS算法的核心优势及其在现代多核处理器环境下如何实现高效、公平的资源分配,同时简要提及该算法如何优化系统响应时间和吞吐量,为读者快速构建对Linux进程调度机制的认知框架。 ####
|
21天前
|
消息中间件 算法 调度
深入理解操作系统:进程管理与调度策略
【10月更文挑战第29天】本文将带领读者深入探讨操作系统中的核心组件之一——进程,并分析进程管理的重要性。我们将从进程的生命周期入手,逐步揭示进程状态转换、进程调度算法以及优先级调度等关键概念。通过理论讲解与代码演示相结合的方式,本文旨在为读者提供对进程调度机制的全面理解,从而帮助读者更好地掌握操作系统的精髓。
31 1
|
21天前
|
算法 调度 UED
深入理解操作系统中的进程调度
【10月更文挑战第29天】探索进程调度的奥秘,本文将带你深入了解在操作系统中如何管理和控制多个并发执行的程序。从简单的调度算法到复杂的多级反馈队列,我们将逐步揭示如何优化系统性能和提高资源利用率。准备好一起揭开进程调度的神秘面纱吧!
|
26天前
|
算法 大数据 Linux
深入理解操作系统之进程调度算法
【10月更文挑战第24天】本文旨在通过浅显易懂的语言,带领读者深入了解操作系统中的进程调度算法。我们将从进程的基本概念出发,逐步解析进程调度的目的、重要性以及常见的几种调度算法。文章将通过比喻和实例,使复杂的技术内容变得生动有趣,帮助读者建立对操作系统进程调度机制的清晰认识。最后,我们还将探讨这些调度算法在现代操作系统中的应用和发展趋势。
|
1月前
|
算法 调度
深入理解操作系统:进程调度与优先级反转问题
【9月更文挑战第36天】操作系统是计算机科学中的核心概念,它管理着计算机的硬件资源和软件进程。在多任务处理环境中,进程调度是保证系统高效运行的关键机制之一。本文将探讨进程调度的基本概念、调度算法以及它们如何影响系统性能。同时,我们还将讨论优先级反转问题,这是一个在实时系统中常见的问题,它可能导致系统响应时间不可预测。通过分析优先级反转的原因和解决方案,我们可以更好地理解操作系统的设计和优化策略。
|
1月前
|
算法 调度 UED
探索操作系统的心脏:深入理解进程调度
【10月更文挑战第7天】在数字世界的海洋中,操作系统是那艘承载着软件与硬件和谐共处的巨轮。本文将带你潜入这艘巨轮的核心区域——进程调度系统,揭示它如何精准控制任务的执行顺序,保障系统的高效运行。通过深入浅出的语言,我们将一起解码进程调度的奥秘,并借助代码示例,直观感受这一机制的魅力所在。准备好,让我们启航吧!
|
19天前
|
算法 Linux 调度
深入理解操作系统之进程调度
【10月更文挑战第31天】在操作系统的心脏跳动中,进程调度扮演着关键角色。本文将深入浅出地探讨进程调度的机制和策略,通过比喻和实例让读者轻松理解这一复杂主题。我们将一起探索不同类型的调度算法,并了解它们如何影响系统性能和用户体验。无论你是初学者还是资深开发者,这篇文章都将为你打开一扇理解操作系统深层工作机制的大门。
26 0