美文网首页
二、操作系统之进程

二、操作系统之进程

作者: ZhengYaWei | 来源:发表于2018-07-10 23:35 被阅读103次

前言

该篇文章主要说一些关于操作系统中进程相关的内容。主要涉及如下方面:

  • 进程(进程组成和概念、进程和程序的关系、进程状态、PCB、CPU在进程间切换)
  • 进程操作(创建、终止、等待)
  • 进程通信(独立进程、协同进程,其中协同进程中涉及共享内存和消息传递)

一、进程

1.1 进程概念和组成

进程简单来说是执行中的程序。另一种说法是一个程序在一个数据集上的一次执行。进程由代码和当前活动组成。当前活动中包含程序计数器、堆栈、数据、堆。具体如下图:


1.2 进程和程序的关系

  • 1、进程是程序的一个实例,是程序的一次执行。
  • 2、一个程序可对应一个或多个进程,同样一个进程可对应一个或多个程序。
  • 3、程序是进程的代码部分。
  • 4、进程是活动实体,程序是静止实体。
  • 5、进程在内存,程序在外存。

1.3 进程的状态

进程有就绪(等待分配处理器)、运行(指令执行中)、阻塞(等待某些事件)、新建(创建中)、终止(执行完毕)五种状态。进程的执行过程中,一直在这五种状态中切换。


1.4 进程控制块 PCB

为了管理每个进程,系统为每个进程创建进程控制块(PCB)。进程与进程控制块是一一对应的,进程通过管理PCB来管理进程。PCB内包含:进程状态、程序计数器、CPU寄存器、CPU调度信息、内存管理信息、记账信息、I/O状态信息。

1.5 CPU在进程间切换

进程一般是并发执行的。值得注意的是CPU在进程间切换的过程,需要PCB保存和恢复现场,这是一种比较大的开销。

二、进程操作

2.1 进程创建

父进程创建子进程,如此轮流下去创建进程,构成一棵进程树。每个进程都有一个唯一表示 pid ,用于唯一表示标识该进程。进程创建是原子操作。

2.2 结束进程的方式

  • 进程执行最后一项并退出
  • 父进程可终止子进程的执行
  • 父进程可等待子进程的结束(调用wait系统函数)

三、进程通信

3.1 独立进程和协同进程概述

操作系统中的进程可以是独立进程或协同进程。独立进程是指不会影响另一个进程的执行或被另一个进程执行影响(即进程之间不存在数据共享)。协同进程是指可能影响另一个进程的执行或被另一个进程的执行影响。同独立进程相比,协同进程具有信息共享、模块化、加速运算等优点。

3.2 协同进程中的进程间通信(IPC)

进程间通信有两种方式:共享内存和消息传递。如下图,左边是消息传递,右边是共享内存。共享内存的方式能以最快的速度进行方便的通信,适用于大量数据场景;消息传递适用于交换较少数据量的场景,因为需要内核的介入消息传递消耗时间多,而共享内存的方式无需内核的介入。


3.2.1 共享内存

一块内存在多个进程间共享,一般用于大数据通信。实现手段可以是文件映射、管道、剪贴板等。最典型的共享内存方式是生产者-消费者的例子,如下图生产者进程生产信息,供消费者进程消费。


3.2.2 消息传递

消息传递是微内核中的应用。消息传递有两个操作:发送和接收消息。若P和Q通信,则需要两步:1、建立通信连接。2、通过send/receive交换消息。

相关文章

  • 二、操作系统之进程

    前言 该篇文章主要说一些关于操作系统中进程相关的内容。主要涉及如下方面: 进程(进程组成和概念、进程和程序的关系、...

  • Linux下的信号量使用

    信号量 信号量原语 进程同步的主要方式之一。具体概念参考[《《操作系统概念精要》基本概念整理之进程同步篇(二)》]...

  • Linux下的共享内存

    共享内存是最高效的IPC机制,具体概念参考[《《操作系统概念精要》基本概念整理之进程同步篇(二)》],(https...

  • 计算机系统010 - 操作系统之并行

    上一篇计算机系统009 - 操作系统之进程中讲述了操作系统设立进程、线程的概念主要是为了便于切换管理,同时也提到,...

  • JS内存图

    Get Started • 操作系统• 进程与线程• JS引擎• 瓜分内存• JS入门三座大山之原型 操作系统常识...

  • 【操作系统笔记】进程管理

    一、前言 之前已经介绍了操作系统的各个模块,现在来具体深入学习操作系统中的进程管理。 二、进程的基本概念 在未配置...

  • 进程和线程的理解

    进程:对于操作系统而言,进程是整个现代操作系统的核心根本,操作系统是以进程为单位执行任务。 线程:随着技术的发展,...

  • 43.进程和线程和事件循环

    操作系统-进程-线程 线程和进程是操作系统中的两个概念: 进程(process):计算机已经运行的程序,是操作系统...

  • 并发编程的理论基石

    一、进程和线程 1.操作系统、进程、线程的关系 操作系统是包含多个进程的容器,而每个进程又是容纳多个线程的容器。 ...

  • 操作系统(二)——进程管理

    程序活着的标志是进程,把进程总结为一个公式:进程=程序+状态。多个进程在内存中运行过程就像一场社交活动,需要交流,...

网友评论

      本文标题:二、操作系统之进程

      本文链接:https://www.haomeiwen.com/subject/tinheftx.html