操作系统相关知识

'''
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('主程序')


















原文地址:https://www.cnblogs.com/1832921tongjieducn/p/11006826.html