能够操作内存中数据类型的是?

(答案仅供参考,不喜勿喷~~)
(本人比较懒,后面的就没仔细整)

1、 什么是嵌入式系统?他和人们日常使用的 PC 有什么区别和联系?
(1) 以应用为中心,计算机技术为基础,软硬件可裁减,从而能够适应实际应用中对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。
  ①嵌入式系统是专用的计算机系统,而PC是通用的计算机系统。
  ②技术要求不同,通用PC追求高速、海量的数据运算;嵌入式要求对象体系的智能化控制。
  ③发展方向不同,PC追求总线速度的不断提升,存储容量不断扩大;嵌入式追求特定对象系统的智能性,嵌入式,专用性。

2、 列举嵌入式系统的主要特点。
专用性、可裁剪行、实时性、可靠性、具有较长的生命周期、不易被垄断。

3、 比较嵌入式微处理器 MPU 和嵌入式微控制器 MCU 之间的区别和联系。
(1) (MPU)嵌入式微处理器以通用处理器(CPU)为基础。将微处理器装配在专门设计的电路 板上,只保留和嵌入式应用有关的功能;外接电路必须包括 ROM、RAM、总线接口、各 种外设等器件。
(2)(MCU)嵌入式微控制器又称单片机,是将整个计算机系统浓缩集成到一块芯片中。一般 以某一种微处理器内核为核心,芯片内部集成 ROM/EPROM、RAM、总线、总线逻辑、 定时/计数器、看门狗、I/O、串行口、脉宽调制输出、A/D、D/A、Flash 等各种必要功能和外设。

4、 什么是冯诺伊曼结构?什么是哈佛结构?
(1)冯诺伊曼体系结构:指令和数据不加以区分,都通过数据总线进行传输。因此,指令读 取和数据访问不能同时进行,数据吞吐量低,但总线数量相对较少且管理统一。大多数通用计算机的处理器(如 Intel X86)和嵌入式系统中的 ARM7 处理器均采用冯诺依曼结构。
(2)哈佛体系结构:指令与数据分开存储在不同的存储空间,使得指令读取和数据访问可以 并行处理,显著提高了系统性能,但需要较多数量的总线。大多数嵌入式处理器都采用哈佛结构。

5、 简述嵌入式 I/O 接口的功能、组成和编制方式。
(1)功能:嵌入式 I/O 接口连接和控制嵌入式 I\O 设备,负责完成嵌入式处理器和嵌入式 I\O 设备间的信号转换、数据传输和速度匹配。
(2)组成:寄存器(数据寄存器、控制寄存器、状态寄存器)、I\O 控制逻辑部件、外设接口 逻辑。
(3)编制方式:为寄存器指定端口地址的方法被称为 I\O 接口的编制方式,一般来说 I\O 接 口编制方式有统一编址和独立编址。

6、 无操作系统的嵌入式软件主要有哪几种实现方式?
循环轮询系统、前后台系统。

7、 什么是引导加载程序?它的主要功能是什么?
引导程序一般由汇编语言编写,在嵌入式系统上电后运行,完成自检、存储映射、时钟系统 和外设接口配置等一系列硬件初试化工作。

8、 列举嵌入式系统的主要分类?
(1)按硬件划分:根据嵌入式处理器的字长,可分为 4,8,16,32,64 位嵌入式系统。
(2)按软件复杂度划分:无操作系统控制、小型操作系统控制、大型操作系统控制的嵌入式 系统。
(3)按实时性划分:非实时嵌入式系统、硬实时嵌入式系统、软实时嵌入式系统。

9、 列举嵌入式系统的主要应用领域。
国防军事、工业控制、消费电子、办公自动化产品、网络和通信设备、汽车电子、金融商业、 生物医学、信息家电。

1、 概述嵌入式系统的开发环境。
嵌入式系统的开发环境称为交叉开发环境,有宿主机、目标机以及它们之间的连接构成。 首先,在宿主机上建立开发环境,进行应用程序编写和交叉编译,然后,在宿主机目标机之间建立连接,将应用程序下载到目标机上进行交叉调试最后,将应用程序固化到目标机中实际运行

2、 简述嵌入式软件开发工具的构成。
编辑器、编译器、链接器、调试和下载工具。

3、 列举目前常用的嵌入式软件集成开发工具。

4、 嵌入式调试方式有哪些? 答:
软件模拟器、ROM 监控器、ROM 仿真器、在线仿真器、片上调试

5、 什么是 JTAG?它属于哪种嵌入式调试方式?简述 JTAG 接口的引脚定义。
(1)JTAG 是一种关于测试访问和边界扫描结构的标准,用于芯片内部测试及对程序进行调试、 下载。

6、 目前常用的嵌入式软件开法语言有哪些?他们分别具有什么特点?
汇编语言、C 语言、Java 语言
(1)汇编语言:对底层设备操控性好、效率高但编程复杂功能有限、可读性、可移植性差。
(2)C 语言:语言简洁紧凑,使用方便灵活、表达能力强代码质量高、执行效率高等。
(3)Java 语言:面向对象、解释性、平台无关、分布式、健壮、安全、动态、支持多线程。

7、 嵌入式系统的开发过程可以分为哪几个阶段?
需求分析、系统规划、系统实现、系统测试、系统发布

2、 ARM Cortex 处理器分为哪几个系列?每个系列又分别面向哪些应用场合?
(1)Cortex-A:面向高端的基于虚拟内存的复杂操作系统应用。
(2)Cortex-R:面向实时领域的应用。
(3)Cortex-M:面向低成本低功耗的传统单片机应用场合。

ARM Cortex-M3 处理器由 Cortex-M3 内核和调试系统构成,Cortex-M3 内核主要由 core 中央 处理器核心、NVIC 嵌套向量中断控制器、SYSTICK 系统定时器、MPU 存储保护单元和总线矩 阵等组成。调试系统包括停机和调试监控器两种模式、指令断点、寄存器、存储访问以及性 能分析此外还具有指令跟踪、数据跟踪、调试信息跟踪。

主要有 I-Code 总线、D-Code 总线、系统总线、外部私有外设总线和调试访问端口总线 DAP。

5、 ARM Cortex-M3 处理器有几种工作状态?支持哪些数据类型?
两种工作状态:Thumb 状态和调试状态。 数据类型:字(32b)、半字(16b)、字节(8b)

(1)通用寄存器(R0~R12):数据操作。
(2)堆栈指针寄存器(SP):用作堆栈指针。
(3)链接寄存器(LR):调用子程序时保存返回地址。
(4)程序计数器(PC):用于存放下一条执行的指令地址。
(5)特殊功能寄存器组:预定义的功能。

7、 概述 ARM Cortex-M3 处理器的两种操作模式及其切换机制。
线程模式和处理者模式,异常产生使中断用户应用程序执行从线程模式切换到处理者模式, 执行异常服务程序,异常返回,由处理者模式切换到线程模式,继续执行被打断的用户应用 程序。

8、 异常和中断有什么联系和区别?ARM Cortex-M3 处理器最多能支持多少种异常?他们的 优先级是如何规定的?
(1)在 ARM 中凡是发生打断程序正常执行流程的事件,都被称作异常。中断是一种特殊的 异常且是异步事件,异常还包括同步事件。
(3) 优先级通过抢占优先级和子优先级划分。

9、 假设 ARM Cortex-M3 处理器要将以下数据以小端格式写入存储器,依次写出实现以下功 能的 C 语句,并画出这些数据在 ARM 存储器中的存储空间分布图:
(1) 大写字母’E’存放在地址 0x 上。

