java EE (基础知识)

目录

 1.计算机是如何工作的?

针对储存空间

针对数据的访问速度

2.CPU

cpu怎样执行指令?

cpu执行程序 (三个过程)

cpu的主要功能:

cpu的构成:

总结: 

3.操作系统 

   操作系统的功能:

常见的操作系统

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

 操作系统如何进行管理的

PCB(进程管理块)的重要属性

进程调度是如何进行的

 1.状态:

2.优先级:

3.记账信息

4.进程上下文 

内存的管理 

进程间通信


 1.计算机是如何工作的?

  现代计算机,大多遵循冯诺依曼体系结构

 cpu中央处理器:进行算术运算和逻辑判断

存储器:分为内存和外存,用于存储数据的(以二进制的方式储存)

输入设备:用户给计算机发号施令的设备

输出设备:计算机给用户反馈结果的设备

针对储存空间

 硬盘 > 内存 > CPU

针对数据的访问速度

CPU > 内存 > 硬盘

2.CPU

cpu怎样执行指令?

 指令都需要加载到内存当中,才能被cpu所读取,并执行

 比如 一个java程序,写出来的是.java的源文件,进行编译后得到.class文件(可执行的二进制文件)依旧存在于硬盘上,

        运行程序的时候,jvm会把.class文件加载到内存当中,进一步编译成cpu能识别的二进制指令

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

cpu执行程序 (三个过程)

1.读指令 :

          把内存中的指令数据,读取到cpu的寄存器中(cpu上也可以存储数据,存储数据的模块称为“寄存器”,速度比内存快,存储空间小,价格贵)

在0号地址(这三步)执行完成后,由于不是跳转指令就会向下延续执行1号地址 

2.解析指令:(明白当前代码要干什么)

3.执行指令:

cpu的主要功能:

                                  1.进行各种算术运算

                                  2.进行各种逻辑判断

                (本质上咱们运行的程序,都是通过cpu来执行的)

cpu的构成:

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

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

总结: 

        1. CPU 中的 PC 寄存器,是决定 CPU 要执行哪条指令的关键;
        2. 指令是由 动作 + 操作对象组成
        3. CPU 眼中只有指令,没有其他的概念

3.操作系统 

   简单来说就是搞管理的软件

   操作系统的功能:

           对下:负责管理各种硬件

           对上:给软件提供稳定的运行环境 

常见的操作系统

           PC端: Windows linux Mac OS

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

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

    进程也称任务,只要跑起来的任务都可称为进程 

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

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

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

 操作系统如何进行管理的

   1.描述:详细的表述一个进程有哪些信息/属性(PCB描述) 

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

   2.组织:双向链表

       创建一个进程,本质上创建一个PCB,添加到双向链表上;

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

        查看任务管理器的进程时,相当于遍历整个双向链表

 一个进程可能不止一个PCB(进程管理块) 

PCB(进程管理块)的重要属性

1.PID进程的标识符

       在同个机器上,同一时刻上,进程的pid是唯一的,可以通过pid来区分进程,进程终止时,系统会自动收回pid,可能会被继续分配给新运行的程序,所以pid是暂时唯一的

2. 内存指针:

     创建进程,需要给进程分配内存空间,有的内存空间用来存放数据的,有的内存空间用来存放指令的,内存指针就是确定那一块内存是放上什么的

3.文件描述符表:

    每个进程打开的文件,文件描述符表就会记录下来该进程打开的是那些文件

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

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

     综上所得:进程就是操作系统分配资源的基本单位  

进程调度是如何进行的

所谓进程调度就是操作系统如何把cpu资源分配给各个进程

 cpu资源有限时,需要合理的分配

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

   并发执行:多个cpu核心,都可以独立运行多个进程

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

 1.状态:

           分为运行状态,就绪状态,阻塞状态,创建状态,结束状态(五种状态)

2.优先级:

           说白了就是当前状态谁比较重要,就先执行谁

3.记账信息

         操作系统会统计每一个进程分别执行了多久,分别执行了那些指令

        操作系统会根据统计出的信息来进行后续的 资源分配  避免导致某个进程一直吃不到cpu的资源

进程在调度出CPU的时候 会把CPU中所有的寄存器中的数据给保存到内存上 就是这次进程被调出CPU时 下次该进程进入CPU中运行的时候 就可以恢复到之前的状态,继续往下执行

4.进程上下文 

             cpu会频繁的切换进程,每次要切换进程时,会记录下当前进程运行的结果(存档),等到下次换到该进程时,就会直接恢复记录结果(读档)继续往下运行

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

       所谓的‘保存上下文’ 就是把cpu关键寄存器中的数据,保存到内存中(PCB(进程管理块)上下文属性中) 

       所谓的‘恢复上下文’ 就是把内存中的关键寄存器中的数据,加载到cpu对应的寄存器中

内存的管理 

 结论:每个进程的内存,是相互独立的,之间互不影响的

         通常来说 进程A 是不可以直接访问 进程B 的内存   为了系统的稳定性称为“进程的'独立性"

进程间通信

   虽然有进程的独立性,但有时候也需要多个进程之间的配合 ,来完成某个工作

  进程间通信, 与进程的独立性 并不冲突

   系统提供一些公共内存空间(多个进程都可以访问的),需要借助多个进程来完成交互数据

       

         

网络的方式:是支持同一个主机有不同的进程,也可以是不同的主机有不同的进程的 

  

       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值