多进程程序的特点

Posted sheenagh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多进程程序的特点相关的知识,希望对你有一定的参考价值。

一、简介

  进程是一个具有独立功能的程序关于某个数据集合的一次可以并发执行的运行活动,是处于活动状态的计算机程序。进程作为构成系统的基本细胞,不仅是系统内部独立运行的实体,而且是独立竞争资源的基本实体。 

  进程是资源管理的最小单位,线程是程序执行的最小单位。进程管理着资源,而将线程分配到某个cpu上执行。在操作系统设计上,从进程演化出线程,最主要的目的就是更好的支持多处理器系统和减小上下文切换开销

1、进程的状态

 系统为了充分的利用资源,对进程区分了不同的状态。将进程分为新建,运行,阻塞,就绪和完成五个状态。

  新建:表示进程正在被创建

  运行:是进程正在运行

  阻塞:是进程正在等待某一个事件发生

  就绪:是表示系统正在等待 CPU 来执行命令

  完成:表示进程已经结束了系统正在回收资源

  每个进程都有自己的运行环境以使得在CPU做进程切换时不会"忘记"该进程已完成的相关操作,保证切换完成后能回到切换前的文职继续进行处理。 以 DOS 的概念来说, 进程的切换都是一次"DOS 中断"处理过程, 包括三个层次:

  1) 用户数据的保存: 包括正文段(TEXT), 数据段(DATA,BSS), 栈段(STACK), 共享内存段(SHARED MEMORY)的保存

  2) 寄存器数据的保存: 包括 PC(program counter,指向下一条要执行的指令的地址), PSW(processor status word,处理机状态字), SP(stack pointer,栈指针), PCBP(pointer of process control block,进程控制块指针), FP(frame pointer,指向栈中一个函数的 local 变量的首地址), AP(augument pointer,指向栈中函数调用的实参位置), ISP(interrupt stack pointer,中断栈指针), 以及其他的通用寄存器等

  3) 系统层次的保存: 包括 proc,u,虚拟存储空间管理表格,中断处理栈。以便于该进程再一次得到 CPU 时间片时能正常运行。系统已经处理好所有这些中断处理的过程, 我们要做的就是尽可能使用系统提供的多进程的特点,使程序简单高效的运行。

2、多进程的特点

1)并行性

  每一个复杂的事件都可以细分为若干个小的简单的事件,小的事件的计算是互不干扰的,可以同时处理,从时间上看程 序的运行就是并行的。

2)简单有序

  员为每个进程设计好相应的功能, 并 通过一定的通讯机制将它们有机地结合在一起。

3)互不干扰

  操作系统的特点:各个进程是独立的, 不会串位。

4)事务化

  一个进程只处理一次事件,事件结束后进程消失,需要再处理时,再产生进程进行处理。

以上是关于多进程程序的特点的主要内容,如果未能解决你的问题,请参考以下文章

java中啥叫做线程?啥叫多线程?多线程的特点是啥?

Python 多进程和进程池

多线程概念

多线程

Java中的多线程

多线程 多进程 协程 Queue(爬虫代码)