day3进程,线程,协程

总结:进程是os分配资源的基本单位,线程是执行调度的基本单位
自己总结:进程是操作系统内部分配了一块内存空间,进程运行在里面,进程包含线程,线程是执行cpu与操作系统之间资源调度的基本单位,点qq.exe 开辟一个进程,一个进程包含多个线程,然后线程本身是没有内存空间的
linux中分配一个线程就是进程
在这里插入图片描述
迁程(协程fiber):线程中的线程,用户态中的线程,不访问os操作系统,线程内部分线程,更轻量级,切换更快
(冷知识,每创建一个线程有一个线程栈)
纤程:用户态的线程,线程中的线程,切换和调度不需要经过OS

优势:1:占有资源很少 OS : 线程1M Fiber:4K 2:切换比较简单 3:启动很多个10W+

目前2020 3 22支持内置纤程的语言:Kotlin Scala Go Python(lib)… Java? (open jdk : loom)

一个进程在linux里面叫一个pcb

迁程vs线程池:很短的计算任务,不需要和内核打交道,并发量高

linux启动进程:
在这里插入图片描述
在这里插入图片描述

现在操作系统多用抢占式

进程调度

2.6采用CFS调度策略:Completely Fair Scheduler

按优先级分配时间片的比例,记录每个进程的执行时间,如果有一个进程执行时间不到他应该分配的比例,优先执行

默认调度策略:

实时 (急诊) 优先级分高低 - FIFO (First In First Out)先进先出(级别高的先执行),优先级一样 - RR(Round Robin轮询)
普通: CFS
linux内核版本:2.6.23
必需用c写
软中断:p9级别问了
1.硬件级别中断
2,应用层面:软中断
在这里插入图片描述

直接用汇编语:sysenter,通过ax寄存器填入调用号

软中断执行过程:
在这里插入图片描述

中断是通知硬件的一个信号,键盘输入信号

线程十万个就不行 迁程没问题

非阻塞:用户空间进来,调用read没有停在那里,异步执行

©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页