zoukankan      html  css  js  c++  java
  • 操作系统相关知识

    '''
    1,什么是进程?
    进程指的是一个正在运行进行的程序,进程是用来描述程序执行过程中的虚拟概念

    进程的概念起源于操作系统,进程是操作系统最核心的概念,操作系统其它所有的概念都是围绕进程来的

    进程:VS 程序:
    程序:一堆代码
    进程:程序的执行过程


    操作系统理论:
    1,操作系统是什么?
    操作系统是一个协调,管理,控制计算机硬件资源与应用软件资源的一段控制程序
    有两大功能:
    1,将复杂的硬件操作封装成简单的接口给应用程序或者用户去使用
    2,将多个进程对硬件的竞争变得有序

    操作系统的发展史:
    并发:多个任务看起来是同时运行的
    串行:一个任务完完整整的运行完毕,才能运行下一个程序

    多道技术:
    1.空间上的复用:多个任务复用内存空间
    2.时间上的复用:多个任务复用CPU的时间
    PS : 复用===>> 共享 共用
    1,一个任务占用CPU时间过长(运行时间过长) 会别操作系统强行剥夺CPU的执行权限
    比起串行执行反而会降低效率
    2,一个任务遇到IO操作也会被操作系统强行剥夺走CPU的执行权限
    比起串行执行会提升效率

    2.为何要用进程?
    实现并发

    3,如何用进程?



    今日内容:
    1.开启进程的两种方式(******)
    2.进程对象的join 方法(*****)
    3,进程之间的内存空间隔离(*****)
    4,进程对象其他相关的属性或者方法
    5,僵尸进程与孤儿进程
    6,守护进程
    7.互斥锁
    8.进程间通信IPC机制
    9.生产者消费模型

    '''

    """
    开启子进程的两种方式:

    真正开启进程的是操作系统 而不是应用软件 或者程序
    进程是程序的执行过程,程序被执行,也就是创建了一个进程
    一个进程分为三个状态:
    运行 阻塞 就绪

    当一个程序运行起来之后,也就进入运行状态 ,遇到IO操作 需要等待 则切换到了阻塞状态
    当IO操作完毕,则进入就绪状态,当操作系统调度程序选择了这个进程,程序就又转换到运行状态
    当操作系统遇到级别更高的进程申请时,暂停执行当前进程,当前进程就直接从运行状态切换到就绪状态

    PYTHON中有一个模块,名称叫做multiprocessing
    这个模块的功能是调用操作系统产生和处理进程的接口.这样更加方便

    """
    from multiprocessing import Process
    ###导入处理进程的模块

    #from threading import Thread ###这个是导入处理线程的模块
    ###这两个 模块 一个处理线程 一个处理进程 用法是一模一样的 只需要学会一个 另一个就很好掌握了


    ####开启子进程的方式一
    print('======================')
    from multiprocessing import Process
    import time

    def task (name):
    print('%s is running ' % name)
    time.sleep(1)
    print("%s is done " % name)

    ##在windonws 操作系统下面 ,开启子进程的操作 必须写到 __main__ 下面去,也就是下面这一行代码
    if __name__ == '__main__':
    ####开启了进程后如果调用的函数需要传参,可以用元组 位置参数的方式传 也可以用字典 关键字参数的形式进行传
    obj = Process(target=task,args=('szp',))###写法1
    obj.start()##只是向操作系统发了一个开启子进程的信号
    print('主进程')

    print('方式2'.center(50,'*'))
    # #开启子进程的方式2
    # ##定义一个类继承原来的Process
    from multiprocessing import Process
    import time

    class Myprocess(Process):
    def __init__(self,name):
    super().__init__()
    self.name = name

    def run(self):
    print("%s is running " %self.name )
    time.sleep(1)
    print("%s is done " %self.name)

    if __name__ == '__main__':
    obj = Myprocess('owen')
    obj.start()
    print('主程序')


















  • 相关阅读:
    牛客 4C Alliances (dfs序)
    AC日记——楼房 codevs 2995
    AC日记——丑数 codevs 1246
    AC日记——砍树 codevs 1388
    AC日记——地鼠游戏 codevs 1052
    AC日记——蓬莱山辉夜 codevs 2830
    AC日记——最小的N个和 codevs 1245
    AC日记——二叉堆练习3 codevs 3110
    AC日记——滑动窗口 洛谷 P1886
    AC日记——忠诚 洛谷 P1816
  • 原文地址:https://www.cnblogs.com/1832921tongjieducn/p/11006826.html
Copyright © 2011-2022 走看看