加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
111-进程or线程or同步 2.54 KB
一键复制 编辑 原始数据 按行查看 历史
zhangjing 提交于 2020-03-15 20:50 . [Modify]整理Linux编程题目
====
3.int main(){fork()||fork();}共创建几个进程(B)
A.2
B.3
C.4
D.5
解析:首先,父进程fork后,给父进程返回子进程pid,此时为真,逻辑或语句不再执行,但是fork出的子进程是复制的父进程,此时PC程序指针也在当前位置,而且子进程的返回值是0,逻辑或语句为假,继续执行,注意此时进入子进程,多以子进程fork出孙子进程,不论子进程返回的是孙子进程的pid,还是孙子进程返回的是0,已经没有代码了,程序停止,main函数结束。所以孙子进程不再fork了,是因为没有代码了。
权重:较低
====
5 设周期性任务P1,P2,P3的周期为T1,T2,T3分别为100,150,400;执行时间分别为20,40,100。请设计一种调度算法进行任务调度,满足任务执行周期及任务周期。
权重:较低
====
10. 信号量最常用的两个功能
信号量是用来调协进程对共享资源的访问的。
用于进程中传递信号的一个整数值。
权重:较高
====
7、LINUX中的管道指什么,重定向又指什么?
管道是一种最基本的IPC机制,作用于有血缘关系的进程之间,完成数据传递。调用pipe系统函数即可创建一个管道。有如下特质:
1. 其本质是一个伪文件(实为内核缓冲区)
2. 由两个文件描述符引用,一个表示读端,一个表示写端。
3. 规定数据从管道的写端流入管道,从读端流出。
管道的原理: 管道实为内核使用环形队列机制,借助内核缓冲区(4k)实现。
管道的局限性:
① 数据自己读不能自己写。
② 数据一旦被读走,便不在管道中存在,不可反复读取。
③ 由于管道采用半双工通信方式。因此,数据只能在一个方向上流动。
④ 只能在有公共祖先的进程间使用管道。
常见的通信方式有,单工通信、半双工通信、全双工通信。
重定向:文件标识符是从0到9结束的整数,指明了与进程有关的特定数据流源。当Linux系统启动一个进程(该进程可能用于执行Shell命令)时,将自动为该进程打开三个文件:标准输入、标准输出和标准错误输出,分别由文件标识符0、1、2标识,如果进程要打开其他的输入和输出文件,则从3开始标识。另外3-9是保留的标识符,可以把这些标识符指定为标准输入、标准输出和标准错误输出的临时连接。通常这样可以解决好多复杂的重定向请求。
例如可以将标准输出重定向到一个文件。
权重:中
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化