Linux进程

来源:互联网 发布:ip网络座机怎样使用 编辑:程序博客网 时间:2024/04/29 20:29

概念:进程是执行操作系统中的任务。

1. 在进程的生存期内将使用许多系统资源:使用系统的CPU来运行自己的指令;使用系统的物理内存来保存自己和自己的数据;打开和使用文件子系统中的文件并直接或间接地使用系统中的物理设备。

2. 每一个进程通过一个task_struct数据结构表示,其字段可分为几个功能区:

(1)状态,随环境改变:有运行,等待,停止,死亡。

(2)调度信息:调度器需要这些信息以公平地决定哪个进程最值得运行。

(3)标识:进程标识,分为用户和组标识,用来控制本进程对系统中文件盒设备的访问。

(4)进程间通信 Linux支持经典的UNIXTM IPC机制如信号,管道和信号灯,以及System V IPC机制如共享内存,信号灯和消息队列。

(5)链接:在Linux系统中没有哪个进程与其他进程完全独立。除了初始进程,系统中每个进程都有一个父进程,新的进程不是被创建,它们是从先前的进程被复制。系统中所有的进程都保存在一个双向链表中,根是init进程的task_struct数据结构。

(6)时间和时钟

(7)文件系统

(8)虚拟内存

(9)处理器相关上下文

3. Linux使用一个合理的基于简单优先权的调度算法来从系统中现有的进程中选择。当选中一个新进程来运行,它将保存当前进程的状态,处理器相关寄存器和其他上下文被保存在进程task_struct数据结构中。然后它恢复新进程的状态(处理器相关的)来运行并把系统控制交给该进程。调度器为了在系统中可运行进程间公平的分配CPU时间,为每个进程在task_struct中保存一下信息:

(1)policy 应用于本进程的调度策略,有两种Linux进程:普通的和实时的。实时进程拥有比其他进程都要高的优先级。实时进程可以有两种高度策略:轮转法和先进先出。

在轮转法调度中每个可运行的实时进程依次运行;在先进先出法中,实时进程按它们进入运行队列的顺序依次运行,并且该顺序永不会改变。

(2)priority 调度器将给予进程的优先级。

(3)rt_priority Linux支持实时进程,并且它们在调度时拥有比系统中其他非实时进程更高的优先级。

(4)counter 此进程允许运行的时间量在第一次运行时被置成priority的值,然后在每个时钟“滴答”中递减。


4. 虚拟内存

一个进程的虚拟内存包含来自多处的可执行代码和数据。

        首先是被装入的程序映像,这个命令由可执行代码和数据组成,映像文件包含把可执行代码和相关联的程序数据装入进程虚拟内存中所需要的所有信息。

        其次进程在其处理过程中可以分配内存来使用。

        第三, Linux进程使用公共用途代码库,

0 0
原创粉丝点击