计算机基础
文章平均质量分 64
包含计算机网络和操作系统等内容
AllardZhao
学习的练习生,晓康。Python和Go语言追随者,喜欢学一些新技术,关注新技术发展动态。不断前进拥抱变化,永远确定的就是不确定。
展开
-
进程和线程的区别 及 进程间通信的方式
1.进程和线程的区别进程和线程对比进程是对运行时程序的封装,是系统资源调度和分配的基本单位,进程可以看做是操作系统的并行机制。线程是进程的子任务,cpu 调度和分配的基本单位,实现进程内并发(或并行)一个进程可以包含多个线程,线程依赖进程存在,并共享进程内存。 并行和并发区别: 并行就是真正的多核CPU去执行,对于Python没有办法充分利用多个C...原创 2019-07-31 21:52:53 · 1692 阅读 · 0 评论 -
什么是线程安全及解决线程安全方式
1. 什么是线程安全? 线程是因为共享进程的数据所以才会出现线程安全的问题。多个线程同时去修改数据,比如两个线程都分别去修改数据,一个线程把另一个线程的修改的数据给覆盖,这样就会出现线程安全问题。就是一个线程的修改被另一个线程的修改给覆盖掉了。如果想安全的去访问数据就需要一些机制,如锁机制,当一个进程访问的时候不让别的进程访问这样就安全了。Python 哪些操作是线程安...原创 2019-07-31 21:49:24 · 588 阅读 · 0 评论 -
什么是虚拟内存和内存抖动
1.什么是虚拟内存通过把一部分暂时不用的内存信息放到硬盘上局部性原理,程序运行时候只有部分必要的信息装入内存内存中暂时不需要的内容放到硬盘上,当需要的时候从新交换回来系统似乎提供了比实际内存大得多的容量,称之为虚拟内存(1)局部性分为时间局部性和空间局部性 时间局部性就是如果一块内存被访问的时候,很有可能在不远的将来还会被访问 ...原创 2019-07-31 21:28:28 · 1372 阅读 · 0 评论 -
进程同步与互斥的区别 及 死锁产生的原因
1.进程同步与互斥的区别?互斥:某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。互斥无法限制访问者对资源的访问顺序即访问时无序的。如:接学家就餐问题,每个人手中只有一个筷子。同步:基于互斥,经其他机制实现访问者对资源的有序访问。大多数情况下,同步已经实现了互斥,例如:写入资源是互斥的,A写东西时候是不允许B同时写入;少数情况下,可以允许多个访问者同时访问资源。2.死锁...原创 2019-09-05 19:26:53 · 2685 阅读 · 0 评论 -
什么是虚存、实存、共享内存 及 makefile 的作用
1.什么是虚存、实存、共享内存?虚存 ( VIRT = SWAP交换区 + RES 实际占用实存):进程 "需要的" 虚拟内存大小。包括进程使用库、代码、数据,以及malloc、new分配的堆空间和分配的栈空间等。例如:申请10MB,使用1MB,依然增长到10MB。实存( RES = CODE代码 + DATA数据 ):包括使用中的 malloc, new分配的堆空间和分配的栈空间,但不包...原创 2019-09-05 19:32:44 · 3124 阅读 · 0 评论 -
进程的调度算法 和 页面的置换算法 都有哪些
1.进程的调度算法都有哪些?先来先服务(FCFS,First Come First Service)短作业优先(SJF,shortest process next)时间片轮转调度算法(CRR,Round Next)高响应优先(HRRN,Highest Response Ratio Next)优先权调度算法多级队列调度算法2.页面的置换算法都有哪些?最佳置换算法先...原创 2019-09-05 19:29:39 · 541 阅读 · 0 评论 -
图解进程都有哪些状态及状态之间关系转换
就绪状态:已获除处理机(CPU)以外所需资源,等待分配处理机资源。运行状态:占用处理机资源运行,此状态 进程数 <= CPU数。阻塞状态:进程等待某种条件,在条件满足之前无法执行。图解:new 新启动进程,ready 就绪态,runing 运行态,waiting 阻塞态,terminated 进程终止。 new新启动进程已获除CPU以外资源后被准许(admitted)进...原创 2019-09-05 19:22:28 · 2003 阅读 · 1 评论 -
操作系统的内存管理机制--分页和分段 及 分页和分段的区别
1.什么是分页机制操作系统为了高效管理内存,减少内存碎片,所以采用分页机制逻辑地址和物理地址分离的内存分配管理方案程序的逻辑地址划分为固定大小的页(Page)物理地址划分为同样大小的帧(Frame)通过页表对应逻辑地址和物理地址 图解:左边是用户程序,对于用户程序关心的是逻辑地址,通过页表来获取物理地址。页表里面映射了逻辑地址和物理地址的对应关系,通过中...原创 2019-07-31 21:23:26 · 4610 阅读 · 2 评论 -
HTTP 的 GET/POST区别 及 cookie 和 session 区别
1.HTTP GET/POST 区别 常见的 HTTP 方法:GET / POST / PUT / DELETE GET 经常用来获取操作,POST 用来做创建操作、PUT更新、DELETE 删除 HTTP GET VS POSTRestful 语义上一个是获取,一个是创建GET 是幂等的,就是对服务器没有副作用;POST 非幂等,就是每一次创建一个新的东西会影响...原创 2019-08-06 18:28:07 · 1587 阅读 · 0 评论 -
TCP socket 编程原理 及 使用 socket 发送HTTP请求
1.TCP socket 编程原理? 了解TCP socket 编程原理如何使用 socket 模块如何建立TCP socket 客户端和服务端客户端和服务端之间的通信 socket建立连接的过程?服务器建立监听,socket,bind,listen客户端发送请求,connect,send连接确认,accept,response首先在服务器端建立...原创 2019-08-06 18:38:23 · 819 阅读 · 0 评论 -
浏览器输入一个url 中间经历的过程
一个常见的考题,要回答全面不容易,可以从以下角度回答问题中间涉及到了哪些过程每个过程包含哪些网络协议每个协议都干了什么?以上就是回答这个问题的思路。(提醒:知道什么说什么,不要把自己带坑里,熟悉到哪一层协议就说到哪一层)网络是分层的常见的五层模型:物理层、链路层、网络层、传输层、应用层。OSI七层协议:物理层、数据链路层、网络层、运输层、会话层、表示层、应用层。...原创 2019-08-01 21:54:45 · 983 阅读 · 1 评论 -
如何提升并发能力 和 IO 多路复用及实现
1.五种 IO 模型 Unix网络编程中提到了5种网络模型Blocking IO 阻塞式IO,一次只能处理一个请求。Noblocking IO 非阻塞式IOIO multiplexing IO多路复用(高并发框架使用)Signal Driven IO 信号驱动的IOAsynchronous IO 异步IO2.如何提升并发能力 如何提升服务器的并发能力呢?就是如何...原创 2019-08-06 18:50:29 · 615 阅读 · 0 评论 -
Python并发网络库 Tornado / Gevent 和 异步编程库 Asyncio 及其示例
1.你用过哪些并发网络库? Tornado vs Gevent vs AsyncioTornado 并发网络库和同时也是一个web微框架Gevent 绿色线程(greenlet)实现并发,猴子补丁修改内置 socketAsyncio Python3 内置的并发网络库,基于原生协程2.Tornado框架 Tornado 使用于微服务,实现 Restful 接口底层基...原创 2019-08-06 19:00:40 · 1546 阅读 · 0 评论 -
TCP和UDP区别
1.TCP / UDP 的区别TCP vs UDPTCP 是 面向连接的、可靠的、基于字节流UDP 是 无连接、不可靠、面向报文面向连接就是TCP三次握手过程,UDP就没有可靠指的是TCP每一次发送一个包之后都会通过对方确认来确保TCP包数据是被对方收到的,但是UDP发完之后就不管了。基于字节流如TCP有个缓冲区,应用层使用TCP的Socket发送请求之后,tcp在缓存区里...原创 2019-08-06 18:01:46 · 304 阅读 · 0 评论 -
TCP的三次握手和四次挥手 跟图详细解释
1.TCP三次握手过程 TCP三次握手,状态转换。用 wireshark 抓包更直观。 记住重要两点,第一状态转换,第二就是发包的内容。SYN 同步标志位,SYN_SENT同步已发送状态ACK 确认标志位,SYN_RECV 同步收到状态ESTABLISHED 已建立连接状态 CLOSED 关闭状态 LISTEH 收听状态TCP连接的建...原创 2019-08-02 17:22:05 · 573 阅读 · 3 评论 -
HTTP常见状态码 及 什么是 HTTP 长连接
1.HTTP常见状态码HTTP响应返回的状态码,了解常见的HTTP 相应状态码1** 信息。服务器收到请求,需要请求者继续执行操作。(信息类状态码)2** 成功。操作被成功接受并处理。 (成功状态码)3** 重定向。需要进一步操作完成请求。(重定向状态码),301和302区别:301永久重定向,302临时重定向。4** 客户端错误。请求有语法错误或者无法完成请求。(客户端错误,...原创 2019-08-06 18:21:22 · 683 阅读 · 0 评论 -
HTTP协议由哪些部分组成?
1.HTTP协议由哪些部分组成?可以使用抓包工具去查看和理解HTTP 请求的组成 状态行、请求头、消息主体三部分组成。HTTP 响应的组成 状态行、响应头、响应正文① 在命令行下查看HTTP协议,可以使用 curl 或 http 命令发起HTTP请求[root@localhost ~]# curl www.baidu.com # 使用...原创 2019-08-06 18:15:43 · 26736 阅读 · 2 评论 -
查看HTTP请求的内容
1.打开百度搜索hehe,进入开发者工具界面,先清理数据再刷新,查看请求头可以看到Request Headers的方法 GET接着是路径: /s?ie=utf-8&mod=1&isbd=1&isid=5954F4BE75611926&ie=utf-8&f=8&rsv_bp=1&tn=site888_3_pg&wd=hehe...原创 2019-08-06 18:07:55 · 4714 阅读 · 0 评论 -
Python实现Socket编程
1.如何使用Python实现Socket编程socket又称套接字,应用程序通过套接字向网络发出请求。应用程序通过套接字应答网络请求。使主机间或者一台计算机上的进程间可以通讯。# 服务端import socket # 导入socket模块s = socket.socket() # 创建socket对象s.bind(('127.0.0.1', 66...原创 2019-08-30 21:55:00 · 463 阅读 · 0 评论 -
OSI七层模型指的是哪些内容 及 计算机网络结构对比
1.OSI七层模型指的是哪些内容?OSI是Open System Interconnection的缩写,意为开放式系统互联。 物理层: 建立、维护、断开物理连接。数据链路层:逻辑连接、硬件地址寻址、差错校验。 网络层: 逻辑地址寻址,不同网络之间的路径选择,IP。 传输层: 传输数据的协议,TCP、UDP。 会话层: 建立、管理、终...原创 2019-09-05 15:55:26 · 1514 阅读 · 0 评论