2020-2021学年(2)操作系统考试重点[华侨大学]

2020-2021学年(2)操作系统考试重点

名词解释

  • 操作系统:操作系统是程序的集合,负责控制和管理软硬件资源,并实现作业调度
  • 分时系统:(分时性)宏观上,多个用户同时工作,共享系统资源。微观上,每个用户作业轮流运行一个时间片。(独立性)每个用户占一个终端,彼此独立,互不干扰。(及时性)短时间内获得响应。(交互性)用户可通过终端进行广泛的人机对话。
  • 实时系统:及时响应、协调、完成各类任务和事件的系统
  • 进程并发:并行性指的是多个事件在同一时刻发生。并发性指的是多个事件在同一时间间隔内发生。在多道程序环境下,并发性指的是在一段时间内宏观上有多个程序在同时运行,但在单处理机系统,每一时刻却仅有一道程序执行,微观上这些程序是分时交替执行的
  • 进程:是程序的一次顺序执行,是系统进行资源分配和调度的单位
  • 就绪状态:进程已经分配到除CPU以外的所有必要资源,只要再获得CPU,便可立即执行
  • 阻塞状态:进程因请求I/O等事件而暂时阻塞,无法继续执行
  • PCB:进程控制块,记录控制进程运行的全部信息,PCB是进程存在的唯一标志
  • 进程挂起:出现一些引起进程挂起的事件后,系统利用挂起原语suspend()将进程挂起
  • 临界资源:进程需要以互斥方式访问的资源,如打印机、磁带机等
  • 临界区:进程中访问临界资源的代码
  • 管程:(由共享数据结构和操作过程组成)由对共享资源进行抽象的共享数据结构和对该数据结构进行的一组操作过程组成,确保进程互斥使用共享资源
  • TCB:线程控制块,内核根据TCB感知和控制线程,进程创建和销毁线程时,也会对应地创建和销毁TCB
  • 周转时间:从作业提交系统开始,到作业完成为止的这段时间
  • CPU利用率:CPU有效工作时间/CPU有效工作时间+空闲等待时间,CPU资源昂贵,应尽量使这一资源的利用率最高
  • 死锁:多道程序环境中,进程为争夺资源而陷入的僵持状态
  • 安全状态:当某进程请求资源时,系统能够按某一安全序列为每个进程分配所需最大资源需求,使每个进程都能顺利完成。若安全序列存在,则系统系统处于安全状态
  • 紧凑:在连续分配方式中,使用“紧凑”技术移动内存中分散的作业,使其相邻接,从而减少外部碎片
  • 对换:把内存中暂时不用的程序和数据调出到外存上,腾出空间供已具备运行条件的程序或数据调入内存
  • 分页存储管理:将进程逻辑空间分成若干个大小相等的页面,把内存空间分成若干和页面大小相等的页框。在为进程分配内存时,以块为单位,将进程中的页装入页框中
  • 分段存储管理:将进程的地址空间按逻辑关系分为不同的段,段长由逻辑信息的长度决定,段内采用一段连续的地址空间
  • 页面:进程逻辑空间中若干个大小相等的片,从0开始编号
  • 快表:(TLB)具有并行查询能力的高速缓冲寄存器,存放部分页表项。CPU给出逻辑地址后,地址变换机构将页号送入TLB,将此页号与TLB中的所有页号进行比较,若有与此匹配的页号,便表示要访问的页表项在快表中,于是可以直接从快表中读出该页所对应的物理块号,并送到物理地址寄存器中。若在快表中未找到对应的页表项,还须访问内存中的页表,找到后把页表项中读出的物理块号送入地址寄存器,同时再将此页表项存入快表的一个快表项中
  • 时间局部性:某条指令和数据访问,在一段时间内会再次被访问,原因是存在循环操作
  • 空间局部性:某个储存单元被访问,一段时间内,其附近的储存单元也会被访问,原因是程序的顺序执行
  • 虚拟存储器:具有请求调入功能和对换功能,能从逻辑上扩充内存容量的一种存储器系统。基于局部性原理,程序仅需将当前运行需要的少数页面或段先装入内存便可运行,若发生缺页,则再请求将需要的资源调入内存,若内存已满,还须将暂时不用的资源调至盘上,腾出空间
  • 缺页中断:在请求分页系统中,当访问的页面不在内存时,产生一缺页中断,请求OS将所缺之页调入内存
  • 最小物理块数:保证进程正常运行所需的最小物理块数
  • 中断向量:中断处理程序的入口地址
  • 设备驱动程序:I/O进程与设备控制器之间的通信程序,接受上层软件的抽象I/O请求,转换为具体要求后发送给设备控制器,由设备控制器去执行。同时,它也将设备控制器发来的信号传送给上层软件
  • 设备独立性:应用程序独立于具体使用的物理设备
  • 文件:由创建者定义的、具有文件名的一组相关元素的集合,分为有结构文件和无结构文件两种
  • 文件目录:一种数据结构,标识文件及其物理地址,以供文件检索
  • FCB:文件控制块,描述和控制文件的数据结构
  • 索引结点:检索文件目录的过程中,将文件名和文件描述信息分开,文件描述信息单独形成一个称为索引结点的数据结构,每个目录项由文件名和指向该文件的inode的指针构成,在文件检索时大大节省系统开销
  • 位示图法:利用二进制的一位表示磁盘中一个盘块的使用情况。使用简单,易找出空闲盘块。位示图占用空间少,可将其直接保存在内存中,提高资源分配效率
  • RAID:(Redundant Array of Independent Disks)独立性磁盘冗余阵列,将多个独立的磁盘组成在一起,形成一个大的磁盘系统,从而提高存储性能和可靠性

