JavaEE 03
操作系统:一个非常重要的软件
对下管理硬件设备
对上给软件提供稳定的运行环境
抽象,封装
当前咱们的系统都是多任务管理系统
每个跑起来的程序都称为进程
所谓的同时其实就是 "并发+并行" -->统一称为并发
进程管理
1.描述 PCB
2.组织 双向链表组织(简单来说)
pcb:
pid
内存指针 :进程使用的内存在哪,哪个地方放代码,哪个地方放数据
文件描述符表: 进程使用的硬盘的相关信息
进程的状态 就绪 阻塞(比如等待用户输入)
优先级 有些进程要优先,有些不是
记账信息 统计进程执行了多久,作为参考
上下文 用来支撑进程的重要属性
相当于游戏中的存档和读档
每个进程在运行期间就会有很多中间结果在寄存器中
操作系统在调度进程的时候可以认为是随机的
任何进程在任何时候都可能用到cpu
在下次调度到cpu的时候,就会继续之前的进度来继续执行
上下文是PCB中的内存结构,是在内存中的
保存上下文,就是把CPU的关键寄存器中的数据,保存到内存中
所谓的恢复上下文就是把关键寄存器的信息从内存中读取出来,加载到cpu中的寄存器中
内存分配 --- 进程管理
进程如何管理内存,也挺复杂的
核心结论:每个进程的内存是彼此独立互不干扰的
通常情况下,进程A不能直接访问进程B的内存
这个情况,也称为进程的独立性
进程间通信(IPC)
虽然有进程中的独立性,但是有时候也需要多个进程相互配合,完成某个工作
进程间通信,和进程的独立性并不冲突
系统提供了一些公共的空间(多个进程都能访问到的),两个进程借助这种公共空间来交互数据
操作系统提供的进程间通信具体方式有很多种,本质就是上述思路
(Java主要使用的方式 文件/网络 )
后端这里很可能是一组服务器,一组服务器之间,进行通信~~