一、网络编程内容回顾

    1.arp协议

        #交换机

        #广播、单播

    2.ip协议

    3.tcp和udp协议

        tcp:可靠的,面向连接的,字节流传输,长连接

            三次握手:一方发送请求,另一方确认请求同时发送请求,两条消息合并了。

                1.SYN=1,seq=i

                2.ACK=i+1,SYN=1,seq=j

                4.ACK=j+1

                状态:SYN_SEND,SYN_RCVD,ESTABLISHED,ESTABLISHED

            数据传输:write() 5.seq = i+1,ACK= j+1

                 read() 6.ack=i+2

            四次挥手:7 FIN seq=i+2, ACK=j+1

8.ACK=i+3

                 9.FIN seq=j+1

                  10.ACK=j+2

            

   udp:不可靠的,面向无连接,数据包传输

    4.socket

        tcp网络编程和udp网络编程

    5.socketserver

        基于TCP协议实现的并发的socketserver工具

      

二、今日内容总结

  1.操作系统介绍

    (1) 发展路径

    手工操作 -- 穿孔卡带

    批处理 -- 磁带存储

        联机批处理系统

        脱机批处理系统

    多道程序系统

    实时系统

    通用系统。。。。

        个人计算操作系统

        网络操作系统

        分布式操作系统

    (2) 操作系统的作用

      1.隐藏了丑陋的硬件调用接口

        隐藏了丑陋的硬件调用接口,为应用程序员提供调用硬件资源的更好,更简单,更清晰的模型(系统调用接口)。应用程序员有了这些接口后,就不用再考虑操作硬件的        细节,专心开发自己的应用程序即可。 例如:操作系统提供了文件这个抽象概念,对文件的操作就是对磁盘的操作,有了文件我们无需再去考虑关于磁盘的读写控制          (比如控制磁盘转动,移动磁头读写数据等细节)

      2. 使应用程序的对硬件资源的竞态请求变的有序化

            例如:很多应用软件其实是共享一套计算机硬件,比方说有可能有三个应用程序同时需要申请打印机来输出内容,那么a程序竞争到了打印机资源就打印,然后可能          是b竞争到打印机资源,也可能是c,这就导致了无序,打印机可能打印一段a的内容然后又去打印c...,操作系统的一个功能就是将这种无序变得有序。           

  2.同步、异步、阻塞、非阻塞

     总结:

        1)阻塞、非阻塞:进程/线程访问的数据是否就绪,是否需要进程/线程去等待,等待则是阻塞,不等待干别的事就是非阻塞。

        2)同步、异步:同步就是需要自己去查询或读取数据,异步就是不需要自己去查询或读取数据由操作系统完成。

  3.进程

    1)进程的概念
      程序:指令和数据的有序集合

      进程:程序在处理机上的一次执行过程

           进程是计算机中资源分配的最小单位。

第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储          处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。

         第二,进程是一个“执行中的程序”。程序是一个没有生命的实体,只有处理器赋予程序生命时(操作系统执行之),它才能成为一个活动的实体,我们称其为进程。[3] 进程          是操作系统中最基本、重要的概念。是多道程序系统出现后,为了刻画系统内部出现的动态情况,描述系统内部各道程序的活动规律引进的一个概念,所有多道程序          设计操作系统都建立在进程的基础上。

    2)进程的并行和并发

        并行:两者同时执行

        并发:在一定资源情况下,两者交替轮流使用资源。

    3)进程的三状态

       就绪,阻塞,运行

       

       

    4)进程的创建和结束

       (1)、创建

          系统初始化

          在运行的进程中开启一个子进程

          与用户交互时,开启一个进程

          一个批处理作业初始化

       (2)、结束

          正常退出

          出错退出

          严重错误

          被其他进程kill

  4.进程模块multiprocess

    1)进程的创建

       1 开启一个子进程的两个方法:

       方法一:

        

from multiprocessing import Process
import os def func(name):
print('我的进程id:%s,我父进程id: %s' %(os.getpid(),os.getppid()))
print('hello, I AM %s' % name) # 为什么要加这个main判断的原因,是因为win下,创建子进程时,会将父进程的数据等通过
# import方法导入子进程空间,如果不加main判断就会陷入一直递归导入的情况。
# 而linux和mac系统不存在此问题,因为它们是将数据通过copy方式导入子进程空间的。
if __name__ == '__main__':
print('我的进程id:%s,我父进程id: %s' % (os.getpid(), os.getppid()))
p = Process(target=func, args=('wahaha', ))
p.start() # 启动一个子进程任务func

传入函数的方法

                       方法二:

class MyProcess(Process):

    def __init__(self, num):
super().__init__()
self.num = num def run(self):
# print('%s,我的进程id:%s,我父进程id: %s' % (self.name,os.getpid(), os.getppid()))
print(self.num)
time.sleep(random.random())
print('*'*self.num) if __name__ == '__main__':
p_lst = []
for i in range(10):
p = MyProcess(i)
p.start()
p_lst.append(p)
for p1 in p_lst:
p1.join()
print('结束')

2 .进程的特点:

         父进程必须等待子进程结束后回收子进程的资源

         进程之间是数据隔离的,包括父子进程

         异步的特点--并发

     3.子进程传参数

      实例化Process类方式:args=(,)

      定义类继承Process类方式:通过类中__init__方法

     4.子进程返回值:不能直接获取到子进程中函数的返回值

        5. p.join方法,会一直阻塞进程结束,才会执行父进程下边的程序代码。

        6.守护进程

      #守护进程:主进程的<代码>执行完毕后,守护进程随之结束。而不管主进程开启的子进程是否执行完毕。

      

    2)进程同步控制

    3)进程间通信

    4)进程间的数据共享

    5)进程池

  