简答题

  • 实时系统和分时系统的区别:
    实时系统和分时系统特征相似,但不完全相同。

    记忆:“多读石虎靠”,路性,立性,及性,交性,可性。“石虎”鱼“读多”了,发出一声“靠”!

    1. 多路性。实时系统周期性采集多路现场信息,对多个对象进行控制,而分时系统中的多路性则与用户情况相关,时多时少;
    2. 独立性。分时系统中,每个用户各占一个终端,彼此独立操作,互不干扰。而实时系统中,对终端用户、信息采集和对象控制都是彼此独立,互不干扰的;
    3. 及时性。实时控制系统的及时性高于分时系统;
    4. 交互性。实时系统的交互性仅限于访问系统中某些特定的服务程序,而分时系统则能够提供数据处理和资源共享等服务;
    5. 可靠性。实时系统的可靠性高于分时系统。
  • 并发和并行的区别:
    并行是多个事件在同一时刻发生,而并发是多个事件在同一段时间间隔内发生。多道程序环境下,宏观上一段时间内多道程序在同时运行,但在单处理机系统中,同一时刻只能有一道程序执行,微观上这些程序分时交替执行。而在多处理机中,并发执行的程序可被分配到多个处理机上同时执行。

  • 操作系统的主要功能:

    记忆:硬件(CPU、内存、外设)——处理机管理、存储器管理、设备管理,软件(文件、接口)——文件管理、提供用户接口

    1. 处理机管理(进程管理):进程控制(进程创建和销毁)、进程同步(多进程协调)、进程通信、进程调度
    2. 存储器管理(内存管理):内存分配、内存保护、地址映射、内存扩充(虚拟内存)
    3. 设备管理(外设):设备分配、设备处理(设备驱动程序)、缓冲管理(CPU高速性和I/O低速性矛盾)
    4. 文件管理(文件):存储空间管理、目录管理、读/写保护
    5. 提供用户接口(软件交互)
  • 程序、进程和线程的关系和区别:
    程序是一组指令的有序集合;进程是程序在某个数据集上的执行,是系统进行资源分配的基本单位;线程是进程的一个实体,不拥有系统资源,共享进程的资源,是处理器调度的基本单位。通过引入进程实现了程序在不同数据集上的并发执行,通过引入线程进一步提升了系统的并发性。

  • 绘图并说明进程状态(五状态)的转换过程和转换条件:
    绘图方法——先绘制三状态图:执行(上处理机运行)、就绪(获取除CPU以外的所有资源)、阻塞(发生事件导致进程放弃处理机),执行过程中发生I/O请求时阻塞,I/O请求完成进入就绪态,处理机调度进入执行态,时间片用完重回就绪态。添加创建态和终止态,分别初始化、清空PCB.

  • 引起进程挂起的原因:

    记忆:内忧外患

    内因:负荷重,希望暂时挂起一些不重要的进程;操作系统希望挂起一些进程以查看资源使用情况

    外因:终端用户挂起、父进程挂起子进程

    1. 终端用户请求暂停进程执行;
    2. 父进程请求挂起子进程;
    3. 当前工作负荷重,挂起一些不重要的进程;
    4. 操作系统希望挂起某些进程,以检查资源使用情况等。
  • 引起进程终止的事件:
    (内忧外患)自然终止、(非自然)程序错误,被操作系统或其他有权终结的程序终结

  • 两种形式的制约关系:
    间接制约关系和直接制约关系。间接制约关系源于互斥访问同一共享资源,直接制约关系是指程序间的合作关系。

  • 进程同步机制应遵循的规则:

    1. 空闲让进:没有程序访问临界资源时,应允许一个请求进入临界区的进程进入
    2. 忙则等待:已有进程进入临界区时,其他请求进入临界区的进程必须等待
    3. 有限等待:在有限时间内请求进入临界区的进程能够进入临界区
    4. 让权等待:当进程不能进入自己的临界区时,应立即释放处理机,以免进程陷入“忙等”状态
  • 抢占式与非抢占式调度的区别:
    非抢占式调度是指当某个进程正在处理机上执行时,即使某个更为紧要的进程进入就绪队列,仍让正在执行的程序继续执行,直至该进程运行完成或阻塞,才把处理机分配给其他进程;而抢占式调度则允许调度程序暂停正在执行的进程,将处理机分配给更为紧要的进程。

  • 短作业优先调度算法的缺点:

    记忆:长作业饿死、虚假时间、紧迫性

    1. 对长作业不利,可能导致长作业长期不被调度
    2. 没有考虑作业的紧迫程度,不能及时处理紧迫作业
    3. 用户可以谎报作业时间长短,导致不能正在做到短作业优先
  • 产生死锁的必要条件:

    记忆:互相争夺、保持循环,互斥、不剥夺、请求保持、循环等待

    1. 互斥条件:进程对所分配到的资源进行排他性使用
    2. 不剥夺条件:进程所获资源在未使用完成前,不被其他进程强行夺走,只能由自己主动释放
    3. 请求并保持条件:进程至少保持一个资源,但又提出新的资源请求,而该资源已被其他进程占有,此时请求进程被阻塞,但保持自己获得的资源不放
    4. 循环等待条件:发生死锁时,必然存在资源的循环等待链,{P0, P1, …, Pn},其中,P0正在等待一个被P1占用的资源,P1正在等待一个被P2占用的资源,…,Pn正在等待一个被P0占用的资源
  • 预防死锁的基本思想:
    设置某些限制条件,破坏死锁的四个必要条件。

    1. 互斥条件。由设备固有特性决定,无法破坏,还应保证
    2. 不剥夺条件。当一已保持资源的进程,提出对已被其他进程占有的资源的请求时,该进程所提请求不能立即被满足,此时必须释放已占有的资源,待以后需要时再重新申请
    3. 请求和保持条件。进程在开始运行前,必须一次性申请整个运行过程中所需的全部资源,若资源充足则分配给该进程,若资源不足则让该进程等待
    4. 循环等待条件。将所有资源按类型进行排队并编号,规定资源请求必须按照资源序号递增的次序提出
  • 死锁避免和死锁检测的区别:
    死锁避免是在进程提出资源请求时,设置某些条件,判断当前资源请求是否会造成死锁,若造成死锁则阻止此次资源分配,进程继续等待,反之则分配资源,目的在于避免死锁。而死锁检测是根据死锁定理,判断当前系统是否发生死锁,若发生死锁,则应当进行死锁解除

  • 程序的装入和链接方式:

    记忆:装入方式(绝对装入、可重定位装入——静态重定位、动态重定位),链接方式(静态链接、动态链接——装入时动态链接、运行时动态链接)

    如何将用户源程序变为一个在内存中运行的程序?编译、链接、装入。源程序编译生成目标模块,目标模块和所用库函数进行链接生成完整装入模块,装入程序将装入模块装入内存。

    • 装入方式:
      1. 绝对装入:编译时产生绝对地址的目标代码
      2. 静态可重定位装入:在装入时一次完成目标代码中相对地址到绝对地址的变换
      3. 动态可重定位装入(动态运行时装入):在程序运行时完成相对地址到绝对地址的转换
    • 链接方式:
      1. 静态链接:在装入前,将目标模块和库函数链接成一个完整的装入模块
      2. 装入时动态链接:装入内存时动态链接
      3. 运行时动态链接:程序运行时动态链接
  • 两种对换类型:
    整体对换——以进程为单位;部分对换——以页面/段为单位。对换将内存中暂时不用的程序或数据调出到外存上,腾出足够空间供程序或数据的调入,以提高内存的利用率。

  • 4种动态分区分配算法的基本思想及其利弊:
    在进程换入内存时,若内存中有多个满足该进程所需空间的空闲块,则需要根据动态分区分配算法指定分配哪个空闲内存块给进程使用。

    1. 首次适应算法(First Fit),空闲分区按地址递增顺序链接,从链首开始顺序查找,找到大小满足需求的第一个空闲分区分配给作业。该算法简单、高效,但在低地址处形成小空闲分区,每次都要查找这些分区,增加了开销。
    2. 邻近适应算法(Next Fit),由首次适应算法演变而来,分配内存时从上次查找结束的位置开始继续查找。该算法试图解决首次使用算法的问题,但会在内存空间的尾部形成小碎片。
    3. 最佳适应算法(Best Fit),空闲分区按容量递增的次序链接,找到第一个大小满足要求且最小的空闲分区分配给作业。该算法性能较差,每次分配后会留下难以利用的外部碎片。
    4. 最坏适应算法(Worst Fit),与最佳适应算法恰好相反。空闲分区按容量递减次序链接,找到第一个大小满足要求且最大的空闲分区分配给作业。该算法性能较差,每次分配都将大块连续内存划分开,导致没有可用的大内存块。
  • 基本分页存储管理方式的地址变换过程:
    将逻辑地址分为页号和页内地址,以页号为索引检索页表。将页号与页表长度进行比较,若页号大于页表长度,则发生越界中断。若无越界,则将页表始址与页号和页表项长度的乘积相加,得到该表项在页表中的位置,从而得到该页的物理块号,将其装入物理地址寄存器的高位部分,再将页内地址直接装入物理地址寄存器的块内地址部分,此时物理地址寄存器中的地址则为逻辑地址对应的物理地址。

  • 具有快表的分页存储管理方式的地址变换过程:
    首先将页号和快表中的页号进行比较,若找到匹配的页号,则直接从快表中取出对应的块号,与页内地址拼接形成物理地址。若未在快表中找到匹配的页号,则检索主存中的页表进行地址转换,并将匹配的页表项调入快表,以便后续可能的再次访问。

  • 引入快表后访存的有效时间计算:
    EAT=λa+(1−λ)(a+t)+tEAT=\lambda a+(1-\lambda)(a+t)+tEAT=λa+(1λ)(a+t)+t
    其中,λ\lambdaλ是快表命中率,aaa是查找快表所需时间,ttt是访问内存所需时间。无论快表命中与否,都需要访问一次内存取数据,若快表命中,则只需访问快表即可;若未命中,则需要在访问快表后再访问内存中的页表。

  • 引入分段存储管理的原因:

    1. 程序可分为若干个段,每个段是一个独立的逻辑单位,以段为单位给程序员编程提供方便;
    2. 信息保护、信息共享、信息动态增长、动态链接都是以段为基本单位的。
  • 基本分段存储管理方式的地址转换过程:
    一个程序的地址空间被划分为若干个段,对每段进行编号,一个程序的逻辑地址由段号和段内地址组成。将逻辑地址的段号和段表长度进行比较,若段号大于段表长度,则发生越界中断。否则,由段表始址和段号与段表项长度的乘积相加取出对应的段表项。再检查段内地址是否超过该段的段长,若超过则发生越界中断,否则由该段的基址和段内地址相加,从而得到内存的物理地址。

  • 分页和分段式存储管理的区别:

    记忆:单位、大小、维度

    1. 页是信息的物理单位,而段是信息的逻辑单位;
    2. 页的大小固定,而段的大小不固定;
    3. 分页是系统行为,而分段是用户行为。程序分页的地址空间是一维的,而程序分段的地址空间是二维的。
  • 局部性原理及其论点:
    论点:

    记忆:程序运行过程中局限性的体现?
    顺序执行、循环结构、函数调用(过程调用)、结构体(数组)

    1. 程序执行在大多数情况下是顺序的;
    2. 一段时间内,程序局限于某些过程的范围内运行;
    3. 程序中包含的循环结构将多次执行;
    4. 程序中包含的对数据结构处理局限于很小的范围内。

    局部性原理主要表现在:

    1. 时间局部性。程序访问数据或指令,一段时间内,该数据或指令会多次被访问;
    2. 空间局部性。程序访问某存储单元,其附近的存储单元也将被访问。
  • 缺页处理过程:
    在请求分页系统中,每当所要访问的页面不在内存中时,产生一个缺页中断,阻塞正在运行的程序。此时,应当先保存CPU环境,转入缺页中断处理程序。缺页中断处理程序从外存中找到缺页调入内存,若内存已满,则通过页面置换算法选择一页换出。若换出的页面是脏页,则需要将该页面写回外存,否则直接换出即可。启动I/O设备,将一页从外存读入内存。修改页表后,恢复CPU环境,继续执行原程序。

  • LRU算法的硬件支持:

    1. 寄存器。为内存中的每个页面配置一个移位寄存器,R=Rn−1Rn−2…R0R=R_{n-1}R_{n-2}\dots R_{0}R=Rn1Rn2R0,每当访问某物理块时,将寄存器的Rn−1R_{n-1}Rn1位置1,此时,每隔一段时间,将所有寄存器右移一位,那么,具有最小数值的寄存器对应的页面就是最近最久未访问的页面。
    2. 栈。利用一个特殊的栈保存当前内存中的页面号,每当访问页面时,若页面已在栈中存在,则将该页面号移至栈顶,若页面不存在,则将栈低页面移出,压入访问的页面号。这样,栈底对应的页面是最近最久未访问的页面。
  • 设备控制器的基本功能:
    设备控制器接收从CPU发来的命令并控制多个I/O设备,实现I/O设备和计算机间的数据交换,将CPU从设备控制事物中解放出来。

    记忆:设备控制器实现两大功能,分别是“接收并识别CPU向设备发送的命令”和“数据交换”。命令执行依赖于设备的状态,故也有“标识和报告设备状态”之功能。“数据交换”时,CPU向某设备发送数据则需要设备地址,故有“地址识别”之功能。而某设备向CPU发送数据,则需要检查数据是否出现差错,故有“差错检测”之功能。最后,为解决高速CPU和低速I/O设备之间的矛盾,设置“数据缓冲”。

    1. 接收和识别命令。接收和识别CPU向设备发送的命令;
    2. 标识和报告设备状态。记录设备的状态并向CPU提供;
    3. 数据交换。实现CPU和I/O设备间的数据交换;
    4. 地址识别。识别所控制的设备的地址;
    5. 差错控制。对I/O设备传送的数据进行差错检测。
    6. 数据缓冲。缓解低速I/O设备和高速CPU的矛盾。
  • 中断处理程序的处理过程:

    记忆:检测中断信号、保护现场、转入中断处理程序、恢复现场

    1. 检测中断信号。当I/O设备完成数据的读/写工作后,设备控制器向CPU发送中断请求。程序每当执行完当前指令后,处理机都要检查是否有中断信号,若有中断信号产生,则阻塞原有进程,转而执行中断处理程序,反之,则继续执行下一条指令;
    2. 保护现场。在转入中断处理程序之前,要保护当前CPU环境,以便日后能恢复运行。通常将PC和PSW、寄存器等压入中断栈中;
    3. 转入相应的中断处理程序并进行中断处理。处理机对各中断源进行测试,确定引起中断的I/O设备,将中断程序入口地址填入PC,接着自动执行中断处理程序;
    4. 恢复CPU现场并退出中断。弹出中断栈中保存的现场信息,恢复被中断程序的运行现场。
  • 对I/O设备的控制方式:

    记忆:轮询、中断驱动、DMA、通道,区别在于处理机发出I/O请求、等待I/O请求完成的过程和读入的数据量的大小(即处理机对I/O设备的干预程度的不同)。

    1. 早期使用轮询的I/O设备控制方式。处理机向I/O设备发出I/O指令,I/O设备完成指令前将busy标志位设为1,完成指令后busy设为0,处理机轮询测试busy,直至busy=0,表明I/O设备完成任务。但是,轮询过程中,CPU不断测试busy标识,CPU大部分时间用来等待I/O设备完成任务,CPU利用率低;
    2. 当前普遍使用中断驱动的I/O设备控制方式。处理机向设备控制器发出I/O指令,然后立即返回执行原任务。设备控制器按照命令控制I/O设备,此时,CPU和I/O设备并行工作。当I/O设备完成工作时,向CPU发出中断信号,进行中断处理。提高了CPU的吞吐率;
    3. 虽然中断的I/O设备控制方式提升了CPU吞吐率,但读/写单位仍为字节。每当读/写完成一个字节,设备控制器便向CPU发送中断信号,导致CPU对I/O设备的干预过多,效率低下。DMA(直接存储器访问)方式以块为传输单位,仅在传送数据块的开始和结束时,才需CPU干预,进一步提高了CPU和I/O设备的并行性;
    4. 虽然DMA减少了CPU对I/O的干预,但DMA只支持读/写连续的内存块。通道方式的引入,进一步发展了DMA,通道程序支持了对一组数据块的读写操作,进一步提升了CPU的资源利用率。
  • I/O系统的层次划分及每层的功能:

    1. 用户层I/O软件。调用系统I/O接口和与I/O操作有关的库函数,对设备进行操作;
    2. 设备独立性软件。执行所有的公共操作,向用户层提供与I/O操作有关的统一的接口;
    3. 设备驱动程序。具体实现设备的操作指令;
    4. 中断服务程序。保存现场、转入中断处理程序、恢复现场、返回被中断的进程;
    5. 硬件。硬件根据传入的命令执行相应动作。
  • 引入缓冲区的原因:

    1. 缓和CPU与I/O设备间速度不匹配的矛盾;
    2. 解决数据粒度不匹配问题;
    3. 减少CPU中断频率;
    4. 提高CPU和I/O设备之间的并行性。
  • 最基本的文件操作:
    创建、删除文件,读/写文件,设置文件读/写位置。

  • 文件外存组织形式及其特点:

    1. 连续分配。每个文件在磁盘上占一组连续的块,实现简单,存取速度快。但文件长度不宜动态增加,只适合定长文件存储;
    2. 链接分配。一种离散的分配方式,动态为文件分配盘块,消除外部碎片,提高磁盘的利用率。分为隐式链接和显示链接两种。隐式链接中,除最后一个盘块外,每个文件的盘块都含有指向下一个盘块的指针。缺点是只适用于顺序访问文件,只能从第1个盘块开始向后查找,随机访问效率低。显示链接将用于链接的指针提取出来,显示地存放在内存的一张链接表中,称为文件分配表FAT,-1表示文件结尾,-2表示空闲块。文件分配表在内存中,因此能明显提高检索速度;
    3. 索引分配。每个文件索引块的第i个条目指向文件的第i个块,通过索引块的第i个条目的指针来查找和读入所需的块。索引分配的优点是支持直接访问且没有外部碎片。但索引块的引入,增加了系统存储空间的开销。

