CPU的调度

本文介绍了早期CPU的单进程执行方式及其效率问题,引出多线程/多进程操作系统的出现。在多线程环境下,CPU通过时间片轮转实现线程调度,宏观上实现并发效果,避免进程阻塞造成的资源浪费。然而,多线程也带来了设计复杂性、资源消耗和CPU调度开销等问题。文章探讨了线程切换的成本和内存占用,并预告了接下来将讨论的GMP调度器。
摘要由CSDN通过智能技术生成

初期CPU:

是一个单进程操作系统,按照时间顺序执行,执行线程也是如此(一核 :核执行的基本单位是线程) ,同一时间只能执行一个线程.
单进程时代的问题:

	1.只能顺序执行,一个一个进行处理,效率慢。
	2.进程租塞时(执行时卡在某个位置)会带来cpu时间的浪费.
	这时就有了多线程/多进程操作系统

多线程/多进程的操作系统如何调度

条件:一个小时执行三个线程.这个时候cpu如何进行调度.

	首先会把整个时间线,分成各个时间片,可以理解为时间断落,也就是当前线程最大的执行时间,
	
	如果当前线程的执行超过了最大执行时间,则会直接强制切换到下一个线程进行执行,依此类推 执行顺序类似于
	
	线程a->线程b->线程c->线程a->线程b->线程c.......(这种情况是所有线程执行时间都大于了最大执行时间,也就是都超时了),这样就避免了一直停顿等待的现象.
	
	所以在宏观的角度上看,其实 线程a、b、c是在同时进行,也就是所说的异步(并发 不是并行),但其实每次的执行,只会有一个
	
	线程,这种情况只是cpu在不停的调度而已,才在程序上产生了异步(并发)的效果.说到这里肯定描述的不是特别清楚,因为没有上图:

在这里插入图片描述

上完图,如果还是不太好理解的的话,就说明确实是线程用少了,可以多去尝试一下。

多线程/多进程的问题:

设计复杂化:
	进程/线程越多,切换成本越大,越浪费资源
	
	在线程A切换线程B时是有cpu消耗的,拷贝记录切换等都会占用cpu.
	
	线程的切换,状态的记录,拷贝等。
	
	系统级的 同步竞争,锁、竞争资源等
	
壁垒:
	进程约 虚拟内存4GB(一般估值)
	
	线程约 4MB
	
	耗费内存
	
	高cpu调度浪费

下一篇GMP调度器
链接地址

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值