摘要:
编译其本质是将一种语言规范转换成另一种语言规范,即将Java语言规范转换为JVM虚拟机语言规范。结果就是.java文件到.class文件。 对于C/C++编译直接将高级语言转换为机器语言,Java语言不是采用这种策略,而是将高级语言编译成一种中间态的语言--与平台无关,其执行 过程是依靠对应平台的J 阅读全文
摘要:
一、Class文件的结构概述: 是一连串的字节流(以自节为基本单位划分),里面包含的数据项按照固定的次序依次排列组成Class文件,文件内部不含分割符 当数据项的长度大于1B时候,按照高位在前的方式存储数据项。数据项是被严格定义的不允许被修改。 整个字节码文件由两种数据结构组成: 1.无符号数:用来 阅读全文
摘要:
1.Java程序跨平台运行的原因 主要原因是:各种平台的JVM和字节码文件 Java源程序--具体平台的机器代码文件 被编译器翻译成平台无关的Class文件,又用特定JVM运行字节码文件,JVM在运行的过程中 将字节码指令转换为具体平台的机器指令。JVM运行在用户态,操作系统将JVM看作是一个特殊的 阅读全文
摘要:
执行结果: Top disk from A to CTop disk from A to BTop disk from C to BTop disk from A to CTop disk from B to ATop disk from B to CTop disk from A to C 阅读全文
摘要:
执行过程和结果 Enter(3 disks,A B C) Enter(2 disks,A,C,B) Enter(1disk,A B C) Base case-->disk1 from A C //Disk 1 from A to C Return(1disk A B C) move disk 2 f 阅读全文
摘要:
内核IO 操作系统对于IO的职责 1.对文件和设备命名空间的管理 2.文件和设备访问的控制 3.IO操作控制 4.文件系统的空间分配 5.设备分配 6.IO缓冲管理 7.IO调度方式 8.设备状态控制,错误管理 9.设备驱动程序配置和初始化 IO设备的分类 1.按照传输数目分:字节,块 2.按照IO 阅读全文
摘要:
1.临界资源:一次仅允许一个进程使用的资源称为临界资源。 2.临界区:对临界资源进行访问或修改的代码。 3.临界区问题:多个进程并发的对临界区进行访问或修改(至少有一个修改),导致数据不一致。 解决临界区问题思路:相关的进程在访问自己的临界区的时候,不允许其他的进程进入自己的临界区。保证修改操作是原 阅读全文
摘要:
1.线程引入的原因? 1.1 对于现实世界存在的一个问题:MP3播放--大的任务可以划分为3个子任务 先读数据(属于IO绑定),解压数据(属于CPU绑定),最后播放;想提高 程序的并发性,可以通过使用多进程实现,每个进程负责一个任务,但是这样开销大,而且还要考虑资源共享,和进程之间的协作,所以操作系 阅读全文
摘要:
1.评价调度算法的主要指标 周转时间:进程进入就绪队列直到进程执行结束所用的时间。 响应时间:进程进入就绪队列后被到被CPU调度所用的时间。 2.常见的调度算法 FIFO:先来先服务算法--基本思想按照作业进入就绪队列的顺序,选择先到的作业被CPU调度。假如作业的长度比较平均,效果不错,但是 如果长 阅读全文
摘要:
1.进程概念 进程:一个正在执行的程序;操作系统提出进程概念目的:是为了跟踪程序在执行期间的状态。而程序只是一段代码,是一个静态的概念 无法准确描述程序执行时候发生的一切。程序代码被加载进内存后就以进程的形式存在。 2.进程的组成 逻辑地址空间:这个概念是由操作系统提出来的,目的是为了程序员更方便的 阅读全文