前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >进程的韵律:探索计算机世界中的动态舞台

进程的韵律:探索计算机世界中的动态舞台

作者头像
洁洁
发布2024-01-05 08:53:59
1180
发布2024-01-05 08:53:59
举报
文章被收录于专栏:小洁叫你mysql小洁叫你mysql

进程定义

进程:一个具有一定功能的程序在一个数据集合上的一次动态执行过程。

进程是指正在运行的程序,它是操作系统进行资源分配和调度的基本单位。在计算机中,每个进程都有自己的地址空间、堆栈、文件描述符、环境变量等,每个进程之间相互独立,互不干扰。

进程可以由操作系统启动、停止和切换,它们可以并发地运行,从而提高计算机的利用率。操作系统为每个进程分配一定的资源,如CPU时间、内存空间、IO设备等,以便进程能够顺利地运行。

进程在运行过程中,可以向操作系统请求系统资源,如申请内存、打开文件等。如果操作系统无法满足进程的资源需求,则进程可能会被阻塞,直到资源可用为止。

在多任务操作系统中,操作系统可以同时执行多个进程,每个进程运行在独立的地址空间中,相互之间不会干扰。操作系统通过进程调度算法来决定哪些进程应该获得CPU时间,从而实现了多任务并发运行的功能。

进程的组成

请添加图片描述
请添加图片描述

一个进程应该包括: 程序的代码,程序处理的数据,程序计数器中的值,指示下一条将要运行的指令,一组通用的寄存器的当前值,堆栈,一组系统资源(如打开的文件) 进程包含了正在运行的一个程序的所有状态信息。

当一个程序被执行时,操作系统会为该程序创建一个新的进程,在进程中运行程序的代码。进程通常包含以下几个部分:(更专业的术语)

  • 程序代码:进程所要执行的指令集合,通常存储在可执行文件中。
  • 数据段:进程所使用的全局变量、静态变量和常量等数据。
  • 堆区:进程所使用的动态内存空间,由程序员手动申请和释放。
  • 栈区:进程所使用的局部变量和函数调用等信息。
  • 进程控制块(Process Control Block,简称PCB):操作系统用来管理进程的数据结构,包括进程ID、状态、优先级、CPU寄存器、内存映像等信息。

程序代码和数据段通常存储在进程的内存空间中,堆区和栈区则位于内存的不同部分。进程控制块保存了进程的所有信息,包括进程的状态、优先级、寄存器的值、内存映像等,用于操作系统对进程进行管理和控制。

在多任务操作系统中,操作系统可以同时执行多个进程,每个进程运行在独立的地址空间中,相互之间不会干扰。操作系统通过进程调度算法来决定哪些进程应该获得CPU时间,从而实现了多任务并发运行的功能。

请添加图片描述
请添加图片描述

进程与程序区别

进程和程序是两个相关但不同的概念。

程序(Program)是指由一系列指令组成的可执行文件,它是静态的,是一种被保存在存储介质中的数据。程序本身并不具备运行的能力,只有当程序被加载到内存中并由操作系统创建相应的进程时,才能真正执行。程序·是产生进程的基础

进程(Process)是指正在运行的程序的实例。进程是动态的,是操作系统对程序的一次执行过程的抽象。每个进程都拥有自己的独立地址空间、数据、堆栈等资源,可以与其他进程并发地执行。进程是操作系统进行资源分配和调度的基本单位,它可以向操作系统请求系统资源,如内存、CPU时间、IO设备等。进程是程序功能的体现

程序的每次运行构成不同的进程 通过多次执行,一个程序可对应多个进程;通过调用关系,一个进程可以包括多个程序。

进程是动态的,程序是静态的

程序是有序代码的集合,进程是程序的执行,进程有核心态/用户态 进程是暂时的,程序是永久的,进程是一个状态变化的过程,程序可长久保存 进程与程序的组成不同,进程的组成包括程序,数据和进程控制块(即进程状态信息) 程序是静态的,是指令的集合,而进程是程序的执行实例,是动态的。程序是操作系统中的一个文件,而进程是操作系统中运行的实体。进程的创建需要操作系统的支持,而程序则是用户编写的代码。

进程与线程区别

进程:有独立的进程地址空间,有独立的pcb 线程:有独立的pcb,但是没有独立的地址空间(它是共享空间的)

所以进程与线程最大的区别就是在于 : 有没有共享地址空间

用一个形容词来比喻一下方便大家理解:进程就是 一个人住在一间房子里,它是独居的,而线程则是这个人把房子租出去了,几个人共同住在这个房子里,他们是合租关系。

在Linux环境下,LWP :线程号,light weight process轻量级的进程,本质是进程 线程是最小的执行单位,进程是最小的分配资源单位,可以看成是只有一个线程的进程

请添加图片描述
请添加图片描述

进程特点

  • 动态性:可动态地创建,结束进程
  • 并发性:进程可以被独立调度并占用处理机运行,并发并行
  • 独立性:不同进程的工作不相互影响
  • 制约性:因访问共享数据/资源或进程间同步而产生制约

进程控制

请添加图片描述
请添加图片描述

进程控制块:操作系统管理控制进程运行所用的信息集合。

操作系统用PCB来描述进程的基本情况以及运行变化的过程 PCB是进程存在的唯一标志。 使用进程控制块可以实现 进程的创建(为该进程生成一个PCB),进程的终止(回收它的PCB),进程的组织管理(通过对PCB的组织管理来实现)

PCB含有三大类信息

  • 一:进程标识信息, 如本进程的标识,本进程的产生者标识(父进程标识),用户表示。
  • 二:处理机状态信息保存区。 保存进程的运行现场信息:用户可见寄存器,用户程序可以使用的数据,地址等寄存器。 控制和状态寄存器,如程序计数器(pc),程序状态字(psw) 栈指针,过程调用/系统调用/中断处理和返回时需要用到它
  • 三:进程控制信息 调度和状态信息,用于操作系统调度进程并占用处理机使用 进程间通信信息,为支持进程间的与通信相关的各种标识,信号,信件等,这些信息存在接收方的进程控制块中。 储存管理信息,包含有指向本进程映像储存空间的数据结构。 进程所用资源,说明由进程打开,使用的系统资源,如打开的文件等 有关数据连接信息,进程可以连接到一个进程队列中,或连接到相关的其他进程PCB

结尾

通过对进程的深入探索,我们可以更好地理解计算世界的运作方式。进程作为操作系统中最基本的单位,展现了计算机系统中的并发和并行的能力。它们像是舞台上的舞者,各自独立而又协同合作,共同构成了一个精密而有序的演出。

在进程的世界里,程序变得有血有肉,通过堆栈、数据段和代码段等组成部分,实现了复杂的逻辑和数据处理。进程之间相互独立,通过操作系统的调度和资源分配,实现了多任务的并发执行。这种并发性不仅提高了计算机系统的效率,也为我们提供了更好的用户体验。 然而,进程也面临着一些挑战和问题。资源竞争、死锁等现象可能会导致系统的不稳定性。因此,我们需要合理地管理和调度进程,确保它们能够高效地运行并相互协作。

总之,进程是计算世界中的重要组成部分,它们以自己独特的方式展示着计算机系统的魅力。通过深入了解进程的工作原理和管理方法,我们可以更好地理解和应用计算机科学的知识,为我们的工作和生活带来更多的便利和创新。让我们一起探索进程的奇妙之旅,开启计算世界的新篇章!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-01-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 进程定义
  • 进程的组成
  • 进程与程序区别
  • 进程与线程区别
  • 进程特点
  • 进程控制
  • 结尾
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档