设为首页收藏本站 JeeStudy企业开发官网①

JEE Study|JAVA EE|企业级开发学习网

 找回密码
 立即加入

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
查看: 1914|回复: 0
打印 上一主题 下一主题

进程管理 - 进程概念

[复制链接]

219

主题

221

帖子

1418

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1418

最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

跳转到指定楼层
楼主
发表于 2020-4-11 11:54:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    早期的计算机系统只允许一次执行一个程序。这种程序对系统有完全的控制,能访问所有的系统资源。而现代计算机系统允许将多个程序调入内存并发执行。这一发展要求对各种程序提供更严格的控制和更好的划分。这些需求产生了进程(process)的概念,即执行中的程序。进程是现代分时系统的工作单元。    操作系统越复杂,就越能为用户做更多的事。虽然操作系统的主要关注点是执行用户程序,但是也需要顾及各种系统任务(放在内核之外会更好)。因此,系统由一组进程组成:操作系统进程执行系统代码,用户进程执行用户代码。通过 CPU 多路复用,所有这些进程可以并发执行。通过在进程之间切换CPU,操作系统能使计算机更为高效。



进程概念
    讨论操作系统的一个障碍是如何称呼所有的CPU活动。批处理系统执行 作业,而分时系统使用 用户程序 或 任务。 即使单用户系统,如 Microsoft Windows,也能让用户同时执行多个程序:字处理程序、网页浏览器和电子邮件程序。即使用户一次只能执行一个程序,操作系统也需要支持其内部的程序活动,如内存管理。所有这些活动在许多方面都相似,因此称它们为 进程(也称作 作业)。


进程

    如上所述,进程是执行中的程序,这是一种非正式的说法。进程不只是程序代码,程序代码有时称为文本段(text section)。 进程还包括当前活动,通过程序计数器(program counter)的值和处理器寄存器的内容来表示。另外,进程通常还包括进程(stack)(包括临时数据,如函数参数、返回地址和局部变量)和数据段(data section)(包括全局变量)。进程还可能包括(heap),是在进程运行期间动态分配的内存

    需要强调的是 ,程序本身不是进程。程序只是 被动实体,如存储在磁盘上包含一系列指令的文件(常被称为可执行文件( executable file) ),而进程是活动实体,它有一个程序计数器用来表示下一条要执行的 命令和相关资源集合。当一个可执行文件被装入内存时,程序才能成为进程。装载可执行文件通常有两种方法,即双击一个代表此可执行文件的图标 或 在命令行中输入该可执行文件的文件名(如 prog.exe或a.out)。
    虽然两个进程可以是同一段程序,但是她们被当做两个独立的执行序列。例如,多个用户可以运行电子邮件的不同副本,或者同一用户能调用Web浏览器程序的多个副本。这些都是独立的进程,虽然文本段相同,但是数据段、堆、堆栈段不同。一个进程在执行时产生许多进程是很正常的。


进程状态
新建-new            : 进程正在被创建。
运行-running      : 指令正在被执行。
等待-waiting       : 进程等待某个事件的发生(如I/O完成或收到信号)。
就绪-ready          : 进程等待分配处理器 。
终止-terminated : 进程完成执行。



    这些状态的名称较随意,且随操作系统的不同而变化。不过,它们所表示的状态可以出现在所有系统上。有的系统更为详细地描述了进程状态。必须认识到,在任何一个处理器上一次只能有一个进程运行,但是许多进程可处于 就绪 或 等待状态。


进程控制块
每个进程在操作系统内用进程控制块(process control block, PCB,也称为 任务控制块)来表示。
进程状态(process state)。状态可包括新建、就绪、运行、等待、终止等。
程序计数器 (program counter)。计数器表示进程要执行的一条指令的地址。
CPU寄存器(CPU register)。根据计算机体系结构的不同,寄存器的数量和类型也不同。它们包括累加器、索引寄存器、堆栈指针、通用寄存器和其他条件码信息寄存器。与程序计数器一起,这些状态信息在出现中断时也需要保存,以便进程以后能正确地继续执行。
CPU调度信息(CPU-scheduling information)。这类信息包括进程优先级、调度队列的指针和其他调度参数。
内存管理信息(memory-management information)。根据操作系统所使用的内存系统,这类信息包括基址和界限寄存器的值、页表或段表。
记账信息(accounting information)。这类信息包括CPU时间、实际使用时间、时间界限、记账数据、作业或进程数量等。
I/O状态信息。(I/O status information)。这类信息包括分配给进程的I/O设备列表、打开文件的列表等。
简而言之,PCB简单地作为这些信息的仓库,这些信息在进程与进程之间是不同的。





















知识改变命运!

JAVA EE 学习     JAVA EE 资料
JEE Study:企业级开发学习网!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

本版积分规则

QQ|Archiver|手机版|小黑屋|JEE Study ( 京ICP备16036936   JeeStudy企业开发官网①

GMT+8, 2024-4-25 18:05 , Processed in 0.224062 second(s), 27 queries .

Powered by JeeStudy!

© 2008-2020 JEE Study 企业级开发学习网

快速回复 返回顶部 返回列表