进程详细解析

本文重点

目录

什么是进程

进程特征

进程的状态

进程间通讯

进程PCB

进程表



什么是进程

首先可执行文件,代码都是在硬盘中的静态区的
CPU运行的时候,需要由操作系统在内存中创建出一个单独的实例
使得应用程序有自己独立的运行空间,系统资源,执行环境等等

操作系统,负责创建,调度,销毁进程

进程详细解析_第1张图片

进程特征

独立性

每个进程都像一个孤独酱,进程间通讯需要用:

进程间通信(IPC)机制,如管道、消息队列或共享内存。

资源控制

每个进程拥有自己的资源,包括独立的内存空间、文件描述符、CPU时间片、寄存器等。

进程可以访问和操作自己拥有的资源,但不能直接访问其他进程的资源。

并发并行

操作系统可以使得单个核心中,多个进程同时进行并发执行,提供短时间CPU的处理能力,和系统的吞吐量和响应速度。

多个核心同时执行称为并行

隔离性

操作系统给每个进程分配了独立的内存空间,保证进程不会相互影响

如果强行一个进程访问其他进程,那么操作系统很有可能将两个进程都中止


进程的状态

创建态

当一个进程被创建了,但是还没有开始执行的状态,此时操作系统会给他分配资源和空间

就绪态

所有资源准备就绪,在队列中等待操作系统的调用执行

运行态

会把在就绪态的进程,调度到CPU上执行,开始消耗CPU资源和空间

阻塞态

由于某些事件(IO操作)导致进程暂停运行

在这个时候,如果系统判断为挂起状态

操作系统会腾出内存空间,把在内存中占据的空间换到硬盘(外存中),这样再次调用的时候,再从硬盘换到内存

挂起状态

阻塞挂起状态:在这个时候是需要时间从外存中唤醒的

就绪挂起状态:在这个时候内存可以随时从外存中调用进程

进程详细解析_第2张图片

进程详细解析_第3张图片

销毁态

当进程完成其任务或由于某种原因终止时,它就会进入销毁状态。在这个状态下,操作系统会回收与进程相关的资源,并将其从系统中移除。

总结图

进程详细解析_第4张图片


进程间通讯

不同主机通讯在网络上通讯有五/七层模型

那么主机内的自我通讯呢?

消息队列,共享内存,有名管道,无名管道,信号量,信号

消息队列

常见的异步通讯

其中一个进程将消息发送到队列,而另一个进程则从队列中接收消息。

共享内存

一种高效的进程间通信方式,允许多个进程访问同一块物理内存区域。进程可以将数据写入共享内存,其他进程可以读取相同的内存区域中的数据。

这种通信方式通常需要进行同步和互斥来确保数据的一致性。

有名管道

  • 有名管道是一种具有独立文件名的通信机制。
  • 它通常用于不相关的进程之间进行通信,这些进程可以是不同的程序。
  • 有名管道可以通过在文件系统中创建一个具有唯一名称的文件来实现。
  • 进程通过打开该文件来进行通信,一个进程向管道写入数据,而另一个进程从管道中读取数据。

无名管道

  • 无名管道是一种无需具有独立文件名的通信机制。
  • 它通常用于相关的进程之间进行通信,例如,父进程和子进程之间的通信。
  • 无名管道在创建时不需要在文件系统中创建文件,而是直接在内存中创建,因此它更轻量级。
  • 无名管道通常是单向的,一个进程可以将数据写入管道,另一个进程从管道中读取数据。

信号量

信号量是一种同步工具,用于控制多个进程或线程对共享资源的访问。
信号量维护一个计数器,表示可用的资源数量,进程可以通过对信号量执行操作来申请或释放资源。
常见的操作包括P(等待)和V(释放)操作,P操作用于获取资源,V操作用于释放资源。

信号量通常用于解决竞态条件和实现进程间同步。

信号

信号在Linux进程通信中已经是老姜了
用于通知进程某个事件已发生的机制,通常用于处理异步事件

例如进程的终止或某种异常情况。进程可以发送信号给其他进程,以通知它们某个事件的发生

可以达到正在运行的进程被另外一个异步进程打断

但是不能携带大量数据


进程PCB

这个就类似于我们的身份证,记录了我们的个人信息

  • 每个进程都有一个唯一的 PCB。
  • 进程控制块是与每个进程关联的数据结构,用于维护有关进程的详细信息。
  • PCB 存储了进程的当前状态、程序计数器、寄存器内容、内存分配情况、文件描述符、进程优先级等关键信息。
  • PCB 是进程在操作系统中的"身份证",操作系统通过 PCB 来了解和管理每个进程的状态和资源。

补充: PCB采用了链表的数据结构存储,⽐如有就绪队列、阻塞队列等,方便增删,方便进程管理


进程表

  • 进程表是一个系统级的数据结构,通常由操作系统维护。
  • 进程表是操作系统用来记录系统中所有活动进程的信息的数据结构。
  • 它通常包含了一个进程表项(Process Entry)的数组或链表,每个表项对应一个活动进程。
  • 进程表的主要作用是帮助操作系统跟踪和管理所有进程的状态、资源分配情况等信息

进程表和PCB之间的关系

  • 进程表通常会包含指向每个进程的 PCB 的指针或索引。这样,当操作系统需要管理某个进程时,它可以通过进程表快速找到与之关联的 PCB,从而获取或更新进程的状态和信息。
  • PCB 存在于进程表之中,是进程表的一部分,但 PCB 更加详细和具体,包含了进程的所有关键信息。


哈,谢谢各位同志的阅读,然后呢如果觉得本文对您有所帮助的话,还给个免费的赞捏
Thanks♪(・ω・)ノ

进程详细解析_第5张图片

你可能感兴趣的:(操作系统,进程,服务器)