进程, 内核态与用户态, BIO和NIO

冯诺依曼体系结构

  1. 输入设备: 接受某个动作,转变成执行指令。从某设备传输数据到内存。硬盘是比较特殊的输入输出设备。
  2. 输出设备:数据输出到某个设备,比如显示器。 网卡是既是输入设备也是输出设备。网卡是通过驱动程序来管理。
  3. 存储器:内存
  4. CPU:执行指令的设备,可以执行运算操作,数据操作,以及逻辑操作,可分为运算器和控制器。控制器:来控制运算器来进行操作。 运算器:进行操作。

数据读写效率(在那个地方的效率最快)

  1. 网络主机< 硬盘 (程序代码,文件) < 内存(程序执行,程序执行到内存中。有些语言运行的时候需要翻译成机器码。java是编译成class字节码,运行在jvm,运行在jvm的时候就会翻译成机器码) < cpu告诉缓存(基于机器码,cpu指令去执行,cpu对数据操纵会使用cpu缓存用来提高效率)

进程

  1. 程序是我们硬盘上静态的可执行文件(可执行你的程序代码),系统上安装好的可以被执行的资源文件。 进程就是程序运行起来之后表现。进程是系统(cpu)分配资源的最小单位.

  2. java代码的运行过程

    xx.java文件(存储在硬盘上) ----> 编译(java.c)成 .class文件(硬盘) -----> (java.xx)运行java.exe程序,xx作为程序传入参数 ----> 运行java.exe程序代码 ----> 初始化JVM参数,创建一个JVM,启动JVM中很多的多线程,执行Java代码中的main方法,(虚拟机中运行 .class 字节码文件,翻译成为机器码再去运行 )

  3. 进程的时间片

    轮转调度算法:一个cpu启动了多个进程,每一个进程的调度执行都需要占用cpu的资源,从系统执行一个进程A,执行一段时间之后调度到进程B。每一个进程执行的时间都特别快,我们是无法观察到的,所以我们看起来是系统在同时执行多个进程,但其实有一个CPU的时间片的轮转调度,其实在一个时间点内一个CPU只能执行一个进程。任务执行的一小段时间称为时间片。

    并发: 多个进程在一个CPU下采用时间片轮转的方式,在一段时间内让多个进程都得以推进,一个时间点只可以执行一个任务

    并行:同一时间点下多个进程在多个CPU下分别,同时进行运行。

  4. 系统调度进程就是进程在运行态和就绪态之间的转变。

  5. 进程的上下文 : 时间片轮转调度。进程切换出去的时候要保存信息到寄存器中,之后进程回复的时候会把数据从寄存器中取出来恢复。 CPU寄存器中存储的进程信息: 值,进程状态,程序计数器等。

内核态与用户态

  1. 内核态: 操作系统内核作为直接控制硬件设备的底层软件,权限较高。设计到安全相关的指令,权限要求比较高,比较系统的接口的调用
  2. 用户态:开发给用户程序可以直接让某设备执行的操作,不存在安全隐患。
  3. 用户态和内核态可以转换,比较耗时,需要向系统申请。

BIO和NIO

  1. BIO : 同步阻塞IO,执行到某行代码的时候挂起,系统在内执行IO操作。比如从硬盘/网卡读取IO数据。有时还需要内核态和用户态的转换。
  2. NIO : 非同步阻塞IO。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值