操作系统面试知识复习

线程和进程的比较:

概念:

进程:是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。
进程是资源分配的最小单位。

线程:是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。一个进程中可以并发多个线程,每条线程并行执行不同的任务。
线程是程序执行的最小单位。

理解:

在这里插入图片描述
进程=线程+内存+文件/网络句柄

  • 内存指代系统分配的逻辑内存,指的是内存的寻址空间,每个进程的内存是相互独立的。
  • 文件/网络句柄:它们是所有进程共用的,例如打开同一个文件,去抢同一个网络的端口这样的操作是被允许的。

在这里插入图片描述
线程=栈+PC+TLS

  • 栈:从主线程入口的main函数,会不断的进行函数调用,每次调用的时候,会把所有的参数和返回地址压入到栈中。
  • PC:Program Counter是指程序计数器。程序计数器是一块较小的内存空间,它可以看做是当前线程所执行的字节码的行号指示器(java),字节码解释器工作时,就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳准、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。
  • TLS:Therad local storage:线程的独立内存就是TLS,可以用来存储线程所独有的数据。

https://www.cnblogs.com/coder-programming/p/10595804.html
https://blog.csdn.net/w584212179/article/details/90904303

进程间的通信方式:

进程间的通信(IPC)是指在不同进程之间传播或交换信息。IPC的方式通常有管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、Socket、Streams等。其中Socket和Streams支持不同主机上的两个进程IPC

管道:
管道通常指无名管道,是UNIX系统IPC最古老的形式

特点:

  1. 它是半双工的(即数据只能在一个方向上流动),具有固定的读端和写端。
  2. 它只能用于具有亲缘关系的进程之间的通信(也就是父子进程或者兄弟进程之间)
  3. 它可以看成是一种特殊的文件,对于它的读写也可以使用普通的read、write等函数。但是它不是普通的文件,并不属于其他任何文件系统,并且只存在于内存中。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章