编译原理/操作系统/组成原理
文章平均质量分 72
本人学习编译原理/操作系统/组成原理笔记
燕双嘤
程序辅导,毕业设计,课程作业,比赛代打等,wx:lvlvmp
展开
-
操作系统:复习重点
进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,它是系统进行资源分配和调度的一个独立单位。具有独立的内存空间、磁盘空间、I/O设备等。每个进程都有一个唯一的进程标识符(PID),可以通过操作系统的进程管理功能来管理和控制进程的执行。不同进程之间的通信通常需要通过特定的机制,例如管道、共享内存等。原创 2019-04-28 20:03:01 · 1626 阅读 · 0 评论 -
操作系统:虚拟存储器
1,虚拟存储器概述连续分配、基本分页和基本分段存储管理方式都要求将一个作业全部装入内存后方能运行,于是,会出现:1) 作业很大,需求总容量超过了内存总容量。会因不能全部装入内存而导致该作业无法运行。2)有大量作业要求运行,但由于内存容量不足以容纳所有作业,只能将少数作业装入内存让它们运行,大量作业留在外存上等待。解决的办法:从物理上增加内存容量—受机器自身的限制,增加系统成本;从逻辑上扩充内存容量—用虚拟存储器技术解决;1.1,常规存储管理方式的特征和局部性原理1,常规存...原创 2020-12-28 21:20:43 · 710 阅读 · 0 评论 -
操作系统:存储器管理(下)
4,对换要实现内存、外存之间的对换,系统中必须要有一台I/O速度较好的外存,且其容量也必须足够的大,能容纳正在分时运行的所有用户作业,目前最常用的是大容量磁盘存储器。4.1,多道程序环境下的对换1,对换的引入多道程序环境下的矛盾:一方面:在内存中的某些进程由于某事件尚未发生而被阻塞运行,但它却占用了大量的内存空间,甚至有时可能出现在内存中所有进程都被阻塞而迫使CPU停止下来等待的情况;另一方面:却又有着许多作业在外存上等待,因无内存而不能进入内存运行的情况。解决的办法:引入对换(S原创 2020-12-26 21:26:45 · 877 阅读 · 0 评论 -
操作系统:存储器管理(上)
1,存储器的层次结构1.1,多层次结构的存储器系统操作系统存储管理的范畴包括:寄存器、高速缓存、主存储器和磁盘缓存。它们存储的信息在掉电后会消失。操作系统的存储管理,负责对可执行存储器的分配、回收以及提供在存储层次间数据移动的管理机制,如主存与磁盘缓存、高速缓存与主存间的数据移动等。在计算机系统的存储层次中,寄存器和主存储器又被称为可执行存储器。1.2,主存储器与寄存器主存储器用于保存进程运行时的程序和数据。CPU的控制部件只能从主存储器中取得指令和数据,数据能够从主存储器读取原创 2020-12-24 20:49:13 · 976 阅读 · 1 评论 -
操作系统:输入输出系统(下)
4,设备驱动程序设备处理程序通常又称为设备驱动程序,它是I/O系统的高层与设备控制器之间的通信程序,其主要任务是接收上层软件发来的抽象I/O要求,如read或write命令,再把它转换为具体的要求后,发送给设备控制器,启动设备去执行:反之,它也将由设备控制器发来的信号传送给上层软件。由于设备驱动程序与硬件密切相关,故通常应为每一类设备配置一种驱动程序。例如,打印机和显示器需要不同的驱动程序。4.1,设备驱动程序1,设备驱动程序的功能(1)接收由设备独立性软件发来的命令和参数,并将命令中原创 2021-01-03 20:56:42 · 1343 阅读 · 0 评论 -
操作系统:输入输出系统(上)
1,I/O系统的功能、模型和接口1.1,I/O系统的基本功能方便用户使用I/O设备1,隐藏物理设备的细节I/O设备的类型非常多,且彼此之间在多方面都有差异,如果要求程序员或用户编写直接面向物理设备的程序,是极端困难的。因此,I/O系统必须通过对设备加以适当的抽象,以隐藏掉物理设备的实现细节,仅向上层进程提供少量的、抽象的读/写命令,如read、write等。2,与设备的无关性:这是在隐藏设备细节的基础上实现的。一方面,用户不仅可以使用抽象的I/O命令,还可使用抽象的逻辑设备名来使用原创 2021-01-02 11:21:21 · 446 阅读 · 0 评论 -
操作系统:处理机调度与死锁(实时调度,死锁条件,死锁解除)
4,实时调度实时系统中,可能存在着两种不同性质的热舞,即HRT任务和SRT任务,他们都联系着一个截止时间。为保证系统能够正常工作,实时调度必须满足实时任务对截止时间的要求。https://shao12138.blog.csdn.net/article/details/111083732#t104.1,实现实时调度的基本条件1,提供必要的信息就绪时间(任务成为就绪状态的起始时间)、开始截止时间、完成截止时间、处理时间(指一个任务从开始执行直至完成所需的时间)、资源要求(任务执行时所需的一原创 2020-12-22 20:36:48 · 2175 阅读 · 0 评论 -
操作系统:处理机调度与死锁(作业调度,进程调度)
1,处理机调度的层次和调度算法的目标在多道程序系统中,调度的实质是一种资源分配,处理机调度是对处理机资源进行分配。处理机调度算法是指根据处理机分配策略所规定的处理机分配算法。在多道批处理系统中,一个作业从提交到获得处理机执行,直至作业运行完毕,可能需要经历多级处理机调度。1.1,处理机调度的层次高级调度(外存→内存):又称为作业调度或长程调度。任务:用于决定按照何种算法将外存上处于后备队列中的哪些作业调入内存,并为它们创建进程、分配必要的资源,然后,再将新创建的进程排在就绪队列上,准备原创 2020-12-19 21:29:13 · 2040 阅读 · 1 评论 -
操作系统:进程的控制与描述(同步问题,进程通信,线程概念)
5,经典进程同步问题5.1,生产者-消费者问题问题描述:在生产者和消费者之间的公用缓冲池中,具有n个缓冲区,这是可利用互斥信号量mutex实现诸进程对缓冲池的互斥使用;利用信号量empty和full分别表示缓冲池中空缓冲区和满缓冲区的数量。又假定这些生产者和消费者相互等效,只要缓冲池未满,生产者便可将消息送入缓冲池;只要缓冲池未空,消费者便可从缓冲池中取走一个消息。1,利用记录型信号量解决生产者——消费者问题2,利用AND信号量解决生产者——消费者问题3,利用管程解决生产者原创 2020-12-17 21:25:17 · 1017 阅读 · 0 评论 -
操作系统:进程的控制与描述(进程同步)
4,进程同步4.1,进程同步的概念进程同步1:各进程对公共变量的访问必须加以制约,这种制约称为同步。进程同步2:并发进程在执行速度和执行次序上的协调,以达到有效的资源共享和相互合作,使程序执行有可再现性。为保证多个进程能有条不紊地运行,在多道程序系统中,必须引入进程同步机制。进程同步机制的主要任务,是对多个相关进程在执行次序上进行协调,使并发执行的诸进程之间能按照一定的规则(或时序)共享系统资源,并能很好地相互合作,从而使程序的执行具有再现性。间接相互制约关系(进程互斥):同处..原创 2020-12-16 20:58:44 · 732 阅读 · 0 评论 -
操作系统:进程的描述与控制(进程描述,进程控制)
1,前趋图和程序控制在早期未配置OS的系统和单道批处理系统中,程序的执行方式是顺序执行的,即在内存中仅装入一道用户程序,由它独占系统资源,只有在一个用户程序执行完成后,才允许装入另一个程序执行。可见这种方式浪费资源、系统运行效率低等缺点。为此,在系统中引入了多道程序技术,由于内存可以同时装入多个程序,使他们共享系统资源,并发执行,显然可以克服上述缺点。1.1,前趋图前趋图:前趋图是一个有向无循环图(记为DAG),用于描述进程之间执行的前后关系。图中每个结点可用于描述一个程序段或进程,乃至一原创 2020-12-14 21:17:24 · 2254 阅读 · 0 评论 -
操作系统:周转时间和其他时间
一,周转时间类周转时间作业被提交给系统开始,到作业完成为止的这段时间间隔。包括:作业在外存后备队列上的等待作业调度的时间, 进程在就绪队列上等待进程调度的时间, 进程在CPU上执行的时间, 进程等待IO操作完成的时间平均周转时间多个作业的周转时间的平均值带权周转时间作业的周转时间与系统为它提供服务的时间之比平均带权周转时间多个作业的...原创 2019-11-11 17:02:16 · 21207 阅读 · 5 评论 -
操作系统:资源问题
可重用性资源和消耗资源可重用性资源定义:是一种可供用户重复使用多次的资源性质: (1) 每一个可重用性资源中的单元只能分配给一个进程使用,不允许多个进程共享; (2)进程在使用可重用性资源时,须按照“请求资源”,“使用资源”和“释放资源”的顺序。 (3)系统中每一类可重用性资源中的单元数目是相对固定的,进程运行期间既不能创建也不能删除它。...原创 2019-11-13 20:57:57 · 2674 阅读 · 0 评论 -
操作系统:死锁和饥饿
概念死锁:如果一组进程中的每一个进程都在等待由该进程中的其他进程才能引发的事件,那么改组进程是死锁的。饥饿:指系统不能保证某个进程的等待时间上界,从而使该进程长时间等待,当等待时间给进程推进和响应带来明显影响时,称发生了进程饥饿。当饥饿到一定程度的进程所赋予的任务即使完成也不再具有实际意义时称该进程被饿死。产生原因死锁:源于多个程序对资源的争夺,不仅对不可抢占资源进行争夺时会...原创 2019-11-13 18:42:36 · 7297 阅读 · 3 评论 -
操作系统:线程,进程,程序,作业
一,概念区别线程:线程也称为轻量级进程(LWP),是程序执行流量的最小单位,它是进程的一个实体,是系统独立调度和分派处理机的基本单位。线程是操作系统调度的最小单位。系统调度的基本单位。进程:进程是一个可并发执行的,具有独立功能的程序关于某个数据集合的一次执行过程,也是操作系统进行资源分配和调度的独立单位。是一个动态概念。资源分配的基本单位。程序:程序是一组有序指令的集合,...原创 2019-11-11 16:36:41 · 1229 阅读 · 0 评论 -
操作系统:操作系统引论
操作系统:是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充。其主要作用是管理好这些设备,提高它们的利用率和系统的吞吐量,并为用户和应用程序提供一个简单的接口,便于用户使用。操作系统是现代计算机系统中最基本和最重要的系统软件(系统软件是指控制和协调计算机及外部设备,支持应用软件开发和运行的系统,是无需用户干预的各种程序的集合。)。1,操作系统的目标和作用1.1,操作系统的目标方便性 : 使计算机系统使用起来更方便有效性 : 改善资源利用率,提高系统吞吐量可扩充性:...原创 2020-12-12 21:25:51 · 3244 阅读 · 0 评论 -
操作系统:基本磁盘和动态磁盘
基本信息磁盘的使用方式可以分为两类:一类是“基本磁盘”。基本磁盘非常常见,我们平时使用的磁盘类型基本上都是“基本磁盘”。“基本磁盘”受26个英文字母的限制,也就是说磁盘的盘符只能是26个英文字母中的一个。因为A、B已经被软驱占用,实际上磁盘可用的盘符只有C~Z 24个。另外,在“基本磁盘”上只能建立四个主分区(注意是主分区,而不是扩展分区);另一种磁盘类型是“动态磁盘”。“动态磁盘...原创 2019-11-15 10:13:36 · 4750 阅读 · 0 评论 -
操作系统:BIOS+MBR和UEFI+GPT
MBR和GPTMBR的意思是“主引导记录”,是IBM公司早年间提出的。它是存在于磁盘驱动器开始部分的一个特殊的启动扇区。这个扇区包含了已安装的操作系统系统信息,并用一小段代码来启动系统。如果你安装了Windows,其启动信息就放在这一段代码中——如果MBR的信息损坏或误删就不能正常启动Windows,这时候你就需要找一个引导修复软件工具来修复它就可以了。Linux系统中MBR通常会是GRUB...原创 2019-11-15 10:39:05 · 3426 阅读 · 0 评论 -
组成原理:除法运算
本篇博客将探讨除法运算的基本原理,包括:原码-恢复取余法,原码-不恢复取余法,补码除法。原创 2019-04-06 09:10:56 · 12214 阅读 · 5 评论 -
组成原理:乘法运算
本篇博客将探讨乘法运算的基本原理,包括乘法算法的不同实现方式:原码一位乘,原码两位乘,补码一位乘法,补码二位乘法。原创 2019-04-06 08:36:47 · 16011 阅读 · 2 评论 -
组成原理:为啥加减时小的要向大的对阶
浮点数加减时,必须进行对阶操作以对齐尾数。这是因为两个数的指数不同会导致尾数无法直接相加或相减。通过将较小的指数提升到较大指数,确保尾数在相同数量级上进行运算,从而避免信息丢失并提高计算精度。原创 2019-03-29 21:12:13 · 5781 阅读 · 5 评论 -
组成原理:定点数与浮点数的四则运算
在本篇博客中,我们将深入探讨计算机组成原理中的一个重要主题:定点数与浮点数的四则运算。定点数和浮点数是计算机处理中常用的数值表示方法,它们在四则运算中的实现方式各有不同。通过分析这两种数值表示方式的基本原理和运算方法,我们将揭示它们在实际应用中的优缺点,以及如何根据不同需求选择合适的数值表示方式。原创 2021-01-12 20:42:12 · 928 阅读 · 0 评论 -
组成原理:规格化数的判断
在计算机组成原理中,规格化数的判断是确保数值计算精度和一致性的关键步骤。规格化数,即将数值调整为特定格式,以最大限度地利用有效位数,在浮点运算中尤为重要。本篇博客将深入探讨规格化数的判断方法,介绍其在浮点数表示中的作用,以及如何通过规范化过程优化计算精度和性能。原创 2019-03-29 20:28:41 · 10785 阅读 · 0 评论 -
组成原理:无(有)符号数,原(补,反,移)码,浮(定)点数
在计算机组成原理中,理解不同类型的数值表示是至关重要的。本篇博客将深入探讨无符号数与有符号数的区别,介绍原码、补码、反码的定义和转换规则,以及浮点数的表示方法。原创 2021-01-08 21:14:11 · 3417 阅读 · 0 评论 -
组成原理:真值,原码,补码,反码,移码
真值、原码、补码、反码和移码是计算机二进制数表示方法中的重要概念。真值是数值的实际表示,原码是直接将符号位和数值位结合的一种表示方式。补码是用于处理二进制加减法运算的表示法,能够有效简化计算过程;反码是原码的符号位不变,其余位按位取反;移码则是通过在数值基础上加上一个常量来避免负数处理。原创 2019-03-14 20:47:10 · 36688 阅读 · 6 评论 -
组成原理:体系结构,CPU,存储器,Cache
在计算机组成原理中,体系结构指的是计算机各个组件如何相互配合工作的整体设计。CPU(中央处理器)是计算机的核心,负责执行指令和处理数据。存储器则用于存储计算所需的数据和指令,分为主存(如RAM)和辅存(如硬盘)。Cache(缓存)是介于CPU和主存之间的高速存储器,用来暂存经常访问的数据,减少CPU直接访问主存的时间,从而提高系统的性能。原创 2024-09-12 09:04:43 · 914 阅读 · 0 评论 -
组成原理:三级缓存
CPU三级缓存是现代处理器中重要的性能优化机制。L1、L2缓存主要用于提高核心内部的处理速度,而L3缓存作为共享缓存,在多核系统中提升了跨核心数据共享的效率,避免了过多的主存访问。通过三级缓存的协同工作,CPU能更有效地利用其计算资源,从而提升整体计算性能。原创 2019-03-19 13:18:50 · 3817 阅读 · 8 评论 -
组成原理:思维导图
借助思维导图直观呈现核心概念与结构。文章将带你快速掌握计算机的基本构成、CPU工作原理、存储器体系等关键内容,帮助你轻松理解复杂的计算机硬件知识。原创 2019-06-26 07:17:59 · 316 阅读 · 0 评论 -
编译原理:运行时存储空间的组织和管理
编译程序在完成词法分析、语法分析和语义分析后,在生成目标代码之前,需要把程序的静态正文和实现这个程序的运行时的活动联系起来,弄清楚将来在代码运行时刻,源代码中的各种变量,常量是如何存放的,如何访问的概念过程的活动:过程的一次执行被称为过程的一次活动活动记录:一个过程的一次执行所需要的信息使用一个连续的存储区来管理,这个区叫做一个活动记录活动的生存期:从执行该过程体第一步操作到最后一步操作之间的操作时间,包括执行时调用其他过程花费的时间(过程可以是递归的,一个过程可以对应多个活动)..原创 2020-08-22 14:53:36 · 1183 阅读 · 0 评论 -
编译原理:中间代码生成
一,基本概念翻译为中间语言的好处:(1)便于进行与机器无关的代码优化;(2)使编译程序改变目标机更容易;易于编译器的移植(3)使编译程序的结构在逻辑上更为简单明确,以中间语言为界面,编译前端和后端的接口更清晰。中间语言的形式:后缀式,图表示法,三元式编译过程中不同语言的翻译或处理方法:说明语句的翻译,赋值语句的翻译,布尔表达式的翻译,控制语句的翻译中间语言的形式:逆波兰表示:后缀式图表示法:DAG和AST三地址代码:四元式,三元式,间接三元式二,.原创 2020-08-22 15:42:19 · 4022 阅读 · 0 评论 -
编译原理:语法制导翻译
属性文法是在上下文无关文法的基础上为每个文法符号(终结符或非终结符)配备若干个相关的“值”(称为属性)文法表示三元组:A=(G,V,F)G:是一个上下文无关文法。V:有穷的属性集,每个属性与文法的一个终结符或非终结符相连,这些属性代表与文法符号相关信息,如它的类型,值,代码序列,符号表内容等等。属性与变量一样,可以进行计算和传递。属性加工的过程即语义处理的过程。F:关于属性的属性断言或一组属性的计算规则(称为语义规则)。断言或语义规则与一个产生式相联,只引用该产生式左端或右端的原创 2020-08-22 08:58:34 · 3045 阅读 · 0 评论 -
编译原理:算符优先分析
算符优先分析过程是自上而下的归约过程,但未必是严格的最左归约。也就是说,算符优先分析法不是一种规范归约法。所谓【算符优先分析法】就是定义算符之间的某种优先关系,借助于这种关系寻找“可归约串”进行归约的一种方法。【算符文法】一个文法,如果它的任一产生式的右部都不含两个相继(并列)的非终结符,即不含如下形式的产生式右部: ,则我们称该文法为算符文法。原创 2020-04-24 17:57:02 · 14224 阅读 · 6 评论 -
编译原理:语法分析(下)
一,LR分析LR文法LR文法: 对于一个文法,如果能够构造一张分析表,使得它的每个入口均是唯一确定的,则我们将把这个文法称为LR文法。LR(k)文法: 一个文法如果能用一个每步最多向前检查k个输入符号的LR分析器进行分析,则这个文法就称为LR(k)文法。 一般k=0或k=1就可以了分析程序:对所有的LR分析器总控程序都是相同的。分析表/分析函数:不同的文法分析表将不同,...原创 2020-05-08 18:16:47 · 6635 阅读 · 2 评论 -
编译原理:语法分析(中)
一,自上而下分析对于任何输入串,从文法开始符号(根节点)出发,自上而下,从左到右地为输入串建立语法分析树。特点1.分析过程是带有预测的,对输入符号串要预测属于什么语法成分,然后根据该语法成分的文法建立语法树。2.分析过程是一种试探过程,是尽一切办法(选用不同规则) 设法建立语法树的过程,由于是试探过程,故难免有失败,所以分析过程需进行回溯,因此我们也称这种方法是带 回溯的...原创 2020-04-19 17:35:18 · 1982 阅读 · 0 评论 -
编译原理:语法分析(上)
一个文法,如果存在某个句子不止一棵分析树,或者说这个句子存在不止一种最左最右推导,那么称这个文法是二义的。提左因子也是一种文法变换,它用于产生适于自上而下分析的文法。产生式来推迟这种决定,推迟到看到足够多的输入,能帮助正确决定所需选择为止。把产生式看成重写规则,把符号串中的非终结符用其产生式右部的串来代替。消除左递归:如果不消除,输入AA字符永永远远往下递归,到不了。每次直接推导均替换句型中最左边的非终结符。每次直接推导均替换句型中最右边的非终结符。,也就是到不了终结符,无法停止。2,左递归和提左因子。原创 2020-04-18 15:58:56 · 1389 阅读 · 0 评论 -
编译原理:词法分析
从第一个语言任取一个串,再从第二个语言任取一个串,然后将他们连接后得到所有串的集合。逐个读入构造源程序的字符,把它们组成词法单元流,并完成和用户接口的一些任务。例如 1946,11.28,63.6E8,1.999E-6。C语言的标识符是字母、数字和下划线组成的串。是按照一组定义规则,由较简单的正规式构成的,每个正规式。遍历每个符号,对集合来说,是否能划分集合G。7,NFA到DFA的变换-自动机构造法。正规式(又称正规表达式、正则表达式)的子正规式所表示的语言中构造出来。9,从正规式到有限自动机。原创 2020-04-14 16:36:47 · 2244 阅读 · 0 评论 -
编译原理:引论
运行前先由编译器将高级语言代码编译为对应机器的cpu汇编指令集,再由汇编器汇编为目标机器码,生成可执行文件,然最后运行生成的可执行文件。阶段使用语法树和符号表中的信息,依据语言定义来检查源程序各部分语义之间的语义一致性,以保证程序各部分能有意义地结合在一起。经过语法分析和语义分析后,许多编译器为源程序产生更低级的显示中间表示,可以把这种中间表示想象成一种抽象机的程序。,如函数、语句、表达式等)的层次性,用各记号的第一元建成一种树形的中间表示。阅读构成源程序的字符流,按编程语言的词法规则把它们组成词法。原创 2020-03-29 17:39:53 · 543 阅读 · 0 评论