当前位置: 首页 > news >正文

java ee 之进程

目录

1.进程的概念

2.进程管理

3.进程属性(pcb)

3.1pid

3.2内存指针

3.3文件描述符

3.4进程调度

3.4.1进程状态

3.4.2 进程的优先级

3.4.3进程的上下文

3.4.4进程的记账信息

5.进程间通信


1.进程的概念

一个运行起来的程序,就是进程

.exe是一个可执行文件(程序),双击exe,程序跑起来,就在系统中形成一个进程

2.进程管理

管理分两步:

1.描述一个进程:使用结构体/类,把一个进程有哪些信息表示出来

2.组织这些进程:使用一定的数据结构,把这些结构体/对象,放到一起

3.进程属性(pcb)

3.1pid

每一个进程要有唯一的一个身份标识符

3.2内存指针

 当前这个进程使用的内存是哪一部分

进程要运行,就要消耗一定的硬件资源,运行时使用的内存上的资源

3.3文件描述符

进程每次打开一个文件,就会产生一个'文件描述符'(标识了这个被打开的文件),一个进程可能会打开很多文件,对应了一组文件描述符.把这些文件描述符方法一个顺序表这样的结构里,就构成文件描述符表

进程运行要从操作系统申请资源(资源包括不限于内存,硬盘,cpu等)

所以,进程是操作系统进行分配的基本单位

3.4进程调度

cpu 核心数,如果有8个物理核心,那么就有16个逻辑核心

并行:同一时刻,两个核心,同时执行两个进程

并发:一个核心,先执行进程1,执行一会之后,在执行进程2,再执行一会之后,在执行进城....,只要切换速度足够快,看起来,进程123就是'同时'执行

3.4.1进程状态

  • 就绪态:进程已准备好,随时可以上cpu执行
  • 阻塞态:进程暂时无法上cpu执行

3.4.2 进程的优先级

 进程之间的调度不一定是公平的,要有优先级

3.4.3进程的上下文

  • 上下文,就是描述了当前进程执行到哪里这样的"存档记录",进程在离开cpu的时候要把当前运行的中间结果,"存档"等到下次进程回来cpu上,在恢复之前的存档,从上次的结果继续往后执行
  • 上下文具体指就是进程运行过程中,cpu内部的一系列寄存器的值,

寄存器:典型的是保存当前进程执行的中间结果,包括进程运行到哪一条指令

  • 存档:进程离开cpu,要把寄存器的值保存到pcb的上下文字段中
  • 读档:进程下次回来cpu,再把pcb中的值给恢复到寄存器中

3.4.4进程的记账信息

 

  • 统计每个进程,在cpu上执行了多久,可以作为调度的参考依据

4.内存分配--内存管理

操作系统给进程分配的内存,是以"虚拟地址空间"的方式进行分配的,每个进程访问的内存地址,都不是真实的物理内存地址

虚拟地址空间

如果进程1,出现野指针,拿着地址,发现页表上没有这个地址,无法翻译,就无法真正的修改物理内存,就不会对别的进程的内存数据造成干扰

一个进程无法直接干预另一个进程的内存内容-->进程的独立性

5.进程间通信

进程之间进行交互,相互配合

如果进程可以直接访问物理内存,其实没有隔离性,就不需要进程间通信.

进程通信,就是在隔离性的前提下,找一个公共的区域,让两个进程借助这个区域来完成数据交换

进程间通信,在隔离性的前提下,找到一个公共区域,让两个进程借助这个区域来完成数据交换.

操作系统提供的进程间通信具体实现方式,有很多种,管道,消息队列,共享内存,信号...

http://www.lryc.cn/news/34921.html

相关文章:

  • Linux学习记录——십사 进程控制(1)
  • 使用 create-react-app 脚手架搭建React项目
  • inquirerjs
  • [数据库]内置函数
  • shell基本知识
  • Http长连接和短连接
  • [SQL Statements] 基本的SQL知识 之DDL针对表结构和表空间的基本操作
  • Git版本控制工具(详解)
  • 408考研计算机之计算机组成与设计——知识点及其做题经验篇目2:指令系统
  • Java语法中的方法引用::是个什么鬼?
  • 【使用vue init和vue create的区别以及搭建vue项目的教程】
  • 二、HTTP协议02
  • 免费Api接口汇总(亲测可用,可写项目)
  • 12.并发编程
  • C/C++指针与数组(一)
  • Android使用移动智能终端补充设备标识获取OAID
  • 极目智能与锐算科技达成战略合作,4D毫米波成像雷达助力智能驾驶落地
  • OpenCV基础(一)
  • pinia 的使用(笔记)
  • DolphinDB 机器学习在物联网行业的应用:实时数据异常率预警
  • 新建vite+vue3+ts项目,以及解决过程中遇到的问题
  • pyppeteer中文文档
  • (二十四)操作系统-吸烟者问题
  • ReentranLock(可重入锁)
  • Kafka 入门 (一)
  • linux内核开发入门二(内核KO模块介绍、开发流程以及注意事项)
  • 设计模式(十七)----行为型模式之模板方法模式
  • 【嵌入式Linux内核驱动】01_内核模块
  • Spring——数据源对象管理和Spring加载properties文件
  • Zeek安装、使用与压力测试