进程 线程

老生常谈的东西,进程和线程。
记录在云笔记中,也实在忘记当时那些地方搜刮出来的呢,所以就不附上那些一引用地址,拿出来分享,正好温故一下。

内核线程

内核线程就是直接由操作系统内核支持的线程,这种线程由内核来完成进程切换,内核通过操作调度器对线程调度,并负责将进程的任务映射到各个处理器上。

处理器

多核处理器就是在一个处理器上继承多个计算核心从而提高计算能力,也就是有多个真正并行计算的处理核心,每一个处理核心对应一个内核线程。

一个处理器对应一个内核线程,单核处理器对应一个内核线程等,双核处理器对应两个内核线程,四核处理器对应三四个内核线程。

超线程技术

双核四线程是采用超线程技术,将一个物理处理核心模拟成两个逻辑处理核心,对应两个内核线程。进而兼容多线程操作系统和软件,减少cpu的闲置时间,提高cpu的运行效率。
超线程技术由处理器硬件决定,同时也需要操作系统的支持才能在计算机中表现出来。

进程

进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单元,是应用程序的载体。
每个进程有一个自独立的一块内存,使得各个进程之间内存地址相互隔离。

组成

  1. 程序
    用于描述进程要完成的功能,是控制进程执行的指令集。
  2. 数据集合
    程序在执行时所需要的数据和工作区。
  3. 进程控制块 pcb
    包含进程的描述信息,是进程存在的唯一标识。

特征

  1. 动态性,
    进程是程序的一次执行过程,是临时的,有生命期的,是动态产生,动态消亡的。
  2. 并发性
    任何进程都可以同其他进程一起并发执行
  3. 独立性
    进程是系统进行资源分配和调度的一个独立单元
  4. 结构性
    进程是由程序 数据和进程控制块三部分组成

线程

线程是拥有资源和独立运行的最小单元,也是程序执行的最小单元,任务调度采用的是时间片轮转的抢占式调度方式,而进程是任务调度的最小单元。

组成

  1. 线程id
  2. 当前指令指针
  3. 寄存器
  4. 堆栈

总结

个人使用的经验总结,欢迎大家评论
1. 首先,一个进程可以有多个线程
2. 因为每个进程有一块独立的内存,所以不进程之间的通信(IPC)需要通过管道,信号等。但是一个进程内的不同线程都是公用一块内存的,所以之间的交互比较容易,但要注意共享线程同步(锁,环形缓冲队列…)。
3. 常见游戏服务器都会由登录服务器,游戏服务器组成,但它们可能只是在一个服务器上,通过不同的进程来实现这个目的(尤其是开发阶段),然后每个“服务器”又可以开启一些task线程来处理耗时运算。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值