【Linux线程】线程,进程笔试面试题目汇总

【Linux线程】线程,进程笔试面试题目汇总

时间:20190905

参考:https://www.cnblogs.com/dreamroute/p/5207813.html

1.进程和线程的介绍

假设cpu是一个工厂,工厂中有很多车间,每个车间又有很多工人。

那么,进程就是车间,工人就是线程,一个进程可以包括多个线程,很多线程协同完成任务。

车间的空间是工人们共享的,比如许多房间是每个工人都可以进出的。这象征一个进程的内存空间是共享的,每个线程都可以使用这些共享内存。

可是,每间房间的大小不同,有些房间最多只能容纳一个人,比如厕所。有些可以容纳n个人。里面有人的时候,其他人就不能进去了。这代表一个线程使用某些共享内存时,其他线程必须等它结束,才能使用这一块内存。就是说进程的内存大小是有限的,有些同一时间只能一个线程使用,有些是多个线程使用。 

一个防止他人进入的简单方法,就是门口加一把锁。先到的人锁上门,后到的人看到上锁,就在门口排队,等锁打开再进去。这就叫"互斥锁"(Mutual exclusion,缩写 Mutex),防止多个线程同时读写某一块内存区域。

这时的解决方法,就是在门口挂n把钥匙。进去的人就取一把钥匙,出来时再把钥匙挂回原处。后到的人发现钥匙架空了,就知道必须在门口排队等着了。这种做法叫做"信号量"(Semaphore),用来保证多个线程不会互相冲突。

2.操作系统的设计,因此可以归结为三点:

扫描二维码关注公众号,回复: 3116589 查看本文章

(1)以多进程形式,允许多个任务同时运行;

(2)以多线程形式,允许单个任务分成不同的部分运行;

(3)提供协调机制,一方面防止进程之间和线程之间产生冲突,另一方面允许进程之间和线程之间共享资源。

首先来一句概括的总论:进程和线程都是一个时间段的描述,是CPU工作时间段的描述。

3.有关linux线程的描述,​​​​

A.线程自己拥有很少的资源,但它可以使用所属进程的资源

B.由于同一进程中的多个线程具有相同的地址空间,所以它们间的同步和通信也易于实现

C.进程创建与线程创建的时空开销不相同

D.进程是资源分配的基本单位,线程是资源调度的基本单位

4.进程的三态模型

出现等待事件:运行→等待

等待结束:等待→就绪

选中:就绪→运行

落选:运行→就绪

猜你喜欢

转载自blog.csdn.net/acycy/article/details/82430721