©️ 博主整理,转载请注明出处!https://blog.csdn.net/IYXUAN

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/484571.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

获得诺贝尔奖的底层小职员 | 从来没有一个高手,是在一夜之间强大起来的

来源:Pinterest优选2019年初NHK的一个访谈纪录片,看哭了很多网友。“感动,这才是真正的大神啊!”纪录片的主人公,是2002年的诺贝尔化学奖得主——田中耕一。十九年前,他的获奖几乎是“都市传说”般的爆炸新…

python-循环语句基础知识

#循环语句 x1 while x<100:print(x)x1 name while not name:nameinput("input name:")namename.strip()#删除空格&#xff0c;制表&#xff0c;换行符print(name)w[A,"B",C,D] for i in w:print(i)#内建函数&#xff1a;range()包含下限&#xff0c;不包…

bzoj3160: 万径人踪灭

数组开小gg fft乱搞就可以了。 #include<cstdio> #include<iostream> #include<cstring> #include<cstdlib> #include<algorithm> #include<cmath> using namespace std; typedef long long LL; const LL mod1e97; const double piacos(-…

光辉岁月:人工智能的那些人和事(1)

来源&#xff1a;图灵人工智能源头茫昧虽难觅&#xff0c;活水奔流喜不休。——法国数学家亨利庞加莱&#xff08;Henri Poincare&#xff09;目前&#xff0c;人工智能&#xff08;Artificial Intelligence&#xff0c;AI&#xff09;正在迅速崛起。现已面世的AI应用&#xff…