ARM Cortex 内核是 ARM 公司设计,而基于 ARM Cortex 内核的微控制器是各大厂商根据 ARM 公司的内核,设计各具特色的微控制器。其中 MPU 由 ARM Cortex 内核、调试系统、内部总 线、外设、存储器、时钟复位、IO 等封装而成。(MCU=CPU+RAM/ROM+I/O)

2、 简述 STM32 系列微控制器的适合场合、命名规则和主要产品线。
替代绝大部分 10 元以上的 8/16MCU 的应用 替代目前常用的 32 位 MCU(ARM7)的应用 小型 OS 相关的应用 简单图形和语音相关的应用
(2)命名规则: 名称主要有以下部分组成产品系列名、产品类型名、产品子系列名、引脚数、Flash 存储器 容量、封装方式、温度范围。
(3)主要产品线: 产品线包括高性能、主流、超低功耗三大类,分别面向不同的应用。

3、 目前微控制器的开发方法主要有哪些?
答: 寄存器开发、库函数开发、中间件开发

4、 STM32F103 微控制器的主系统由哪几部分构成?画出 STM32F103 微控制器的系统结构图。
主系统由 4 个主动单元和 4 个被动单元构成,它们彼此之间通过一个多级的 AHB 总线架构 相互连接。其中 4 个主动单元包括 Cortex-M3 内核数据总线和系统总线、通用 DMA1 和通用
DMA2,4 个被动单元包括内部 SRAM、内部闪存存储器、FSMC 和连接所有 APB 设备的 AHB

6、 什么是微控制器的最小系统?它通常由哪几部分组成?
(1)一个微控制器的最小系统是指使为控制器正常工作所需的最少原件。
(2)通常由微控制器芯片、电源电路、时钟电路、复位电路、调试和下载电路等部分组成。

(1)主电源 VDD(必需)
(2)实时时钟和一部分备份寄存器的电源 VBAT(可选)
(3)ADC 模块所需的参考电压 VREF+和 VREF-(可选) 其中每个电压供应引脚都需要至少一个去耦电容

高速外部时钟、高速内部时钟、低速外部时钟、低速内部时钟

10、STM32F103 微控制器 AHB 高速总线时钟 HCLK、APB2 外设总线时钟 PCLK2 和 APB1 外设 总线时钟 PCLK1 分别给哪些模块提供时钟信号?当 STM32F103 微控制器复位后,他们默认 的工作频率分别是多少?
(2) APB2 外设总线时钟(PCLK2):为挂载在 APB2 总线上的外设提供时钟信号,72MHz。
(3) APB1 外设总线时钟(PCLK1):为挂载在 APB1 总线上的外设提供时钟信号,36MHz。

11、STM32F103 微控制器有哪些低功耗模式?他们各自有什么特点?如何进入和退出这些低 功耗模式?
(1)睡眠模式:内核停止工作,外设还在继续工作。CPU 停止运行、PLL 关闭、关闭除唤醒 内核的外设外其他所有外设时钟。当内核遇到 WFE 或 WFI 指令进入睡眠模式,直到某个外 设产生事件或中断请求,退出睡眠模式。
(2)停机模式:睡眠模式的基础上,所有外设时钟都被关闭。CPU 停止运行、PLL、HIS、HSE、 关闭、关闭所有外设时钟、调压器低功耗模式。先设置电源控制寄存器 SLEEPDEEP 位置位、 PDDS 清零,一旦遇到 WFE 或 WFI 指令,进入停机模式。通过 EXTI 信号唤醒。EXTI 信号可 以是 16 个外部 I\O 引脚之一、PVD 的输出、RTC 闹钟或 USB (3)待机模式:最低的电能消耗。CPU 停止运行、PLL、HIS、HSE、关闭、关闭所有外设时钟、 调压器关闭。先设置电源控制寄存器 SLEEPDEEP 位置位、PDDS 置位,一旦遇到 WFE 或 WFI 指令,进入待机模式。退出条件是 NRST 引脚上的外部复位信号、IWDG 复位、WKUP 引脚 上的上升沿或 RTC 闹钟事件。

12、STM32F103 微控制器有哪些安全特性?
看门狗、电源检测、时钟安全系统

13、什么是看门狗?STM32F103 微控制器的看门狗有何特性?
(1)看门狗是嵌入式系统中常用的安全保障行机制。
(2)它可以实时监测程序的运行状态,即使由于某种原因微控制器进入一个错误状态,程序 跑飞进入死循环,系统也可以自动恢复。

14、什么是启动代码?它主要执行哪些工作?
(1)启动代码用来初始化系统以及为嵌入式操作系统或者使用高级语言编写的嵌入式应用软 件做好运行前准备的一段汇编语言程序。
(2)初始化异常向量表、初始化时钟系统、初始化存储器系统、初始化堆栈和跳转到 main 函数等。

(1)根据 BOOT0 和 BOOT1 引脚选择启动存储器映射。
(2)从地址 0x 处取出栈顶指针值放入 MSP。
(3)从地址 0x 处取出复位异常服务程序的入口地址放入 PC。
(4)执行复位异常服务程序。

16、使用嵌入式软件开发工具(如 KELL MDK 等)构建基于 STM32F103 微控制器应用的开发 过程,具体可以分为那几步?
(2) 下载安装嵌入式开发工具。
(3) 通过官方控制模板和硬件型号更改相关配置选项。
(6)使用软件模拟仿真或下载硬件运行等方式调试程序。
(7)下载到微控制器,复位从新运行。

微控制器数字输出输出的基本模块

3、 对于 STM32F103 微控制器 GPIO 来说,什么是复用功能重映射?要实现 STM32F103 微控制器某个引脚的复用功能重映射,具体分哪几步操作?
(1) 用户根据实际需要可以把某些外设的复用功能从默认引脚转移到备用引脚上,这就是外设复用功能的 I/O 引脚重映射。
①使能被重新映射到的 I/O 引脚的时钟
③按复用功能的方式配置 I/O 引脚
④使能被重新映射的外设时钟
⑤对外设进行 I/O 引脚重映射

(1)外设复用功能重映射

6、 简述使用库函数开发 STM32 微控制器应用的一般步骤。

1、 嵌入式系统中,定时器的主要功能有哪些?
答:延时、定时、计数、输入捕获、输出比较、PWM 输出等高级功能。

2、 STM32F103 微控制器定时器的类型有哪几种?STM32F103 微控制器不同类型的定时器有什么区别?
答:(P254、P263、P266,三个定时器的主要特性的区别)
(2) 基本定时器只具备基本的定时功能,通用定时器除了基本的定时功能外它主要用于 测量输入脉冲的频率和脉冲宽度以及输出 PWM 脉冲等场合,还具有编码器接口。 高级定时器除了具有通用定时器的所有功能外,还可以被看成是一个分配到 6 个通 道的三相 PWM 发生器,具有带死区插入的互补 PWM 输出。

3、 STM32F103 微控制器通用定时器的常用工作模式有哪些?
(1)计数模式(向上、向下、双向计数)、
(3)PWM 输出模式、
(5)PWM 输入模式、

5、 简述无操作系统下基于无限循环的嵌入式软件架构的组成及应用场合。

1、 中断服务函数与普通的函数相比有何异同?
(1)相同点:结构上两者非常相似
(2)不同点:函数一般有参数和返回值,并在应用程序中被认为显示的调用执行,而中断服 务程序没有参数和返回值,并只有中断发生时才会被自动隐式地调用执行。

