进程调度学习

宋宝华:Linux的任督二脉——进程调度和内存管理_linux阅码场的技术博客_51CTO博客

参考上述文章,回答文章中提到的问题(问题是学习的关键,如下仅为当前的认识,如有问题欢迎指正~

1.Linux进程和线程如何创建、退出?进程退出的时候,自己没有释放的资源(如内存没有free)会怎样?

        答:什么是进程?资源管理的单位,包含业务占用的设备的所有资源的集合,比如内存、文件、工作目录、进程号等等;

        什么是线程?是linux内核的最小调度单元;内核中抽象为task_struct,这里的线程可以叫做一个进程吗?笔者觉得是可以的,因为这个线程也包含进程该有的所有资源的集合,不太一样的是有可能多个线程共享同一块资源。下文把进程和线程都当做一个task_struct来解释。

        进程创建?不管是内核线程还是用户线程都通过do_fork来创建;

        进程退出?不管是内核线程还是用户线程都通过do_exit来退出;

        如果没有释放资源,用户态的线程退出时会通过do_exit来回收没有人使用的vma;如果内核线程呢??需要进行代码分析。。还是说判断没有人使用这块内存就一并回收了?
2.什么是写时拷贝?

        当新的进程创建的时候,会暂时使用父进程的vma地址空间,并将其设置为只读权限,当任意一方有写得行为时再创建新的物理页;写时拷贝依赖MMU;
3.Linux的线程如何实现,与进程的本质区别是什么?

        线程就是一个task_struct,是linux的最小调度单元;进程是资源的集合;
4.Linux能否满足硬实时的需求?

        linux由于中断、软中断、自旋锁的上下文走出临界区的运行时间不确定,导致没法在本地cpu进行线程切换,也就无法保证线程被调度的时间在固定的范围内;

        当前也有相关的RT补丁来优化这个问题,尽量缩小上述临界区的运行时间;
5.进程如何睡眠等资源,此后又如何被唤醒?

        进程睡眠等资源可以有两种方式,可被信号打断和不可被信号打断两种睡眠方式;

        要么被信号中断导致被唤醒,要么等到资源被唤醒;
6.进程的调度延时是多少?

        进行的调度延时是指??进程得到调度的时间-进程被wakeup的时间

        为什么有调度延时?? 线程切换延迟?
7.调度器追求的吞吐率和响应延迟之间是什么关系?CPU消耗型和I/O消耗型进程的诉求?

        吞吐:是指cpu单位时间执行cpu指令的个数

        响应延迟:是指进程被唤醒到得到运行的时间差;

        吞吐和响应延迟是一种对立的关系,高吞吐,延迟也比较高,这种操作系统更偏向于干活;

        CPU消耗型就是干活类型的进程,需要长时间占据cpu进行运算

        I/O消耗型就是交互型的进程,需要快速得到调度就行,其余时间不会长时间占据cpu
8.Linux怎么区分进程优先级?实时的调度策略和普通调度策略有什么区别?

        进程优先级?分为静态优先级和动态优先级;

        实时调度:高优先级一直占据cpu不会被低优先级抢占;实时调度策略又分为两种,FIFO和普通实时进程,这两种调度策略是针对相同优先级的进程如何分配cpu做的区分,一个是先入先出,另一个是均等分配时间

        普通调度:针对优先级来分配运行时间,不同优先级的进程间会发生抢占;
9.nice值的作用是什么?nice值低有什么优势?

        nice值用来动态修改进程的优先级,nice值越低,表明进程的优先级越高,分配的时间片越大;
10.Linux可以被改造成硬实时吗?有什么方案?

        RT补丁
11.多核、多线程的情况下,Linux如何实现进程的负载均衡?

        负载均衡???哪个cpu运行队列多,就向相邻的域中释放一个进程
12.这么多线程,究竟哪个线程在哪个CPU核上跑?有没有办法把某个线程固定到某个CPU跑?

        cpu亲核

13.多核下如何实现中断、软中断的负载均衡?

   中断和软中断来绑核
14.如何利用cgroup对进行进程分组,并调控各个group的CPU资源?

      cgroup提供了debug文件系统来调试,cgroup对内存、cpu等资源进行分组管理,后续继续搞代码再分析吧。  
15.CPU利用率和CPU负载之间的关系?CPU负载高一定用户体验差吗?

        利用率就是cpu单位时间工作执行cpu指令的次数

        cpu负载就是cpu要执行的进程个数??

        cpu负载高用户体验不一定差,主要是io消耗型进程相应延迟有多大;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值