操作系统基础训练十个问题及解答
来源:互联网 发布:福富软件 国企 编辑:程序博客网 时间:2024/06/03 17:31
操作系统基础训练十个问题及解答
1、简述Linux进程内存空间分为哪几个段?作用分别是什么?
Linux中的进程包含3个段,分别为“数据段”、“代码段”和“堆栈段”。“数据段”存放的是全局变量、常数以及动态数据分配的数据空间;
“代码段”存放的是程序代码的数据。
“堆栈段”存放的是子程序的返回地址、子程序的参数以及程序的局部变量等。
2、如何查看进程的信息(线程数):
ps -elf 想知道具体的进程可以采用 ps -elf | grep xx xx为所需要查询的进程
3、进程间通信方式有哪些?以及在什么情况下用什么通信方式?优缺点:
进程间通信方式有管道、信号量、信号、消息队列、共享内存、套接字六种。
(1)管道分为有名管道和无名管道,其中无名管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用,一般用于两个不同进程之间的通信。有名管道也是一种半双工的通信方式,但它允许无亲缘关系进程间的通信。
(2)信号量是一个计数器,可以用来控制多个线程对共享资源的访问,它不是用于交换大批数据,而用于多线程之间的同步。他常作为一种锁机制。因此,主要作为进程间以及同一个进程内不同线程之间的同步手段。
(3)信号是一种比较复杂的通信方式,用于通知接收进程某个时间已经发生。
(4)消息队列是消息的链表,存放在内核中并由消息队列标识符标识,消息队列克服了信号传递信息少,管道只能承载无格式字节流以及缓冲区大小受限等特点。
(5)共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。他往往与其他通信机制,如信号量配合使用,来实现进程间的同步和通信。
(6)套接字可用于不同进程间的进程通信。
4、进程同步的几种方法?
临界区、互斥区、事件、信号量四种方式。
5、进程死锁产生的原因及四个必要条件?
产生死锁的原因主要是:
(1) 因为系统资源不足。
(2) 进程运行推进的顺序不合适。
(3) 资源分配不当等。
如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。其次,进程运行推进顺序与速度不同,也可能产生死锁。
产生死锁的四个必要条件:
(1) 互斥条件:一个资源每次只能被一个进程使用。
(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
(3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。
(4) 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。
6、什么是守护进程,什么是僵尸进程?
僵尸进程:
一个进程结束了,但是他的父进程没有等待(调用wait / waitpid)他, 那么他将变成一个僵尸进程。
守护进程:
子进程未结束,父进程结束,子进程由init 进程接管,子进程可作为守护进程。
7、解释一下进程同步和进程互斥的区别?
相互合作的两个进程之间需要在某个(些)确定点协调它们的工作,一个进程到达了该点后,除非另一进程已经完成了某些操作,否则就不得不停下来,等待这些操作的完成。这就是进程间的同步。
两个进程由于不能同时使用同一临界资源,只能在一个进程使用完了,另一进程才能使用,这种现象称为进程间的互斥。①同步的主要特征是:一个进程在某一点上等待另一进程提供信息,两进程之间存在直接制约关系,其表现形式为进程—进程。②互斥的主要特征是争用资源,两进程间存在间接制约关系,其表现形式是进程—资源—进程。
8、进程与线程之间有何区别?
一个程序就是一个进程,而一个程序中的多个任务则被称为线程。进程是表示资源分配的基本单位,又是调度运行的基本单位。线程是进程中执行运算的最小单位,亦即执行处理机调度的基本单位。 进程和线程的关系
(1)一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。线程是操作系统可识别的最小执行和调度单位。
(2)资源分配给进程,同一进程的所有线程共享该进程的所有资源。同一进程中的多个线程共享代码段(代码和常量),数据段(全局变量和静态变量),扩展段(堆存储)。但是每个线程拥有自己的栈段,栈段又叫运行时段,用来存放所有局部变量和临时变量。
(3)处理机分给线程,即真正在处理机上运行的是线程。
(4)线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。
9、线程同步有哪些方法?
一、互斥锁(mutex)
初始化锁;
静态分配;
动态分配;
加锁,对共享资源的访问,要对互斥量进行加锁,如果互斥量已经上了锁,调用线程会阻塞,直到互斥量被解锁;
解锁;
销毁锁。
二、条件变量(cond)
初始化条件变量;
静态态初始化;
动态初始化;
等待条件成立,释放锁,同时阻塞等待条件变量为真才行;
激活条件变量;
清除条件变量。
三、信号量(sem)
信号量初始化;
等待信号量;
释放信号量;
销毁信号量。
10、当父进程在子进程之前终止会发生什么?
如果父进程退出而它的一个或多个子进程还在运行,那么这些子进程就会变成称为孤儿进程。孤儿进程最终将被init进程(1号进程)所收养,并由init进程完成对它们的状态收集工作。
阅读全文
0 0
- 操作系统基础训练十个问题及解答
- 操作系统基础训练十个问题及解答
- 操作系统基础训练十个问题及解答
- 第四章语句十个问题及解答
- 第八章函数十个问题及解答
- 做百度优化常见的十个问题及解答
- 第五章数组与指针十个问题及解答
- 大话数据结构第三章链表十个问题及解答
- 第七章预处理与结构体十个问题及解答
- 大话数据结构第四章栈十个问题及解答
- Linux C 第十一章文件操作十个问题及解答
- 操作系统基础训练
- 操作系统基础训练
- Linux C第十二章进程控制编程十个问题及解答
- Linux C 编程第13章进程间通信方式 十个问题及解答(1)
- Linux C编程 第13章进程间通信方式十个问题及解答(2)
- Linux C编程第十四章多线程编程十个问题及解答
- Linux C 第十五章通信网络编程十个问题及解答(1)
- PHP 创建、删除和移动文件函数
- 八周第三次课 2017.12.6 rsync通过服务同步、linux系统日志、screen工具
- 谷歌TensorFlow Lite支持Core ML
- Linux系统中安装golang-go时出现unable to lock the administration directory的解决
- Coursera deeplearning.ai 深度学习习题1-2-Neural Network Basics
- 操作系统基础训练十个问题及解答
- Genymotion+VirtualBox (android虚拟机的使用)
- 刷爆推特的钢管舞机器人有~故~事
- java基础 1
- leetcode 258[easy]---Add Digits
- 不好,两群AI打起来了!“幕后主使”是上海交大~
- Rhyme/Spring bean的实例化 1.3.2. Instantiating beans
- “明年AI会如何?”英伟达问了13位不同行业的专家
- 专访戴文渊:第四范式(现在)是一家怎样的公司?