首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

程序员必知的 89 个操作系统核心概念

分时系统(Time-sharing):计算中,分时是通过多程序和多任务同时许多用户之间共享计算资源的一种系统 14....它允许某些电脑内部的硬件子系统(电脑外设),可以独立地直接读写系统内存,而不需中央处理器(CPU)介入处理 。 62....命令行界面(command-line interpreter):是图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令,予以执行。 73....虚拟机(Virtual Machines):计算机科学中的体系结构里,是指一种特殊的软件,可以计算机平台和终端用户之间创建一种环境,而终端用户则是基于虚拟机这个软件所创建的环境来操作其它软件。...JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成 Java 虚拟机上运行的目标代码(字节码),就可以多种平台上不加修改地运行。 88.

21230

程序员必知的 89 个操作系统核心概念

分时系统(Time-sharing):计算中,分时是通过多程序和多任务同时许多用户之间共享计算资源的一种系统 14....它允许某些电脑内部的硬件子系统(电脑外设),可以独立地直接读写系统内存,而不需中央处理器(CPU)介入处理 。 62....命令行界面(command-line interpreter):是图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令,予以执行。 73....虚拟机(Virtual Machines):计算机科学中的体系结构里,是指一种特殊的软件,可以计算机平台和终端用户之间创建一种环境,而终端用户则是基于虚拟机这个软件所创建的环境来操作其它软件。...JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成 Java 虚拟机上运行的目标代码(字节码),就可以多种平台上不加修改地运行。 88.

25010
您找到你想要的搜索结果了吗?
是的
没有找到

计算机组织结构(十) 内存管理

现在, 操作系统和多个程序都在内存中. 程序等待 I/O 时, 为了避免处理器等待, 需要进行优化, 使得更多的程序可以加载入内存....基于段的虚拟存储器 基于段和页的虚拟内存 写策略: 写回 基于页的虚拟内存 将主存和虚拟内存分成相同大小的页 虚页(Virtual page)/逻辑页(Logical page): 虚拟内存中的页 物理页...基于段的虚拟内存 优势: 数据和程序自然划分 劣势: 长度并非固定 基于段和页的虚拟内存 将程序和数据划分为段, 并进一步将段划分为页, 每一个段都有它自己页表 虚拟地址: 段号 + 页号 + 偏移量 优势: 程序段中可以共享和保护...physical address = (seg_reg<<4)+offset,offset 为 16 位的偏移量 可寻址空间: 分段机制 x86 的机器开机后首先进入实模式 加载操作系统 操作系统初始化段表...拨动一个”开关”, 从实模式切换到保护模式 进入保护模式 程序给出 48 位逻辑地址(16位段选择符 + 32 位有效地址) 使用段选择符来查段表 进行段级地址转换得到线性地址 分段机制(地址转换)

34210

汇总了89个嵌入式相关的基本概念!你懂几个?

分时系统(Time-sharing):计算中,分时是通过多程序和多任务同时许多用户之间共享计算资源的一种系统。 14....它允许某些电脑内部的硬件子系统(电脑外设),可以独立地直接读写系统内存,而不需中央处理器(CPU)介入处理 。 62....命令行界面(command-line interpreter):是图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令,予以执行。 73....虚拟机(Virtual Machines):计算机科学中的体系结构里,是指一种特殊的软件,可以计算机平台和终端用户之间创建一种环境,而终端用户则是基于虚拟机这个软件所创建的环境来操作其它软件。...JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成Java虚拟机上运行的目标代码(字节码),就可以多种平台上不加修改地运行。 88.

33640

程序员必知的 89 个操作系统核心概念

分时系统(Time-sharing):计算中,分时是通过多程序和多任务同时许多用户之间共享计算资源的一种系统 14....它允许某些电脑内部的硬件子系统(电脑外设),可以独立地直接读写系统内存,而不需中央处理器(CPU)介入处理 。 62....命令行界面(command-line interpreter):是图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令,予以执行。 ? 73....虚拟机(Virtual Machines):计算机科学中的体系结构里,是指一种特殊的软件,可以计算机平台和终端用户之间创建一种环境,而终端用户则是基于虚拟机这个软件所创建的环境来操作其它软件。...JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成Java虚拟机上运行的目标代码(字节码),就可以多种平台上不加修改地运行。 88.

66020

STM32属于哈佛结构还是冯诺依曼结构?

