专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > C语言

进程的有关问题

发布时间:2011-06-28 16:15:26 文章来源:www.iduyao.cn 采编人员:星星草
进程的问题
1 操作系统是一组程序,并且像其它程序一样由处理器执行,那么操作系统是一个进程吗?如果是,如果控制它?
2像windows/linux操作系统,开机后什么也不干,那么有什么进程在处理器里执行??最多去掉哪些进程?
3如果现有一个程序执行,那么这个进程和操作系统里的“系统进程”是怎么在处理器里轮流执行的?

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

2像windows/linux操作系统,开机后什么也不干,那么有什么进程在处理器里执行??最多去掉哪些进程? 

开机后,操作系统不会什么都不干吧?进程调度之一类的功能肯定是随时在跑(并不是CPU有这么智能,还是要靠操作系统来控制)。
进程在操作系统里运行。操作系统为进程的执行提供环境。
UI的这此子系统应该可以去掉吧.

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

显然,操作系统应该控制用户进程的执行,操作系统不会一直交出控制权的。
------解决方案--------------------
为什么不去看linux源代码?

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

操作系统提供了一些基本的pc功能以及支持进程的运作:
提供基本pc功能多半是使用的进程设计;硬件层的封装可以说是进程,也可以说是一个程序。进程和程序不是一个层次的概念

2像windows/linux操作系统,开机后什么也不干,那么有什么进程在处理器里执行??最多去掉哪些进程? 

可以只留个idle进程。什么也不干,可以说是死机。

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

多数系统是根据时钟和进程设计中的优先级来分配执行时间的。
------解决方案--------------------
C/C++ code
1 操作系统是一组程序,并且像其它程序一样由处理器执行,那么操作系统是一个进程吗?如果是,如果控制它? 

操作系统很多个进程!

2像windows/linux操作系统,开机后什么也不干,那么有什么进程在处理器里执行??最多去掉哪些进程?

比如说explorer.exe;//桌面进程
System Idle Process
System
……

非system关键进程都可关闭! 

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

有专门的进程调度@

------解决方案--------------------
引用楼主 liulili19830401 的帖子:
1 操作系统是一组程序,并且像其它程序一样由处理器执行,那么操作系统是一个进程吗?如果是,如果控制它?
2像windows/linux操作系统,开机后什么也不干,那么有什么进程在处理器里执行??最多去掉哪些进程?
3如果现有一个程序执行,那么这个进程和操作系统里的“系统进程”是怎么在处理器里轮流执行的?

------解决方案--------------------
版主提示:fetag同学回答得很好,楼主可以看一下

今晚无聊,多打点字消磨时间吧...

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:如果对内核感兴趣,推荐看这本书《操作系统:设计与实现》(第三版),绝对的经典之作!
------解决方案--------------------
1 操作系统是一组程序,并且像其它程序一样由处理器执行,那么操作系统是一个进程吗?如果是,如果控制它? 
一个程序可以有多个进程,但是一组程序很明显就不是一个进程撒,如何控制?有些进程你要修改内核了否则你没有办法修改的

2像windows/linux操作系统,开机后什么也不干,那么有什么进程在处理器里执行??最多去掉哪些进程? 
至少有0号和1号进程在执行撒,因为系统要自举,需要管理系统就是守护进程

3如果现有一个程序执行,那么这个进程和操作系统里的“系统进程”是怎么在处理器里轮流执行的?
这个涉及到进程的调度了,linux里面有3中调度方式,1,SCHED_OTHER 分时调度策略,. 2,SCHED_FIFO实时调度策略,先到先服务. 3,SCHED_RR实时调度策略,时间片轮转. 

如果你有时间的话看看Unix环境高级编程,有你想要的答案的
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: