某计算机系统页面,计算机系统导论2015期末(21页)-原创力文档

PAGE 14

北京大学信息科学技术学院考试试卷

考试科目: 计算机系统导论 姓名: 学号:

考试时间: 2016 年 1 月 4 日 小班教师:

题号

总分

分数

阅卷人

装订线内

装订线内 不要答题

以下以下为答题纸,共 页

以下为试题和答题纸,共21页。

得分

第一题 单项选择题(每小题1分,共20分)

注:请将选择题答案填写在下表中

题号

1

2

3

4

5

6

7

8

9

10

答案

题号

11

12

13

14

15

16

17

18

19

20

答案

下面哪条指令不会引起esp的变化?

movl %esp, %ebp

pushl %ebp

call printf

subl $20, %esp

单精度浮点数27.5实际存储在内存中的十六进制数值为:

0x41ee0000

0x425c0000

0x41dc0000

0x025c0000

参考信息:单精度浮点数阶码8位,尾数23位

下面哪条指令不是X86正确的寻址方式

movl $34, (%eax)

movl (%eax), %eax

movl $23, 10(%edx, %eax)

movl (%eax), 8(%ebx)

以下关于静态库链接的描述中,正确的是:

链接时,链接器会拷贝静态库中的所有目标模块。

使用库的时候必须把它们放在命令行的结尾处。

如果库不是相互独立的,那么它们必须排序。

每个库在命令行只须出现一次即可。

在foo.c文件中包含如下代码:

int foo(void) {

int error = printf("You ran into a problem!\n");

return error;

}

经过编译和链接之后,字符串"You ran into a problem!\n"会出现在哪个段中?

.bss

.data

.rodata

.text

一段程序中阻塞了SIGCHLD和SIGUSR1信号。接下来,向它按顺序发送SIGCHLD,SIGUSR1,SIGCHLD信号,当程序取消阻塞继续执行时,将处理这三个信号中的哪几个?

都不处理

处理一次SIGCHLD

处理一次SIGCHLD,一次SIGUSR1

处理所有三个信号

学完本课程后,几位同学聚在一起讨论有关异常的话题,请问你认为他们中谁学习的结果有错误?

发生异常和异常处理意味着控制流的突变。

与异常相关的处理是由硬件和操作系统共同完成的。

异常是由于计算机系统发生了不可恢复的错误导致的。

异常的发生可能是异步的,也可能是同步的。

下列说法正确的是:

A.SIGTSTP信号既不能被捕获,也不能被忽略

B.存在信号的默认处理行为是进程停止直到被SIGCONT信号重启

C.系统调用不能被中断,因为那是操作系统的工作

D.子进程能给父进程发送信号,但不能发送给兄弟进程

在系统调用成功的情况下,下面哪个输出是可能的?

int main() {

int pid = fork();

if (pid == 0) {

printf("A");

} else {

pid = fork();

if (pid == 0) {

printf("A");

} else {

printf("B");

}

}

exit(0);

}

AAB

AAA

AABB

AA

以下四句都是关于Unix I/O的说法。其中正确的是:

从网络套接字(socket)读取内容时,可以通过反复读的方式处理不足值问题,直到读完所需要的数量或遇到EOF为止。

以O_RDWR方式打开文件后,文件会有两个指针,分别记录读文件的当前位置和写文件的当前位置。

用read函数直接读取控制台输入的文本行,会自动在行末追加‘\0’字符。

使用dup2(4, 1)成功进行重定向后执行close(4),会导致1号文件描述符也不可用。

参考信息:O_RDWR表示文件可读可写;dup2(oldfd, newfd)表示将oldfd重定向给newfd。

下面是一段C程序代码:

#include?

#include?"csapp.h"

int?main()

{

printf("2");

if?(Fork())

{

printf("33");

Write(STDOUT_FILENO,?"lol",?3);

}

else

{

Sleep(1);

printf("233");

Write(STDOUT_FILENO,?"hhhh",?4);

}

fflush(stdout);

ret

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值