爱问知识人 爱问教育 医院库

什么是内核总结的进程和进程的调度?

首页

什么是内核总结的进程和进程的调度?

什么是内核总结的进程和进程的调度?

提交回答

全部答案

    2017-07-26 23:12:05
  •   调度算法的设计目标,让cpu上的指令流更有价值,这就需要,
    1,调度必须尽可能快的完成,占用尽可能少的cpu时间
    2,交互进程尽快得到响应
    3,批处理进程尽快的处理完成
    这就需要调度算法在尽量短的时间内选出the most valueable的进程,也就是优先级最高的进程。
      并进行进程的切换,并且,进程切换的开销应尽可能小,主要包括页表的切换和寄存器的切换。 在内核中用task_struct 来描述一个进程, struct task_struct{ 1082 int lock_depth; /* BKL lock depth */ 1129 struct mm_struct *mm, *active_mm; 1215 /* CPU-specific state of this task */ 1216 struct thread_struct thread; 1217 /* filesystem information */ 1218 struct fs_struct *fs; 1219 /* open file information */ 1220 struct files_struct *files; 1221 /* namespaces */ 1222 struct nsproxy *nsproxy; 1223 /* signal handlers */ 1224 struct signal_struct *signal; 1225 struct sighand_struct *sighand; 1226 1227 sigset_t blocked, real_blocked; 1228 sigset_t saved_sigmask; /* restored if set_restore_sigmask() was used */ 1229 struct sigpending pending; } current宏对当前任务的索引是通过sp找到thread_info,再通过thread_info的task字段找到当前任务 struct thread_info { struct task_struct *task; /* main task structure */ int preempt_count; /* 0 => preemptable, } do_fork() 主要的工作由copy_process()完成 This creates a new process as a copy of the old one, but does not actually start it yet。
      It copies the registers, and all the appropriate parts of the process environment。 p = dup_task_struct(current); 为子进程分配task_struct和内核stack。
       然后copy_files(),copy_fs()进行拷贝。 copy_thread,把用户传进来的通用寄存器进行拷贝给子进程并设置,这儿很关键 childregs = task_pt_regs(p); *childregs = *regs; childregs->eax = 0; childregs->esp = esp; p->thread。
      esp = (unsigned long) childregs; p->thread。esp0 = (unsigned long) (childregs+1); p->thread。eip = (unsigned long) ret_from_fork; 可见传入的用户态通用寄存器附给了子进程,并置eax=0所以返回的pid是0,估计是pt_regs里esp可能是无效的,(进入内核态时sp没有保存在pt_regs里),所以单独赋值了。
      task_struct的thread字段记录了进程特定于cpu的信息,但切换到子进程的时候,就把thread中esp,eip弹出,所以子进程就可以通过ret_from_fork返回运行了。 而ret_from_fork asmlinkage void ret_from_fork(void) __asm__("ret_from_fork"); 不明白。
       所谓创建一个进程,就是分配合适的pid,并为之创建task_struct和内核stack,并把stack里的pt_regs设置下,返回的时候好恢复到调用点,并选择性的继承父进程的资源。 schedule() 1,通过o (1)算法选出优先级最高的进程。
       每个cpu有一个run_queue结构,保存有进程优先级的位图,通过位图索引到对应的list,取链首进程。
       2,switch_context()调用switch_mm()切换页表,switch_to()从上一个进程的处理器状态切换到新进程,包括保存恢复栈信息和寄存器信息 内核的抢占性 thread_info结构中的preemt_count字段表明当前进程是否可以被抢占 24 #define preempt_count() (current_thread_info()->preempt_count) 30 #define preempt_disable() \ 31 do { \ 32 inc_preempt_count(); \ 33 barrier(); \ 34 } while (0) 内核的抢占点 1,中断处理程序返回内核空间 2,内核代码再次有可抢占性,如释放一个锁 3,显示调用schedule,kernel trust kernel code,由调用者保证代码可以安全的被抢占 4,内核中的任务阻塞,隐式调用schedule() 对应的用户空间的抢占发生在 1,系统调用返回 2,中断处理返回到用户空间。

    胡***

    2017-07-26 23:12:05

类似问题

换一换

相关推荐

  • 小天鹅洗衣机

    嫌麻烦就把你洗衣机的型号或断皮带,拿到维修点去买1个,自己装上就可以了(要有个小扳手把螺丝放松,装上...

    购物

  • 罗马音和拼音

    tann转成假名就是たん,拼音的话,相当于tang吧…… bakka转成假名是ばっか kkou转成假...

    日语

  • 手机密码错了怎么办?

    你好! 手机密码被锁住了,那么只有拿到客服去解锁了。 如果你使用的是PIN码,被锁,那么去移动营业厅...

    手机/通讯

  • 鲫鱼汤一般需要炖多长时间?

    做鲫鱼汤很重要的一点是注意火候的把握。 步骤如下: 买新鲜现杀的鲫鱼两条,个头要适中。洗的时候要把鱼...

    美食/烹饪

  • 笔记本电脑永远是解决笔记本故障的卡片屏幕...

    有时,我们的笔记本电脑总是卡住了。我们怎样才能解决这个问题可能有很多不太熟悉的网友。现在让我们告诉你...

    电脑/网络

  • xp电脑显示屏调节屏幕亮度怎么调节_XP...

    XP电脑显示屏亮度调节怎么操作 1、直接在XP系统桌面空白处右键选择属性打开【显示属性】程序。 2、...

    电脑/网络

  • 计算机不能重新启动所有时间重新启动如何解...

    关于计算机不能重启和重启的问题,我相信很多网民以前见过。我们如何解决这个问题这里有一点告诉你,计算机...

    电脑/网络

  • 如果笔记本不能上网,我该怎么办

    也许有些网友对笔记本电脑无法上网的问题了解不多。现在让我们向你介绍一下笔记本电脑不能上网的原因以及如...

    电脑/网络

  • 现在移民需要多少钱(留学移民要多少钱)

    在众多的热门移民国家中,能够同时满足速度快,要求简单且有法案支持的移民国家,目前就只有马耳他,希腊,...

    电脑/网络

  • 高迪安集团公司的实力怎么样?

    高迪安(英文:GOLDIAN,前身:金大元集团),是一个综合性企业集团,致力于真爱人文事业的发展,旗...

    管理学

  • 有人了解高迪安集团这个公司吗?

    高迪安(英文:GOLDIAN,前身:金大元集团),是一个综合性企业集团,成立以来致力于真爱人文事业的...

    产业信息

  • 高迪安集团旗下的人工智能产业发展好吗?

    高迪安集团旗下的元梦智能科技公司,是一家致力于打造以数字智能人为核心的人工智能交互系统,并集研发、生...

    产业信息

  • 高迪安这个公司现在旗下现在主要有哪些产业...

    高迪安旗下产业比较多,涵盖地产、教育、珠宝、智能、金融、互联、健康等多个领域。集团从地产起步,开发了...

    产业信息

  • 高迪安之前开发的第一个新房是哪个楼盘?

    位于浦东川沙的金钟苑,后续集团开发了享誉海内外的上海地标性楼盘——香梅花园。

    购房置业

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):