【JavaEE】初识操作系统和进程

操作系统是管理计算机硬件和软件资源的软件,常见的有Windows、Linux等。进程是程序的执行实例,具有PID、程序信息等特征,通过PCB描述。进程状态包括创建、就绪、执行、阻塞和终止。内存管理涉及虚拟地址空间,保证各进程间内存隔离,防止数据干扰。并行与并发是不同的执行模式,上下文切换确保进程状态的保存和恢复。
摘要由CSDN通过智能技术生成

操作系统

概念

操作系统是一组做计算机资源管理的软件的统称。
对下:要管好各种硬件设备
对上:要给软提供稳定的运行环境
目前常见的操作系统有:Windows、Linux、Android、IOS、鸿蒙。

了解:

  • Windows 是大家最熟知的操作系统,也是最常用的操作系统
  • Linux 不仅系统性能稳定,而且是开源软件,适合开发和部署。
  • Android (安卓)是一种基于 Linux 内核的自由及开放源代码的操作系统。
  • IOS 是由苹果公司开发的移动操作系统。
  • 华为鸿蒙系统是一款全新的面向全场景的分布式操作系统。

操作系统的定位

定位

什么是进程

什么是进程/任务(Process/Task)

简单说就是一个跑起来的程序就是一个进程,没跑起来就不算进程!
按住键盘上的 Ctrl+alt+delete 就可以打开任务管理器查看进程。
进程

在这张图中的进程有:360安全卫士、PDF文档、浏览器、WPS等等
进程是操作系统对一个正在运行的程序的一种抽象,换言之,可以把进程看作程序的依次运行过程,同时进程也是操作系统进行资源分配的基本单位
下节我们会讲到线程是操作系统调度执行的基本单位

进程的描述与组织

PCB中描述进程的特征

1.pid 进程的唯一标识
2.进程关联的程序信息
3.分配给该资源使用的各个资源,也就是进程持有了哪些硬件资源
4.进度调度信息
我们打开搜索框输入“任务管理器”:
任务管理器

可以看到我的电脑是有16个CPU,但实际上还是远远不够用的,也就是“狼多肉少”的问题。接下来,我们将要介绍进程调度,了解如何解决该问题。

进程调度的相关属性

进程的状态

五种基本状态
创建状态:进程在创建时需要申请一个空白PCB,向其中填写控制和管理进程的信息,完成资源分配。如果创建工作无法完成,比如资源无法满足,就无法被调度运行,把此时进程所处状态称为创建状态。

就绪状态:随叫随到 进程已经准备好,已分配到所需资源,只要分配到CPU就能够立即运行。

执行状态:进程处于就绪状态被调度后,进程进入执行状态。

阻塞状态:正在执行的进程由于某些事件(I/O请求,申请缓存区失败)而暂时无法运行,进程受到阻塞。在满足请求时进入就绪状态等待系统调用。

终止状态:进程结束,或出现错误,或被系统终止,进入终止状态,无法再执行。

优先级

这里谈到并行和并发的概念。
并行:

同一时刻,两个核心,同时执行两个进程,此时这两进程就是并行执行的。

并发:

一个核心,先执行进程1,执行一会之后,再去执行进程2,再执行一会之后,再去执行进程3 此时只要这里的切换速度足够快,看起来,进程1 2 3就是”同时“执行。
并行指的是同一个时刻,多个任务确实真的在同时运行。并发是指在一段时间内宏观上多个程序同时运行。

上下文

描述了当前进程的执行记录信息,这个信息包括所有进程寄存器的保存副本。

操作系统在进行进程切换的时候,就需要把进程执行中间的状态记录下来,保存好。
下次这个进程再上 CPU 上运行的时候 就可以恢复上次的状态,以便于继续往下执行。
可以简单的理解为:存档,读档
上下文本质上就是存档的内容

记账信息

统计每个进程的执行时间,正在消耗的资源和进程迄今为止消耗的总资源等。

内存管理

下图为内存条⬇
内存条

操作系统对内存资源的分配,采用的是空间模式,不同进程使用内存中的不同区域,互相之间不会干扰。

虚拟地址空间

操作系统会提供一种机制,将不同进程的虚拟地址和不同内存的物理地址映射起来。

我们平时所说的内存其实就是虚拟内存,即虚拟地址空间。程序中所获取到的内存地址,并非是真实的物理内存的地址.而是虚拟出来的地址。
进程直接访问物理地址
这个图,就是每个进程都直接访问物理内存的地址
此时就可能产生一个重要的问题:
进程1,万一代码出现bug(比如数组下标越界、野指针…),可能就把进程2的内存里的内容给搞坏了。
进程1的 bug 就会影响进程2的 bug。那我们该如何解决呢?
于是我们提出了虚拟空间。
虚拟地址
从这两个进程的角度看,他们的代码操作的内存地址访问的就是虚拟地址,然后就会被操作系统自动映射到真实的物理内存上,但是进程自身感知不到实际的物理地址是啥。

此时上面出现的问题已经解决了。
因为任何一个内存操作,都需要通过页表来进行翻译。如果出现野指针,那我们拿着这个地址,去页表上找,发现页表上没有这个地址,无法翻译,也就无法修改真正的物理内存,也就不会对别的进程的内存数据造成干扰!!

此时最大的目的就是为了方便校验,方便知道当前的地址是否有效。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值