当前位置: 技术问答>linux和unix
进程的问题?高手进来看看啊??问题很简单啊~~
来源: 互联网 发布时间:2016-04-26
本文导语: 1 操作系统是一组程序,并且像其它程序一样由处理器执行,那么操作系统是一个进程吗?如果是,如果控制它? 2像windows/linux操作系统,开机后什么也不干,那么有什么进程在处理器里执行??最多去掉哪些进程...
1 操作系统是一组程序,并且像其它程序一样由处理器执行,那么操作系统是一个进程吗?如果是,如果控制它?
2像windows/linux操作系统,开机后什么也不干,那么有什么进程在处理器里执行??最多去掉哪些进程?
3如果现有一个程序执行,那么这个进程和操作系统里的“系统进程”是怎么在处理器里轮流执行的?
2像windows/linux操作系统,开机后什么也不干,那么有什么进程在处理器里执行??最多去掉哪些进程?
3如果现有一个程序执行,那么这个进程和操作系统里的“系统进程”是怎么在处理器里轮流执行的?
|
首次作答:)
以下主要针对 Linux 操作系统,不同操作系统特征差别很大。也会互相模仿,在某些方面同质。
1) 操作系统在硬件之上为应用程序提供了一个硬件的抽象接口。它提供很多服务。比如,设备管理,文件管理,内存管理,中断管理,进程管理等等。
操作系统不是一个进程,它管理着一堆进程,其中有些是操作系统自己(或者某个驱动程序)创建的内核进程,有些是系统初始化(从内核空间进入用户空间)时创建的系统进程,还有些就是用户执行某个程序时产生的用户进程。
操作系统里有些被代码执行时是代表着一个进程执行的,而有些执行时不代表任何进程。所谓进程上下文与非进程上下文(比如中断上下文等)。
2 windows / linux 这些多任务多用户操作系统在无事可干时,会调用一个特殊的“空闲”进程,该进程啥也不干,它会循环调用 CPU 提供的一条特殊指令,该指令使 CPU 空闲下来, 从而也降低了功耗。任何外部事件,会中断该空闲进程。该话题再深入点那就是电源管理模块的内容了。这也是操作系统的一项服务。
3 各进程轮流执行是操作系统提供的一大核心服务:进程调度。 进程调度主要由时钟中断出发,Linux 里通常是每秒 1000 次 或者 100 次(最近的 linux 内核使用了不定期时钟中断,按需产生)。不管系统多忙或者多闲,时钟中断会如期到来,此时操作系统会暂停当前执行的进程,进入时钟中断处理程序,然后进入系统的进程调度程序。 进程调度程序根据当前的进程调度策略,决定下一个执行的程序。
当然,进程调度不仅仅发生在时钟中断产生时,还会发生在进程主动暂停执行(sleep/wait),系统调用返回,普通中断返回等,时钟中断是进程调度的主要触发者,它保证了进程调度的 QoS.
内核进程或者系统进程和用户进程在被调度时没有本质区别,对于某个内核进程,内核编程时可以给它指定较高的优先级,也可以指定普通优先级。 而用户进程也是可以指定优先级的。甚至Linux里还可以给一个用户进程指定实时优先级,此时该用户进程的优先级是高于普通内核进程的。
操作系统基本理论还是比较复杂的,需要先看一下原理书,再分析一下某个具体操作系统(比如Linux 0.11),才能有较深入的理解。
以下主要针对 Linux 操作系统,不同操作系统特征差别很大。也会互相模仿,在某些方面同质。
1) 操作系统在硬件之上为应用程序提供了一个硬件的抽象接口。它提供很多服务。比如,设备管理,文件管理,内存管理,中断管理,进程管理等等。
操作系统不是一个进程,它管理着一堆进程,其中有些是操作系统自己(或者某个驱动程序)创建的内核进程,有些是系统初始化(从内核空间进入用户空间)时创建的系统进程,还有些就是用户执行某个程序时产生的用户进程。
操作系统里有些被代码执行时是代表着一个进程执行的,而有些执行时不代表任何进程。所谓进程上下文与非进程上下文(比如中断上下文等)。
2 windows / linux 这些多任务多用户操作系统在无事可干时,会调用一个特殊的“空闲”进程,该进程啥也不干,它会循环调用 CPU 提供的一条特殊指令,该指令使 CPU 空闲下来, 从而也降低了功耗。任何外部事件,会中断该空闲进程。该话题再深入点那就是电源管理模块的内容了。这也是操作系统的一项服务。
3 各进程轮流执行是操作系统提供的一大核心服务:进程调度。 进程调度主要由时钟中断出发,Linux 里通常是每秒 1000 次 或者 100 次(最近的 linux 内核使用了不定期时钟中断,按需产生)。不管系统多忙或者多闲,时钟中断会如期到来,此时操作系统会暂停当前执行的进程,进入时钟中断处理程序,然后进入系统的进程调度程序。 进程调度程序根据当前的进程调度策略,决定下一个执行的程序。
当然,进程调度不仅仅发生在时钟中断产生时,还会发生在进程主动暂停执行(sleep/wait),系统调用返回,普通中断返回等,时钟中断是进程调度的主要触发者,它保证了进程调度的 QoS.
内核进程或者系统进程和用户进程在被调度时没有本质区别,对于某个内核进程,内核编程时可以给它指定较高的优先级,也可以指定普通优先级。 而用户进程也是可以指定优先级的。甚至Linux里还可以给一个用户进程指定实时优先级,此时该用户进程的优先级是高于普通内核进程的。
操作系统基本理论还是比较复杂的,需要先看一下原理书,再分析一下某个具体操作系统(比如Linux 0.11),才能有较深入的理解。
|
1. 不是,操作系统不是进程,你可以把它看成是服务器,没当有进程对它提供的服务进行请求时,它就响应。
2. 操作系统不是进程,但它的确提供了一个进程,当没有其他任务需要执行时,它会调用这个进程,但这个进程实际上什么也不做。操作系统负责提供一个运行环境给用户的进程,这个环境会在用户程序被调用时设置好,然后用户进程调用操作系统提供的服务。
3. “系统进程是什么意思”?进程调度这个话题涉及具体的算法,所以没有具体的版本的话很难解释清楚。笼统的说,是分配给每个进程一个时间片,当这个进程运行的时间已经超过了这个时间片,那么它就会被调度出去,其他的进程会被挑选执行。
2. 操作系统不是进程,但它的确提供了一个进程,当没有其他任务需要执行时,它会调用这个进程,但这个进程实际上什么也不做。操作系统负责提供一个运行环境给用户的进程,这个环境会在用户程序被调用时设置好,然后用户进程调用操作系统提供的服务。
3. “系统进程是什么意思”?进程调度这个话题涉及具体的算法,所以没有具体的版本的话很难解释清楚。笼统的说,是分配给每个进程一个时间片,当这个进程运行的时间已经超过了这个时间片,那么它就会被调度出去,其他的进程会被挑选执行。