进程重点概念和进程2种创建-练习

一. 简述操作系统发展史

手, 批(联, 脱), 多, 分, 实, 通, 操(个, 网, 分)
1. 手动操作-穿孔卡片
2. 批处理-磁带存储
    - 联机处理系统
    - 脱机处理系统
3. 多道程序系统
4. 分时系统
5. 实时系统
6. 通用操作系统
7. 个人计算机操作系统,网络操作系统,分布式操作系统

二. 简述进程发展史及算法演变

进程发展史: 进程的概念起源于操作系统, 是操作系统最核心的概念. 也是操作系统提供的最古老最重要的抽象概念之一. 操作系统的所有其他的内容都是围绕进程的概念展开的.

进程调度之算法演变: 先来先服务调度算法, 短作业优先调度算法, 时间片轮转法, 多级反馈列队  

三. 简述多道技术

多道技术产生的背景: 争对单核实现并发
多道技术的解决方法: 多路复用(时间上的复用, 空间上的复用)
    空间上的复用: 内存中可以存放多道程序
    时间上的复用: 复用同一个CPU的时间片
多道技术的本质就是CPU的切换 + 保存状态
    切换: 
        - 第一种情况: 程序在执行的过程中遇到IO问题. 作用: 最大效率化利用CPU.
        - 第二种情况: 程序占用CPU的时间过长. 作用: 让每个程序都能被CPU执行  弊端: 程序的执行时间变长, 程序执行时间=切换时间+原本执行时间
    保存状态: 将进程当前执行的状态保存, 让下一次CPU执行时会基于上一次的状态, 继续执行.

四. 简述同步异步阻塞非阻塞概念

同步异步描述的是程序的提交方式
    同步: 任务提交完毕, 等待任务的执行结果, 再此期间不做任何事情.
    异步: 提交完任务以后, 直接做别的事情.

堵塞非堵塞描述的的程序的运行状态
    堵塞: 堵塞态
    非堵塞: 就绪态, 运行态

以上方法最完美的组合就是"异步非阻塞"

五. 书写进程创建的两种方式

# 方式一
import time
from multiprocessing import Process


def task(name):
    print(f'{name} is running...')
    time.sleep(2)
    print(f'{name} is end...')

if __name__ == '__main__':
    p = Process(target=task, args=('egon', ))
    p.start()
    print('主')

# 方式二: 继承Process类
import time
from multiprocessing import Process

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

    def run(self):
        print(f'{self.name} is running...')
        time.sleep(2)
        print(f'{self.name} is end...')

if __name__ == '__main__':
    p = MyProcess('egon')
    p.run()
    # p.join()  # AttributeError: 'MyProcess' object has no attribute '_closed'
    print('主')
posted @ 2020-04-23 00:58  给你加马桶唱疏通  阅读(115)  评论(0编辑  收藏  举报