进程、线程面试常考题

一、同步

**同步:**    协同步调。按预定义的先后次序进行运行。
比如:你说完,我再说。
同:从字面上理解为一起动作。其实不是,“同”:是指协同、协助、互相配合。

二、异步

      异步方法调用更像是一个消息传递,一旦开始,方法调用就
会立刻的返回,调用者就可以继续后续的操作。而异步方法通常会再
另外一个线程中,“真实”的执行着。整个过程,不会阻碍调用者的工作。
      同步和异步强调的是消息的通信机制。

三、程序

例如 xxx.text 文、xxx.c文件,这些就是程序,是静态的、没有生命周期的概念。

四、进程

4.1、进程概述

	是系统进行资源分配和调度的基本单位,是操作系统结构的基础。

4.2、操作系统引入进程的原因

操作系统引入进程的概念的原因:
(1)、从理论角度看,是对正在运行的程序过程的抽象
(2)、从实现角度看,是一种数据结构,目的在于清晰地刻画动态系统的内在规律,
有效管理和调度进入计算机系统主存储器运行的程序。

4.3、进程特征(考点)

特征
	(1)、动态性:进程的实质就是在多道程序中的一次执行过程,进程是动态产生、动态消亡的;
	(2)、独立性:进程是一个可以独立运行的基本单位,同时也是系统分配资源和调度的基本单位;
	(3)、异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、
不可预知的速度向前推进;
	(4)、结构特征:进程由程序、数据、进程控制块三部分组成。多个不同的进程可以包含相同的程序,
能得到不同的结果;但是执行过程中,程序不能发生改变。
	(5)、并发性:任何进程都可以同其他进程一起并发执行。
4.4、进程拥有独立空间的优点
(1)、防止别人攻击,有了自己独立的进程空间后,每个进程都只在OS提供的独立的进程空间(虚拟内存)里面运行
这样即有效防止了本进程侵犯其他进程,也防止了其他进程对本进程的非法操作。
(2)、病毒、木马基于OS运行起来后,也是一个独立的进程,由于它的进程空间也是完全独立,所以
进程之间没有任何的交集,因此,木马、病毒根本无法修改其他进程空间的代码和数据,所以有效
防止了木马、病毒的攻击。
(3)、当然病毒、木马也是有攻击性的:
     如果病毒、木马被做成应用程序,是以应用程序的身份来运行的,那么它只能运行在os所提供
的独立的进程空间里面,这种情况下,它还真是没办法去攻击别人,所以现在根本就不存在
应用级的木马和病毒(应用程序形式的木马和病毒)。
现在的木马和病毒如果真想搞事的话,只能是系统级的木马和病毒,就是木马和病毒能够
直接攻击OS。为什么只有攻击os才能成功?
因为独立的进程空间是由OS的虚拟内存机制提供的,如果木马和病毒以应用程序运行,
那么它就只能被限制在独立的进程空间中,如果木马和病毒想要攻击,只能釜底抽薪,打入敌人(OS)
内部才能实现,木马和病毒一旦攻击os成功,基本就是想干啥就能干啥了。
		就像古代攻城一样,外面固若金汤很难突破,此时如果从内部去瓦解,很快就能攻破。
当然现在os的安全级别也越来越高,也不是想要入侵就能入侵的。

4.5、Linux进程间通信机制

(1)、进程间通信的原理
	尽管进程空间是各自独立的,相互之间没有任何可以共享的空间,但是至少还有一样东西
是所有进程所共享的,那就是OS,因为不管运行有多少个进程,但是它们共用OS只有一个。
	既然大家共用的是同一个OS,所有的进程可以通过大家都共享第三方OS来实现数据的转发。
	因此进程间通信的原理就是,OS作为所有进程共享的第三方,会提供相关的机制,以实现进程间数据的转发,达到数据共享的目的。

(2)、广义上的进程间通信
	其实广义上来说,任何一种能够实现进程间数据交换的方式,都可以被称为进程间通信,
比如   A进程——文件—B进程
	   A进程——数据库——B进程
不过一般来说,这种广义的进程间通信,并不被算作真正的“进程间通信"。
只有OS所提供的专门的通信机制,才能算作是真正的“进程间通信”.

(1)、管道: 有名管道、无名管道。OS在进程之间建立一个“管道”,通过这个管道来实现进程间信息的交换。
(2)、信号: 是一种非精确通信,只能告诉某件事发生了,但是没发告知详情。
(3)、system V IPC 【V:代表5】
·消息队列:通过消息队列来通信
·共享内存:通过共享内存来通信
·信号量:借助通信来实现资源的保护(一种加锁机制)
(6)、套接口 (Socket)

五、线程

5.1、线程概述

一个程序运行起来后,代码 + 用到的资源称之为进程,它是操作系统
分配资源的基本单位,可以实现多任务。
(1)、线程是进程的一个实体,是CPU调度和分配的基本单位,它是比进程更小的能独立运行的基本单位。
(2)、线程自己基本上不拥有资源,只拥一点运行中必不可少的资源(如程序计数器、栈、一组寄存器)(3)、在同一个进程中的线程可以共享进程中的所有资源

在这里插入图片描述

5.2、引入线程的原因

(1)、由于进程既是独立执行的基本单位,又是资源拥有者,在进程创建、撤销、切换时需要
较大的时空开销。所以,系统中所设定的进程数和进程切换的频率都受到了限制,影响了操作系统并发程度
的提高。
(2)、引入线程作为独立调度和分派的单位,不独立拥有资源(仅有少量基本资源),而与其他线程
共享同一进程的资源,减小了系统的时空开销。
(3)、线程的实质就是把进程的任务划分为更小、具有独立功能的单位,以线程的形式来并发执行,
以提高程序的并发执行的程度。
(4)、一个线程可以创建和撤销另外一个线程。

5.3、线程分类

线程的实现可以分为俩类:即用户级线程和内核级线程。
(1)、内核级线程依赖于内核。用户进程和系统进程中的线程,它们的创建、撤销、切换都由内核实现。
在内核中为线程创建线程控制块,内核根据该控制块感知线程的存在并对线程进行控制。
(2)、用户级线程不依赖于内核,用户级线程的创建、撤销、切换都与内核无关。
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_44585751

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值