JavaEE语法第一章、计算机工作原理

简介: JavaEE语法第一章、计算机工作原理

 【计算机科学速成课】[40集全/精校] - Crash Course Computer Science_哔哩哔哩_bilibili

目录

一、计算机发展史

二、冯诺依曼体系(Von Neumann Architecture)

三、CPU简单介绍

3.1CPU介绍

3.2并行和并发

四、操作系统(Operating System)

4.1操作系统的定位

4.2进程/任务

4.2进程结构体的核心属性(PCB:进程管理快)

4.3CPU 分配 —— 进程调度(Process Scheduling)

4.4内存分配 —— 内存管理(Memory Manage)

4.4.1操作系统对内存资源的分配

4.4.2虚拟地址空间

4.5进程间通信(Inter Process Communication)

4.6线程


一、计算机发展史

计算的需求在人类的历史中是广泛存在的,发展大体经历了从一般计算工具到机械计算机到目前的电子计算机的发展历程。

第一代计算机:埃尼阿克,主频5000(每秒计算5000次)

image.gif编辑

人类对计算的需求,驱动我们不断的发明、改善计算机。目前这个时代是“电子计算机”的时代,发展的潮流是:更快速、更稳定、更微型。计算机的以后将如何发展,期待大家的努力。


二、冯诺依曼体系(Von Neumann Architecture)

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

image.gif编辑

计算机最核心的部分:

CPU、内存、硬盘、主板、散热器、电源、机箱、显卡

