Linux笔试题

本文深入讲解操作系统中的关键概念,如进程、线程同步机制、进程间通信等,并探讨了进程虚拟地址空间布局及其管理方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、填空题

1.__进程___是操作系统中最重要最基本的概念之一,它是系统分配资源的基本单位是,是一个具有独立功能的程序段对某个数据集的一次执行活动。

2.函数调用语句fseek(fp,-20,SEEK_END)的含义是 fp文件末尾往前移动20个字节的位置                     

3.临界区是指 多个线程同时访问的代码                                 

4.Linux 系统调用open打开文件,如果文件不存在则创建,如果存在报错需要使用O_EXCL

5.创建一个已经存在文件系统的errno值为      17           

6.子进程结束时系统会发送  SIGCHLD    信号给父进程。

7.Fork创建新的进程,先是让父进程共享同一个拷贝,只有在需要写入的时候数据才会被复制,从而使各个进程拥有各自的拷贝,这种方式称为     写时拷贝        

8.只能实现具有亲属关系进程通信的方式是____父子进程通信_____

9.A进程正在读取一个文件并设置互斥锁。如果B进程也要读取此文件,则B进程会_被挂起_______

10.在终端使用   ipcrm –m 234567       命令删除IPC通信中的一个消息队列。(例如:msgid=234567)

 

二、填空题

1.请分析exit()函数和_exit的区别。

答:_exit 函数的作用是:直接使进程停止运行,清除其使用的内存空间,并清除其在内核的各种数据结构exit 函数则在这些基础上做了一些小动作,在执行退出之前还加了若干道工序。exit() 函数与 _exit() 函数的最大区别在于exit()函数在调用exit  系统调用前要检查文件的打开情况,把文件缓冲区中的内容写回文件。也就是 清理I/O缓冲

2.请列出内核进程同步方式。

答:互斥锁、条件变量、读写锁、信号量、管道、消息队列、共享内存、socket

3.父进程未调用wait/waitpid,子进程结束后会成为僵尸进程,如何避免产生僵尸进程。

答:在fork子进程之后用wait,同时当子进程退出时,内核会给父进程一个SIGCHLD信号,所以我们可以建立一个捕获SIGCHLD信号的信号处理函数,在函数体中调用wait,就可以清理退出的子进程以达到防止僵尸进程的目的。

4.什么是自旋锁?请写出其优缺点。

答:当进程进入cpu运行时,就会给它的代码上锁,以免别的CPU的进程修改里面的代码。作用于线程(进程)之间的同步。

缺点:过多占用CPU时间

5.请写出或画出进程虚拟地址空间布局。

进程虚拟地址布局

     /proc/$(pid)/maps 这个文件保存了进程的内存映射

 

     低地址

     全局区(程序区)

     mmap虚拟内存映射

     已初始化数据段

     未初始化数据段

     堆

 

 

     栈

os内核

     高地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值