一、进程的基本概念 1、定义:进程就是一个正在执行的程序。更精确说进程就是一个被加载到内存中,准备运行的程序。 2、进程的分配: 所有进程都是由内核管理的。当一个进程被创建时,内核赋予进程一个标志符,称为PID,或者称为进程ID。内核维护了当前系统所有的进程的列表称为进程表。在进程表中进程由PID为索引。 3、进程执行顺序 进程永远都不会真正的同时进行,执行过程是序列化的。(针对单个处理器) 4、进程的管理(调度器) 调度器维护者所有的进程的列表。调度器每次从进程列表中选择一个进程,并且给与这个进程非常短暂的时间间隔运行的机会,这个给进程得以执行的时间间隔称为**时间片** 5、看起来进程在同时执行的原理(时间片非常小) 首先内核会给每个进程分配相同的初始时间片,然后每一个进程轮番执行相应的时间片时间,一旦分配的时间片用完,调度器将该进程重新放到进程列表中去,由于时间片很小,所以看上去所有的进程看起来都在同时执行。unix通常为10毫秒,linux通常为5-800毫秒 6、处理器时间(CPU时间、进程时间) 包括两部分:用户时间、系统时间 用户时间:程序所花费的时间 系统时间:系统为了维护程序执行所花费的时间(存储进程下一条指定、执行环境等),主要包括内存管理、I/O时间、维护程序执行所需的开销,这部分通常可以忽略。 7、wall time 是指程序开始执行到一直到程序执行完毕所持续的时间。进程运行的时间总量,其值与系统中同时运行的进程数有关 从进程从开始运行到结束,时钟走过的时间,这其中包含了进程在阻塞和等待状态的时间。进程的三种状态为阻塞、就绪、运行。和上述时间的关系是: 时钟时间 = 处于阻塞状态时间 + 处于就绪状态时间 +处于运行状态时间; 8、进程和程序的区别 进程: 进程是操作系统环境下用于表示程序在内存环境下的基本执行单元,是操作系统系统分配的基本单元。从用户的角度看,**进程是程序的一个执行过程**,从操作系统的角度看,进程代表的是操作系统分配的内存、CPU时间片等资源的一个基本单位,是为正在执行的程序提供一个运行环境。 程序: **是一个普通的磁盘文件**,是一个机器代码指令和数据的集合,是一个静态的实体。 可以说,**进程是一个正在运行的程序,进程除了有程序之外,还有包含额外的数据。进程是一个动态的概念,程序是一个静态的概念** 9、进程标志符(PID) 进程标志符用来唯一标志一个进程,是一个无符号整数,从0开始,最大值与系统有关。 特殊PID: 0: 表示空闲进程(交换进程sched/swapper),负责进程的调度,是init进程的父进程,是为一一个运行在内核空间的进程,其他都运行在用户空间 1:表示初始化进程(init) 10、系统调用 系统调用由内核提供,直接执行在内核环境,常见的系统调用有: fork(): 创建一个进程 exec(): 改变进程正在执行的程序 wait(): 强制暂停一个进程,直到另外一个进程结束 exit(): 结束一个进程 11、进程的生命周期 包括进程的产生(fork)、执行、结束;具体: 通过fork向内核发送创建进程请求 创建一个与父进程几乎一弄一样的副本 立即调用exec()函数执行另外一个程序(被调用的程序会替换子进程的进程空间,成为一个除了进程号相同之外的一个全新的进程,之后父子进程就进行各自的事情了,子进程死亡时会释放该进程所有的资源,但是内核还是会保留该进程的一些信息,包括pid,退出状态、运行时间等,直到父进程调用wait/waitpid()调用获取才释放,否则就是一个僵死进程) 当任务完成之后子进程可以自我调用exit()终止自身的运行。或者其他进程使用kill()故意终止它。 12、shell脚本 shell是一个特殊的进程,是内核的一种外壳,可以通过shell间接操作内核。 分为内部命令、外部命令 内部命令直接存在shell中,外部命令存储在另外的磁盘中。unix将绝大多数命令存在磁盘中,也就
UNIX操作系统进程
最新推荐文章于 2024-07-22 11:18:00 发布
本文详细介绍了UNIX操作系统中的几种进程调度策略,包括时间片轮转法(RR)、FCFS(先到先服务)、多级反馈队列调度和优先权调度算法。时间片轮转法用于分时系统,FCFS简单直接但可能导致长进程等待时间过长,多级反馈队列兼顾不同类型的用户需求,优先权调度则分为非抢占式和抢占式,动态调整进程优先权以优化调度性能。
摘要由CSDN通过智能技术生成