![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统&虚拟机
文章平均质量分 92
猿小许
小沙弥: Java不平,何以平天下! 热衷研究各种Java技术栈,共同学习。
展开
-
五、面试官:你讲一下线程死锁、饥饿和死循环的区别以及死锁的处理? 我:滔滔不绝....
一、死锁的概念????1.1 什么是死锁?????在并发环境下,各进程因竞争资源而造成的一种互相等待对方手里的资源,导致各进程都阻塞人都无法向前推进的现象,就是“死锁”。发生死锁后若无外力干涉,这些进程都将无法向前推进。1.2 死锁、饥饿、死循环的区别死锁:各进程互相等待对方手里的资源,导致各进程都阻塞,无法向前推进的现象。饥饿:由于长期得不到想要的资源,某进程无法向前推进的现象。比如:在短进程优先(SPF) 算法.中,若有源源不断的短进程到来,则长进程将一直得不到处理机, 从而发生长进程“转载 2021-08-29 21:47:41 · 1726 阅读 · 0 评论 -
五、深入了解信号量机制(大彻大悟篇)内附经典生产者消费者等线程同步问题
一、信号量机制复习回顾+思考:之前学习的这些进程互斥的解决方案分别存在哪些问题?进程互斥的四种软件实现方式(单标志法、双标志先检查、双标志后检查、Peterson算法 )进程互斥的三种硬件实现方式(中断屏蔽方法、TS/TSL指令 、Swap/XCHG指令 )1.在双标志先检查法中,进入区的“检查”、“ 上锁”操作无法一气呵成,从而导致了两个进程有可能同时进入临界区的问题;2.所有的解决方案都无法实现“让权等待”1.1 什么是信号量信号量其实就是一个变量(可以是一个整数, 也可以是更复杂的记原创 2021-08-24 21:32:14 · 9804 阅读 · 3 评论 -
四、进程同步与进程控制
一、进程同步1.1 什么是进程同步进程具有异步性的特征。异步性是指,各并发执行的进程以各自独立的、不可预知的速度向前推进。同步亦称直接制约关系,它是指为完成某种任务而建立的两个或多个进程,这些进程因为需要在某些位置上协调它们的工作次序而产生的制约关系。进程间的直接制约关系就是源于它们之间的相互合作。1.2 什么是进程互斥进程的“并发”需要“共享”的支持。各个并发执行的进程不可避免的需要共享一些系统资源(比如内存,又比如打印机、摄像头这样的I/O设备)我们把一个时间段内只允许一个进程使用的资源原创 2021-08-16 21:44:33 · 835 阅读 · 0 评论 -
三、处理机调度概念与层次
一、处理机调度1.1 调度的基本概念当有一堆任务要处理,但由于资源有限,这些事情没法同时处理。这就需要确定某种规则来决定处理这些任务的顺序,这就是“调度"研究的问题。在多道程序系统中,进程的数量往往是多于处理机的个数的,这样不可能同时并行地处理各个进程。处理机调度,就是从就绪队列中按照一 定的算法选择一个进程并将处理机分配给它运行,以实现进程的并发执行。1.2 调度的三个层次1.2.1 高级调度由于内存空间有限,有时无法将用户提交的作业全部放入内存,因此就需要确定某种规则来决定将作业调入内原创 2021-08-15 21:20:32 · 651 阅读 · 0 评论 -
二、进程的定义、组成、组成方式及特征
一、进程的定义程序:就是一个指令序列早期的计算机只支持单道程序引入多道程序技术后: 系统为每个运行的程序配置一个数据结构,称为进程控制块(PCB),用来描述进程的各种信息(如程序代码存放位置)为了方便操作系统管理,完成个程序并发执行,引入了进程、进程实体的概念进程实体(进程映像):程序段、数据段、PCB三部分组成了进程实体(进程映像)。一般情况下,我们把进程实实体体就简称为进程。例如,所谓创建进程,是创建进程实体中的PCB;而撤销进程就是撤销进程实体中的PCB.注意:PCB是进程中存在的唯一标志原创 2021-08-15 20:06:25 · 6737 阅读 · 1 评论 -
一、初始操作系统(读完让面试官直呼 哎呦不错哦!!!)
一、操作系统的概念(定义) 操作系统(Operating System,OS) 是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境,它是计算机系统中最基本的系统软件。 1.1 作为系统资源的管理者补充:进程是一个程序的执行过程。执行前需要将该程序放到内存中,才能被CPU处理。1.2作为用户和计算机硬件之间的接口命令接口:允许用户直接使用...原创 2021-07-13 23:00:53 · 322 阅读 · 0 评论 -
三、一篇博文知悉类的加载过程(内附实例和图解!!!)
一、为什么说Java语言是跨平台的?Java语言之所以说它是跨平台的、可以在当前绝大部分的操作系统平台下运行,是因为Java语言的运行环境是在Java虚拟机中。 Java虚拟机消除了各个平台之间的差异,只要操作系统平台下安装了Java虚拟机,那么使用Java开发的东西都能在其上面运行。如下图所示:Java虚拟机对各个平台而言,实质上是各个平台上的一个可执行程序。例如在windows平台下,java虚拟机对于windows而言,就是一个java.exe进程而已。二、Java虚拟机启动、加载类过程分析原创 2021-07-11 16:20:34 · 132 阅读 · 0 评论 -
二、深究JVM垃圾回收(保姆式讲解,内附大量图解!!!)
一、内存泄露与内存溢出1.内存泄漏memory leak : 是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄漏似乎不会有大的影响,但内存泄漏堆积后的后果就是内存溢出。2、内存溢出 out of memory : 指程序申请内存时,没有足够的内存供申请者使用,或者说,给了你一块存储int类型数据的存储空间,但是你却存储long类型的数据,那么结果就是内存不够用,此时就会报错OOM,即所谓的内存溢出。3、二者的关系 内存泄漏的堆积最终会导致内存溢出 内...原创 2021-07-11 15:33:41 · 292 阅读 · 0 评论 -
一、Java虚拟机与跨平台原理讲解(硬怼面试官再也不怂!!!)
一、了解Java虚拟机与跨平台原理虚拟机 java虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等 还具有相应的指令系统。Java虚拟机屏蔽了与具体操作系统平台相关的信息,使得Java程序经过编译器编译后生成字节码文件,就可以在安装JVM虚拟机后的平台上不加修改地运行。平台原理 平台原理: java是可以跨平台的编程语言,所谓平台就是...原创 2021-07-11 15:05:35 · 1485 阅读 · 0 评论