Java并发编程整理之进程讲解(2)
2017-11-24 本文已影响0人
二月夜
Java并发编程整理之进程讲解
进程可看做是正在执行的程序。进程需要一定的资源(如 CPU时间、内存、文件 和 I/O设备)来完成其任务。这些资源在创建进程或执行进程时被分配。
进程是大多数系统中的工作单元。这样的系统由一组进程组成:操作系统进程执行系统代码,用户进程执行用户代码。所有这些进程可以并发执行。
虽然从传统意义上讲,进程运行时只包含一个控制线程,但目前大多数现代操作系统支持多线程进程。
操作系统负责进程和线程管理,包括用户进程与系统进程的创建与删除,进程调度,提供进程同步机制、进程通信机制与进程死锁处理机制。
[基础知识之进程管理]http://blog.csdn.net/ajian005/article/details/18370511)
-
进程包含当前的状态,这由程序计数器和处理器中寄存器表示。进程通常包含了进程栈(Process stack)(如方法参数[method parameters]、返回地址和本地变量和一个数据段(存储全局变量)。
如,Java虚拟机是操作系统下的一个进程:
我们强调程序本身不是进程;程序是静态实体(就像是存储在磁盘上的文件),进程是动态实体,它有一个程序计数器指明下一条要执行的指令,并且拥有一组相关的资源。
jvm_tu_1.jpg
-
进程状态
process_state.jpg
-
进程控制块(PCB Program Control Block)
操作系统通过进程控制块(PCB)表示进程,进程控制块也被称为任务控制块。
process_control_block.jpg
描述了一个进程控制块。它存储了某一具体进程的信息,这包括:
- 进程状态:该状态可能是新、就绪、运行、等待、停止等等。
- 程序计数器:该计数器指明了该进程要执行的下一条指令的地址。
- CPU 寄存器:基于计算机体系结构,这些寄存器的数量和类型很不相同。这包括了累加器、变址寄存器、栈指针、通用寄存器以及条件信息(condition-code information)。连同程序计数器,在中断发生时必须要保存这些状态信息,这样便于后来进程继续正确执行(图4.3)。
- CPU 调度信息:包括进程优先权、指向调度队列的指针和其它的调度参数。(第六章描述进程调度。)
存储器管理信息:可能包括诸如基址寄存器和界限寄存器值、页表或段表,这取决于操作系统所选用的存储系统(第九章)。 - 记账信息(accounting information):包括CPU 数量和实时使用量、时间限制、账户数目、作业或进程数目等等。
- I/O 状态信息:包括分配给该进程的I/O 设备的列表、打开的文件的列表等等。