2、 什么是中断向量表?它通常存放在存储器的哪个位置?
(1)中断向量表是一块存储区域,中断对应的中断服务程序的入口地址统一存放在中断向量 表中。
(2)中断向量表一般位于存储器的零地址位置。

3、 概述中断处理过程。
(1)中断响应(保护现场、中断向量表中找到该中断对应的中断服务程序的地址)
(2)执行中断服务程序

4、 简述使用中断的优缺点。
(1)优点:协调系统对各种外部事件的响应和处理,使系统能够快速响应紧急事件或优先处 理重要人物,减少 CPU 负荷,加快对事件的响应速度,显著地提高系统效率。

1、中断会增加程序执行的不确定性和时间长度。
2、中断会抢占正在使用的资源。
3、中断嵌套会增加栈空间。

5、 STM32F103 微控制器的中断系统共支持 84 个异常。其中包括 16 个内部异常和 68 个可 屏蔽的非内核异常中断。

6、 STM32F103 微控制器的中断系统,使用 4 位优先级设置,一共支持 16 级可编程异常优先级。

7、 对于不同的中断源,STM32F103 微控制器的响应顺序遵循什么规则?
(1)先比较抢占优先级,抢占优先级高的中断优先响应。
(2)当抢占优先级相同时,比较子优先级,子优先级高的中断优先响应。
(3)当上述两者都相同时,比较它们在中断向量表中的位置,位置低的中断优先响应。

8、 STM32F103 微控制器复位中断服务程序的地址存放在中断向量表中的哪个位置?

9、 STM32F103 微控制器的中断设置过程可以分为哪几步?
(1)建立中断向量表(选择 Flash 或 RAM 中建立中断向量表,默认是 Flash)
(2)分配栈空间并初始化(分配栈空间、初始化栈)
(3)建立中断优先级(设置中断优先级分组的位数、设置中断的抢占优先级和子优先级)
(5)编写对应的中断服务程序

10、STM32F103 微控制器事件和中断有什么区别和联系?
从外部激励信号看中断和事件的请求信号没有区别,只是在 STM32F103 微控制器的内部将 他们分开。中断信号会被送至 NVIC 向 CPU 产生中断请求,至于 CPU 如何响应,有用户编写 或系统默认的对应中断服务程序决定。事件信号会向其他功能模块(如定时器、USART、DMA 等)发送脉冲触发信号,至于其功能模块会如何响应这个脉冲触发信号,则由对应的模块自己决定。

11、STM32F103 微控制器 EXTI 信号线一共有多少根?它们分别对应哪些输入? 答:
(2)除了 EXTI16(PVD 输出)、EXTI17(RTC 闹钟)和 EXTI18(USB 唤醒)外,其他 16 根外部 信号输入线分别对应微控制器的 16 个引脚。

12、若要使用 STM32F103 微控制器的 EXTI 中断,必先使哪个时钟?
APB2 总线上该引脚对应端口时钟以及 AFIO 功能时钟。

13、C 语言的关键字 volatile 有什么作用?主要用于哪些场合?
(1) volatile 意为易变的、不稳定的。不让编译器进行优化,即每次读取或修改 volatile 的值 时,都必须重新从内存或寄存器中读取或修改。

    中断服务程序中修改的供其他程序检测的变量。 多任务环境下各任务间共享的标志。 存储器映射的硬件寄存器。

1、 什么是 DMA?DMA 有哪些传输要素?DMA 的整个传输过程分为哪几个步骤?
(1)DMA(Direct Memory Access,直接存储器存取),是一种完全由硬件执行数据交换的工 作方式。它由 DMA 控制器而不是 CPU 来控制在存储器和存储器、存储器和外设之间的批量数据传输。
(2)传输要素:传输源、传输目标、传输单位数量、触发信号

2、 STM32F103 微控制器 DMA 一共有多少个通道?如何响应在不同通道上同时产生的 DMA请求?
(1)一共具有 12 个独立的可配置的通道,其中 DMA1 有 7 个通道,DMA2 有 5 个通道。
(2)同一时刻,一个 DMA 只能有一个请求有效,通过先判断软件优先级,再判断硬件优先 级的顺序响应 DMA 请求。

3、 STM32F103 微控制器 DMA 通道的软件和硬件触发方式分别用于哪种场合?两者对于通 道的选择是否有所限定?
(1) 硬件通道触发:适用于涉及片上外设的数据传输。当 DMA 传输涉及片上外设时应根据DMA1 和 DMA2 通道映射表的分配情况,选择指定的 DMA 及其通道。
(2) 软件触发:适用于仅涉及存储器之间的数据传输。当 DMA 传输仅涉及存储器时,可任 意选择未被外设占用的 DMA 通道。

5、 STM32F103 微控制器 DMA 传输允许的最大数据量是多少?
DMA 数据传输量(最大为 65535)可编程。

6、 C 语言的关键字 volatile 有什么作用?主要用于哪些场合?
(1)volatile 意为易变的、不稳定的。不让编译器进行优化,即每次读取或修改 volatile 的值时,都必须重新从内存或寄存器中读取或修改。

1、中断服务程序中修改的供其他程序检测的变量。
2、多任务环境下各任务间共享的标志。
3、存储器映射的硬件寄存器。

ADC 模拟数字转换器,是一种将连续变化的模拟信号转换为离散的数字信号的电子器件。

2、 ADC 进行模数转换分为哪三步?

3、 ADC 的性能参数有哪些?分别代表什么意义?
(1)量程:指 ADC 所能转换的模拟输入电压的范围。
(2)分辨率:反映 ADC 对输入信号微小变化的响应能力,描述刻度大小。
(3)精度:指对于 ADC 的数字输出(二进制代码),其实际需要的模拟输入值与理论上要求 的模拟输入值之差,描述物理量的准确程度。
(4)转换时间:ADC 完成一次 A/D 转换所需要的时间,是指从启动 ADC 开始到获得相应数据 所需要的总时间。

4、 ADC 的主要类型有哪些?他们各自有什么特点?
(1)逐次逼近型:规模中等、转换速度较快、转换精度较高、功耗低。
(2)电压时间转换型:工作性能比较稳定且抗干扰能力强,转换速度慢。
(3)电压频率转换型:抗干扰能力强,转换速度慢。

7、 STM32F103 的 ADC 共有几路通道?可分为几组?每组最多可容纳多少路通道?
ADC 最多有 18 路模拟输入通道,除了 ADC1_IN16 与内部温度传感器相连,ADC1_IN17 与内 部参照电压相连,其他的 16 路通道都可用作模拟输入的引脚。可分为规则通道组和注入通
道组 ,其中规则通道组最多包含 16 路请求,注入通道最多包含 4 路通道。注入通道组转换 的启动有两种方式:触发注入和自动注入。

单次转换模式、连续转换模式、扫描模式(规则和注入)、间断模式(规则和注入)

规则通道外部触发事件:TIM1_CC1 等等。 注入通道外部触发事件:TIM1_CC4 等等。

仅有规则通道组可以产生 DMA 请求。

12、常用的软件滤波算法有哪些?

13、外围 I/O 设备与 CPU 交换数据的方式有哪几种?试说明它们各自的特点。
(1)程序直接控制方式:就是由用户进程直接控制内存或 CPU 和外围设备之间的信息传送。 这种方式控制者都是用户进程。
(2)中断控制方式:被用来控制外围设备和内存与 CPU 之间的数据传送。这种方式要求 CPU 与设备(或控制器)之间有相应的中断请求线,而且在设备控制器的控制状态寄存器的相应 的中断允许位。
(3)DMA 方式:又称直接存取方式。其基本思想是在外围设备和内存之间开辟直接的数据 交换通道。
(4)通道方式:与 DMA 方式相类似,也是一种以内存为中心,实现设备和内存直接交换 数据控制方式。

