
编译原理/操作系统/组成原理
文章平均质量分 69
本人学习编译原理/操作系统/组成原理笔记
燕双嘤
程序辅导,毕业设计,课程作业,比赛代打等,wx:lvlvmp
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
操作系统:复习(进程线程,内存管理,中断系统)
进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,它是系统进行资源分配和调度的一个独立单位。具有独立的内存空间、磁盘空间、I/O设备等。每个进程都有一个唯一的进程标识符(PID),可以通过操作系统的进程管理功能来管理和控制进程的执行。不同进程之间的通信通常需要通过特定的机制,例如管道、共享内存等。原创 2019-04-28 20:03:01 · 1816 阅读 · 0 评论 -
操作系统:虚拟存储器(页面置换,程序抖动,请求分段)
不适当的算法可能会导致进程发生“抖动”:即刚被换出的页面很快又被访问,需要将它重新调入,此时又需要再选一页调出;而此刚被调出的页很快又被访问,又需将它调入,如此频繁地更换页面,以至一个进程在运行中把大部分时间都花费在页面置换工作上。一个好的置换算法应具有较低的页面更换频率。原创 2020-12-28 21:20:43 · 1391 阅读 · 0 评论 -
操作系统:存储器(程序对换,分页分段,段页式)
分页存储管理方式:在该方式中,将用户程序的地址空间分为若干固定大小的区域,称为页或页面。相应地,也将内存空间分为若干物理块或页框,页和块的大小相同。这样可将用户程序的任一页放入任一物理块中,实现了离散分配。分段存储管理方式:这时为了满足用户要求而形成的一种存储管理方式。它把用户内存地址分为若干大小不同的段,每段可定义一组相对完整的信息。在存储器分配时,以段为单位,这些段在内存中可以不相邻接,所以也同样实现了离散分配。段页式存储管理方式:这时分页和分段两种存储管理方式相结合的产物。它同时也具有两者优点,是原创 2020-12-26 21:26:45 · 1537 阅读 · 0 评论 -
操作系统:存储器(层次结构,程序装入,分配策略)
基于顺序搜索的动态分区分配算法,比较适用于不太大的系统。当系统很大时,系统中内存分区可能会很多,相应的空闲链就很可能很长,这时采顺序搜索分区方法可能会很慢。为了提高搜索空闲分区的速度,在大、中型系统中往往采用基于索引搜索的动态分配算法,目前常用的有快速适应算法、伙伴系统和哈希算法。原创 2020-12-24 20:49:13 · 1185 阅读 · 1 评论 -
操作系统:死锁(死锁条件,预防死锁,避免死锁,乐/悲观锁)
①互斥条件:指进程对所分配到的资源进行排它性使用,即在一段时间内某资源只供一个进程占用。如果此时其他进程请求该资源,请求者只能等待—(资源独占)②请求和保持:指进程已经保持了至少一个资源,但又提出了新的资源请求,而该资源又已被其它进程占用,此时请求进程阻塞,但又对自己已获得的其它资源保持不放—(部分分配,占有申请)③不剥夺条件:指进程已获得的资源,在未使用完之前,不能被剥夺,只能在使用完时由自己释放;④环路等待条件:指在发生死锁时,必然存在一个进程—资源的环形链,即进程集合{P0,P1,P2,…原创 2020-12-22 20:36:48 · 2549 阅读 · 0 评论 -
操作系统:调度(调度原理,作业调度,进程调度,实时调度)
进程调度(内存→CPU):运行频率最高,在分时系统中通常仅10~100ms便进行一次进程调度,因此称为短程调度。为避免调度本身占用太多CPU时间,不宜使进程调度算法太复杂。作业调度(外存→内存):往往是发生一批作业已运行完毕并退出系统,有需要调入一批作业进入内存时,作业调度的周期较长,大约几分钟一次,因此称为长城调度。由于其运行效率低,故允许作业调度算法花费较多的时间。中级调度(外存→内存、内存→外存):运行频率基本介于上述两种调度之间,因此称为中程调度。原创 2020-12-19 21:29:13 · 3321 阅读 · 1 评论 -
操作系统:线程(基本概念,内核线程,用户线程,通讯方式)
【内核级线程(内核管理)】指的是在内核支持下运行的,即无论是用户进程中的线程,还是系统进程中的线程,对应的 TCB 自然是放在操作系统里的,它们的创建、撤销和切换等也是依靠内核,在内核空间实现的。内核线程的数量=CPU的核心数。【用户级线程】仅存在于用户空间中。对于这种线程的创建、撤销、线程之间的同步与通信等功能,都无须利用系统调用来实现。对于用户级线程的切换,通常发生在一个应用进程的诸多线程之间,这时,也同样无须内核的支持。原创 2024-11-19 10:27:43 · 1102 阅读 · 0 评论 -
操作系统:进程(同步方式,通讯方式,经典问题)
用了共享内存通信方式,带来新的问题,那就是如果多个进程同时修改同一个共享内存,很有可能就冲突了。例如两个进程都同时写一个地址,那先写的那个进程会发现内容被别人覆盖了。信号量类似一个整型的计数器,主要用于实现进程间的互斥与同步,而不是用于缓存进程间通信的数据。原创 2020-12-16 20:58:44 · 1093 阅读 · 0 评论 -
操作系统:进程(进程定义,生命周期,上下文切换)
为了使参与并发执行的每个程序(含数据)都能独立地运行,在操作系统中必须为之配置一个专门的数据结构,这个数据结构称为进程控制块(PCB,进程描述信息、进程控制和管理信息、资源分配清单、处理机相关信息)。系统利用PCB描述进程的基本情况和活动情况,进而控制和管理进程。原创 2020-12-14 21:17:24 · 3134 阅读 · 0 评论 -
操作系统:周转时间(平均,带权,平均带权)
周转时间:作业被提交给系统开始,到作业完成为止的这段时间间隔。包括:(1)作业在外存后备队列上的等待作业调度的时间。(2)进程在就绪队列上等待进程调度的时间。(3)进程在CPU上执行的时间。(4)进程等待IO操作完成的时间(阻塞队列中等待时间)。原创 2019-11-11 17:02:16 · 24881 阅读 · 5 评论 -
操作系统:资源(可重用,消耗,可抢夺,不可抢夺)
【可抢占资源】是指某进程在获得这来资源后,该资源可以在被其它进程或系统抢占。该类资源的竞争不会产生死锁,如内存和CPU。【不可抢占资源】一旦系统将某资源分配给进程后,就不能将它强行收回,只能在进程用完后自行释放,如磁带,打印机等。原创 2019-11-13 20:57:57 · 2959 阅读 · 0 评论 -
操作系统:死锁&饥饿
死锁:如果一组进程中的每一个进程都在等待由该进程中的其他进程才能引发的事件,那么该组进程是死锁的。砍树你需要一个斧子,但是斧子又需要木头来做,这就发生了死锁。饥饿:指系统不能保证某个进程的等待时间上界,从而使该进程长时间等待,当等待时间给进程推进和响应带来明显影响时,称发生了进程饥饿。当饥饿到一定程度的进程所赋予的任务即使完成也不再具有实际意义时称该进程被饿死。排队过程中,总有人插队到你前面,你一直处于排队状态,这就发生了饥饿。原创 2019-11-13 18:42:36 · 7992 阅读 · 3 评论 -
操作系统:协程,线程,进程,程序,作业
协程/虚拟线程:不是操作系统概念,与操作系统无关,是轻量级线程。参考Go语言(协程)、Java语言(虚拟线程)。线程:线程也称为轻量级进程(LWP),是程序执行流量的最小单位,它是进程的一个实体,是系统独立调度和分派处理机的基本单位。线程是操作系统调度的最小单位。系统调度的基本单位。进程:进程是一个可并发执行的,具有独立功能的程序关于某个数据集合的一次执行过程,也是操作系统进行资源分配和调度的独立单位。是一个动态概念。资源分配的基本单位。(正在运行的浏览器)原创 2019-11-11 16:36:41 · 1365 阅读 · 0 评论 -
操作系统:引论(基本概念,发展历程,特性功能)
操作系统:是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充。其主要作用是管理好这些设备,提高它们的利用率和系统的吞吐量,并为用户和应用程序提供一个简单的接口,便于用户使用。操作系统是现代计算机系统中最基本和最重要的系统软件(系统软件是指控制和协调计算机及外部设备,支持应用软件开发和运行的系统,是无需用户干预的各种程序的集合)。原创 2020-12-12 21:25:51 · 3745 阅读 · 1 评论 -
操作系统:基本磁盘&动态磁盘
动态硬盘,是指在磁盘管理器中将本地硬盘升级得来的。动态磁盘与基本磁盘相比,最大的不同就是不再采用以前的分区方式,而是叫做卷集(Volume),卷集分为简单卷、跨区卷、带区卷、镜像卷、RAID-5 卷。原创 2019-11-15 10:13:36 · 5577 阅读 · 0 评论 -
操作系统:BIOS+MBR和UEFI+GPT
(1)BIOS+MBR:可用,可启动系统。最常见!这是最传统的,系统都会支持;唯一的缺点就是不支持容量大于2T的硬盘。(2)BIOS+GPT:可用,但是无法启动系统。BIOS是可以使用GPT分区表的硬盘来作为资料盘的,但不能引导系统;若电脑同时带有容量小于2T的硬盘和容量大于2T的硬盘,小于2T的可以用MBR分区表安装系统,而大于2T的可以使用GPT分区表来存放资料也没什么问题。但系统须使用64位系统。原创 2019-11-15 10:39:05 · 3875 阅读 · 0 评论 -
组成原理:除法运算
本篇博客将探讨除法运算的基本原理,包括:原码-恢复取余法,原码-不恢复取余法,补码除法。原创 2019-04-06 09:10:56 · 12619 阅读 · 8 评论 -
组成原理:乘法运算
本篇博客将探讨乘法运算的基本原理,包括乘法算法的不同实现方式:原码一位乘,原码两位乘,补码一位乘法,补码二位乘法。原创 2019-04-06 08:36:47 · 17052 阅读 · 4 评论 -
组成原理:为啥加减时小的要向大的对阶
浮点数加减时,必须进行对阶操作以对齐尾数。这是因为两个数的指数不同会导致尾数无法直接相加或相减。通过将较小的指数提升到较大指数,确保尾数在相同数量级上进行运算,从而避免信息丢失并提高计算精度。原创 2019-03-29 21:12:13 · 6442 阅读 · 5 评论 -
组成原理:定点数与浮点数的四则运算
在本篇博客中,我们将深入探讨计算机组成原理中的一个重要主题:定点数与浮点数的四则运算。定点数和浮点数是计算机处理中常用的数值表示方法,它们在四则运算中的实现方式各有不同。通过分析这两种数值表示方式的基本原理和运算方法,我们将揭示它们在实际应用中的优缺点,以及如何根据不同需求选择合适的数值表示方式。原创 2021-01-12 20:42:12 · 1408 阅读 · 0 评论 -
组成原理:规格化数的判断
在计算机组成原理中,规格化数的判断是确保数值计算精度和一致性的关键步骤。规格化数,即将数值调整为特定格式,以最大限度地利用有效位数,在浮点运算中尤为重要。本篇博客将深入探讨规格化数的判断方法,介绍其在浮点数表示中的作用,以及如何通过规范化过程优化计算精度和性能。原创 2019-03-29 20:28:41 · 11106 阅读 · 0 评论 -
组成原理:无(有)符号数,原(补,反,移)码,浮(定)点数
在计算机组成原理中,理解不同类型的数值表示是至关重要的。本篇博客将深入探讨无符号数与有符号数的区别,介绍原码、补码、反码的定义和转换规则,以及浮点数的表示方法。原创 2021-01-08 21:14:11 · 3760 阅读 · 0 评论 -
组成原理:真值,原码,补码,反码,移码
真值、原码、补码、反码和移码是计算机二进制数表示方法中的重要概念。真值是数值的实际表示,原码是直接将符号位和数值位结合的一种表示方式。补码是用于处理二进制加减法运算的表示法,能够有效简化计算过程;反码是原码的符号位不变,其余位按位取反;移码则是通过在数值基础上加上一个常量来避免负数处理。原创 2019-03-14 20:47:10 · 40550 阅读 · 8 评论 -
组成原理:体系结构,CPU,存储器,Cache
在计算机组成原理中,体系结构指的是计算机各个组件如何相互配合工作的整体设计。CPU(中央处理器)是计算机的核心,负责执行指令和处理数据。存储器则用于存储计算所需的数据和指令,分为主存(如RAM)和辅存(如硬盘)。Cache(缓存)是介于CPU和主存之间的高速存储器,用来暂存经常访问的数据,减少CPU直接访问主存的时间,从而提高系统的性能。原创 2024-09-12 09:04:43 · 1687 阅读 · 0 评论 -
组成原理:三级缓存
CPU三级缓存是现代处理器中重要的性能优化机制。L1、L2缓存主要用于提高核心内部的处理速度,而L3缓存作为共享缓存,在多核系统中提升了跨核心数据共享的效率,避免了过多的主存访问。通过三级缓存的协同工作,CPU能更有效地利用其计算资源,从而提升整体计算性能。原创 2019-03-19 13:18:50 · 3897 阅读 · 8 评论 -
组成原理:思维导图
借助思维导图直观呈现核心概念与结构。文章将带你快速掌握计算机的基本构成、CPU工作原理、存储器体系等关键内容,帮助你轻松理解复杂的计算机硬件知识。原创 2019-06-26 07:17:59 · 412 阅读 · 0 评论 -
编译原理:运行时存储空间的组织和管理
编译程序在完成词法分析、语法分析和语义分析后,在生成目标代码之前,需要把程序的静态正文和实现这个程序的运行时的活动联系起来,弄清楚将来在代码运行时刻,源代码中的各种变量,常量是如何存放的?如何访问的?原创 2020-08-22 14:53:36 · 1311 阅读 · 0 评论 -
编译原理:中间代码生成
翻译为中间语言的好处:便于进行与机器无关的代码优化;使编译程序改变目标机更容易;易于编译器的移植使编译程序的结构在逻辑上更为简单明确,以中间语言为界面,编译前端和后端的接口更清晰。原创 2020-08-22 15:42:19 · 4448 阅读 · 0 评论 -
编译原理:语法制导翻译
属性文法是在上下文无关文法的基础上为每个文法符号(终结符或非终结符)配备若干个相关的“值”(称为属性)。原创 2020-08-22 08:58:34 · 3259 阅读 · 0 评论 -
编译原理:算符优先分析
算符优先分析过程是自上而下的归约过程,但未必是严格的最左归约。也就是说,算符优先分析法不是一种规范归约法。所谓【算符优先分析法】就是定义算符之间的某种优先关系,借助于这种关系寻找“可归约串”进行归约的一种方法。【算符文法】一个文法,如果它的任一产生式的右部都不含两个相继(并列)的非终结符,即不含如下形式的产生式右部: ,则我们称该文法为算符文法。原创 2020-04-24 17:57:02 · 18734 阅读 · 6 评论 -
编译原理:语法分析(LR文法,SLR分析表,LALR分析表)
LR文法: 对于一个文法,如果能够构造一张分析表,使得它的每个入口均是唯一确定的,则我们将把这个文法称为LR文法。LR(k)文法: 一个文法如果能用一个每步最多向前检查k个输入符号的LR分析器进行分析,则这个文法就称为LR(k)文法。原创 2020-05-08 18:16:47 · 7780 阅读 · 2 评论 -
编译原理:语法分析(自上而下分析,LL文法,(非)递归下降预测)
分析过程是带有预测的,对输入符号串要预测属于什么语法成分,然后根据该语法成分的文法建立语法树。分析过程是一种试探过程,是尽一切办法(选用不同规则) 设法建立语法树的过程,由于是试探过程,故难免有失败,所以分析过程需进行回溯,因此我们也称这种方法是带 回溯的自顶向下分析方法。原创 2020-04-19 17:35:18 · 2633 阅读 · 0 评论 -
编译原理:语法分析(上下文无关语法,左递归,提左因子)
一个文法,如果存在某个句子不止一棵分析树,或者说这个句子存在不止一种最左最右推导,那么称这个文法是二义的。提左因子也是一种文法变换,它用于产生适于自上而下分析的文法。产生式来推迟这种决定,推迟到看到足够多的输入,能帮助正确决定所需选择为止。把产生式看成重写规则,把符号串中的非终结符用其产生式右部的串来代替。消除左递归:如果不消除,输入AA字符永永远远往下递归,到不了。每次直接推导均替换句型中最左边的非终结符。每次直接推导均替换句型中最右边的非终结符。,也就是到不了终结符,无法停止。2,左递归和提左因子。原创 2020-04-18 15:58:56 · 2578 阅读 · 0 评论 -
编译原理:词法分析(词法单元,自动机,NFA,DFA)
词法单元:有一个词法单元名称和一个可选的属性值组成。模式:描述一个此法单元的词素可能具有的形式。词素:源程序中的一个字符序列,它和某个词法单元的模式匹配,并被词法单元识别为该词法单元的一个实例。原创 2020-04-14 16:36:47 · 3464 阅读 · 0 评论 -
编译原理:引论(语言分类,解释器,编译器)
词法分析阅读构成源程序的字符流,按编程语言的词法规则把它们组成词法记号(token)流。语法分析它检查词法分析输出的记号流是否符合编程语言的语法规则,并依据这些规则所体现出的语言构造(construct,如函数、语句、表达式等)的层次性,用各记号的第一元建成一种树形的中间表示。语义分析阶段使用语法树和符号表中的信息,依据语言定义来检查源程序各部分语义之间的语义一致性,以保证程序各部分能有意义地结合在一起。原创 2020-03-29 17:39:53 · 612 阅读 · 0 评论