前言

计算机网络、计算机操作系统这两个“兄弟”是所有开发岗位都需要“结拜”的,不管你是 Java、C++还是测试。对于后端开发的童鞋来说,计算机网络的重要性不亚于语言基础,毕竟平时开发经常会和网络打交道,比如:抓个包等等。所以对这一块知识点的准备还是要抱着敬畏之心,不要放过任何一个漏网之题。下面来看看华为工程师分享的计算机网络与操作系统吧:

操作系统概述

注:本章内容较长,请大家耐心看到最后。绝对有收获,文末后这两份《计算机操作系统》与《计算机网络协议》PDF的获取方式,如果这篇文章对大家有帮助的话,也别忘记了,一键三连哦,你的支持就是我最大的创作鼓励。

操作系统

现代计算机系统由一个或多个处理器、主存、打印机、键盘、鼠标、显示器、网络接口以及各种输入/输出设备构成。

计算机硬件简介

操作系统与运行操作系统的内核硬件关系密切。操作系统扩展了计算机指令集并管理计算机的资源。因此,操作系统因此必须足够了解硬件的运行,这里我们先简要介绍一下现代计算机中的计算机硬件。

进程和线程

进程.

操作系统中最核心的概念就是进程,进程是对正在运行中的程序的一个抽象。操作系统的其他所有内容都是围绕着进程展开的。进程是操作系统提供的最古老也是最重要的概念之一。即使可以使用的CPU只有一个,它们也支持(伪) 并发操作。它们会将一个单独的CPU抽象为多个虚拟机的CPU。可以说:没有进程的抽象,现代操作系统将不复存在。

进程模型

在进程模型中,所有计算机上运行的软件,通常也包括操作系统,被组织为若干顺序进程简称为进程。 一个进程就是一个正在执行的程序的实例,进程也包括程序计数器、寄存器和变量的当前值。从概念上来说,每个进程都有各自的虚拟CPU,但是实际情况是CPU会在各个进程之间进行来回切换。

线程

在传统的操作系统中,每个进程都有一个地址空间和一个控制线程。事实上,这是大部分进程的定义。不过,在许多情况下,经常存在同一地址空间中运行多个控制线程的情形,这些线程就像是分离得进程。下面我们就着重探讨一下什么是线程

多线程解决方案

调度

当一个计算机是多道程序设计系统时,会频繁的有很多进程或者线程来同时竞争CPU时间片。当两个或两个以上的进程/线程处于就绪状态时,就会发生这种情况。如果只有一个CPU可用,那么必须选择接下来哪个进程/线程可以运行。操作系统中有一个叫做调度程序的角色存在,它就是做这件事儿的,该程序使用的算法叫做调度算法

尽管有一些不同,但许多适用于进程调度的处理方法同样也适用于线程调度。当内核管理线程的时候,调度通常会以线程级别发生,很少或者根本不会考虑线程属于哪个进程。下面我们会 首先专注于进程和线程的调度问题,然后会明确的介绍线程调度以及它产生的问题。

调度算法的目标

为了设计调度算法,有必要考虑一下什么是好的调度算法。有一些目标取决于环境(批处理、 交互式或者实时)但大部分是适用于所有情况的,下面是一些需要考量的因素,我们会在下面一起讨论。

内存

一种存储器抽象:地址空间

把物理内存暴露给进程会有几个主要的缺点:第-个问题是,如果用户程序可以寻址内存的每个字节,它们就可以很容易的破坏操作系统,从而使系统停止运行(除非使用 IBM 360那种lock-and-key模式或者特殊的硬件进行保护)。即使在只有一个用户进程运行的情况下,这个问题也存在。第二点是,这种模型想要运行多个程序是很困难的(如果只有一个CPU那就是顺序执行)。在个人计算机上,一般会打开很多应用程序,比如输入法、电子邮件、浏览器,这些进程在不同时刻会有一个进程正在运行,其他应用程序可以通过鼠标来唤醒。在系统中没有物理内存的情况下很难实现。

页表

软件TLB管理