python全栈开发day31-操作系统介绍,异步、同步、阻塞、非阻塞,进程的更多相关文章

  1. python全栈开发,Day44(IO模型介绍,阻塞IO,非阻塞IO,多路复用IO,异步IO,IO模型比较分析,selectors模块,垃圾回收机制)

    昨日内容回顾 协程实际上是一个线程,执行了多个任务,遇到IO就切换 切换,可以使用yield,greenlet 遇到IO gevent: 检测到IO,能够使用greenlet实现自动切换,规避了IO阻 ...

  2. python全栈开发,Day40(进程间通信(队列和管道),进程间的数据共享Manager,进程池Pool)

    昨日内容回顾 进程 multiprocess Process —— 进程 在python中创建一个进程的模块 start daemon 守护进程 join 等待子进程执行结束 锁 Lock acqui ...

  3. python全栈开发day68-ORM操作:一般操作、ForeignKey操作、ManyToManyField、聚合查询和分组查询、F查询和Q查询等

    ORM操作 https://www.cnblogs.com/maple-shaw/articles/9403501.html 一.一般操作 1. 必知必会13条 <1> all(): 查询 ...

  4. python全栈开发day45-DOM操作、对象、定时器

    一.昨日内容回顾 1.内置对象 Array String Date Math 2.DOM事件三要素:事件源.事件.事件驱动程序 事件源,事件,事件驱动程序 3.获取事件源的三种方式 var oDiv ...

  5. Python 全栈开发【第0篇】:目录

    Python 全栈开发[第0篇]:目录   第一阶段:Python 开发入门 Python 全栈开发[第一篇]:计算机原理&Linux系统入门 Python 全栈开发[第二篇]:Python基 ...

  6. Python全栈开发【面向对象进阶】

    Python全栈开发[面向对象进阶] 本节内容: isinstance(obj,cls)和issubclass(sub,super) 反射 __setattr__,__delattr__,__geta ...

  7. Python全栈开发【面向对象】

    Python全栈开发[面向对象] 本节内容: 三大编程范式 面向对象设计与面向对象编程 类和对象 静态属性.类方法.静态方法 类组合 继承 多态 封装 三大编程范式 三大编程范式: 1.面向过程编程 ...

  8. Python全栈开发【模块】

    Python全栈开发[模块] 本节内容: 模块介绍 time random os sys json & picle shelve XML hashlib ConfigParser loggin ...

  9. Python全栈开发【基础四】

    Python全栈开发[基础四] 本节内容: 匿名函数(lambda) 函数式编程(map,filter,reduce) 文件处理 迭代器 三元表达式 列表解析与生成器表达式 生成器 匿名函数 lamb ...

随机推荐

  1. FastReport动态绑定只显示一条数据。

    产生这个问题的原因是因为需要把Band绑定DataSource.有两种方法 (1)DataBand data = report1.Report.FindObject("Data1" ...

  2. axios - 基于 Promise 的 HTTP 异步请求库

    axios 是基于 Promise 的 HTTP 请求客户端,可同时在浏览器和 node.js 中使用.Vue 更新到2.0之后,作者就宣告不再对 vue-resource 模块更新,而是推荐使用 a ...

  3. linux笔记_day03

    1.命令行展开{} mkdir -p a/b/{c,d/e} 2.-v verbose 详细的 3.touch touch - change file timestamps 4.stat 文件  显示 ...

  4. 转载 - CNN感受野(receptive-fields)RF

    本文翻译自A guide to receptive field arithmetic for Convolutional Neural Networks(可能需要FQ才能访问),方便自己学习和参考.若 ...

  5. Tomcat中catalina run后台运行脚本

    编写启动脚本start.sh,将其放在/srv/aubapp/bin/下 #!/bin/sh #设置web应用程序目录 export CATALINA_BASE="/srv/aubapp&q ...

  6. Linux 内核里的“智能指针”【转】

    转自:http://blog.jobbole.com/88279/ 众所周知,C/C++语言本身并不支持垃圾回收机制,虽然语言本身具有极高的灵活性,但是当遇到大型的项目时,繁琐的内存管理往往让人痛苦异 ...

  7. 写好shell脚本的13个技巧【转】

    有多少次,你运行./script.sh,然后输出一些东西,但却不知道它刚刚都做了些什么.这是一种很糟糕的脚本用户体验.我将在这篇文章中介绍如何写出具有良好开发者体验的 shell 脚本. 产品的最终用 ...

  8. jvm系列六、windows用jdk自带工具jps、jstack找出性能最差的代码

    一.运行程序TestGC 二.用jps找出当前应用的进程号PID 到jdk安装目录的bin目录下输入: jps -l PID为1264 三.启动Process Explorer(下载地址:https: ...

  9. mq命令帮助文档

    https://www.ibm.com/support/knowledgecenter/zh/SSFKSJ_7.5.0/com.ibm.mq.ref.adm.doc/q083180_.htm

  10. 简单解决“ORA-27100: shared memory realm already exists”的问题

    背景 看到这篇文章,算是当初记录过程的一篇了,不像别的,只是有个结果算火.只是感觉到现在可能是碰不见这个问题了,现在哪有32位的oracle啊.可见技术随着岁月的变化,真不知10年后再看今天的问题,可 ...