首页 / PYTHON / Python-操作系统、进程概念
Python-操作系统、进程概念
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python-操作系统、进程概念,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2795字,纯文字阅读大概需要4分钟。
内容图文
![Python-操作系统、进程概念](/upload/InfoBanner/zyjiaocheng/941/bd3f44cb33b64f4a88ff37d6f4942cda.jpg)
操作系统
多道操作系统
第一次提出了多个程序可以同时在计算机中计算
-
1.遇到IO就让出cpu
-
2.把cpu让给其他程序,让其他程序能够使用cpu
-
3.cpu的让出这件事要占用时间
-
4.两个程序来回在cpu上切换,不会乱
-
每个程序有独立的内存空间
-
每个程序在切换的前后会把当前的状态记录下来
-
cpu计算和不计算(IO)的操作
IO操作不占cpu
IO操作(网络操作 文件操作):输入输出(相对内存)
-
阻塞:sleep/input/recv/accept/recvfrom/是不需要cpu参与的
-
对文件的读取:对硬盘的操作一次读取相对与90w条代码
input:向内存输入数据(从硬盘)
read/load/input/recv/recvfrom/accept/connect/close
output:从内存输出数据
write/dump/print/send/sendto/accept/connect/close
所有的IO操作本质都是文件操作
input/print
input是写入文件,然后通过读取文件把输入的内容加载到内存
print是直接写入文件,然后通过文件展示给用户看
socket中的交互方法:都是文件操作
send是向缓存文件中写
recv是从缓存文件中读
也就是说只要涉及到IO操作 至少就是一个0.009s = 就是cpu执行90w条python代码的时间
cpu只计算读取到内存中的数据,其他没有读取到内存的不会计算
时间片轮转算法 -- 分时操作系统
-
1.时间片到了才让出cpu
-
2.cpu的让出这件事 占用时间
-
3.降低工作效率,提供用户体验
单核 1cpu 只能跑一个程序
进程的概念
程序与进程(计算机最小的资源分配单位)
运行中的程序就是进程
进程与进程之间的数据是隔离的
线程(计算机中能被操作系统调度的最小单位)
每个程序执行到哪个位置是被记录下来的
在进程中 有一条线程是负责具体的执行程序的
进程是被操作系统管理的
进程的调度(操作系统完成的):
被操作系统调度的,每个进程中至少有一个线程
短作业优先算法
先来先服务算法
时间片轮转算法
多级反馈算法
进程的启动 销毁
进程的启动:1.交互(双击) 2.在一个进程中启动另一个 3.开机自动启动
负责启动一个进程的程序 被称为一个父进程
被启动的进程 就是一个子进程
销毁:交互 被其他进程杀死(在父进程结束子进程) 出错进程结束
父子进程
父进程开启子进程
父进程还要负责对结束的子进程进行资源的回收
进程id processid pid
在同一台机器上 同一时刻 不可能有两个重复的进程id
进程id不能设置 是操作系统随机分配的
进程id随着多次运行一个程序可能会被多次分配 每一次都不一样
进程的三状态图
就绪ready 运行run 阻塞block
import os
import time
print(os.getpid())
print(os.getppid()) # parent process id
time.sleep(100)
模块mutilprocessing模块:内置模块
multiple 多元化
processing 进程
import os
import time
from multiprocessing import Process
def func():
"""
在进程中执行的func
:return:
"""
print('子进程:',os.getpid(),os.getppid())
time.sleep(3)
if __name__ == 'main':
p = Process(target=func)
p.start()
print('主进程:',os.getpid())
给子进程传参
def foo(a):
"""
在进程中执行的foo
:return:
"""
print('子进程:', a)
time.sleep(3)
if __name__ == '__main__':
p = Process(target=func, args=(1,))
p.start()
并行:多个程序 同时被cpu执行
并发:多个程序看起来在同时运行
同步:一个程序执行完了再调用另一个 并且在调用的过程中还要等待这个程序 执行完毕
异步:一个程序执行完了在调用另一个 但是不等待这个任务完毕 就继续执行
阻塞:cpu不工作
非阻塞:cpu工作
内容总结
以上是互联网集市为您收集整理的Python-操作系统、进程概念全部内容,希望文章能够帮你解决Python-操作系统、进程概念所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。