本文共 1853 字,大约阅读时间需要 6 分钟。
1、若一个用户进程通过read 系统调用读取一个磁盘文件中的数据,则下列关于此过程的叙述中,正确的是( )。 Ⅰ. 若该文件的数据不在内存中,则该进程进入睡眠等待状态 Ⅱ. 请求 read 系统调用会导致 CPU 从用户态切换到核心态 Ⅲ. read 系统调用的参数应包含文件的名称 ( A )
A 仅Ⅰ、 Ⅱ
B 仅Ⅰ、 Ⅲ C 仅Ⅱ、 Ⅲ D Ⅰ、 Ⅱ和Ⅲ2、下列关于虚拟存储的叙述中,正确的是(B)
A 虚拟存储只能基于连续分配技术
B 虚拟存储只能基于非连续分配技术 C 虚拟存储容量只受外存容量的限制 D 虚拟存储容量只受内存容量的限制3、下列选项中,不可能在用户态发生的事件是(C)
A 系统调用
B 外部中断 C 进程切换 D 缺页分析:
1、系统调用可能在用户态和内核态发生,系统调用把应用程序的请求(用户态的请求)传入内核,由内核(内核态)处理请求并将结果返回给应用程序(用户态) 用户态->核心态
2、中断的发生与CPU当前的状态无关,既可以发生在用户态,又可以发生在内核态,因为无论系统处于何种状态都需要处理外部设备发来的中断请求。 3、进程切换在核心态下完成,不能发生在用户态。原因:需要调度处理器和系统资源,为保证系统安全? 4、缺页(异常)也是用户态->内核态4、在虚拟内存管理中,地址变换机构将逻辑地址变为物理地址,形成该逻辑地址的阶段是(C)
A 编辑
B 编译 C 链接 D 装载分析:
编译后的程序需要经过链接才能装载,而链接后形成的目标程序中的地址也就是逻辑地址。以 C 语言为例:C 程序经过 预处理 → 编译 → 汇编 → 链接 产生了可执行文件,其中链接的前一步是产生可重定位的二进制目标文件。C 语言采用源文件独立编译的方法,如程序main.c,file1.c,file2.c,file1.h,file2.h 在链接的前一步生成了 main.o,file1.o,file2.o,这些目标模块的逻辑地址都从0开始,但只是相对于该模块的逻辑地址。链接器将这三个文件、libc 和其库文件链接成一个可执行文件。链接阶段主要完成重定位,形成整个程序的完整逻辑地址空间 。
例如,file1.o 的逻辑地址为 0 ~ 1023,main.o 的逻辑地址为 0 ~ 1023 ,假设链接时将 file1.o 链接在 main.o 之后,则链接之后 file1.o 对应的逻辑地址应为 1024 ~ 2047,整个过程如图所示。5、在缺页处理过程中,操作系统执行的操作可能是(D)
Ⅰ.修改页表 Ⅱ.磁盘 I/O Ⅲ.分配页框
A 仅Ⅰ、 Ⅱ
B 仅Ⅱ C 仅Ⅲ D Ⅰ、 Ⅱ和Ⅲ6、下面选项中,满足短任务优先且不会发生饥饿现象的调度算法是(B)
A 先来先服务
B 高响应比优先 C 时间片轮转 D 非抢占式短任务优先7、下列选项中,降低进程优先级的合理时机是(A)
A 进程的时间片用完
B 进程刚完成I/O,进入就绪列队 C 进程持久处于就绪列队 D 进程从就绪状态转为运行态8、在使用锁保证线程安全时,可能会出现活跃度失败的情况,活跃度失败主要包括 (D)
A 死锁
B 饥饿 C 活锁 D 以上全部9、下列选项中,导致创建新进程的操作是 ( C )
I 用户登陆成功 II 设备分配 III 启动程序执行
A 仅I和II
B 仅II和III C 仅I和III D I、II和III10、对进程和线程的描述,以下正确的是 ( D )
A 父进程里的所有线程共享相同的地址空间,父进程的所有子进程共享相同的地址空间
B 改变进程里面主线程的状态会影响到其他线程的行为,改变父进程的状态不会影响到其他子进程 C 多线程会引起死锁,而多进程不会 D 以上选项都不正确分析:
父进程和子进程 都有自己独立的地址空间;
父进程结束,所有子进程都结束,进程结束,所有线程都结束;
如果多个进程同时占有对方需要的资源而同时请求对方的资源,而它们在得到请求之前不会释放所占有的资源,那么就会导致死锁的发生,也就是进程不能实现同步;
多线程和多进程都会引起死锁,一般说的死锁指的是进程间的死锁。
转载地址:http://wnwxi.baihongyu.com/