程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同,如英特尔公司的8086中央处理器的程序指令和数据都是16位宽。...冯·诺依曼结构: 英特尔公司的8086。 英特尔公司的其他中央处理器。 ARM的ARM7。 MIPS公司的MIPS处理器。...03 ARM和哈佛、冯·诺依曼的关系 哈佛架构是针对 cpu 从 cache 中取指令而言,指令和数据主存中并未分开,但在加载到 cache 中的时候被分离为指令和数据两份存储空间,cpu 可以同时从...可以说是两种架构的一种折中吧。 现实世界中很少有非常纯粹的概念,特别是实际的应用里。教科书里的大多是理想化的模型,便于掌握某个概念的重点和本质,但实际中很难达到这种理想化的状态。...你可以理解为 CPU 外部,采用的是冯·诺依曼模型,而在 CPU 内部用的是哈佛结构。 大部分的 DSP 都没有缓存,因而直接就是哈佛结构。 哈佛结构设计复杂,但效率高。

1.5K20

Linux工具|运维工具lspci使用小妙招

作为一名运维工程师,操作系统知识 怎么可以落下,我们需要深入理解Linux系统,包括其文件系统、进程管理、用户和权限管理等。今天就先讲讲如何查看计算机设备篇——PCI总线设备的信息。...PCI架构被设计为ISA标准的替代品,它有三个主要目标:获得计算机和外设之间传输数据时更好的性能;尽可能的平台无关;简化往系统中添加和 删除外设的工作。...有时候我们需要知道设备的硬件ID或者设备的型号,这时候就可以借助lspci命令来查询。首先,执行命令查看当前的操作系统。当前所有操作都是Linux上执行,如果有差错或者版本不一致,请酌情参考。...[xxx@xxx ~]$ lspci V这里让你失望了,请参考下33 如何查看帮助命令Linux环境中,有很多约定俗成的命令,可以帮助我们很快的投入到工作中,例如--help / ?...:7190 (rev 01)00:01.0 0604: 8086:7191 (rev 01)00:07.0 0601: 8086:7110 (rev 08)00:07.1 0101: 8086:7111

1K40

ucoreOS_lab1 实验报告

上面这个特征i8086中是没有任何问题的(因为它最多只能访问1MB的内存空间),但到了i80286/i80386,CPU有了更宽的地址总线,数据总线和寄存器,这就会出现一个问题: 实模式下, 我们可以访问超过...所以需要操作系统和CPU能够一起提供某种机制,让外设在需要操作系统处理外设相关事件的时候,能够“主动通知”操作系统,即打断操作系统和应用的正常执行,让操作系统完成外设的相关处理,然后恢复操作系统和应用的正常执行...中断表中有两个中断, T_SWITCH_TOU 和 T_SWITCH_TOK ,一个是切换到用户态,另一个是切换回内核态,显然是希望我们通过这两个中断来进行上下文切换。...当然,从用户态切换到内核态需要另外设置中断号使其可以从用户态被中断。...这里有一个坑,输出的时候,由于 in out 是高权限指令,切换到用户态跑到这两个指令 CPU 会抛出一般保护性错误(即第 13 号中断)。

1.7K20

从裸机启动一个C++程序实战操作

这种模拟方式,性能损耗「模拟」和「虚拟化」之间,如果优化的好也可以获得不错的性能。但它最大的缺点就在于,对这个「翻译软件」的要求太高了!通常只适用于运行APP,而不能用于运行OS。...打开之后,可以选择左侧Load按钮加载bochsrc配置文件运行,后续如果我们用命令行加-f参数则无需手动加载。...一方面来说,IA-32和AMD64都是从8086模式开始启动的,开机的那一瞬间,你的电脑其实就是8086,然后再通过一些配置,切换到286模式、386模式、AMD64模式等等的。...这一点8086模式下可能看上去没那么重要,但当后面我们切换到286模式时,这一点会非常重要,所以请读者一定要记住。...虽然BIOS中断是很方便的工具,相当于基础系统提供了一些库函数供我们使用,但它毕竟依赖BIOS,BIOS中提供的指令都是16位实模式(8086模式)的指令,一旦后续我们切换为i286模式、i386模式

60733

JVM真香系列:轻松掌握JVM运行时数据区

方法区是用于存储类结构信息的地方,线程共享,包括常量池、静态变量、构造函数等类型信息,类型信息是由类加载加载时从类.class文件中提取出来的。...用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译的代码等数据。...因此,为了线程切换能够恢复到正确的执行位置,每条线程需要有一个独立的程序计数器(线程私有)。 我们都知道一个JVM进程中有多个线程执行,而线程中的内容是否能够拥有执行权,是根据CPU调度来的。...The heap is created on virtual machine start-up 虚拟机启动时创建 在前面类加载阶段我们已经聊过了,Java堆中生成一个代表这个类的java.lang.Class...堆JDK1.7和JDK1.8的变化 ? 大家都知道,JVM 在运行时,会从操作系统申请大块的堆内内存,进行数据的存储。但是,堆外内存也就是申请操作系统剩余的内存,也会有部分受到 JVM 的控制。