MySQL主从架构及读写分离实战

​​​​​​ 目录 一、实验目的与环境 二、基础环境介绍 三、搭建主从集群 1、理论基础 2、同步的原理 3、搭建主从集群 3.1 配置master主服务器 3.2 配置slave从服务 3.3 主从集群测试 3.4 集群搭建扩展&#xff1a; 3.5、GTID同步集群 4、集群扩容 5、半同步复…

C++基本数据类型

1.C对基本的数据类型进行了封装&#xff0c;成为内置数据类型。 2.有符号整数在内存中存放为补码&#xff0c;无符号整数在内存中存放为原码&#xff1b; Visual C 基本数据类型类型占用字节数名称占用比特位数bool1布尔型8(signed) char1有符号字符型8unsigned char1无符号字…

编译原理课程实践——实现一个初等函数运算语言的解释器或编译器

编译原理课程实践——实现具有初等函数运算语言的解释器或编译器 作者&#xff1a;Sylvan Ding &#xff5c;转载请注明文章出处&#xff01; 摘要&#xff1a;本文主要内容是设计词法分析器、语法分析器&#xff08;LL(1)、SLR(1)&#xff09;和语义分析器&#xff08;基于SL…

数据结构开发(3):线性表的顺序存储结构

0.目录 1.线性表的本质和操作 2.线性表的顺序存储结构 3.顺序存储结构的抽象实现和具体实现 3.1 SeqList3.2 StaticList 和 DynamicList4.顺序存储线性表的分析 4.1 效率分析4.2 功能分析5.小结 1.线性表的本质和操作 线性表 ( List ) 的表现形式&#xff1a; 零个或多个数据元…

