进程 线程 纤程 中断

进程和线程有什么区别?

答案:进程就是一个程序运行起来的状态,线程是一个进程中的不同的执行路径。

专业:进程是OS分配资源的基本单位,线程是执行调度的基本单位。

分配资源最重要的是:独立的内存空间,线程调度执行(线程共享进程的内存空间,没有自己独立的内存空间)

纤程:用户态的线程,线程中的线程,切换和调度不需要经过OS

优势:

1:占有资源很少 OS : 线程1M Fiber:4K

2:切换比较简单

3:启动很多个

目前支持内置纤程的语言:Kotlin Scala Go Python(lib)

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

进程的创建和启动:

系统函数fork() exec() ,从A中fork B的话,A称之为B的父进程

僵尸进程:

ps – ef | grep defuct
父进程产生子进程后,会维护子进程的一个PCB结构,子进程退出,由父进程释放
如果父进程没有释放,那么子进程成为一个僵尸进程

孤儿进程: 

子进程结束之前,父进程已经退出,孤儿进程会成为init进程的孩子,由1号进程维护

进程调度:

Linux2.6采用CFS(完全公平调度算法)调度策略:Completely Fair Scheduler

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

默认调度策略:

实时 :(相当于急诊) 优先级分高低 - FIFO (First In First Out),优先级一样 - RR(Round Robin),其中等级最高的是FIFO,这种进程除非自己让出CPU,否则Linux会一直执行它

除非更高等级的FIFO和RR抢占它;RR只是这种线程中是同级别FIFO中的平均分配
只有实时进程主动让出,或者执行完毕后,普通进程才有机会运行

普通: CFS

进程调度基本概念:

进程类型:
• IO密集型大部分时间用于等待IO
• CPU密集型大部分时间用于闷头计算
进程优先级
• 实时进程 > 普通进程(0 - 99)
• 普通进程nice值(-20 - 19)
时间分配
• linux采用按优先级的CPU时间比
• 其他系统多采用按优先级的时间片

从单任务(独占)到 多任务(分时):最大限度的压榨CPU资源

多任务:
非抢占式:除非进程主动让出CPU,否则将一直运行
抢占式:由进程调度器强制开始或暂停(抢占)某一进程的执行

中断:

硬件跟操作系统内核打交道的一种机制

软中断(80中断) == 系统调用

系统调用:int 0x80 或者 sysenter原语

通过ax寄存器填入调用号

参数通过bx cx dx si di传入内核

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值