进程的优先级决定了执行权限和占有系统资源的优先程度
优先级越高,需要的权限越高,同时占有的系统资源就越高;
查看优先级的命令:
top #在终端输入命令,该命令是动态监测系统优先级,按q退出,<> 进行翻页查找
linux系统中优先级范围:-20~19;
其中-20优先级最高。
用户创建进程默认的优先级为0
nice #以指定的优先级运行某个进程
renice n PID 修改一个正在运行的进程的优先级
问题:
1. 什么是进程
2. 继承和程序的区别
3. 进程的集中状态及相互间的转换
4. 什么事PCB,PID,CPU时间片
写一个程序,在程序中指定位置调用接口来创建新的进程:
用os.fork函数实现
fork() 功能: 创建一个新的进程
参数:无
返回值:
<0时表示进程创建失败
==0在子进程中fork的返回值为0
0在父进程中fork的返回值大于0
os模块提供大量和系统相关的功能函数接口
os模块的使用是系统相关的,在不同的系统中可能使用方法不同。
fork是os模块函数,只能在linux和unix下使用
例子:
import os
#创建新的进程
pid=os.fork()
if pid<0:
print("create process failed")
elif pid==0:
print("This is the new process")
else:
print("This is the parent process")
print("The process end")
打印结果:
This is the parent process
The process end
This is the new process
The process end
以上程序执行了两次,如果pid<0这种情况发生则会创建一个新的进程,这个新的进程会在内存开辟出一个新空间,新的进程也会执行。在终端上,父进程和子进程都会在屏幕展示出来。
子进程是从父进程的下一句开始fork,执行后父子进程在各自执行互不干扰。
fork创建的新进程被称为子进程(child process)。fork函数被调用一次但返回两次。两次返回的唯一区别是子进程中返回0值而父进程中返回子进程ID。