目录

Java的创立

Java过程

计算机的组成

计算机操作系统

进程

文件描述符表

PCB内部属性

进程状态

进程优先级

进程上下文

进程记账信息


Java的创立

Java的创立源于20世纪90年代初,Sun Microsystems公司希望开发一种适用于嵌入式系统的编程语言。(简单说,一切的起因是为搞出‘’智能面包机‘’的产品)

James Gosling是Java的主要设计者,这个项目最初的目标是开发一种名为“Oak”的语言,后来因商标问题更名为“Java”(取自于他桌前来自于爪哇岛的咖啡)

Java的 设计理念 强调 “一次编写,到处运行

Green 项目商业失败,机顶盒市场没起来,Sun 内部差点砍掉 Oak。

互联网爆发(Web、浏览器兴起)Oak 的跨平台 + 安全 + 动态特性,天生适合浏览器插件(Applet)。

Java过程

Java后来兵分两路 

后端开发/服务器开发:在2000年后 PHP成了后端开发最主流的语言 (只要在开发网站就绕不开的LAMP体系)

LAMP体系:Linux操作系统

                     Apache (HTTP服务器)

                     MySQL 是一个关系型数据库管理系统

                     PHP PHP是一种服务器端脚本语言

所以Java也仿照搞出了 JSP技术体系是一种基于Java的服务器端动态网页技术,允许将Java代码嵌入HTML页面中)

 手机开发端 分出三大平台:J2SE(JavaSE)  / J2EE(JavaEE)  / J2ME (针对手机端的)

因此,Java凭借以上两个方面在不仅站住了脚跟,也是成为了主流语言

但是好景不长,又是新的问题又找上门来

后端开发/服务器开发 随着网站越来越大 PHP可以轻松完成简单网站 但是现在有点力不从心了,JSP也是面临着同样的问题

手机开发端 随着乔布斯的苹果手机的发布,移动互联网时代开启 传统的功能机也是淘汰了 J2ME 也是因此落寞了

Java也做出改变

后端开发/服务器开发 spring框架开始崛起(与JSP同时代)

Spring是一个开源的Java企业级应用开发框架,提供全面的基础设施支持,简化应用开发。

           其核心特性包括依赖注入(DI)、面向切面编程(AOP)、事务管理、数据访问集成等。Spring框架采用模块化设计,允许开发者按需选择功能模块。

PHP来不及做出改变只能眼睁睁 看着Java的反超

手机开发端  2005 年 Google 收购 Android 公司,准备做智能手机Android 系统。选语言:C++ 太难、移植麻烦;最终选 Java 语法 + 自研虚拟机。

为什么是 Java?

  • 语法成熟、人才多、生态大
  • 自动 GC,降低手机开发门槛
  • 跨设备适配好(不同品牌 / 屏幕 / 硬件)

 如今

后端开发/服务器开发 Golang在不断追逐超越Java 

                                    Go语言核心特性 并发模型 简化并发编程。

                                                                高性能:编译为机器码,执行效率接近 C/C++。

                                                                简洁语法:省略了类继承、构造函数等冗余概念,强调组                                                                                    合而非继承。

                                                                标准库强大:内置 HTTP 服务器

手机开发端 主要是面对 IOS 安卓  是否可以使用同一种代码支持所有平台

Java 始终稳居编程语言前列,企业、移动、大数据、云原生全场景统治力不减。

end....

计算机的组成

现代的计算机,⼤多遵守  冯诺依曼体系结构

中央处理器(CPU)

频率 频率越高,理论上单位时间内处理更多指令

核数 多核CPU通过并行处理提升整体性能,但单线程任务仍依赖单核频率

         CPU核心数越多 CPU越强大

寄存器

CPU 可通过指令 将数据存入 寄存器中 

一条指令  =  4 位操作数(函数参数)  +  4位操作码(函数名

寄存器是CPU内部用于暂存指令、数据和地址的高速存储单元,其访问速度 远高于 内存

存储器

存储器分为主存储器 (内存)和 辅助存储器 (硬盘)

速度差异 内存的读写速度 远高于 硬盘  内存的传输速率可达数十GB/s   硬盘速率通常在数百MB/s至数GB/s之间 这种速度差距直接影响系统响应速度和程序运行效率。

容量与成本 硬盘 容量通常远大于 内存,普通消费级硬盘可达数TB,而内存通常为8GB-64GB。单位容量成本上,硬盘(尤其是HDD)比内存低得多。

存储类型与持久性 硬盘属于非易失性存储 断电后数据不会丢失,用于长期保存操作系统、应用程                                序和用户文件。

                              内存属于易失性存储,断电后数据立即丢失,仅用于临时存储正在运行的程序                                和数据。

输入设备

输出设备

主板

网卡集成在主板中

下载数据 输入

上传数据 输出

电源

计算机操作系统

操作系统(Operating System, OS)是 管理 计算机硬件与软件资源的系统软件,为用户和应用程序提供交互界面。

(主流的操作系统都是由 C语言 编写的)

分类

Linux

Windows

Android

iOS

macOS

进程

简单地讲 一个运行起来的程序 就可以称作为 进程 

那操作系统该如何管理进程呢?

1.首先创建类(结构体) 里面包含进程内 一个进程的核心属性

PCB(进程控制块) (类似于一个很大的结构体 内含了许许多多的属性)

 2. 类比与 Linux 这样的操作系统 把PCB 以链表的形式存放在一起 

1)创立一个新的进程 初识化内部PCB 的各种属性 把PCB 加入到链表之中

2)销毁一个进程 在链表中找到它并删除

3)查看进程列表 遍历进程把重要的信息 展示出来

此外 PCB还有些关键点 

                pid (进程的表示符)

                内存指针(进程需要知道要执行的指令在哪里)

进程在执行时 需要依赖 CPU

CPU中 会接受 操作系统 所传来的指令 一一完成指令 

所有软件都是由CPU解决处理 ,但是具体处理的指令还是由操作系统(本身也是一个软件)决定

文件描述符表

操作系统为每个进程维护的一个数据结构,用于跟踪该进程打开的文件和其他I/O资源。

每个条目对应一个打开的文件、管道、套接字等资源,并通过非负整数(文件描述符)进行标识。

操作系统中把资源都抽象化 成 文件 来表示 ,但不一定是硬盘中的文件

进程是操作系统中 资源分配的基本单位

PCB内部属性

进程状态

进程优先级

进程上下文

进程记账信息

以上都可以称作为 进程调度

进程状态

就绪状态 --> 随叫随到 随时 可以在进程中执行的程序

阻塞状态 --> 进程当前不合适 在CPU执行

进程优先级

进程优先级是操作系统用来决定进程调度顺序的机制,优先级高 的进程会优先获得CPU资源。

 优先级通常由系统动态调整或由用户指定。

进程上下文

当进程切换时,操作系统需要保存当前进程的上下文,并恢复目标进程的上下文,以确保程序正确执行。

而不是从头开始重新执行 进程

保存上下文: CPU 把当前寄存器中的数据 保存到内存中(PCB对应的属性)

恢复上下文:把内存中的值 重新赋予给 寄存器中

进程记账信息

是操作系统记录进程活动信息的功能

假如一个进程 好久未运行了 CPU将会 把资源 倾斜到其他当中

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