1、 解释以下数据通信相关的基本概念:串行通信、并行通信、单工通信、半双工通信、全 双工通信、同步通信、异步通信。
(1)串行通信:使用一条数据线将数据一位一位的依次传输。
(2)并行通信:使用多条数据线传输数据。
(3)单工通信:在同一通路上,只单向传输。
(4)半双工通信:在同一通路上,双向传输。
(5)全双工通信:在不同通路上,双向传输。
(6)同步通信:发送端与接收端之间使用共同的时钟。
(7)异步通信:发送端与接收端之间不存在共同的时钟。

2、 在数据通信中,波特率和比特率有什么区别和联系?
比特率是指每秒传送的比特(bit)数。单位为 bps(Bit Per Second),比特率越高,传送数 据速度越快。每秒钟通过信道传输的信息量称为位传输速率,也就是每秒钟传送的二进制位 数,简称比特率。比特率表示有效数据的传输速率,用 b/s 、bit/s、比特/秒,读作:比特每 秒。
在信息传输通道中,携带数据信息的信号单元叫码元,每秒钟通过信道传输的码元数称 为码元传输速率,简称波特率。波特率是指数据信号对载波的调制速率,它用单位时间内载 波调制状态改变的次数来表示(也就是每秒调制的符号数),其单位是波特(Baud,symbol/s)。 波特率是传输通道频宽的指标。
(3)波特率与比特率的关系:
比特率=波特率 x 单个调制状态对应的二进制位数。
(4)由于 URAT 使用 NRZ 编码,因此 URAT 的波特率和比特率是相同的。

3、 简述 UART 的接口组成及其电平标准。

在 TTL 电平标准中:逻辑1通常用+5V 表示,逻辑0通常用0V表示。
在 CMOS 电平标准中:逻辑1的电平一般接近于电源电压,逻辑0的电平一般接近于0V。

4、 简述 RS232 的接口组成及其电平标准。

通常采用 DB-9 的形式

6、 画出带 UART 接口的微控制器与带 USB 接口的 PC 物理连接图。 答:?

7、 UART 数据帧由哪些部分组成?
UART 数据是按照一定格式打包成帧,以帧为单位在物理链路上进行传输的。
UART 的数据格式由起始位、数据位、校验位、停止位和空闲位等构成。其中,起始位、数据位、校验位和停止位,构成了一个数据帧

USART 结构自上而下可分为波特率控制、收发控制和数据存储转移三大部分。

发送期间:发送完成(TC)、清除发送(CTS)、发送数据寄存器空(TXE)
接收期间:空闲总线检测(IDLE)、溢出错误(ORE)、接收数据寄存器非空(RXNE)、校验错误(PE)、LIN 断开检测(LBD)、噪声错误(NE,仅在多缓冲器通信)和帧错误(FE,仅在多缓冲器通信)。

12、假设 STM32F103 微控制器的 USART1 设定以下数据格式:8 个数据位(低位在前高位在 后),奇校验位,1 个停止位,画出发送字母‘E’时 USART1 发送引脚 TXD 的波形图。

1、 通常,SPI 接口由哪几根线组成?它们分别有什么作用?
(1)SCK,即时钟线,由主设备产生。不同的设备支持的时钟频率不同。但每个时钟周期可 以传输一位数据,经过 8 个时钟周期一个完整的字节数据就传输完成了。
(2)MOSI,即主设备数据输出∕从设备数据输入线。这条信号线上的方向是从主设备到从设 备,即主设备从这条信号线发送数据,从设备从这条信号线上接收数据。 (3)MISO,即主设备数据输入∕从设备数据输出线。这条信号线上的方向是由从设备到主设 备,即从设备从这条信号线发送数据。
(4)SS,SPI 从设备选择信号线。当有多个 SPI 从设备与 SPI 主设备相连(即“一主多从”)时, SS 用来选择激活指定的从设备,由 SPI 主设备(通常是微控制器)驱动,低电平有效。当只 有一个 SPII 从设备与 SPI 主设备相连(即“一主一从”)时,SS 并不是必需的。

4、 假设 SPI 编程设定以下时序(CPOL=0,CPHA=0)和数据帧格式(8 个数据位,高位在前低 位在后),画出 SPI 主设备发送字节数据 ox98(十六进制数)时其引脚 MOSI、SCK 和 CS 的波形图。

