Processes(进程)相关介绍

    本章描述进程是什么以及Linux如何创建、管理和删除系统中的进程。


    进程执行操作系统中的任务。程序是存放在磁盘上的包括一系列机器代码指令和数据的可执行的映像,因此,是一个被动的实体。进程可以看作是一个执行中的计算机程序。它是动态的实体,在处理器执行机器代码指令时不断改变。处理程序的指令和数据,进程也包括程序计数器和其他CPU的寄存器以及包括临时数据(例如例程参数、返回地址和保存的变量)的堆栈。当前执行的程序,或者说进程,包括微处理器中所有的当前的活动。Linux是一个多进程的操作系统。进程是分离的任务,拥有各自的权利和责任。如果一个进程崩溃,它不应该让系统中的另一个进程崩溃。每一个独立的进程运行在自己的虚拟地址空间,除了通过安全的核心管理的机制之外无法影响其他的进程。


    在一个进程的生命周期中它会使用许多系统资源。它会用系统的CPU执行它的指令,用系统的物理内存来存储它和它的数据。它会打开和使用文件系统中的文件,会直接或者间接使用系统的物理设备。Linux必须跟踪进程本身和它使用的系统资源以便管理公平地管理该进程和系统中的其他进程。如果一个进程独占了系统的大部分物理内存和CPU,对于其他进程就是不公平的。


    系统中最宝贵的资源就是 网络公司首推精图数码CPU。通常系统只有一个。Linux是一个多进程的操作系统。它的目标是让进程一直在系统的每一个CPU上运行,充分利用CPU。如果进程数多于CPU(多数是这样),其余的进程必须等到CPU被释放才能运行。多进程是一个简单的思想:一个进程一直运行,直到它必须等待,通常是等待一些系统资源,等拥有了资源,它才可以继续运行。在一个单进程的系统,比如DOS,CPU被简单地设为空闲,这样等待的时间就会被浪费。在一个多进程的系统中,同一时刻许多进程在内存中。当一个进程必须等待时操作系统将CPU从这个进程拿走,并将它交给另一个更需要的进程。是调度程序选择了下一次最合适的进程。Linux使用了一系列的调度方案来保证公平。


    Linux支持许多不同的可执行文件格式,ELF是其中之一,Java是另一个。Linux必须透明地管理这些文件,因为进程使用系统的共享的库。


    4.1 Linux Processes(Linux的进程)


    Linux中,每一个进程用一个task_strUCt(在Linux中task和process互用)的数据结构来表示,用来管理系统中的进程。Task向量表是指向系统中每一个task_struct数据结构的指针的数组。这意味着系统中最大进程数受task向量表的限制,缺省是512。当新的进程创建的时候,从系统内存中分配一个新的task_struct,并增加到task向量表中。为了更容易查找,用current指针指向当前运行的进程。


    参见include/linux/sched.h


    除了普通进程,Linux也支持实时进程。这些进程必须对于外界事件迅速反应(因此叫做“实时”),调度程序必须和普通用户进程区分对待。虽然task_struct数据结构十分巨大、复杂,但是它的域可以分为以下的功能:


    State 进程执行时它根据情况改变状态(state)。Linux进程使用以下状态:(这里漏掉了SWAPPING,因为看来没用到)Running 进程在运行(是系统的当前进程)或者准备运行(等待被安排到系统的一个CPU上)Waiting 进程在等待一个事件或资源。Linux区分两种类型的等待进程:可中断和不可中断的(interruptible and uninterruptible)。可中断的等待进程可以被信号中断,而不可中断的等待进程直接等待硬件条件,不能被任何情况中断。


    Stopped 进程停止了,通常是接收到了一个信号。正在调试的进程可以在停止状态。


    Zombie 终止的进程,因为某种原因,在task 向量表重任旧有一个task_struct数据结构的条目。就想听起来一样,是一个死亡的进程。


    Scheduling Information 调度者需要这个信息用于公平地决定系统中的进程哪一个更应该运行。


    Identifiers 系统中的每一个进程都有一个进程标识符。进程标识符不是task向量表中的索引,而只是一个数字。每一个进程也都有用户和组(user and group)的标识符。用来控制进程对于系统中文件和设备的访问。


    Inter-Process Communication Linux支持传统的UNIX-IPC机制,即信号,管道和信号灯(semaphores),也支持系统V的IPC机制,即共享内存、信号灯和消息队列。关于Linux支持的IPC机制在第5章中描述。


    Links 在Linux系统中,没有一个进程是和其他进程完全无关的。系统中的每一个进程,除了初始的进程之外,都有一个父进程。新进程不是创建的,而是拷贝,或者说从前一个进程克隆的(cloned)。每一个进程的task_struct中都有指向它的父进程和兄弟进程(拥有相同的父进程的进程)以及它的子进程的的指针。在Linux系统中你可以用pstree命令看到正在运行的进程的家庭关系。


    init(1)-+-crond(98)


    -emacs(387)


    -gpm(146)


    -inetd(110)


    -kerneld(18)


    -kflushd(2)


    -klogd(87)


    -kswapd(3)


    -login(160)---bash(192)---emacs(225)


    -lpd(121)


    -mingetty(161)


    -mingetty(162)


    -mingetty(163)


    -mingetty(164)


    -login(403)---bash(404)---pstree(594)


    -sendmail(134)


    -syslogd(78)


    `-update(166)


    另外系统中的所有的进程信息还存放在一个task_struct数据结构的双向链表中,根是init进程。这个表让Linux可以查到系统中的所有的进程。它需要这个表以提供对于ps或者kill等命令的支持。


    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: solver processes是指在计算机系统用于解决问题或处理特定任务的进程。在计算机领域,问题求解或任务处理是一个常见的需求,通过使用solver processes,可以提高问题解决的效率和准确性。 solver processes通常运行在计算机系统的后台,执行各种算法和策略来处理特定的问题。它们可以处理各种类型的问题,例如数学计算、数据分析、优化、搜索等。这些进程通常具有较高的计算能力和算法优化,能够在较短的时间内得出问题的解决方案。 solver processes通常具有以下特点: 1. 并行处理:solver processes可以同时处理多个问题,通过充分利用计算机的多核处理能力来提高问题的解决速度。 2. 灵活性:solver processes可以根据不同的需求来选择合适的算法和策略,以达到最佳的问题解决效果。 3. 可扩展性:solver processes可以根据需要进行扩展,以适应更大规模的问题或任务处理要求。 4. 自动化:solver processes通常具有自动化的特性,能够自动检测问题并选择合适的解法来解决,无需用户的干预。 在实际应用,solver processes被广泛应用于各个领域,例如科学研究、工程设计、金融分析等。它们可以帮助用户解决复杂的问题,提高决策的准确性和效率。 总之,solver processes是计算机系统用于解决问题或处理特定任务的进程,具有并行处理、灵活性、可扩展性和自动化等特点。它们在不同领域的应用,可以提高问题解决的效率和准确性。 ### 回答2: Solver processes是指解决问题的过程,更具体地说,它是指以求解数学、物理、工程、计算机科学等领域复杂问题为目标的一系列逻辑和计算步骤。 在实际应用,solver processes可以用来解决一些经典的优化问题,比如在物流行业的车辆路径规划问题,或者在电力系统的最优电源调度问题。它们的目标是通过寻找最优的解决方案来提高效率、降低成本,或者优化某种特定的性能指标。 Solver processes的步骤通常包括以下几个方面:问题建模、算法选择、参数设置、运算求解和结果验证。 首先,问题建模阶段需要将实际问题转化为数学模型,确定因变量和约束条件,以及目标函数。这一步是整个过程的基础,决定了后续求解过程的可行性和准确性。 接下来,需要选择合适的算法来解决问题。不同的问题可能需要不同的求解方法,如线性规划、整数规划、动态规划、遗传算法等。算法的选择要根据问题的性质和规模来决定。 在算法选择后,需要设置合适的参数,如收敛准则、最大迭代次数等,以确保算法的效果和求解的精度。 然后,运算求解是整个过程的核心步骤。通过计算机和数值计算方法,根据初始条件和问题设置,进行迭代计算,不断优化求解过程,最终得到问题的近似解。 最后,在求解完成后,需要进行结果验证,以确保解的合理性。这可以通过对比解与实际问题的对应关系,或者通过敏感性分析等方法来进行。 总结来说,solver processes是一种解决问题的过程,通过建模、算法选择、参数设置、运算求解和结果验证等步骤,来寻找最优解决方案,提高效率和优化性能。这对于许多领域的复杂问题都具有重要的应用价值。 ### 回答3: Solver processes是指求解器处理过程,是指计算机程序使用的一种算法或方法,用于解决数学问题或优化问题。 在计算机科学和运筹学,solver processes通常被用于解决诸如线性规划、非线性规划、图论等各种数学问题。这些问题通常涉及到在给定的约束条件下,寻找一个最优解或近似最优解。 solver processes通常包括以下几个步骤: 1. 建立数学模型:根据实际问题,将问题抽象为数学模型,包括目标函数和约束条件。 2. 选择求解算法:根据问题的特点和求解的要求,选择适合的求解算法,比如线性规划可以使用单纯形算法,非线性规划可以使用梯度下降法等。 3. 算法实现:将选择的求解算法翻译成具体的计算机程序,包括编写代码、数据结构的定义等。 4. 输入数据:将问题相关数据输入到程序,作为算法的输入。 5. 执行求解:程序根据输入的数据,执行求解算法,计算出最优解或近似最优解。 6. 输出结果:将求解结果反馈给用户,可以是数值结果、图形结果等。 solver processes在实际应用具有广泛的应用,比如在物流配送优化车辆路径、在生产计划优化资源配置、在金融风险管理优化投资组合等。它们能够提高问题求解的效率和质量,为决策提供科学依据。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值