北京大学计算机系统导论期末考试试题及答案解析

需积分: 0 0 下载量 165 浏览量 更新于2024-06-30 收藏 76KB DOCX 举报
"这份资源是北京大学信息科学技术学院2015年计算机系统导论课程的期末考试试卷,包含了选择题和相关知识点,如汇编指令、浮点数表示、寻址方式、链接器行为、程序段知识以及信号处理。试卷旨在考察学生对计算机系统基础概念的理解和应用能力。" 在计算机系统领域,试卷中的多项选择题涉及到以下几个关键知识点: 1. **汇编指令和栈操作**: - 指令`movl %esp, %ebp`用于在x86架构中设置堆栈指针`ebp`,而`esp`通常用于跟踪栈顶位置,此操作不改变`esp`的值。 - `pushl %ebp`会将`ebp`压入栈中,减少`esp`,因此`esp`会发生变化。 - `call printf`调用函数会将返回地址压栈,并跳转到`printf`,`esp`也会改变。 - `subl $20, %esp`会为局部变量分配空间,因此`esp`减小。 2. **浮点数表示**: - 单精度浮点数由阶码和尾数组成,题目中给出的27.5对应的十六进制表示是`0x41dc0000`。 3. **寻址方式**: - X86指令集中的寻址方式,选项D `movl (%eax), 8(%ebx)`不是一个合法的间接寻址方式,因为它尝试在`ebx + 8`的地址处读取`eax`的值,但应该有一个操作数放在这里。 4. **链接器行为**: - 静态库链接时,链接器只复制被引用的目标模块,而不是全部。 - 静态库的位置在命令行上可以灵活放置,不必一定在末尾。 - 如果库之间有依赖关系,它们的顺序可能很重要,因为链接器按照顺序解析依赖。 5. **程序段**: - 字符串常量"Youranintoaproblem!\n"属于只读数据,通常存储在`.rodata`段。 6. **信号处理**: - 当一个进程阻塞了特定信号,如SIGCHLD和SIGUSR1,它会忽略这些信号直到它们被解阻塞。如果在阻塞状态下接收到多个同种信号,解阻塞后只会处理一个。 7. **异常处理**: - 异常是控制流的非正常转移,涉及硬件和操作系统的交互。 - 异常处理是由硬件初始化,但具体的处理(例如恢复现场或调用处理程序)可能需要操作系统的参与。 这些知识点体现了计算机系统基础的广泛覆盖,包括低级编程、内存管理、程序执行流程和操作系统交互等方面。通过这份试卷,学生能够检验自己对这些基本概念的理解程度。