开机启动过程

1、操作系统是一组程序,并且像其它程序一样由处理器执行,那么操作系统是一个进程吗?如果是,如果控制
它?

操作系统通常叫单任务或多任务。单任务的OS顾名思义,任务是顺序执行的,一个一个来,典型的像DOS,还有

早期的批处理系统,都是单任务的。

多任务的操作系统(不考虑CPU的多核机制哦),实际上每个时间点上,也是一个程序在跑,区别在于,多个任务

之间可以切换,比如A进程执行100ms,然后B进程执行100ms,就这样切换着执行,由于CPU切换的速度很快,所

以用户看来好像是多个程序同时在跑。

任务的管理是属于OS内核的进程管理部分的,进程管理部分会负责任务的创建、执行、调度、切换、终止等等操

作。

2、像windows/linux操作系统,开机后什么也不干,那么有什么进程在处理器里执行??最多去掉哪些进程?
OS不是什么都没干,而是干了很多幕后的工作,只是用户没看到罢了。典型的OS启动过程是这样的:

(1)按下电源键,执行BIOS里面固化的程序、执行硬件自检。

(2)加载boot-loader到内存的0x7C00处,开始执行。这里实际上加载的是一个可引导扇区,即boot部分,然后由

boot部分将loader部分,即OS的内核加载到内存中,然后把控制权交给内核。当然,也有的OS是多级引导的,不

仅限于boot和loader部分。之所以这样做,是因为可引导扇区有限制,最大不能超过512字节,而且必须以0xAA55

结尾,所以实际上能用的就510字节,很多初始化工作在这510字节里面不能做完,于是就有了loader部分。

(3)内核加载以后,就开始执行OS内核的模块了,像进程管理,内存管理,文件系统等等,执行完了这些操作,

内核才能完全控制计算器CPU,内存,磁盘硬件。

(4)如果某些外围设备驱动程序是以模块的形式存在的,会加载外围设备驱动程序。

(5)启动一些服务类的进程,这些进程实际上不属于内核,是内核之上的应用层程序。

(6)所有的进程都启动了,如果没有用户进程执行,除了系统的进程外,通常都会执行一个idle进程,这个进程

就和它的名字一样,就是个系统空闲进程,它实际上就是空耗CPU的,里面有可能就是维护一个计数器。

3、如果现有一个程序执行,那么这个进程和操作系统里的“系统进程”是怎么在处理器里轮流执行的?

首先,你要分清楚程序和进程的区别!程序是一组指令的集合,它是死的,是固定的;而进程是这组指令执行的

过程,它是动态的。

程序执行以后,在内存中就有它的进程了,通常由用户创建的进程优先级要低于系统进程的优先级,根据OS内核

的进程调度算法,会按照一定的规则来安排各个进程的执行顺序,执行时间等等,这个不用用户来关心,是OS内

核来实现的。详细的可以看看进程的调度算法,有N种,每种又都有自己的优缺点。

PS:如果对内核感兴趣,推荐看这本书《操作系统:设计与实现》(第三版),绝对的经典之作!
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值