直到现在,我们假设每台电脑都有可以被硬件识别的页表,外加一个TLB。在这个设计中,TLB管理和处理TLB错误完全由硬件来完成。仅仅当页面不在内存中时,才会发生操作系统的陷入。

在以前,我们上面的假设通常是正确的。但是,许多现代的RISC 机器,包括SPARC、MIPS 和HPPA,几乎所有的页面管理都是在软件中完成的。

文件系统

文件命名

文件是一种抽象机制,它提供了-种方式用来存储信息以及在后面进行读取。可能任何- -种机制最重要的特性就是管理对象的命名方式。在创建一个文件后, 它会给文件一个命名。 当进程终止时,文件会继续存在,并且其他进程可以使用名称访问该文件。

文件命名规则对于不同的操作系统来说是不一样的,但是所有现代操作系统都允许使用1 - 8个字母的字符串作为合法文件名。

某些文件区分大小写字母,而大多数则不区分。UNIX 属于第一类;历史悠久的MS-DOS 属于第二类(顺便说一句,尽管MS-DOS历史悠久,但MS-DOS仍在嵌入式系统中非常广泛地使用,因此它绝不是过时的) ;因此,UNIX 系统会有三种不同的命名文件: maria 、Maria 、MARIA 。 在MS-DOS,所有这些命名都属于相同的文件。

文件类型

很多操作系统支持多种文件类型。例如,UNIX (同样包括OS X)和Windows都具有常规的文件和目录。除此之外,UNIX 还具有字符特殊文件 和块特殊文件。常规文件是包含有用户信息的文件。用户一般使用的文件大都是常规文件,常规文件一般包括可执行文件、文本文件、图像文件,从常规文件读取数据或将数据写入时,内核会根据文件系统的规则执行操作,是写入可能被延迟,记录日志或者接受其他操作。

字符特殊文件和输入/输出有关,用于串行I/O类设备,如终端、打印机、网络等。块特殊文件用于磁盘类设备。我们主要讨论的是常规文件。

目录

文件系统通常提供目录或者文件夹用于记录文件的位置, 在很多系统中目录本身也是文件,下面我们会讨论关于文件,他们的组织形式、属性和可以对文件进行的操作。

一级目录系统

目录系统最简单的形式是有一个能够包含所有文件的目录。这种目录被称为根目录,由于根目录的唯一性,所以其名称并不重要。在最早期的个人计算机中,这种系统很常见,部分原因是因为只有一个用户。下面是一个单层目录系统的例子

文件系统布局

文件的实现

链表分配

I/O

中断处理程序

错误处理

磁盘在制造的过程中可能会有瑕疵,如果瑕疵比较小,比如只有几位,那么使用坏扇区并且每次只是让ECC纠正错误是可行的,如果瑕疵较大,那么错误就不可能被掩盖。

一般坏块有两种处理办法,一种是在控制器中进行处理; 一种是在操作系统层面进行处理。

这两种方法经常替换使用,比如一个具有30个数据扇区和两个备用扇区的磁盘,其中扇区4是有瑕疵的。

死锁

资源

大部分的死锁都和资源有关,在进程对设备、文件具有独占性(排他性)时会产生死锁。我们把这类需要排他性使用的对象称为资源。资源主要分为可抢占资源和不可抢占资源

可抢占资源和不可抢占资源

死锁检测和恢复

第二种技术是死锁的检测和恢复。这种解决方式不会尝试去阻止死锁的出现。相反,这种解决方案会希望死锁尽可能的出现,在监测到死锁出现后,对其进行恢复。下面我们就来探讨一下死锁的检测和恢复的几种方式

破坏死锁

计算机网络

注:笔记文档知识点过多,若要全部展示出来比较困难,以下以部分截图的方式展示给大家作为参考学习,大家一键三连之后【见下图即可获取】这两份文档,有需要的朋友可以自取

HTTP常见面试题

HTTP基本概念

HTTP与HTTPS

IP全家桶

IP基本认识

IP在TCP/IP参考模型中处于第三层,也就是网络层。

网络层的主要作用是:实现主机与主机之间的通信,也叫点对点通信。

TCP三次握手和四次挥手面试题