25620

虚拟机VMware Workstation(附激活秘钥)

虚拟系统通过生成现有操作系统的全新虚拟镜像,它具有真实windows系统完全一样的功能,进入虚拟系统,所有操作都是在这个全新的独立的虚拟系统里面进行,可以独立安装运行软件,保存数据,拥有自己的独立桌面...,不会对真正的系统产生任何影响 ,而且具有能够现有系统与虚拟镜像之间灵活切换的一类操作系统。...而“虚拟化软件”则意味着可以同一台计算机上同时创建和运行多个虚拟机,并且这些虚拟机可以运行不同的操作系统。...Virtual PC 可以允许你一个工作站上同时运行多个PC操作系统,当你转向一个新OS时,可以为你运行传统应用提供一个安全的环境以保持兼容性,它可以保存重新配置的时间,使得你的支持,开发,培训工作可以更加有效...微软2003年2月份收购Connectix,发布了Microsoft Virtual PC 2004。

1.1K90

计算机硬件组成(2)

2.2项目开发 前后端确定开发项目整体结构,前端、程序、数据库之间的对接方式,定制开发规范、代码规范、源码管理、版本管理,然后分头开发。...根据指令分析结果产生相应的操作控制信号作用于其他部件,使得各部件控制器控制下有条不紊地协调工作。)...运算器:负责数学运算与逻辑运算—————————————–》大脑 控制器+运算器=》cpu (中央处理器) 其中运算器用来主要负责程序运算与逻辑判断,控制器则主要协调各组件和各单元的工作,所以CPU的工作主要在于管理和运算...cpu具有向下兼容性,指的是64位的cpu既可以运行64位的软件,也可以运行32位的软件,而32位的cpu只能运行32位的软件。...x86(CPU型号)=》复杂指令集 x86是针对cpu的型号或者说架构的一种统称,详细地讲,最早的那颗Intel发明出来的CPU代号称为8086,后来8086的基础上又开发出了80285、80386

18110

2019-09-20

由于这个系列开端于 8086,因此称为 x86 架构。 ? image.png X86架构组成 先看下计算机的工作模式 ?...image.png 对于一个计算机来讲,最核心的就是CPU(Central Processing Unit,中央处理器)。这是这台计算机的大脑,所有的设备都围绕它展开。...8个通用寄存器,用于计算过程中暂存数据。 控制单元 控制单元是一个统一的指挥中心,它可以获得下一条指令,然后执行这条指令。...代码段的偏移量 IP 寄存器中。通过它们可以找到代码在内存中的位置 数据段的寄存器(Data Segment Register) 存放数据段的起始地址。数据段的偏移量会放在通用寄存器中。...但过多的上下文切换,会将原本运行进程的 CPU 时间,消耗寄存器、内核栈以及虚拟内存等数据的保存和恢复上,缩短进程真正运行的时间,成为性能瓶颈 自愿上下文切换 是指进程无法获取所需资源,导致的上下文切换

63810

KVM虚拟化网络优化技术总结

Virtio与全虚拟化网卡区别 全虚拟化网卡是虚拟化层完全模拟出来的网卡,半虚拟化网卡通过驱动对操作系统做了改造;     viritio简单的说,就是告诉虚拟机,hi 你就是一个虚拟化平台上跑,咱们一起做一些改动...而是用vhost-net可以进一步进入CPU的根模式,需要进入用户态将数据发送到tap设备再次切入内核态的开销,而是进入内核态不需要在进行内核态用户态的切换,进一步减少这种特权级的切换,说vhost-net...创建 VF 可以直接将其指定给 IO 来宾域或各个应用程序(如裸机平台上的 Oracle Solaris Zones)。...SR-IOV 的优点     SR-IOV 标准允许 IO 来宾域之间高效共享 PCIe 设备。...但是只支持虚拟机是linux的情况,windows系统不支持;     万兆网卡最多支持64个vg0-63,intel的新新一代万兆网卡都支持SRIOV x520 x540等;     如果需要重新设置vf 可以删除模块重新加载

3.2K31

第二章 IBM-PC微机的基本功能

