计算机与操作系统:进程

   操作系统中最核心的概念是进程,进程是对正在进行的程序的抽象。因为有了进程这个概念的存在,才让cpu有了(伪)并发操作的能力。

  在任何多道程序设计系统中,cpu在多个进程中不断的切换,每个进程执行几十至几百毫秒。严格来说,在某一个瞬间,cpu只能运行一个进程,而在1秒内,它可能运行多个进程,这就给人了一种进程在并行运行的错觉,以上是指单cpu情况下的伪并行,多cpu计算机(多处理器系统)是可以实现真正意义上的进程并行操作的。

  在进程模型中,计算机中所有可运行的软件,包括操作系统,被组织成若干顺序进程,简称为进程,进程就是一个正在运行的程序的实例,它包括逻辑上的程序计数器(实际上每个cpu只有一个程序计数器),寄存器和变量的当前值。从概念上来说,每一个进程都有自己虚拟的逻辑cpu,实际上真正的cpu在各个进程间来回切换,这种快速的切换叫做多道程序设计。

  

  进程和程序间的区别是微妙的,想象有一位科学家正在为女儿烘制蛋糕,做蛋糕的食谱就是程序,科学家就是处理器(cpu),做蛋糕的各种原料就是输入数据,进程就是科学家阅读食谱,取来各种原料以及烘制蛋糕等一系列动作的总和。假设这时科学家的儿子哭着跑了进来,说他的手被蜜蜂蛰了,科学家就记录下他照着菜谱做的哪了(保存进程的当前状态),然后拿出一本急救手册,按照其中的指示处理蜇伤。这里处理器从一个进程(做蛋糕)切换到一个高优先级的进程(实施救治),每个进程都拥有各自的程序(食谱和急救手册),当处理完蜇伤后,科学家又回来做蛋糕,从他离开时的那一步继续做下去。

  这里的关键思想是:一个进程是某种类型的一个活动,它有程序/输入/输出及状态。单个处理器可以被若干进程共享,它使用某种调度算法决定何时停止一个进程的工作,并转而为另一个进程提供服务。

 

posted @   唐磊(Jason)  阅读(251)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示