TCP基本认识

我们先来看看TCP头的格式,标注颜色的表示与本文关联比较大的字段,其他字段不做详细阐述。

TCP三次握手过程和状态变迁

TCP是面向连接的协议,所以使用TCP前必须先建立连接,而建立连接是通过三次握手来进行的。

TCP四次挥手过程和状态变迁

天下没有不散的宴席,对于TCP连接也是这样,TCP 断开连接是通过四次挥手方式。

双方都可以主动断开连接,断开连接后主机中的「资源」将被释放。

针对TCP应该如何Socket编程?

图解TCP重传、滑动窗口、流量控制、拥塞控制

超时重传

重传机制的其中一个方式,就是在发送数据时,设定一个定时器, 当超过指定的时间后,没有收到对方的ACK 」确认应答报文,就会重发该数据,也就是我们常说的超时重传。

流量控制

「看得见」TCP

解密TCP三次握手和四次挥手

既然学会了tcpdump和Wireshark两大网络分析利器,那我们快马加鞭,接下用它俩抓取和分析HTTP协议网络包,并理解TCP三次握手和四次挥手的工作原理。

TCP快速建立连接

客户端在向服务端发起HTTP GET请求时,一个完整的交互过程,需要2.5个RTT的时延。

由于第三次握手是可以携带数据的,这时如果在第三次握手发起HTTP GET请求,需要2个RTT的时延。

但是在下一次(不是同个TCP连接的下一次)发起HTTP GET请求时,经历的RTT也是一样,如下图:

零窗口通知与窗口探测

假设接收方处理数据的速度跟不上接收数据的速度,缓存就会被占满,从而导致接收窗口为0,当发送方接收到零窗口通知时,就会停止发送数据。

由于笔记涉及到的知识点与内容极多,就不一一展示给大家了,这份《计算机网络操作系统》《图解网络》需要完整版笔记的朋友,可以一键三连之后,【见下图】来获取!!

当然,单单有文档看是远远不够的,还有视频和相匹配的课件进行学习提升,努力把计算机网络这一块儿给搞明白,相信一定会有不凡的人生!!

TCP/IP/网络IO学习视频

TCP/IP网络协议

网络IO

华为鸿蒙操作系统学习视频

还有课件分享

IO课件

TCP/IP课件

TCP/IP/IO网络通信视频和课件获取,一键三连之后【见下图】获取!

好了,今天就分享到这里了,希望大家能够好好学习,把计算机网络这一块儿给提升上来,也希望本文能够得到大家的喜欢!!