小目标检测的一些问题,思路和方案

来源&#xff1a;机器学习研究组订阅机器学习正越来越多地进入我们的日常生活。从个人服务的广告和电影推荐&#xff0c;到自动驾驶汽车和自动送餐服务。几乎所有的现代自动化机器都能“看”世界&#xff0c;但跟我们不一样。为了像我们人类一样看到和识别每个物体&#xff0c;…

python-条件语句

#条件、循环和其他语句 #print:可以打印多个表达式&#xff0c;表达式之间用逗号隔开 print(a,"b",False)#参数并不构成一个元组 模块导入:import x :导入模块xfrom x import func &#xff1a;导入模块x的函数funcfrom x import func1,func2,... 导入模块…

第21条:用函数对象表示策略

第21条&#xff1a;用函数对象表示策略 有些语言支持函数指针&#xff08;function pointer&#xff09;、代理&#xff08;delegate&#xff09;、lambda表达式&#xff08;lambda expression&#xff09;&#xff0c;或者支持类似的机制&#xff0c;允许程序把“调用特殊函数…

2021-2022学年编译原理考试重点[华侨大学]

2021-2022学年编译原理考试重点 注&#xff1a;计算部分请参考 编译原理实验报告 名词解释 编译器&#xff1a;编译阶段&#xff0c;用户输入源程序&#xff0c;经编译器翻译生成目标程序&#xff0c;目标程序在运行时接受输入数据&#xff0c;得到数据输出 解释器&#xff1a…

