Chinaunix首页 | 论坛 | 博客
  • 博客访问: 519692
  • 博文数量: 96
  • 博客积分: 2102
  • 博客等级: 上尉
  • 技术积分: 1695
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-11 22:12
文章分类

全部博文(96)

文章存档

2014年(2)

2012年(94)

分类: LINUX

2012-04-21 10:45:44

  •  在/boot目录下面引导程序把内核从磁盘加载内存,并让系统进入保护模式下运行。则开始执行系统的初始化。
  • init/main.c(确定如何分配和使用系统物理内存,然后调用内核各个部分的初始化:对内存管理、进程管理、块设备、字符设备、中断管理、进程管理、软件、硬件管理的初始化),使得系统的各个部分处于可运行的状态。此时程序自己“手工”移动的到进程0中运行。并且使用fork()来生成进程1,在进程1中程序将继续进程应用环境的初始化并执行shell登录程序。而原进程0则会在改系统空闲的时候被调度执行。此时,0进程执行pause()系统调用和调度函数。
  •  磁盘-------(内核)-------内存----------保护模式---------物理内存的初始化------------内存、进程、设备、中断、软硬件等的初始化---------变成进程0-----------生 成fork()生成进程1以及该进程应用环境的初始化-------shell登录---------0进程一直处于就绪态------------系统 空闲----------进程0执行pause和调用函数。
  • 程序自己“手工”移动的到进程0中运行:将内核初始化程序流从内核态移动到用户态。
        进程又分为实时进程和普通的进程:
        SCHED_OTHER:为普通的进程。
        SCHED_FIFO 、SCHED_RR :标识实时进程
阅读(654) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~