javaEE基础知识1

JavaEE初阶

前言

之前已经学过很多的知识,但是总会有一个疑惑,这些知识有什么用?

接下来的JavaEE的目标就是做出一个属于我们自己的网站

网站=前端+后端

简单来说,前端就是客户端,也就是浏览器运行的网页

后端就是服务器工作,也就是公司机房部署的程序

之后的学习将以后端技术栈为主,前端技术栈为辅进行学习

计算机的基本组成

image-20220811114422647

CPU

CPU运行程序的过程

image-20220811115434646

image-20220811115642486

image-20220811140257558

总的来说,执行程序过程:硬盘=>内存=>CPU=>解析指令=>执行指令

对于Java程序来说,由.java=>.class=>JVM读指令,解析指令,执行指令=>转换为CPU能认识的二进制指令

CPU的构造

基础的门电路是与门 或门 非门

构造出了更复杂的电路,进一步构造出了加法器

操作系统

操作系统是一种搞管理的软件

操作系统功能

  1. 对下: 管理各种硬件设备
  2. 对上: 给软件提供稳定的运行环境

常见的操作系统

PC端: Windows linux MacOS

移动端: Android(本质上是linux) IOS

操作系统的具体组成image-202208131****1123

操作系统的进程管理(重点)

进程也叫做任务,一个跑起来的程序就被称为进程

.exe是可执行文件/可执行程序,它是存储在硬盘上的文件(静态的)

一旦双击,操作系统就会把这个文件的核心数据加载到内存中,同时在系统中生成一个"进程",可以在任务管理器上看到(ctrl + shift + esc)

只有双击可执行文件,才会产生进程,也就是说,要是单单只是一个可执行文件,就只是静态的,一旦运行起来,变成一个进程,执行程序里的指令,此时才是"动态的"

一个常见的误区:电脑上安装的程序太多了,电脑就会变卡

其实,硬盘上的可执行文件多了,只是占用硬盘空间,只要不双击运行,就不会占用内存空间,也不会占用CPU资源,根本不会影响到电脑, 至于电脑卡不卡,一般来说, 只有运行的程序多了,才会卡

还有一种情况,要是C盘快满了,会变卡 原因是很多的操作系统,在内存空间不够的时候,会使用一部分的硬盘空间,作为"交换分区",要是C盘(硬盘) 空间都不够了,就会影响到交换分区,就有可能会卡

操作系统安排程序进程

操作系统是如何管理的?

  1. 描述:详细的表示清楚一个进程有哪些属性/信息(PCB描述)
  2. 组织:通过一定的数据结构,把若干个用来描述的实体,放到一起进行增删改查

描述的时候,是通过结构体来描述的,结构体里面包含一个进程的各种信息,这个结构体就叫做PCB(进程控制块)

描述的时候,系统通常会使用双向链表来把这些PCB组织起来

创建一个进程,本质上是创建一个PCB,并且加入到双向链表中

销毁一个进程,本质上是从双向链表中删除对应的节点

查看任务管理器的进程列表,本质上是在遍历这个双向链表

一个进程可能是一个PCB(进程管理块),也可能对应多个PCB

系统管理PCB的时候,也不一定只有一个PCB,可能会有多个PCB

PCB(进程管理块)

进程里面有哪些关键的要素

一. pid 进程识别号 进程的身份标识

同一个主机,同一时刻,这些进程的pid是唯一的,可以通过pid来区分一个进程,但是进程终止的话,pid会被系统回收,可能会被继续分配给新运行的程序,所以pid是暂时唯一的

二.内存指针

要想创建进程,就要给进程分配内存空间,.有的用来存放数据.有的用来放指令,还有的用来维护运行状态......... 内存指针就是确定那一块内存是放上什么的

三.文件描述符表

每个进程都会打开一些文件,文件描述符表就记录了当前进程打开了哪些文件

内存指针描述的是进程持有的内存资源

文件描述符表描述的是进程持有的文件资源

所以说==进程是操作系统分配资源的基本单位==

进程调度

当CPU资源有限,就需要合理安排

多核CPU就是每个CPU核心上,都可以独立运行一个进程

并行执行:多个CPU核心,都可以同时独立的运行多个进程

并发执行:一个CPU核心,先运行进程1 ,再运行进程2 ,再运行进程3,只要微观上切换的够快,宏观上看就像是3个进程同时运行

所以进程调度就是通过"并行" 和 "并发",让计算机同时执行多个进程,现在主流的操作系统都是多任务的

关于进程的几个属性

一.进程状态

进程状态分为三种:就绪状态 运行状态 和 阻塞状态

阻塞状态的进程,无法被调度到CPU上执行

就绪状态的进程,才能带CPU上执行

二.进程优先级

系统调度的时候,就会根据优先级,来给进程进行时间安排

三.进程上下文

进程在CPU运行一会之后,要切换到别的进程,此时就要保存当前运行的中间结果(存档),下次再轮到它执行的时候,就恢复之前的中间结果(读挡),继续往下执行

对于进程来说,上下文就是CPU的寄存器的值,寄存器的值包括了运行的中间结果,需要将这些结果保存到PCB的上下文信息中(内存中) 也就是(寄存器-->内存)

四,进程记账信息

统计每个进程在CPU上执行了多久,起到辅助调度的效果,避免了有些进程优先级低的进程完全执行不了

全部评论
以前学过点java皮毛,现在工作了,虽然不是java方向,但发现还是要懂一点的
点赞 回复 分享
发布于 2022-08-25 18:43 陕西

相关推荐

真烦好烦真烦:牛友太有实力了
点赞 评论 收藏
分享
深夜书店vv:腾讯是这样的,去年很多走廊都加桌子当工区
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客企业服务