5g基站调度周期是什么?
5G调度周期为1slot
1个slot固定包含14个符号,其长度不固定,与子载波间隔成反比,SCS=15kHz时,1个slot=1ms;SCS=30kHz时,1个slot=0.5ms;SCS=60kHz时,1个slot=0.25ms。。。。。。不一一枚举。
其实调度周期的叫法是不准确的,准确翻译为"调度延迟",原著是这么介绍的:
The kernel has a built-in notion of what it considers a good scheduling latency, that is, the interval
during which every runnable task should run at least once.—<Professional Linux Kernel Architecture>
意思是调度延迟是内核中的固有概念(不是固定值),他表示了一段时间,并且在这段时间内,所有的可被调度程序都应该至少被运行一次.
但是我认为这个说法极其令人费解,反正他没真正写明白,你看我说的你明白吗:
调度延时是单核并发所不得不面临的问题,以我们能理解的RR(想了半天,加上翻译吧,就是轮转调度)算法为例,假如我为每个进程都分配10ms的时间片(CFS没有时间片的概念),如果有10个进程,调度周期是就是100ms,而你再想,第一个进程用完时间片到他第二次拿到时间片的时间长度是不是也是100ms,这个时间我们称之为调度延时,所以说调度周期和调度延时值相同.理解了吧!
linux进程调度的三种策略是什么?
进程调度策略就是调度系统种哪一个进程来CPU运行。
这种调度分2层考虑。
第一层,进程状态这个是最优先考虑的,也就是说优先级最高的。
在linux中只有就绪态的进程才有可能会被调度选中然后占有CPU,其它状态的进程不可能占有的到CPU。
下面是linux中进程的状态 TASK_RUNNING:就绪状态,得到CPU就可以运行。
TASK_INTERRUPTIBLE:浅度睡眠,资源到位或者受到信号就会变成就绪态。
TASK_UNINTERRUPTIBLE:深度睡眠,资源到位就会进入就绪态,不响应信号。
TASK_ZOMBIE:僵死态,进程exit后。
TASK_STOPPED:暂停态,收到SIG_CONT信号进入就绪态。
第二层,其实真正在操作系统中的实现,就是所有就绪态进程链接成一个队列,进程调度时候只会考虑这个队列中的进程,对其它的进程不考虑,这就实现了第一层中的要求。
接下来就是就绪队列内部各个进程的竞争了。
Linux采用3种不同的调度政策,SCHED_FIFO(下面简写成FIFO,先来先服务),SCHED_RR(简写成RR,时间片轮流),SCHED_OTHER(下面简写成OTHER)。
这里大家就能看出一个问题,采用同等调度政策的进程之间自然有可比性,Linux3种调度政策并存,那么不同调度政策间的进程如何比较呢?可以说他们之间根本就没有可比性。
其实在调度时候,调度只看一个指标,那就是各个进程所具有的权值,权值最大的且在可执行队列中排在最前面的就会被调度执行。
而权值的计算才会设计到各方面因素,其中调度政策可以说在计算权值中,份量是最重的。
为什么Linux要这么干呢?这是由于事务的多样性决定的,进程有实时性进程和非实时性的进程2种,FIFO和RR是用来支持实时性进程的调度,我们看一下这3种政策下权值的计算公式就明白了: FIFO和RR计算公式,权值=1000+进程真正的运行时间 OTHER计算公式,当时间片为0时,权值=0.当时间片不为0时候,权值=剩余时间片+20-nice,同时如果是内核线程有+1的小加分,这是因为内核线程无需用户空间的切换,所以给它加了一分,奖励他在进程切换时候开销小的功劳。
时间片好理解,那么nice这个值,用过linux系统的人都知道,这是一个从unix下继承过来的概念,表示谦让度,是一个从20~-19的数,可以通过nice和renice指令来设置。
从代码中也能看到值越小就越不会谦让他人。
从这里我们看出FIFO和RR至少有1000的基数,所以在有FIFO和RR调度政策进程存在时,OTHER进程是没有机会被调度的到的。
从权值计算公式同时也能看出,FIFO先来先服务的调度政策满足了,但RR这个时间片轮流的调度如果按照这种权值计算是不能满足时间片轮流这一概念的。
这里只是权值的计算,在调度时候对RR政策的进程特殊处理。
以上都是权值计算,下面看看真正的调度过程,首先是对RR政策进程的特殊处理,如果当前进程采用的RR政策,那么看他的时间片是否用完,用完了就踢到就绪队列尾部,同时恢复他的时间片。
然后是便利整个就绪队列,找到第一个权值最大的进程来运行。
整体调度效果就是:如果有FIFO和RR政策的进程,就优先调度他们2个,他们之间看已执行时间长短决定胜负,而2种政策内部则遵守各自调度政策。
而OTHER只有在前面2种不存在于就绪队列时候才有可能执行,他们实际也是轮流执行,但他们之间是靠剩余时间和NICE值来决定胜负。
同时就绪队列中排在最前面的最优先考虑在同样权值情况下。
Linux的内核及其作用?
管理进程:内核负责创建和销毁进程, 并处理它们与外部世界的联系(输入和输出),不同进程间通讯(通过信号,管道,或者进程间通讯原语)对整个系统功能来说是基本的,也由内核处理。 另外, 调度器, 控制进程如何共享CPU,是进程管理的一部分。 更通常地,内核的进程管理活动实现了多个进程在一个单个或者几个CPU 之上的抽象。
管理内存:计算机的内存是主要的资源, 处理它所用的策略对系统性能是至关重要的。 内核为所有进程的每一个都在有限的可用资源上建立了一个虚拟地址空间。 内核的不同部分与内存管理子系统通过一套函数调用交互,从简单的malloc/free对到更多更复杂的功能。
文件系统:Unix 在很大程度上基于文件系统的概念;几乎Unix中的任何东西都可看作一个文件。 内核在非结构化的硬件之上建立了一个结构化的文件系统,结果是文件的抽象非常多地在整个系统中应用。 另外,Linux 支持多个文件系统类型,就是说,物理介质上不同的数据组织方式。 例如,磁盘可被格式化成标准Linux的ext3文件系统,普遍使用的FAT文件系统,或者其他几个文件系统。
设备控制:几乎每个系统操作终都映射到一个物理设备上,除了处理器,内存和非常少的别的实体之外,全部中的任何设备控制操作都由特定于要寻址的设备相关的代码来进行。 这些代码称为设备驱动。 内核中必须嵌入系统中出现的每个外设的驱动,从硬盘驱动到键盘和磁带驱动器。 内核功能的这个方面是本书中的我们主要感兴趣的地方。
网络管理:网络必须由操作系统来管理,因为大部分网络操作不是特定于某一个进程: 进入系统的报文是异步事件。 报文在某一个进程接手之前必须被收集,识别,分发,系统负责在程序和网络接口之间递送数据报文,它必须根据程序的网络活动来控制程序的执行。 另外,所有的路由和地址解析问题都在内核中实现。
linux内核和程序分为两个层次管理?
linux内核对进程的这种管理分两个方面:进程状态管理,和进程调度。
freertos和linux学哪个好?
freeRTOS是一个实时操作系统,主要实现了任务调度、内存管理、IPC、中断管理这几个模块,它要求快速的处理任务,gui、驱动框架、shell 这些都不是它的核心功能,而且大部分情况下都不会做,因为一旦freertos 运行起来之后,是不会有人工介入的。
Linux ,这里应该指的是 kernel 一部分,它就不同了,它是一种通用操作系统,实现的功能和实现的目标和 freertos 不一样,它的第一要务是让用户能够方便的使用电脑、利用计算机资源。
两者不能相提并论,前者实际上是一中 amp 架构,freertos 和 linux 是相互独立的两个操作系统,只会进行一些数据属交互而已,而当年乔布斯和linus 要做的是把linux kernel 移植到 mac 上 ,然后做一个内核开源、 gui 闭源的系统。