5、 假设 SPI 编程设定以下时序(CPOL=0,CPHA=(1)和数据帧格式(8 个数据位,底位在前高 位在后),画出 SPI 主设备发送数字’6’时其引脚 MOSI、SCK 和 CS 的波形图。

6、 假设 SPI 编程设定以下时序(CPOL=1,CPHA=0)和数据帧格式(8 个数据位,高位在前低 位在后),画出 SPI 主设备发送字母’r’(十六进制数)时其引脚 MOSI、SCK 和 CS 的波形 图。

7、 假设 SPI 编程设定以下时序(CPOL=1,CPHA=(1)和数据帧格式(8 个数据位,高位在前低 位在后),画出 SPI 主设备发送字节数据 ox54(十六进制数)时其引脚 MOSI、SCK 和 CS 的波形图。

(1)SPI1 位于高速 APB2 总线上,其他的 SPI(如 SPI2、SPI3 等)位于 APB1 总线上; 既可以作为主设备,也可以作为 SPI 从设备;
(2)主模式和从模式下均可由软件或硬件进行 NSS 管理,动态改变主∕从操作模式;
(3)可编程的 SPI 时序:由时钟极性和时钟相位决定;
(4)可编程的 SPI 数据格式:8 位或 16 位数据帧;LSB 在前或 MSB 在前的数据顺序;
(5)可编程的 SPI 传输速率:最高 SPI 速率可达 18MHz;
(6)可触发中断的两个标志位:发送标志位 TXE(发送缓冲区空)和接收标志位 RXNE(接收 缓冲区非空);
(7)支持 DMA 功能的 1 字节发送和接收缓冲区:分别产生发送和接受请求;
(8)带或不带第三根双向数据线的双线单工同步传输;
(9)支持以多主配置方式工作;

SPI 主要由波特率控制、收发控制和数据存储转移 3 部分构成。

10、分别概述 STM32F103 微控制器 SPI 主模式的配置,以及在主模式下发送一个字节数据和接受一个字节数据的流程(太懒啦)

11、分别概述 STM32F103 微控制器 SPI 从模式的配置,以及在从模式下发送一个字节数据和接受一个字节数据的流程(太懒啦)

14、STM32F103 微控制器的 SPI 有哪些状态标记位?可以产生哪些中断请求?

TXE(发送缓冲区空闲标志)
RXNE(接收缓冲区非空标志)

中断请求 TXE(发送缓冲区空闲中断请求)
RXNE(接收缓冲区非空中断请求)

1、 解释 I2C 通信中的以下常用术语:主机、从机、接受器、发送器。
(1)主机:初始化发送、产生时钟和终止发送的器件,通常是微控制器;
(2)从机:被主机寻址的器件;
(3)发送器:本次传输中发送数据到 I2C 总线的器件,既可以是主机也可是从机,由通信过 程具体确定;
(4)接收器:本次传输中从 I2C 总线上接收数据的器件,既可以是主机也可以从机,由通信 过程具体确定。

2、 I2C 接口由哪几根线组成?它们分别有什么作用?
(1)SCL(Serial Clock,串行时钟线):I2C 通信中用于传输时钟的信号线,通常由主机发出。 SCL 采用集电极开路或漏极开路的输出方式。这样,I2C 器件只能使 SCL 下拉到逻辑 0,而不能强制 SCL 上拉到逻辑 1。
(2)SDA(Serial Data,串行数据线):I2C 通信中用于传输数据的信号线。与 SCL 类似,SDA 也采用集电极开路或漏极开路的输出方式。这样,I2C 器件同样也只能使 SDA 下拉到逻辑 0, 而不能强制 SDA 上拉到逻辑 1。

3、 与 SPI 互连相比,I2C 互联有什么特点?
(1)必须在 I2C 总线上外接上拉电阻。
(2)通过地址区分挂载在 I2C 总线上不同的器件。
(3)支持多主机互连。

4、 I2C 的时序由哪些信号组成?
I2C 的位时序,包括起始条件、数据有效性、停止条件等。

5、 试比较嵌入式系统中常用 3 种通信接口:USRT、SPI 和 I2C。
答:重点 从物理层、协议层、连接方式、主要特性、内部结构等方面讨论。

(2)支持标准(100Kbps)和快速(400Kbps)传输速率;
(3)所有的 I2C 可工作于主模式或从模式,可以作为主发送器、主接收器、从发送器或者从 接收器;
(4)支持 7 位或 10 位寻址和广播呼叫;
(5)具有 3 个状态标志:发送器/接收器模式标志、字节发送结束标志、总线忙标志;
(6)具有 2 个中断向量:1 个中断用于地址∕数据通讯成功,1 个中断用于错误;
(7)具有单字节缓冲器的 DMA

由 SDA 线和 SCL 线展开,主要分为时钟控制、数据控制、控制逻辑等部分?负责实现 I2C 的 时钟产生、数据收发、总线仲裁和中断、DMA 等功能。

10、分别画出 STM32F103 微控制器的 I2C 作为主发送器和从接收器的数据包(含事件)传输序列图。

11、分别画出 STM32F103 微控制器的 I2C 作为主接收器和从发送器的数据包(含事件)传输序列图。

12、STM32F103 微控制器的 I2C 有哪些状态标志位?可以产生哪些中断请求?

中等职业学校计算机应用专业 C 语言编程基础

一、填空(共 35 分) 1、Unix 系统诞生于

实验室的 KT和DMR用汇编语言开发成功的。 2、在 C 语言中,标识符主要为 , , 及 的名字使用。

3、C 语言中中的基本数据类型包括

4、数组是有序是的并且有 的数据的集合。

5、C 语言中,二维数组元素在内存中的存储顺序是

6、C 语言函数的实参、形参二者类型 ,一般个

数 。 7、在 C 语言中,变量的存储类别有四种,它们是 ,

8、根据函数能否被其他源文件调用,函数分为 函

9、文件是存储在外部存储设备上的

10、定义文件指针变量的格式为 。 11、feof( )函数是 检测函数,当文件位置指针 处于 时,它返回一个

13、结构化程序设计方法,采用 的设计原则和

14、程序结构一般采用 、

结构。 15、第三代高级语言是

之间的关系是从属性的层层调用关系。 二、单项选择题(共15分) 1、C 语言程序由

2、源程序要正确地运行,必须要有什么函数? A. printf 函数 B. 自定义的函数 C. main 函数 D. 不需要函数 3、若 a 为整型变量,且有以下语句 a=-017L;

则下面___说法是正确的?

5、在 C 语言的 if 语句中,用作判断的表达式为___。 A. 关系表达式 B. 逻辑表达式 C. 算术表达式 D. 任意表达式

6、下面哪一项是不正确的字符串赋值或赋初值的方式。A. char *str; str=\

8、C 语言可执行程序从什么地方开始执行?

A. 程序中第一条可执行语句 B. 程序中第一个函 数

C. 程序中的 main 函数 D. 包含文件中的第一个函 数

则该函数的返回类型为___。

A. void B. double C. int D. float 10、在 C 语言程序中,下面哪一个是正确的? A. 函数的定义可以嵌套,但函数的调用不可以嵌套 B. 函数的定义不可以嵌套,但函数的调用可以嵌套 C. 函数的定义可以嵌套,函数的调用也可以嵌套 D. 函数的定义和函数的调用都不可以嵌套

12、若有以下说明和语句,且 0

D. 只有二进制文件一种 三、多选题(共 20 分) 1、下面 是定义局部变量储存类别的保留字。 A. int

B.循环结构 C.程序结构 D.选择结构

4、C 语言的主要特点有

A.简洁、紧凑,使用方便、灵活,易于学习和应用。 B.C语言是面向结构化程序设计的语言。 C.C语言允许直接对位、字节和地址进行操作。 D.数据类型丰富。 E.C 语言生成的目标代码质量

5、指出下面合法的标识符: A. 3ab

7、C 语言的基本类型有 A. 整型

8、C 语言中整形常量按进制划分,有以下几种:

A. 十六进制常量 B. 十进制常量 C. 八进制常量

9、如果要把常量 327 存入变量 a 中,a 可以定义成 类型。

1. 在 C 语言中,函数的参数传递有两种方式:传

递值和传递地址。( )

2. 一般来说,使用指针能使目标程序占用存储空

间大,运行速度快。()

3. 指针变量可以定义为指向字符型、实型以及其

4. 内存区的每一个字节都有一个编号,这个编号

5. 条件编译的好处是可以增加被编译的语句,从

面增加目标代码的长度。

6. 写带有参数的宏定义时,宏与带括号的参数间

7. fscanf()函数从文件中读取字符串,只当遇到

空格符时才结束字符的读取。()

8. 形式参数是指定义函数时跟在函数名后的小括

号内的变量名。实际参数则是指调用函数时,跟在函数名后的小括号内的表达式。()

9. 在定义字符数组的同时初始化数组外,可以用

赋值的形式把字符串存入一个字符的数组中。()

10. 用逻辑运算符将关系表达式或变量连接起来就

11. 在关系运算中,若规定的关系成立,则其结果

12. 格式字符前面的数字,指定输入数据所占宽度,

13. c 格式符,用为输出一个字符。对于整数,只

要它的值在 0―256 范围内。()

14. 参数 ch 通常为字符型变量、字符码或字符本身。

15. C 语言提供了整型、实型、字符型三种基本类

16. 逗号运算符在所有运算符中优先级虽最低,逗

号运算符的结合方向是“从左至右”。()

17. C 语言提供了一个惟一的两目运算符(?:),

18. 递增、递减运算符的优先级与“取正负”的优先

19. 当赋值号两边的数据类型不同时,一般由系统

自动进行类型转换。()

20. 自动转换的规则是按照低类型转换到高类型或

赋值号的右边类型转换到赋值号左边的类型来进行 的。()

五、A、写出下列程序的运行结果。(共5X4分) 1、void main()

B,补充程序 (共 20 分)

1,下面这个程序的作用是统计公元 1 年到公元 2000 年的闰年个数。判断闰年的方法是:能被 400 整除的年是闰年;除能被 400 整除的年以外,凡是能被 4 整除, 但不能被 100 整除的年是闰年。其余年份是平年。 #include void main() {int year; int count=0;

2、以下程序从读入的整数数据中,统计大于零的整数 个数和小于零的整数个数.用输入零来结束输入,程序 中用变量 i 统计大于零的整数个数,用变量 j 统计小于零的整数个数.请填空. #include main()

3、下面这个程序打印出以下这个三角形.请填空。

4, 有 5 个学生的成绩需要保存在文件 score.dat 文件中。保存格式如下: 学生姓名,年龄,成绩 学生姓名,年龄,成绩 ...

} 5, 除 1 外,只能被 1 和自己本身整除的自然数叫素数。下面这个程序就是求 2 到 100 之间的素数。其中判断 某数为素数的方法为用 2 到该数平方根之间的自然数

去试整除该数。如果没有哪个数能够整除该数,那么 该数为素数;如果有,那么时合数。请填空。 (函数 sqrt(a)求 a 的平方根) #include #include void main()

2、输入在个数,要求设三个指针变量 P1,P2,P3, 使 P1 指向三个数的最小数,P2 指向中间数,P3 指向 最大数,然后按由小到大的顺序输出。(用指针的方 法编写)(7分)

3、一循环程序编写下面图形。(6分)

1、简述操作系统的定义。 
    操作系统是计算机系统的一种系统软件,它统一管理计算机系统的资源和控制程序的执行。 
2、在多道程序设计技术的系统中,操作系统怎样才会占领中央处理器? 
    只有当中断装置发现有事件发生时,它才会中断当前占用中央处理器的程序执行,让操作系统的处理服务程序占用中央处理器并执行之。 
3、简述“删除文件”操作的系统处理过程。 
    用户用本操作向系统提出删除一个文件的要求,系统执行时把指定文件的名字从目录和索引表中除去,并收回它所占用的存储区域,但删除一个文件前应先关闭该文件。 
4、对相关临界区的管理有哪些要求? 
    为了使并发进程能正确地执行,对若干进程共享某一变量(资源)的相关临界区应满足以下三个要求: 
① 一次最多让一个进程在临界区中执行,当有进程在临界区中时,其他想进入临界区执行的进程必须等待; 
② 任何一个进入临界区执行的进程必须在有限的时间内退出临界区,即任何一个进程都不应该无限逗留在自己的临界区中; 
③ 不能强迫一个进程无限地等待进入它的临界区,即有进程退出临界区时应让下一个等待进入临界区的进程进入它的临界区。 
5、简述解决死锁问题的三种方法。 
① 死锁的防止。系统按预定的策略为进程分配资源,这些分配策略能使死锁的四个必要条件之一不成立,从而使系统不产生死锁。 
② 死锁的避免。系统动态地测试资源分配情况,仅当能确保系统安全时才给进程分配资源。 
③ 死锁的检测。对资源的申请和分配不加限制,只要有剩余的资源就呆把资源分配给申请者,操作系统要定时判断系统是否出现了死锁,当有死锁发生时设法解除死锁。 
6、从操作系统提供的服务出发,操作系统可分哪几类? 
    批处理操作系统、分时操作系统、实时操作系统、网络操作系统、分布式操作系统。 
7、简述计算机系统的中断机制及其作用。 
    中断机制包括硬件的中断装置和操作系统的中断处理服务程序。 
    中断装置由一些特定的寄存器和控制线路组成,中央处理器和外围设备等识别到的事件保存在特定的寄存器中,中央处理器每执行完一条指令,均由中断装置判别是否有事件发生。 
    若无事件发生,CPU继续执行;若有事件发生,则中断装置中断原占有CPU的程序的执行,让操作系统的处理事件服务程序占用CPU,对出现的事件进行处理,事件处理完后,再让原来的程序继续占用CPU执行。 
8、选择进程调度算法的准则是什么? 
    由于各种调度算法都有自己的特性,因此,很难评价哪种算法是最好的。一般说来,选择算法时可以考虑如下一些原则: 
① 处理器利用率; 
在选择调度算法前,应考虑好采用的准则,当确定准则后,通过对各种算法的评估,从中选择出最合适的算法。 
9、独占设备采用哪种分配方式? 
即在一个作业执行前,将作业要使用的这类设备分配给作业,在作业执行期间均归该作业占用,直到作业执行结束才归还。 
10、产生死锁的原因是什么? 
① 系统资源不足; 
② 进程推进顺序不合适。 
在早期的系统中,由于系统规模较小,结构简单,以及资源分配大多采用静态分配法,使得操作系统死锁问题的严重性未能充分暴露出来。但今天由于多道程序系统,以至于数据系统的出现,系统中的共享性和并行性的增加,软件系统变得日益庞大和复杂等原因,使得系统出现死锁现象的可能性大大增加。 
11、何谓批处理操作系统? 
    用户准备好要执行的程序、数据和控制作业执行的说明书,由操作员输入到计算机系统中等待处理。操作系统选择作业并按作业说明书的要求自动控制作业的执行。采用这种批量化处理作业的操作系统称为批处理操作系统。 
12、对特权指令的使用有什么限制? 
    只允许操作系统使用特权指令,用户程序不能使用特权指令。 
13、影响缺页中断率有哪几个主要因素? 
① 分配给作业的主存块数多则缺页率低,反之缺页中断率就高。 
② 页面大,缺页中断率低;页面小缺页中断率高。 
③ 程序编制方法。以数组运算为例,如果每一行元素存放在一页中,则按行处理各元素缺页中断率低;反之,按列处理各元素,则缺页中断率高。 
④ 页面调度算法对缺页中断率影响很大,但不可能找到一种最佳算法。 
14、磁盘移臂调度的目的是什么?常用移臂调度算法有哪些? 
    磁盘移臂调度的目的是尽可能地减少输入输出操作中的寻找时间。 
① 先来先服务算法 
② 最短寻找时间优先算法 
④ 单向扫描算法。 
15、常用的作业调度算法有哪些? 
① 先来先服务算法 
② 计算时间短的作业优先算法 
③ 响应比最高者优先算法 
④ 优先数调度算法 
16、计算机系统的资源包括哪些? 
    硬件资源主要有中央处理器、主存储器、辅助存储器和各种输入输出设备。 
    软件资源有编译程序、编辑程序等各种程序以及有关数据。 
17、CPU在管态和目态下工作有何不同? 
    当中央处理器处于管态时,可以执行包括特权指令在内的一切面器指令,而在目态下工作时不允许执行特权指令。 
18、何为页表和快表?它们各起什么作用? 
    作用:页式存储管理在用动态重定位方式装入作业时,要利用页表做地址转换工作。 
    快表就是存放在高速缓冲存储器的部分页表。它起页表相同的作用。 
    由于采用页表做地址转换,读写内存数据时CPU要访问两次主存。有了快表,有时只要访问一次高速缓冲存储器,一次主存,这样可加速查找并提高指令执行速度。 
19、作业在系统中有哪几种状态? 
    一个作业进入系统到运行结束,一般要经历进入、后备、运行和完成四个阶段,相应地,作业亦有进入、后备、运行和完成四种状态。 
① 进入状态:作业的信息从输入设备上预输入到输入井,此时称为作业处于进入状态。 
② 后备状态:当作业的全部信息都已输入,且由操作系统将其存放在输入井中,此时称作业处于后备状态。系统将所有处于后备状态的作业组成后备作业队列,等待作业调度程序的调度。 
③ 运行状态:一个后备作业被作业调度程序选中,分配了必要的资源,调入内存运行,称作业处于运行状态。 
④ 完成状态:当作业正常运行完毕或因发生错误非正常终止时,作业进入这完成状态。 
20、用fork创建新进程,它要做哪些工作? 
① 在进程表proc[ ]中为子进程找一个空闲的表项,用来存放子进程的proc结构; 
② 为子进程分配一个唯一的标识号; 
③ 把父进程中的字段复制到子进程的proc中,并把p – pid置为分配到的进程标识号,把p-pid置为父进程的标识号,把p-stat置为创建状态; 
④ 按父进程中p-size所示的长度为子进程申请分配内存。若有足够的内存,则把父进程的user结构、栈和用户数据区全部复制到子进程的空间中;若无足够的内存,则在磁盘对换区中分配存储空间,然后复制到对换区中,置于进程状态为就绪状态。 
21、为什么说批处理多道系统能极大地提高计算机系统的工作效率? 
① 多道作业并行工作,减少了处理器的空闲时间。 
② 作业调度可以合理选择装入主存储器中的作业,充分利用计算机系统的资源。
③ 作业执行过程中不再访问低速设备,而直接访问高速的磁盘设备,缩短执行时间。 
④ 作业成批输入,减少了从操作到作业的交接时间。 
22、操作系统为用户提供哪些接口? 
23、什么是线程?多线程技术具有哪些优越性? 
    线程是进程中可独立执行的子任务,一个进程可以有一个或多个线程,每个线程都有一个惟一的标识符。线程与进程有许多相似之处,往往把线程又称为“轻型进程”,线程与进程的根本区别是把进程作为资源分配单位,而线程是调度和执行单位。 
① 创建速度快、系统开销小:创建线程不需要另行分配资源; 
② 通信简洁、信息传送速度快:线程间的通信在统一地址空间进程,不需要额外的通信机制; 
③ 并行性高:线程能独立执行,能充分利用和发挥处理器与外围设备并行工作的能力。 
24、UNIX系统中的优先权和优先数有什么关系?如何确定进程的优先权和优先数? 
    UNIX中每个进程都有一个优先数,就绪进程能否占用处理器的优先权取决于进程的优先数,优先数越小则优先权越高。 
    UNIX以动态方式确定优先权,如核心的进程优先权高于进入用户态的进程;降低用完一个时间片的进程的优先权;对进入睡眠的进程,其等待事件越急优先数越高;降低使用处理器时间较长的进程的优先权。 
    UNIX中确定进程优先数的方法有两种:设置方法和计算方法。前者对要进入睡眠状态的进程设置优先数,若等待的事件急迫,则设置较小的优先数;后者用户进程正在或即将转入用户状态运行时确定优先数。 
25、主存空间信息保护有哪些措施? 
① 程序执行时访问属于自己主存区域的信息,允许它既可读,又可写; 
② 对共享区域中的信息只可读,不可修改; 
③ 对非共享区域或非自己的主存区域中的信息既不可读,也不可写。 
26、共享设备允许多个作业同时使用,这里的“同时使用”的含义是什么? 
    “同时使用”的含义是多个作业可以交替地启动共享设备,在某一时刻仍只有一个作业占有。 
27、简述“打开文件”操作的系统处理过程。 
    用户要使用一个已经存放在存储介质上的文件前,必须先提出“打开文件”要求。这时用户也必须向系统提供参数:用户名、文件名、存取方式、存储设备类型、口令等。系统在接到用户的“打开文件”要求后,找出该用户的文件目录,当文件目录不在主存储器中时还必须把它读到主存储器中;然后检索文件目录,指出与用户要求相符合的目录项,取出文件存放的物理地址。 
    对索引文件还必须把该文件的索引表存放在主存储器中,以便后继的读写操作能快速进行。 
28、什么是“前台”作业、“后台”作业?为什么对“前台”作业要及时响应? 
批处理操作系统实现自动控制无需人为干预,分时操作系统实现了人机交互对话,这两种操作系统具有各自的优点。为了充分发挥批处理系统和分时系统的优点,在一个计算机系统上配置的操作系统往往既具有批处理能力,又有提供分时交互的能力。这样,用户可以先在分时系统的控制下,以交互式输入、调试和修改自己的程序;然后,可以把调试好的程序转交给批处理系统自动控制其执行而产生结果。这些由分时系统控制的作业称为“前台”作业,而那些由批处理系统控制的作业称为“后台”作业。 
    在这样的系统中,对前台作业应该及时响应,使用户满意;对后台作业可以按一定的原则进行组合,以提高系统的效率。 
29、存储型设备和输入输出型设备的输入输出操作的信息传输单位有何不同? 
    存储型设备输入输出操作的信息传输单位是“块”,而输入输出型设备输入输出操作的信息传输单位是“字符”。 
30、简述信号量S的物理含义。 
    S=0时,表示无资源可供使用;或表示不允许进程再进入临界区; 
    S<0时,-S表示等待使用资源的进程个数;或表示等待进入临界区的进程个数; 
    当S>0时,调用P(S)的进程不会等待;调用V(S)后使可用资源数加1或使可用资源的进程数加1; 
    当S<0时,调用P(S)的进程必须等待;调用V(S)后将释放一个等待使用资源者或释放一个等待进入临界区者。 
31、简述“关闭文件”操作的系统处理过程。 
    执行“关闭”操作时先要检查读到主存中的文件目录或索引表是否被修改过,若被修改过,则应把修改过的文件目录或索引表重新保存好。 
用户提出“关闭”要求时,必须说明关闭哪个文件。 
32、什么是计算机系统?它由哪几部分组成? 
    计算机系统是按用户的要求接收和存储信息,自动进行数据处理并输出结果信息的系统。 
    计算机系统由硬件系统和软件系统组成。硬件系统是计算机系统赖以工作的实体,软件系统保证计算机系统按用户指定的要求协调地工作。 
33、计算机系统怎样实现存储保护? 
    中央处理器在目态下执行系统中,对每个访问主存的地址都进行核对,若能满足:基址寄存器值≤访问地址≤基址寄存器值+限长寄存值,则允许访问,否则不允许访问。并且不允许用户程序随意修改这两个寄存器的值。这就实现了存储保护。 
34、给出系统总体上的中断处理过程。 
    CPU每执行完一条指令就去扫描中断寄存器,检查是否有中断发生,若没有中断就继续执行下条指令;若有中断发生就转去执行相应的中断处理程序。中断处理过程可粗略的分为以下四个过程: 
① 保护当前正在运行程序的现场; 
② 分析是何种中断,以便转去执行相应的中断处理程序; 
③ 执行相应的中断处理程序; 
④ 恢复被中断程序的现场。 
35、死锁发生的必要条件有哪些? 
    发生死锁的必要条件有四点:互斥条件、不可抢占条件、部分分配条件和循环等待条件。 
① 互斥条件:系统中存在一个资源一次只能被一个进程所使用; 
② 非抢占条件:系统中存在一个资源仅能被占有它的进程所释放,而不能被别的进程强行抢占。 
③ 占有并等待条件:系统中存在一个进程已占有了分给它的资源,但仍然等待其他资源。 
④ 循环等待条件:在系统中存在一个由若干进程形成的环形请求链,其中的每一个进程均占有若干种资源中的某一种,同时每个进程还要求(链上)下一个进程所占有的资源。 
36、用户程序中通常用什么方式指定要使用的设备?为什么? 
    用户程序中通常用“设备类、相对号”请求要使用的设备,即不具体指定要哪一台设备,而是提出要申请哪类设备多少台。 
    否则若用绝对号来指定设备,如果这台设备已被占用或有故障时,该作业就无法装入主存中。 
37、进程调度中“可抢占”和“非抢占”两种方式,哪一种系统的开销更大?为什么?
    可抢占式调度是严格保证任何时刻,让具有最高优先数(权)的进程占有处理机运行,因此增加了处理机调度的时机,引起为退出处理机的进程保留现场,为占有处理机的进程恢复现场等时间(和空间)开销增大。 
38、一个含五个逻辑记录的文件,系统把它以链接结构的形式组织在磁盘上,每个记录占用一个磁盘块,现要求在第一记录和第二记录之间插入一个新记录,简述它的操作过程。 
39、在SPOOL系统中设计了一张“缓输出表”,请问哪些程序执行时要访问缓输出表,简单说明之。 
40、试比较进程调度与作业调度的不同点。 
① 作业调度是宏观调度,它决定了哪一个作业能进入主存。进程调度是微观调度,它决定各作业中的哪一个进程占有中央处理器。 
② 作业调度是选符合条件的收容态作业装入主存。进程调度是从就绪态进程中选一个占用处理器。 
41、试说明资源的静态分配策略能防止死锁的原因。 
    资源静态分配策略要求每个过程在开始执行前申请所需的全部资源,仅在系统为之分配了所需的全部资源后,该进程才开始执行。 
    这样,进程在执行过程中不再申请资源,从而破坏了死锁的四个必要条件之一“占有并等待条件”,从而防止死锁的发生。 
42、简述操作系统提供的服务功能。 
43、简述中断装置的主要职能。 
① 检查是否有中断事件发生; 
② 若有中断发生,保护好被中断进程的断点及现场信息,以便进程在适当时候能恢复执行; 
③ 启动操作系统的中断处理程序。 
44、实现虚拟设备的硬件条件是什么?操作系统应设计哪些功能程序? 
    操作系统应设计好“预输入”程序,“井管理”程序,“缓输出”程序。 
45、一个具有分时兼批处理功能的操作系统应怎样调度和管理作业? 
① 优先接纳终端作业,仅当终端作业数小于系统可以允许同时工作的作业数时,可以调度批处理作业; 
② 允许终端作业的批处理作业混合同时执行; 
③ 把终端作业的就绪进程排成一个就绪队列,把批处理作业的就绪进程排入另外的就绪队列中; 
④ 有终端作业进程就绪时,优先让其按“时间片轮转”法先运行。没有终端作业时再按确定算法选批处理作业就绪进程运行。 
46、简述死锁的防止与死锁的避免的区别。 
    死锁的防止是系统预先确定一些资源分配策略,进程按规定申请资源,系统按预先规定的策略进行分配从而防止死锁的发生。 
    而死锁的避免是当进程提出资源申请时系统测试资源分配仅当能确保系统安全时才把资源分配给进程,使系统一直处于安全状态之中,从而避免死锁。

 1、什么是进程(Process)和线程(Thread)?有何区别?

  进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。一个线程可以创建和撤销另一个线程,同一个进程中的多个线程之间可以并发执行。

  进程与应用程序的区别在于应用程序作为一个静态文件存储在计算机系统的硬盘等存储空间中,而进程则是处于动态条件下由维护的系统资源管理实体。

  2、下的内存是如何管理的?

  Windows提供了3种方法来进行内存管理:虚拟内存,最适合用来管理大型对象或者结构数组;内存映射文件,最适合用来管理大型数据流(通常来自文件)以及在单个计算机上运行多个进程之间共享数据;内存堆栈,最适合用来管理大量的小对象。

  Windows操纵内存可以分两个层面:物理内存和虚拟内存。

  其中物理内存由系统管理,不允许应用程序直接访问,应用程序可见的只有一个2G地址空间,而内存分配是通过堆进行的。对于每个进程都有自己的默认堆,当一个堆创建后,就通过虚拟内存操作保留了相应大小的地址块(不占有实际的内存,系统消耗很小)。当在堆上分配一块内存时,系统在堆的地址表里找到一个空闲块(如果找不到,且堆创建属性是可扩充的,则扩充堆大小),为这个空闲块所包含的所有内存页提交物理对象(在物理内存上或硬盘的交换文件上),这时就可以访问这部分地址。提交时,系统将对所有进程的内存统一调配,如果物理内存不够,系统试图把一部分进程暂时不访问的页放入交换文件,以腾出部分物理内存。释放内存时,只在堆中将所在的页解除提交(相应的物理对象被解除),继续保留地址空间。

  如果要知道某个地址是否被占用/可不可以访问,只要查询此地址的虚拟内存状态即可。如果是提交,则可以访问。如果仅仅保留,或没保留,则产生一个软件异常。此外,有些内存页可以设置各种属性。如果是只读,向内存写也会产生软件异常。

  3、Windows消息调度机制是?

  A)指令队列;B)指令堆栈;C)消息队列;D)消息堆栈

  处理消息队列的顺序。首先Windows绝对不是按队列先进先出的次序来处理的,而是有一定优先级的。优先级通过消息队列的状态标志来实现的。首先,最高优先级的是别的线程发过来的消息(通过sendmessage);其次,处理登记消息队列消息;再次处理QS_QUIT标志,处理虚拟输入队列,处理wm_paint;最后是wm_timer。

  4、描述实时系统的基本特性

  在特定时间内完成特定的任务,实时性与可靠性。

  所谓“实时操作系统”,实际上是指操作系统时,其各种资源可以根据需要随时进行动态分配。由于各种资源可以进行动态分配,因此,其处理事务的能力较强、速度较快。

  5、中断和轮询的特点

  对I/O设备的程序轮询的方式,是早期的计算机系统对I/O设备的一种管理方式。它定时对各种设备轮流询问一遍有无处理要求。轮流询问之后,有要求的,则加以处理。在处理I/O设备的要求之后,处理机返回继续工作。尽管轮询需要时间,但轮询要比I/O设备的速度要快得多,所以一般不会发生不能及时处理的问题。当然,再快的处理机,能处理的输入输出设备的数量也是有一定限度的。而且,程序轮询毕竟占据了CPU相当一部分处理时间,因此,程序轮询是一种效率较低的方式,在现代计算机系统中已很少应用。

  程序中断通常简称中断,是指CPU在正常运行程序的过程中,由于预先安排或发生了各种随机的内部或外部事件,使CPU中断正在运行的程序,而转到为响应的服务程序去处理。

  轮询——效率低,等待时间很长,CPU利用率不高。

 6、什么是临界区?如何解决冲突?

  每个进程中访问临界资源的那段程序称为临界区,每次只准许一个进程进入临界区,进入后不允许其他进程进入。

  (1)如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入;

  (2)任何时候,处于临界区内的进程不可多于一个。如已有进程进入自己的临界区,则其它所有试图进入临界区的进程必须等待;

  (3)进入临界区的进程要在有限时间内退出,以便其它进程能及时进入自己的临界区;

  (4)如果进程不能进入自己的临界区,则应让出CPU,避免进程出现“忙等”现象。

  7、说说分段和分页

  页是信息的物理单位,分页是为实现离散分配方式,以消减内存的外零头,提高内存的利用率;或者说,分页仅仅是由于系统管理的需要,而不是用户的需要。

  段是信息的逻辑单位,它含有一组其意义相对完整的信息。分段的目的是为了能更好的满足用户的需要。

  页的大小固定且由系统确定,把逻辑地址划分为页号和页内地址两部分,是由机器硬件实现的,因而一个系统只能有一种大小的页面。段的长度却不固定,决定于用户所编写的程序,通常由编辑程序在对源程序进行编辑时,根据信息的性质来划分。

  分页的作业地址空间是一维的,即单一的线性空间,程序员只须利用一个记忆符,即可表示一地址。分段的作业地址空间是二维的,程序员在标识一个地址时,既需给出段名,又需给出段内地址。

  8、说出你所知道的保持进程同步的方法?

  进程间同步的主要方法有原子操作、信号量机制、自旋锁、管程、会合、分布式系统等。

  9、Linux中常用到的命令

我要回帖

更多关于 数据库的数据模型一般分为 的文章

 

随机推荐