填空题
1.linux中把分区和目录对应的过程叫做 == 挂载 == 。
2.信号是在软件层次上对 中断 机制的一种模拟, 是一种异步通信方式。
3.用GCC编译过程可以被细分为四个阶段:== 预处理,编译,汇编,连接 == 。
4.编译有线程的文件要加 -lpthread 参数。
5.父进程等待子进程的结束,可以使用的函数是 ==wait( ) 和 waitpid( ) ==。
6.linux主要有两个信号安装函数,分别是signal( ),sigaction( )
7.Linux操作系统内核由 == C和汇编 == 编写完成。
8.使用gdb调试程序时,,next和step命令的作用?
next:单步运行,不进入函数内部;setp单步运行,进入函数内部
9.目录 == /boot ==下存放linux操作系统启动时所要用到的程序
10.Linux 系统的设备文件分为三类?
字符设备文件、块设备文件和网络设备文件
11.Linux 中采用“一对一”的线程机制,也就是一个用户线程对应一个 ==内核线程 ==。
12.vim三种模式:在命令模式下按下 : 就进入了底线命令模式。
13.标准I/O提供了三种类型的缓冲,分别是?
全缓冲,行缓冲,不带缓冲
1414.linux文件系统由四部分组成, 超级块, 用于存放文件的控制信息。四部分为:引导块,超级块,索引节点,数据区
15.一个完整的信号生命周期包含4个重要的事件,这4个重要事件分别是?
信号诞生 信号在进程中注册 信号在进程中注销 信号处理函数执行完毕
16.互斥锁只有两种状态,即?开锁和上锁
17.线程本身调用 == pthread_exit() == 函数可以退出线程。
18.向消息队列发送消息的函数是 msgrcv() 。
19 stat 系统调用可以根据文件描述符来操作文件特性。
20.Valgrind包括很多工具, == Memcheck == 是valgrind应用最广泛的工具,一个重量级的内存检查器,能够发现开发中绝大多数内存错误使用情况, Cachegrind 是主要用来检查程序中缓存使用出现的问题。
21.信号发送函数中, setitimer() 用于设置定时器,当计时时间到达时,向进程发送SIGALRM信号。
22.在标准IO库中,rewind函数作用?
将文件流指针指向文件起始位置
23.c语言中没有明确给定初值的全局变量和静态变量存放在哪儿?
未初始化数据区
24.函数geteuid()用于得到进程的?
用户有效UID
25.当一个线程的属性设置为 分离状态 ,该线程结束时立即释放它所占有的系统资源。
简答题
- 什么是进程?进程资源由哪两部分组成?
进程是可并发执行的程序在某个数据集合上的一次计算活动,也是操作系统进行资源分配和调度的一个独立单位。
进程资源由内核空间资源(PCB控制块) 和 用户空间资源 - pid_t fork() 返回值的意义?
若执行成功,父进程中将返回子进程(新创建的进程)的PID,类型为pid_t,
子进程将返回0,以区别父子进程
若执行失败,则在父进程中返回-1,错误原因存储在errno中 - 父进程调用wait() 可能出现的三种情况?(5分)。
(1). 当有子进程退出时wait返回子进程的pid并且获取到子进程的退出状态
(2). 当没有子进程退出时 父进程将阻塞等待子进程退出
(3). 当没有子进程时,wait返回-1 - 在进程中,return和exit() 的区别?
**如果是在main函数中exit和return都是终止进程 但是return会弹栈 exit不会
如果是在函数中return 返回到上级函数调用的位置,exit会终止进程 ** - 什么是孤儿进程?谁负责回收孤儿进程的内核空间资源?
父进程先于子进程结束 则子进程称为孤儿进程 由init 0接管并回收其内核资源 - 僵尸进程是什么?如何消灭僵尸进程?
僵尸进程 子进程结束但是父进程未回收其内核资源, 可以通过调用wait()或waitpid() 或者使其成为孤儿进程 由操作系统回收其内核资源 - 简述进程对可靠信号和不可靠信号的处理过程。
不可靠信号 不支持排队 如果在进程屏蔽信号时 给其发送多个