操作系统基本知识整理

本基本知识整理及代码源于牛客网C++面试宝典导读,

  网址https://www.nowcoder.com/tutorial/93/156e55e0579d4a678e857b34d572c278

进程与线程

  基本概念:

  进程是对运行中程序的封装,是系统进行资源调度和分配的基本单位,实现了操作系统的并发;

  线程是进程的子任务,是CPU调度和分配的基本单位,实现了进程内部的并发;

  线程是操作系统可识别的最小执行和调度单位。每个线程都肚子占用一个虚拟处理器:独自的寄存器组,指令计数器和CPU状态。

  每个线程完成不同任务,但共享同一地址空间(堆区,全局区(静态区),文字常量区,映射文件,目标代码),打开的文件队列和其他内核资源。

  区别:

  1.一个线程只能属于一个进程,而一个进程可以有多个线程且至少一个,线程依赖于进程存在。

  2.进程有独立的内存单元,多个线程共享进程内存(代码段(代码和常量),数据段(全局/静态变量),扩展段(堆存储))。每个线程栈段独立(局部变量和临时变量)

  3.进程是资源分配最小单位,线程时CPU调度最小单位。

  4.系统开销:创建和撤销进程时,系统要分配和回收资源,所以创建和撤销开销大于线程的。进行进程切换时,设计到当前进程CPU环境保存以及新被调度运行进程CPU环境设置。线程切换只需保存设置少量寄存器内存,不涉及存储器。

  5.通信:进程间通信IPC,线程可以直接读写数据段来通信(需要同步和互斥)

  6.进程间不会互相影响,线程则是一个线程挂掉导致整个进程挂掉

  7.进程适应于多核、多机分布;线程适用于多核。

  

  进程通信:

  管道、系统IPC、套接字socket

  1.管道:

猜你喜欢

转载自www.cnblogs.com/wshr007/p/11442888.html