image.gif编辑

    • CPU 中央处理器: 进行算术运算和逻辑判断.
    • 存储器: 分为外存和内存, 用于存储数据(使用二进制方式存储)
    • 输入设备: 用户给计算机发号施令的设备.
    • 输出设备: 计算机个用户汇报结果的设备.

    针对存储空间

    硬盘 > 内存 >> CPU

    针对数据访问速度

    CPU >> 内存 > 硬盘

    认识计算机的祖师爷 -- 冯诺依曼

    冯·诺依曼(John von Neumann,1903年12月28日-1957年2月8日), 美籍匈牙利数学家、计算机科学家、物理学家,是20世纪最重要的数学家之一。冯·诺依曼是布达佩斯大学数学博士,在现代计算机、博弈论、核武器和生化武器等领域内的科学全才之一,被后人称为“现代计算机之父”、“博弈论之父”.

    image.gif编辑


    三、CPU简单介绍

    3.1CPU介绍

    image.gif编辑

    image.gif编辑

    image.gif编辑  

    image.gif编辑

    3.2并行和并发

    image.gif编辑


    四、操作系统(Operating System)

    操作系统是一组做计算机资源管理的软件的统称。目前常见的操作系统有:Windows系列、Unix系列、Linux系列、OSX系列、Android系列、iOS系列、鸿蒙等。

    4.1操作系统的定位

    image.gif编辑

    操作系统由两个基本功能:

    1) 防止硬件被时空的应用程序滥用;

    2) 向应用程序提供简单一致的机制来控制复杂而又通常大相径庭的低级硬件设备。

    image.gif编辑

    image.gif编辑

    4.2进程/任务

    每个应用程序运行于现代操作系统之上时,操作系统会提供一种抽象,好像系统上只有这个程序在运行,所有的硬件资源都被这个程序在使用。这种假象是通过抽象了一个进程的概念来完成的,进程可以说是计算机科学中最重要和最成功的概念之一。

    进程是操作系统对一个正在运行的程序的一种抽象,换言之,可以把进程看做程序的一次运行过程;同时,在操作系统内部,进程又是操作系统进行资源分配的基本单位。

    4.2进程结构体的核心属性(PCB:进程管理快)

    计算机内部要管理任何现实事物,都需要将其抽象成一组有关联的、互为一体的数据。在 Java 语言中,我们可以通过类/对象来描述这一特征。

    // 以下代码是 Java 代码的伪码形式,重在说明,无法直接运行
    class PCB {
    // 进程的唯一标识 —— pid;
    // 进程关联的程序信息,例如哪个程序,加载到内存中的区域等
    // 分配给该资源使用的各个资源
    // 进度调度信息(留待下面讲解)
    }

    image.gif

    这样,每一个 PCB 对象,就代表着一个实实在在运行着的程序,也就是进程。

    操作系统再通过这种数据结构,例如线性表、搜索树等将 PCB 对象组织起来,方便管理时进行增删查改的操作。

    image.gif编辑

    image.gif编辑

    image.gif编辑

    image.gif编辑

    4.3CPU 分配 —— 进程调度(Process Scheduling)

    概念:操作系统按照某找策略或规则选择进程占用CPU进行运行的过程

    4.4内存分配 —— 内存管理(Memory Manage)

    4.4.1操作系统对内存资源的分配

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

    image.gif编辑

    4.4.2虚拟地址空间

    image.gif编辑

    image.gif编辑image.gif编辑

    image.gif编辑

    image.gif编辑

    4.5进程间通信(Inter Process Communication)

    如上所述,进程是操作系统进行资源分配的最小单位,这意味着各个进程互相之间是无法感受到对方存在的,这就是操作系统抽象出进程这一概念的初衷,这样便带来了进程之间互相具备”隔离性

    (Isolation)“。但现代的应用,要完成一个复杂的业务需求,往往无法通过一个进程独立完成,总是需要进程和进程进行配合地达到应用的目的,如此,进程之间就需要有进行“信息交换“的需求。进程间通信的需求就应运而生。目前,主流操作系统提供的进程通信机制有如下:

    1. 管道

    2. 共享内存

    3. 文件

    4. 网络

    5. 信号量

    6. 信号

    其中,网络是一种相对特殊的 IPC 机制,它除了支持同主机两个进程间通信,还支持同一网络内部非同一主机上的进程间进行通信。

    image.gif编辑

    4.6线程

    image.gif编辑

    目录
    相关文章
    |
    Java
    Java基础知识复习01:从基础知识---面向对象(后续会更新)(4)
    12.2 接口的抽象方法 1、接口的抽象方法定义 /* 在任何版本的Java中,接口都能定义抽象方法。 格式: public abstr
    48 0
    |
    6月前
    |
    Java
    Java 程序设计 第七章 文件管理与输入/输出 笔记
    Java 程序设计 第七章 文件管理与输入/输出 笔记
    |
    XML 存储 Java
    Java基础知识复习01:从基础知识---面向对象(后续会更新)(1)
    在我的资源里有:pdf对应的完整内容需要的可以自行下载,无偿分享给大家 一、快捷键 Alt + / : 1)在java类中,
    51 1
    |
    存储 搜索推荐 Java
    Java基础知识复习01:从基础知识---面向对象(后续会更新)(2)
    5.2、有参和无参 有参数:小括号当中有内容,当一个方法需要一些数据条件,才能完成任务的时候,就是有参数。 例如:两个数相加相乘需要知道具体参数。 无参数:小括号当
    67 1
    |
    自然语言处理 Java 程序员
    编程小趣文:Python与Java名字的起源由来
    编程小趣文:Python与Java名字的起源由来
    120 1
    |
    存储 Java 索引
    Java基础知识复习01:从基础知识---面向对象(后续会更新)(3)
    9.6 Random 1、Random的概述和基本使用和生成指定范围的随机数 Random类用来生成随机数字。使用起来也是三个步骤: 1.导包 import java.util.R
    49 1
    |
    Java
    重温经典《Thinking in java》第四版之第四章 控制执行流程(二十三)
    重温经典《Thinking in java》第四版之第四章 控制执行流程(二十三)
    63 0
    |
    网络协议 安全 Java
    java学习之高级语法(二十八)----- 网络编程
    java学习之高级语法(二十八)----- 网络编程
    java学习之高级语法(二十八)----- 网络编程
    |
    存储 安全 前端开发
    java学习之高级语法(十四)----- 异常
    java学习之高级语法(十四)----- 异常
    java学习之高级语法(十四)----- 异常