由于微机的主要特点是其体积很小,因此系统设计上就有一些特殊考虑。 将运算器和控制器两大部件集成一个集成电路芯片上,称为中央处理器,简称CPU,也叫微处理器....1、中央处理器CPU 微型计算机中的中央处理器也叫微处理器。 它包括运算器和控制器。 功能:分析从主存储器取来的各条指令的功能,控制计算机各部件完成指定功能的各项操作。...8086/8088的汇编语言源程序中,用户可以根据自己需要来设定段的个数、各个段长度和每个段的用途。并且代码或数据可以存放在段内任意单元中。...8086/8088的物理地址范围:00000H~OFFFFFH CPU与存储器之间的任何信息交换都使用物理地址。...二、8086/8088堆栈的组织 8086/8088微机中堆栈是由堆栈段寄存器SS指示的一段存储区。 顶由堆栈指针SP指示。 SP中内容始终表示堆栈段基址与栈顶之间的距离(字节数)。

29820

没有操作系统,也能运行我们的程序?(理论部分)

在这个时候,基于这些硬件,操作系统就诞生了,操作系统是一个协调、管理、控制计算机硬件资源与应用软件资源的一种控制程序,位于计算机硬件与应用软件之间,起到承上启下的作用,另外此时就是操作系统去控制硬件了,...好了,既然明白了操作系统本身也是一个程序,那我们想一下,操作系统这个程序能够计算机的裸机上运行起来,那能不能把操作系统给换成我们写的一个程序,直接在计算机裸机上跑起来,而不让计算机加载我们的操作系统呢...答案是:肯定可以的!不过在这之前,我们要首先明白一下,计算机一开始是怎样加载我们的操作系统的,以下还是以Intel 8086处理器为例讲述。...Intel 8086处理器的地址线为20根,因此它可以访问的存储大小最大为2的20次方字节,即1MB。...CS寄存器是用来存储代码段的起始地址,IP是用于存储指令代码段中的偏移地址,很明显,这两个寄存器是配合使用来表明指令在内存中的哪个位置,然而两个寄存器都是16位的,我们上面说Intel 8086处理器寻址的地址一共是

2.2K52

MIT 6.S081 (BOOK-RISCV-REV1)教材第二章内容 -- 操作系统架构

操作系统还必须安排进程之间的隔离。 也就是说,如果一个进程有错误和故障,它不应该影响其他进程。 然而,完全隔离又太过头了,进程之间应当可以进行刻意为之的交互; 管道就是一个例子。...同样,Unix进程之间透明地切换硬件处理器,根据需要保存和恢复寄存器状态,这样应用程序就不必意识到分时共享的存在。这种透明性允许操作系统共享处理器,即使有些应用程序处于无限循环中。...地址空间的顶部,xv6为trampoline(用于在用户和内核之间切换)和映射进程切换到内核的trapframe分别保留了一个页面,正如我们将在第4章中解释的那样。...一个线程可以挂起并且稍后再恢复。为了透明地进程之间切换,内核挂起当前运行的线程,并恢复另一个进程的线程。线程的大部分状态(本地变量、函数调用返回地址)存储在线程的栈区上。...当RISC-V计算机上电时,它会初始化自己并运行一个存储只读内存中的引导加载程序。引导加载程序将xv6内核加载到内存中。

31720

CPU快表

所以我们需要主动flush掉TLB,这个Flush动作是操作系统加载CR3时触发CPU做的。...也就是说在用户态和内核态之间进行切换时,是不用切换页表的。 那么TLB中也就会同时缓存内核态和用户态地址(这也是Meltdown漏洞攻击的主要原理)。同时所有进程页表中内核态地址是相同的。...所以,内核态地址映射就可以添加一个Global标识,进程切换时不被Flush掉。...引入PTI特性之前,所有的内核地址空间对应的映射都被设置为global,如果可以避免进程切换时flush掉内核态地址空间对应的TLB entry,可以很大程度提升性功能。...没有PCID的CPU中,当进程切换时,则必须flush掉所有TLB项,有了PCID每一条PTE中包含PCID信息,新的加载CR3的过程变成了:如果CR4的PCID=1,加载CR3就不需要Flush

58300

探索计算机基石:深入理解冯·诺依曼结构

程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同,如英特尔公司的8086中央处理器的程序指令和数据都是16位宽。...现代计算机中,运算器通常集成中央处理器(CPU)内部,作为一个核心组件。...高速缓存通过减少CPU与主存之间的数据传输延迟,显著提高数据处理速度。 主存储器(Main Memory/RAM):即随机访问存储器,是程序执行时的主要工作空间,速度较快,但断电数据丢失。...输入设备通过特定的接口(如USB、蓝牙)与计算机相连,驱动程序将这些信号解码为操作系统和应用程序可以处理的数据格式,从而实现用户指令的输入或数据采集。...这个过程通常由操作系统的引导加载程序负责,确保程序正确安全地入驻内存。 2.指令读取: CPU的控制器使用程序计数器(PC)来定位内存中下一条指令的地址。

29800
领券