码迷,mamicode.com
首页 > 系统相关 > 详细

进程初始

时间:2018-08-20 17:53:51      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:系统初始化   调度   数据   ESS   ppi   资源分配   color   否则   使用   

进程(Process)是计算机的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础.是对于运行的程序的抽象,从实际角度看,是一种数据结构,目的在于清晰的刻画动态系统的内在规律,有效的管理和调度进入系统主存储器运行的程序.

注意: 同一个程序执行两次,就会在操作系统中出现两个进程,所以我们可以同时运行一个软件,分别做不同的事也不会混乱.

进程调度:

1.先来先服务调度算法
2.短作业优先调度算法
3.时间片轮转法
4.多级反馈队列

进程的三大状态分别是:就绪状态(除CPU以外所有的资源都分配到),运行状态(正在运行),阻塞状态(放弃CPU执行,将进程放入内存中)

进程的创建于结束:

1.系统初始化
2.一个进程正在运行过程中开启了子进程
3.用户的交互请求,而创建一个新进程
4.一个处理作业的初始化

1.正常退出
2.出错退出
3.严重出错
4.被其他进程杀死

创建子进程就需要介绍multiproces模块,借助此模块可以完成进程的创建

注意:
1.需要使用关键字的方式来指定参数
2.args指定的为传给target函数的位置参数,是一种元组形式,必须有逗号
3.target表示调用对象,即子进程要执行的任务
4.args表示调用对象的位置参数元组,args = (1,2,"egon")
5.kwargs表示调用对象字典,kwargs = {"name":"egon","age":18}
6.name是子进程的名字

import time
from multiprocessing import Process

def f(name):
    print(hello, name)
    print(我是子进程)

if __name__ == __main__:
    p = Process(target=f, args=(bob,))
    p.start()
    time.sleep(1)
    print(执行主进程的内容了) 
import time
from multiprocessing import Process

def f(name):
    print(hello, name)
    time.sleep(1)
    print(我是子进程)


if __name__ == __main__:
    p = Process(target=f, args=(bob,))
    p.start()
    #p.join()
    print(我是父进程)
import os
from multiprocessing import Process

def f(x):
    print(子进程id :,os.getpid(),父进程id :,os.getppid())
    return x*x

if __name__ == __main__:
    print(主进程id :, os.getpid())
    p_lst = []
    for i in range(5):
        p = Process(target=f, args=(i,))
        p.start()

进程中的方法:
p.start()开始创建一个进程
p.join()让父进程在子进程执行完后再继续执行(同步)
p.is_alive()判断进程是否还在
p.terminate()杀死一个进程
os.getpid()获取当前进程的pid
os.getppid()获取父进程的pid
p.daemon = True,将p设为守护进程

守护进程:
1.守护进程会在主程序代码执行结束后就终止
2.守护进程内无法在开启子进程,否则抛出异常
注意:进程之间是独立的,主进程代码运行结束,守护进程随即终止

进程初始

标签:系统初始化   调度   数据   ESS   ppi   资源分配   color   否则   使用   

原文地址:https://www.cnblogs.com/smile568968/p/9506884.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!