• 操作系统的进程详解


    什么是进程?

    进程也叫任务,一个跑起来的程序,被称为“进程”。平时在文件中看到后缀为.exe文件是可执行程序,存储在硬盘上,双击exe文件,操作系统就会把这个文件的核心数据加载到内存中,同时在系统中,生成一个进程。

    管理进程

    1.描述:详细的表示清楚,一个进程有那些熟悉/信息。结构体(PCB进程控制块)包含一个进程的各种信息。

    2.组织:通常会使用双向链表把这些PCB给组织在一起。创建一个进程,本质上就是创建PCB,并且加入到链表上。销毁进程,本质上就是从链表上删除对应的PCB节点。查看任务管理器的进程列表,本质上就是遍历这个链表。

    详解PCB

    1.pid进程的身份标识   一个主机,同一时刻,这些进程的pid是唯一的,通过pid来区分进程

    2.内存指针    创建进程,需要给进程分配内存空间。空间上有很多区域:有的用来存放指令,有的用来存放数据,有的用来维护运行状态.......内存指针用来指明哪块内存是干什么的,描述进程拥有的内存资源。

    3.文件描述符表    每个进程都会打开一些文件(文件是存储在硬盘上的数据)文件描述符表就记录当前进程都打开那些文件,描述进程持有的文件资源

    跟“进程调度”有关的属性(CPU资源有限,而进程很多,需要合理安排)

    进程调度就是通过“并行”和“并发”的方式让计算机可以“同时”执行多个进程。

    并行执行:每个CPU核心可以独立完成一个进程,多个CPU核心,就可以同时独立完成多个任务

    并发执行:一个CPU核心快速运行多个进程,宏观上看就是多个进程同时运行

    4.进程状态: 进程有两种状态,一种是就绪状态,另一种是阻塞状态。只有就绪状态才能被CPU调用,阻塞状态无法被CPU调用。

    5.进程优先级:系统调度时,会根据优先级,来给进程安排时间。创建进程的时候,也可以通过一些系统调用来干扰优先级(相对的)

    6.进程上下文:进程在CPU上执行一会后,要切换到其他进程,就需要保存当前进程的中间结果(存档),下次再轮到他执行的时候,就恢复之前的中间结果(读档),继续往下执行 

    7.进程记账信息:统计每个进程在CPU上执行多久(按执行的指令条数),执行进程的时候,虽然有优先级,为了避免有进程捞不着CPU执行,通过时间表,如果有的进程执行时间太少了,就多安排一些

    虚拟地址空间

    每个进程都会分配内存空间,但是如果直接内存,可能出现内存访问越界(也就是野指针)为了不让进程1指针越界操作,影响到进程2。给每个进程分配“虚拟内存空间”并通过专门的设备MMU来完成虚拟地址到物理地址的映射。

    使用“虚拟地址空间”,会使进程有了隔离性,一个进程不能直接访问到另一个进程的内存数据。但是有的场景需要多个内存互相配合,因此引入了“进程间通信”

    进程间通信

    核心原则:找一个多个进程都能访问到的公共资源,基于公共资源来交换数据。

    例如,快递员把快递送到菜鸟驿站,你去菜鸟驿站取快递。你们两者没有见面,此时菜鸟驿站就是你们的公共资源。

  • 相关阅读:
    java基于ssm的健身房会员管理系统
    一文入门 HTTP 协议
    黄州科目三
    SpringMVC---请求与响应&&REST风格
    Linux下IPv6地址的配置
    consul introduction
    NOR Flash 和 NAND Flash 闪存详解
    MySQL 表设计的经验准则
    JAVA 相关书籍推荐(全)
    Python语言程序设计 习题3
  • 原文地址:https://blog.csdn.net/weixin_61427900/article/details/126315168