• python学习Day34--操作系统基础理论


    一、回顾

    1、TCP编码流程:——type=SOCK_STREAM

      导入模块                                                             导入模块

      实例化对象  套接字                                       实例化对象

      绑定ip+port     bind(元组)                               

      监听        listen( )

      等待连接      accept                                       连接服务器  connect/connect_ex(不抛异常,返回错误码)

      收发        recv/send                                  收发

      关闭        close                                         关闭

    2、UDP编码流程:——type=SOCK_DGRAM

      导入模块                                                             导入模块

      实例化对象  套接字                                        实例化对象

      绑定ip+port  bind( )

      收发     recvfrom/sendto                         收发

      关闭        close                                          关闭

    3、TCP与UDP的区别:

      tcp面向连接,可靠,面向字节流形式,只允许一个服务器在同一时间和一个客服端保持通讯。

      udp不面向连接,不可靠,面向数据包形式,快,不粘包;允许一个服务器在同一时间和多个客服端保持连接。

    4、交换机的通讯方式:广播、单播、组播

    5、TCP发生粘包的问题:

      粘包:发送端发送数据后,接收端不知道应该如何接收,导致的数据混乱。

      原因:合包机制,拆包机制。(都发生在发送端)

    6、OSI五层模型:

      应用层

      网络层

      传输层

      数据链路层

      物理层

    二、计算机

    1、组成:

    (1)主板:固化(寄存器,是直接和cpu进行交互的一个硬件)

    (2)CPU:中央处理器——计算(数字计算和逻辑计算)和控制(控制所有硬件协调工作)

    (3)存储:硬盘,内存

    (4)输入设备:键盘,鼠标,话筒

    (5)输出设备:显示器,音响,打印机

    2、发展历史:

    第一代计算机:电子管计算机,极其耗电,体积庞大,散热量特别高;

    第二代计算机:晶体管计算机,比第一代有所优化;

    第三代计算机:(白色大头计算机)集成电路计算机,一个板子固话几十到上百个小硬件;

    第四代计算机:大型集成电路计算机,一个板子可以达到固话十几万个硬件;

    第五代计算机:甚大型集成电路计算机。

    3、计算机操作系统:

    (1)操作系统是一个软件,是一个能直接操纵硬件的一个软件。

    (2)微软研发的windows操作系统

    (3)单处理机系统中多道程序运行时的特点:

      ① 多道:计算机内存中同时存放几道相互独立的程序;

      ② 宏观上并行:同时进入系统的几道程序都处于运行过程中,即它们开始了各自的运行,但都未运行完毕;

      ③ 微观上串行:实际上,各道程序轮流第用CPU,并交替运行。

    (4)多道批处理系统:

      ① 多道:系统内可同时容纳多个行业。

      ② 成批:在系统运行过程中,不允许用户与其作业发挥等交互作用。

      无论什么时候,操作系统的目标总是:让用户勇气爱更加的轻松。高可用,低耦合。

    (5)分时系统:

      把处理机运行的时间分成很短的时间片,按时间片轮流把处理机分配给各联机作业人使用。

      ① 多路性;② 交互性;③ 独立性;④ 及时性。

    (6)实时系统:一般很少见,一般用于军事和工业生产中。

    4、语言的发展史

    (1)计算机识别的是二进制,

      机器语言(1和0组成)——>汇编语言——>高级语言(面向过程语言:C;面向对象语言:C++,JAVA,python,.net,php)

    5、操作系统的作用:

    (1)封装所欲硬件接口,让各种用户使用电脑更加轻松;

    (2)是对计算机内所有资源进行合理的调度和分配。

    三、进程的理论

    1、进程:

      是指正在执行的程序;是程序执行过程中的一次 指令,数据集等的集合;也可以叫做程序的一次执行过程;进程是一个动态的概念。

      进程有三大部分组成:代码段,数据段,PCB:进程管理控制。

    2、进程的特点:

    (1)动态性:进程的实质是程序在多道程序系统中的一次执行过程,进程是动态生产,动态消亡的。

    (2)并发性:任何进程都可以同其他进程一起并发执行。

    (3)独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位。

    (4)异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进。

    3、进程的三大基本状态

    (1)就绪状态:已经获得运行需要的所有资源,处理CPU。

    (2)执行状态:已经获得了所有资源包括CPU,处于正在运行。

    (3)阻塞状态:因为各种原因,进程放弃了CPU,导致进程无法继续执行,此时进程处于内存中,继续等待获取CPU。

    (挂起状态:因为各种原因,进程放弃了CPU,导致进程无法继续执行,此时进程被提出内存)

     四、多进程演示

     1 from bs4 import BeautifulSoup
     2 import requests
     3 import time
     4 from multiprocessing import Process
     5 
     6 headers = {
     7     'user-agent':'Mozilla/5.0 (Windows NT 6.1; W…) Gecko/20100101 Firefox/61.0'
     8 }
     9 
    10 def get_url(url):
    11     res = requests.get(url)
    12     li = []
    13     if res.status_code == 200:
    14         soup = BeautifulSoup(res.text,'html.parser')
    15         re = soup.find('div',class_='beautiful_pictures_show').find_all('li')
    16         for i in re:
    17             s = i.find('img').get('src')
    18             li.append(s)
    19     return li
    20 
    21 
    22 def get_img(url):
    23     # url = 'http://pic.xiao4j.com/upload/meinv/2018_0816/144048869.jpg_270_410.jpg'
    24     # s = url.split('/')[-1].split('_')[0]
    25     # print(s)
    26     r = requests.get(url)
    27     if r.status_code == 200:
    28         print()
    29         with open(url.split('/')[-1].split('_')[0],'wb') as f:
    30             f.write(r.content)
    31 
    32 if __name__ == '__main__':
    33     url = 'http://www.xiao4j.com/beauty/index.html'
    34     img_url = get_url(url)
    35     start = time.time()
    36     p_l = []
    37     for i in img_url:
    38         # get_img(i)
    39         p = Process(target=get_img,args=(i,))
    40         p.start()
    41         p_l.append(p)
    42 
    43     [i.join() for i in p_l]
    44     print(time.time() - start)
  • 相关阅读:
    jq 获取下一个兄弟原素 下拉箭头旋转
    weui复选框无法传值
    小乌龟 coding 克隆、提交一直提示无权限
    mysql 时间操作
    Mysql表结构导出excel(含数据类型、字段备注注释)
    sql server数据库文件的迁移(mdf&ldf文件)
    thinkphp 5 _initialize 使用问题
    thinkphp5 or
    找实习与校招总结——经验与收获2021
    千兆网数据CRC检验和过滤
  • 原文地址:https://www.cnblogs.com/fengxb1213/p/12664188.html
Copyright © 2020-2023  润新知