一文读懂全球半导体市场

来源&#xff1a;深城物联作者&#xff1a;孙卓异&#xff0c;供职于赛迪顾问集成电路产业研究中心 半导体是当今信息技术产业高速发展的基础和原动力&#xff0c;已经高度渗透并融合到了经济、社会发展的各个领域&#xff0c;其技术水平和发展规模已经成为衡量一个国家产业竞争…

如何写好一份技术简历?

写简历的基本目的和策略 大部分情况下&#xff0c;写简历是找工作的第一步&#xff0c;考虑到第二步就是面试&#xff0c;那么简历就是敲门砖&#xff0c;为了让企业认识到你的价值&#xff0c;必须把自己的真实水平描述出来&#xff0c;展现出你有能力应对这份工作。甚至要体现…

这是我看过最全的工业机器人知识介绍 !

来源&#xff1a;产业智能官编者按工业机器人广泛使用在产业制造上&#xff0c;汽车制造、电器、食品等&#xff0c;能替代反复机器式操纵工作&#xff0c;是靠本身动力和控制才能来实现种种功用的一种机器。它能够承受人类指挥&#xff0c;也能够按照事先编排的程序运转。今天…

表白网站|程序猿的爱情记录网站模版|情侣日记网页

程序猿的爱情记录网站模版&#xff5c;情侣日记网页设计 介绍 我为我的女朋友制作了这个主页&#xff0c;目的是记录一些值得纪念的时刻。 如果需要&#xff0c;您可以复制和修改此模板作为送给女朋友或妻子的礼物。 Demo Click here to review the website! ❤️ https://…