超神!华为工程师又爆新作,这两份“典藏限量级”计算机操作系统与计算机网络,让你圆梦BAT相关推荐

  1. 华为python工程师工资-华为工程师对Python编程的看法

    原标题:华为工程师对Python编程的看法 Python这么火,要不要学?作为一家超有实力的科技公司,华为工程师对Python编程的看法是什么呢?他们认为我们要追求Python编程火热的步伐吗? 在学 ...

  2. 如何开发一个鸿蒙的应用软件,别急,华为工程师已经告诉你了!动手开发鸿蒙系统的第一款应用

    如何开发一个鸿蒙的应用软件,别急,华为工程师已经告诉你了! 此前从未能有一个手机操作系统有鸿蒙OS这样令我这么期待,从去年年底开始,有关鸿蒙OS的消息就一直牵动我的心,大家都对这一华为自研的系统格外关 ...

  3. 菜鸟程序员的超神之路——从校园到职场

    码农咖啡馆近日收到一位大三学生的留言,表达了实习期的一些困惑:压力大.工作内容琐碎.导师又没多少耐心指点.看到这篇幅很长的苦恼,我突然觉得有责任去为他(她)做些事情.这世界上仅有极少的天分和运气兼备的 ...

  4. 偷偷超了华为和小米,他才是真正的人生大赢家!

    偷偷超了华为和小米,他才是真正的人生大赢家! 影子金融mp2016-09-17 10:28:21华为 小米 OPPO阅读(135739)评论(252) 中国最赚钱手机竟不是华为.小米等知名品牌,而是步 ...

  5. 菜鸟程序员的超神之路

    博主说:本文主要讲述了从校园到职场的六大误区,值得即将毕业的在校大学生借鉴,他山之石可以攻玉,要善假于外物. 正文 码农咖啡馆近日收到一位大三学生的留言,表达了实习期的一些困惑:压力大.工作内容琐碎. ...

  6. 华为工程师对Python编程的看法

    Python这么火,要不要学?作为一家超有实力的科技公司,华为工程师对Python编程的看法是什么呢?他们认为我们要追求Python编程火热的步伐吗? 编程语言发展得非常之快,后起之秀中Python显 ...

  7. 谷歌自揭“家丑”:医疗AI实验室表现超神,临床结果却不佳

    来源:澎湃新闻 在医疗领域,尤其是在医学影像筛查过程中,人工智能常被描述为完美的工作者.它们能准确识别疾病,拥有人类专家级的发现能力,还不知疲倦.但与许多技术一样,在实验室取得成功是一回事,而到了临床 ...

  8. UWA官方Demo新增《小米超神》,全面揭秘重度手游的性能表现!

    还记得UWA[博观约取]专栏推荐的<小米超神>吗?作为一款重度的MOBA手游,它在不同配置的移动设备上,无论是画面表现力,还是性能开销都非常优秀.我们曾公布过该游戏的主要性能数据,当然其出 ...

  9. 【正一专栏】曼彻斯特德比落幕——曼城独孤求败继续超神

    曼彻斯特德比落幕--曼城独孤求败继续超神 原创 2017-12-11 九天 九天时空 从来没有一场曼彻斯特德比像今天凌晨这场这样引人注目,先不说两队加起来超过10亿英镑的身价,单单只说瓜迪奥拉和穆里尼 ...

最新文章

  1. Roundcube Webmail信息泄露漏洞(CVE-2015-5383)
  2. 15行Python 仿百度搜索引擎
  3. mysql的root用户密码_MySQL的root用户密码忘了 , 该怎么办?
  4. junit:junit_处理JUnit中异常的另一种方法:catch-exception
  5. android字体等宽,Android等宽字体大小
  6. 同样是创业,同样是两年,有的已经做了几千万,这边已经内斗死了
  7. 【光学】基于matlab GUI光栅实验【含Matlab源码 1176期】
  8. 诺基亚java闪退_回顾诺基亚N9:诺基亚手机颜值巅峰,却在发布7天后被“放弃”...
  9. Maven使用详解,非常详细
  10. iPhone XS、iPhone XR、iPhone XS Max 屏幕尺寸,分辨率,PPI 详细数据对比
  11. 一大批裁员降薪企业名单在路上,你中了吗?
  12. led灯光衰怎么解决_揭秘LED灯具光衰原因
  13. java给文件夹加密码_用JavaScrpt 实现文件夹轻松加密 (转)
  14. Python窗体控制相关方法
  15. 算法进阶面试题07——求子数组的最大异或和(前缀树)、换钱的方法数(递归改dp最全套路解说)、纸牌博弈、机器人行走问题
  16. uni-app 上下滑动左右滑动
  17. Rxjava+retrofit+okHttp+mvp网络请求数据
  18. 计算机专业课只考c语言的学校,【择校必看】十三所计算机专业课只考数据结构的985院校!...
  19. 《初.中级网管要掌握的技术》我的技术我做主
  20. CSS实现鼠标不可点击,样式设置以及不可点击事件的行为

热门文章

  1. 快速实现地图迁移数据可视化
  2. 此URL不支持Http方法POST
  3. 自动驾驶汽车尚未成功:它还不能在雨中行驶 | 分析
  4. 又是受罪的一天,哎~
  5. windows常用cmd指令
  6. 51单片机七段数码管显示时钟无按键控制—①—74HC595版
  7. 贪心算法 骆驼补给问题
  8. 社招+内推|阿里影业-淘麦郎|前端|西安
  9. 利用MATLAB实现钢琴键的设计与仿真
  10. 用matlab求解传递矩阵,用传递矩阵及MATLAB求解船舶轴系振动