python-字符串方法

#find方法&#xff1a;查找子串&#xff0c;返回子串所在位置的最左端索引&#xff0c;如果没有找到则返回-1 s"agsa" print(s.find("gs")) print(s.find("agsaa")) #可以指定匹配的起始点和结束点参数,包含第一个索引&#xff0c;不包含第二个索…

智慧食堂数据分析系统

智慧食堂数据分析系统&#xff5c;大数据分析&#xff5c;数据可视化 Demo Repo&#xff1a;https://github.com/sylvanding/AI-Restaurant-Data-Analysis项目演示&#xff08;模拟真实运行环境&#xff09;&#xff1a;http://analysis.sylvanding.online数据展示静态页面&am…

鸿蒙系统全面解析,诞生背景、技术细节生态圈一文看懂

编辑&#xff1a;智东西内参华为6月2日正式发布的鸿蒙系统无疑占据了最近热点话题的C位&#xff0c;虽然不全是赞美的声音&#xff0c;但这种努力打破美国垄断&#xff0c;挑战谷歌、苹果在移动操作系统上垄断地位的尝试必将成为中国科技史上的里程碑事件。本期的智能内参&…

python-字典

字典映射&#xff1a;通过名字来引用值&#xff1b;字典是python中唯一内建的映射类型&#xff1b;1)创建字典&#xff1a;字典有键-值对(项)组成&#xff0c;键和值之间通过冒号(:)隔开&#xff0c;项之间通过逗号(,)分割&#xff0c;整个字典由大括号括起来&#xff1b;空字典…