操作系统和计算机网络
文章平均质量分 79
学习计算机操作系统,计算机网络,计算机组成原理
林林林ZEYU
坚持
展开
-
977-操作系统内存管理课件(4)
虚拟内存的基本概念请求分页管理方式页面置换算法页面分配策略原创 2022-02-17 10:10:59 · 249 阅读 · 0 评论 -
976-操作系统内存管理课件(3)
基于分段存储管理方式段页式管理原创 2022-02-17 09:57:42 · 158 阅读 · 0 评论 -
975-操作系统内存管理课件(2)
基本分页存储管理基本地址变换结构具有快表的地址变换结构两级页表原创 2022-02-17 09:50:29 · 91 阅读 · 0 评论 -
974-操作系统内存管理课件(1)
内存管理覆盖与交换连续分配管理方式动态分区分配算法原创 2022-02-17 09:32:30 · 229 阅读 · 0 评论 -
973-操作系统内存基础知识
内存基础知识原创 2022-02-17 09:14:16 · 150 阅读 · 0 评论 -
916-关于共享内存
我们知道各进程之间是独立存在,互不影响的。有没有一种方式让这些进程之间产生联系呢?当然有!那就是共享内存。共享内存是进程间通信中最简单的方式之一。站在进程的角度来说,共享内存就是可以同时被多个进程访问的内存。由于所有进程共享同一块内存,因此这种通信方式效率非常高。为什么进程间的内存不是共享的吧?举一个例子,假设有 2 个进程同时想让某一物理地址保存一个值,A 进程想让这个物理地址保存 1,B 进程想让这个物理地址保存 2。那么这个物理地址到底应该保存哪个值?所以,为了将每个进程隔离开,设计者就想到一个原创 2021-12-17 20:42:08 · 843 阅读 · 0 评论 -
915-Linux内存回收之LRU算法
Linux内存回收之LRU算法内存 是操作系统非常重要的资源,操作系统要运行一个程序,必须先把程序代码段的指令和数据段的变量从硬盘加载到内存中,然后才能被运行。如下图所示:但内存资源是有限的,随着系统中运行的进程越来越多,系统中可用的内存就会越来越少。那么,当可用内存不足时,Linux 内核是怎么处理的呢?本文将会介绍,当可用内存不足时,Linux 内核的处理方式。一、内存不足的处理方式我们思考一下,当系统的可用内存不足时,进程继续申请内存会发生什么事情?当系统的可用内存不足时,内核为了保证进原创 2021-12-12 20:27:17 · 1110 阅读 · 0 评论 -
914-详解进程调度算法
进程调度算法先来先服务算法短作业优先算法高相应比优先算法时间片轮转情况2:假如说:优先级调度算法思考多级反馈队列调度算法总结原创 2021-12-11 14:03:39 · 374 阅读 · 0 评论 -
913-详解操作系统的进程调度
处理机调度进程调度的时机切换调度算法的评价指标原创 2021-12-11 12:54:14 · 362 阅读 · 0 评论 -
912-操作系统课件(3)
进程的状态进程的状态和转换进程控制原创 2021-12-11 12:18:06 · 311 阅读 · 0 评论 -
911-操作系统课件(2)
操作系统的运行机制和体系结构中断和异常系统调用原创 2021-12-11 11:26:53 · 192 阅读 · 0 评论 -
910-操作系统课件(1)
操作系统引言操作系统的特征操作系统的发展和分类原创 2021-12-11 10:27:19 · 223 阅读 · 0 评论 -
907-TCP三次握手
TCP 基础TCP 其实是非常复杂的协议,我们先聊一些基础的。我们知道 TCP 是一种可靠的协议,它主要通过解决这几个问题来实现可靠性的,分别是:乱序、丢包重传、流控、拥塞控制。通过从图中报文格式的字段,也能够简单了解到 TCP 的相关概念。TCP 在网络 OSI 七层模型中的第四层,TCP 包是没有 IP 地址的,但有源端口和目的端口,用来标识通信的进程。Sequence Number 是记录包的序号,TCP 会按照报文字节进行编号,它是用来解决包在网络中乱序的问题。Acknowledgemen原创 2021-12-09 14:04:17 · 180 阅读 · 0 评论 -
903-为什么网络 I/O 会被阻塞?
为什么网络 I/O 会被阻塞?我们应该都知道 socket(套接字),你可以认为我们的通信都要基于这个玩意,而常说的网络通信又分为 TCP 与 UDP 两种,下面我会以 TCP 通信为例来阐述下 socket 的通信流程。不过在此之前,我先来说说什么叫 I/O。I/O到底是什么?I/O 其实就是 input 和 output 的缩写,即输入/输出。那输入输出啥呢?比如我们用键盘来敲代码其实就是输入,那显示器显示图案就是输出,这其实就是 I/O。而我们时常关心的磁盘 I/O 指的是硬盘和内存之间转载 2021-12-07 00:22:11 · 166 阅读 · 0 评论 -
898-HTTP协议的各版本介绍
HTTP1.0优点1.简单HTTP基本的报文格式就是 header + body。2.灵活和易于扩展HTTP协议里的各类请求方法`状态码、头字段等都是可以自定义扩展的。同时 HTTP 由于是工作在应用层( OSI 第七层),则它下层可以随意变化。3.应用广泛和跨平台缺点1.无状态服务器不会去记忆 HTTP 的状态,所以不需要额外的资源来记录状态信息但是会导致它在完成有关联性的操作时会非常麻烦。例如登录->添加购物车->下单->结算->支付,这系列操作都要知道用原创 2021-12-05 01:43:22 · 612 阅读 · 0 评论 -
895-子网掩码的作用和用法
子网掩码的作用在设置电脑IP时,会碰到两个重要的参数,一个是IP地址,一个是子网掩码。IP地址是互联网上每个子网或每个主机在网络上的唯一身份标签,那子网掩码是干什么用的呢?随着互联网的发展,越来越多的网络产生,有的网络多则几百台主机,少则区区几台,这样就浪费了大量的IP地址,所以要划分子网。为了有序地区分和管理不同的子网,就需要使用子网掩码。子网掩码是一种用来指明一个IP地址所标示的主机处于哪个子网中。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络原创 2021-12-04 01:04:35 · 283 阅读 · 0 评论 -
886-域名、IP地址、URL关系
简要举例讲解:域名是个文字形式记录的IP地址IP地址是计算机在网络中的门牌号!URL是网页地址例如1: http://zhidao.baidu.com/question/14674128.html 是URLzhidao.baidu.com就是域名220.181.18.110 就是IP地址你通过录入URL http://zhidao.baidu.com/question/14674128.html让浏览器知道你要访问zhidao.baidu.com(域名)电脑就会把zhidao.baidu.co原创 2021-11-30 00:00:42 · 814 阅读 · 0 评论 -
883-内存管理两部曲之虚拟内存管理
传统存储管理存在的问题虚拟内存这个东西他为什么会出现?他出现的背景是什么?前文 内存管理两部曲之物理内存管理 提到:随着用户程序功能的增加,进程所需要的内存空间越来越大,进程空间很容易就突破了物理内存的实际大小,导致进程无法运行。因此,为了解决内存不足的情况,缓和大程序与小内存之间的矛盾,扩充内存容量势在必行。可以从物理和逻辑两方面来考虑扩充内存容量,物理扩容没啥技术含量,需要我们研究的自然是如何从逻辑上扩充内存容量。所谓逻辑扩充,就是说实际上物理内存的容量没有发生改变,但是它能装的东西却变多了,原创 2021-11-28 20:13:09 · 717 阅读 · 0 评论 -
882-内存管理两部曲之物理内存管理
内存管理总览先笼统地总结下内存管理到底是干啥的,下面这段话摘自《现代操作系统 - 第 3 版》:内存管理的任务就是有效地管理内存,即记录哪些内存是正确使用的,哪些内存是空闲的,在进程需要时为其分配内存,在进程使用完后释放内存。众所周知,当前计算机都是基于冯·偌依曼存储程序式的计算机,程序和数据在运行和使用时都需要存放在内存中。设计操作系统的重要目标之一就是提高计算机资源的利用率,而随着多核 CPU 的盛行,多道程序设计技术大行其道。因此,必须合理地管理内存空间,使尽量多的进程/作业能够同时存放于内原创 2021-11-28 19:35:08 · 668 阅读 · 0 评论 -
881-图解经典的进程调度算法
前言1. 调度的概念当 CPU 有一堆任务要处理时,由于其资源有限,这些事情就没法同时处理。这就需要确定某种规则来决定处理这些任务的顺序,这就是 “调度” 研究的问题。除了接下来将要说的进程调度,还有作业调度、内存调度等。回顾一下进程的三态模型:「运行态」(running):进程占有 CPU 正在运行。「就绪态」(ready):进程具备运行条件,等待系统分配 CPU 以便运行。「阻塞态」 / 等待态(wait):进程不具备运行条件,正在等待某个事件的完成。所谓进程调度,就是「从进程的就绪队原创 2021-11-28 13:59:07 · 3434 阅读 · 0 评论 -
879-OSI模型中各层单位-报文、报文段、数据报、数据包和分组、帧的概念区别
报文(message):报文是网络中交换与传输的数据单元,即站点一次性要发送的数据块。报文包含了将要发送的完整的数据信息,其长短很不一致,长度不限且可变。报文在传输过程中会不断的封装成分组、包、帧来传输,封装的方式就是添加一些信息段,那些就是报文头。报文段(Segment):通常是指起始点和目的地都是传输层的信息单元。数据报(Datagram):面向无连接的数据传输,其工作过程类似于报文交换。采用数据报方式传输时,被传输的分组称为数据报。有的书为了把OSI中的传输层里的TCP和UDP区别开来,将上层传原创 2021-11-27 20:19:04 · 7146 阅读 · 0 评论 -
878-进程切换为什么比线程切换慢?
进程切换为什么比线程切换慢?注意这里问的是为什么进程切换比线程慢,而不是问为什么进程比线程慢。当然这里的线程肯定指的是同一个进程中的线程。解释下虚拟地址(逻辑地址)和物理地址的区别下面这段 C 代码摘录自《操作系统导论 - [美] 雷姆兹·H.阿帕希杜塞尔》,依次打印出 main 函数的地址,由 malloc(类似于 Java 中的 new 操作)返回的堆空间分配的值,以及栈上一个整数的地址:得到以下输出:我们需要知道的是,所有这些打印出来的地址都是虚拟的,在物理内存中这些地址并不真实存在,原创 2021-11-27 13:53:40 · 970 阅读 · 0 评论 -
876-进程与线程
1. 进程与线程的简单解释进程(Process)和线程(Thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。① 计算机的核心是 CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。② 「假定工厂的电力有限,一次只能供给一个车间使用」。也就是说,一个车间开工的时候,其他车间都必须停工。背后的含义就是,单个 CPU 一次只能运行一个任务。③ 进程就好比工厂的车间,它代表 CPU 所能处理的单个任务。任一时刻,CPU 总是运行一个进程,其他进程处于非运行状态。④ 一个车间里,可原创 2021-11-27 13:28:58 · 519 阅读 · 0 评论 -
873-你看到的所有地址都不是真的
先解释下一个困扰了我很久的问题:虚拟地址(vitural address)和逻辑地址(logical address)的区别。在《深入理解 Linux 内核》这本书中终于找到了确切的答案,这里我就不写出来了,扣概念的话这俩确实是有些区别的,不过对于我们日常使用以及理解操作系统来说的话,暂且可以把虚拟地址和逻辑地址理解为同一个意思。你看到的所有地址都不是真的下面这段 C 代码摘录自《操作系统导论 - [美] 雷姆兹·H.阿帕希杜塞尔》,依次打印出 main 函数的地址,由 malloc(类似于 Jav原创 2021-11-26 14:08:12 · 284 阅读 · 0 评论 -
872-程序在计算机中是如何运行起来的
程序在计算机中是如何运行起来的?为什么设计了分层存储体系?各位不妨想一想,为什么需要设计出这样一个分层的存储体系来供计算机使用呢?首先,有一个观点不用多说,每个人都希望自己的计算机拥有这样一个存储器:它容量无限大,CPU 访问它的速度无限快,并且能够永久性的存储数据(断电不会丢失数据),而且价格不能太高昂。But,遗憾的是,现阶段的技术仍然满足不了我们的幻想。为此,经过多年的探索,人们提出了分层存储体系的概念,把我们的幻想一个一个拆开对应到不同的存储器上。在这个体系中,计算机拥有若干 KB 超原创 2021-11-26 14:03:08 · 106 阅读 · 0 评论 -
871-学习ARP 协议
我们了解到,「网络层实现主机之间的通信,而链路层实现具体每段链路之间的通信」。也就是说:只要在网络层确定了 IP 地址,就可以向这个目标地址发送 IP 数据报。然而,在底层数据链路层,进行实际通信时却有必要了解每个 IP 地址所对应的 MAC 地址。那么,ARP 就是用来实现由 IP 地址到 MAC 地址转化的一个「网络层协议」,当然,还有一个 RARP 协议可以实现由 MAC 地址到 IP 地址的转化。两者原理都差不多,本文就以 ARP 协议为例进行讲解。1. ARP 概要「ARP(Addres原创 2021-11-26 13:55:30 · 217 阅读 · 0 评论 -
869-TCP网络的那些事
网络的七层模型,简单介绍每层的作用?答案:分为7层,从下到上依次是:应用层:计算机用户与网络之间的接口,常见的协议有:HTTP、FTP、 SMTP、TELNET表示层:数据的表示、安全、压缩。将应用处理的信息转换为适合网络传输的格式。会话层:建立和管理本地主机与远程主机之间的会话。传输层: 定义传输数据的协议端口号,以及流控和差错校验,保证报文能正确传输。协议有TCP、UDP网络层:路由选择算法,进行逻辑地址寻址,实现不同网络之间的最佳路径选择。协议有IP、ICMP数据链路层:接收来自物理层的原创 2021-11-25 21:02:23 · 323 阅读 · 0 评论 -
868-超详细 DNS 协议解析
0. 前言为了保证网址的正常访问,域名解析协议(DNS)其实在背后做出了很多努力,本文将透彻讲解 DNS 协议的原理,了解我们每天都在接触的网址到底是怎么工作的。1. 什么是 DNS 协议在学习 DNS 协议之前,我们先区分一下域名和 IP 地址这个两个概念:「IP 地址」:一长串能够唯一地标记网络上的计算机的数字「域名」:又称网域,是由一串用点分隔的名字组成的 Internet 上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)比如 www.baidu.co原创 2021-11-25 20:54:32 · 769 阅读 · 0 评论 -
867-DHCP:IP 并非与生俱来
初识 DHCP众所周知,因特网上的每台设备都规定了其全世界唯一的地址,也就是说 “IP 地址”,正是由于有了 IP 地址,才保证了用户在连网的计算机上操作时,能够高效而且方便地从千千万万台计算机中选出自己所需的对象来。IP 地址就好像电话号码(地址码):有了某人的电话号码,你就能与他通话了。同样,有了某台主机的 IP 地址,你就能与这台主机通信了。But,如果逐一为每一台主机设计 IP 地址那不得累死,不说全世界可能上百亿台计算机的存在,就说一台笔记本电脑,每移动到一个地方,就需要重新配置 IP 地址原创 2021-11-25 20:32:15 · 328 阅读 · 0 评论 -
866- IP 地址与 MAC 地址
一个邮递员拿着地址详细到教室的一封信,收件人是小明,教室里没有重名的,邮递员问 “小明的学号是多少?”,小明站起来回答 “12345”,然后小明坐下,然后邮递员说 “学号 12345 的过来拿信”,小明站起来去拿信。好像有点多此一举?问题:当数据包到达局域网后,完全可以直接送到对应的 IP 地址主机,为什么还要询问一下对应 IP 主机的 MAC 地址?或者换种问法:既然有了 IP 地址用来唯一标识这台计算机了,那还需要 MAC 地址干啥?首先,我来简单的解释下 MAC 地址所属的数据链路层和 IP原创 2021-11-25 20:28:27 · 449 阅读 · 0 评论 -
863-细谈http协议的Cookie + Session
在保持用户登录态的这个需求下,为啥要用 ThreadLocal 存储用户信息,而不是采用常见的 Cookie + Session???Cookie + Session由于 HTTP 协议是无状态的,完成操作关闭浏览器后,客户端和服务端的连接就断开了,所以我们必须要有一种机制来保证客户端和服务端之间会话的连续性,常见的,就是使用 Cookie + Session(会话) 的方式。具体来说,当客户端请求服务端的时候,服务端会为此次请求开辟一块内存空间(Session 对象),服务端可以在此存储客户端在该会原创 2021-11-25 13:55:43 · 125 阅读 · 0 评论 -
860-什么是MTU?
什么是MTU(Maximum Transmission Unit)?最大传输单元MTU(Maximum Transmission Unit,MTU),是指网络能够传输的最大数据包大小,以字节为单位。MTU的大小决定了发送端一次能够发送报文的最大字节数。如果MTU超过了接收端所能够承受的最大值,或者是超过了发送路径上途经的某台设备所能够承受的最大值,就会造成报文分片甚至丢弃,加重网络传输的负担。如果太小,那实际传送的数据量就会过小,影响传输效率。为什么需要MTU?网络中通常以数据包为单位进行信息传原创 2021-11-24 14:03:14 · 3592 阅读 · 2 评论 -
859-细谈安全的 HTTPS 协议
更安全的 HTTPS 协议上一篇文章详细讲解了 HTTP 的相关原理,我们已经了解到了 HTTP 具有非常优秀和方便的一面,然而,HTTP 并非一个安全的协议。大家平常浏览网页的时候应该也能注意到,使用 HTTP 协议的网站,浏览器都会认定这是一个不安全的网站,提醒用户注意防范(即便这是我们学校的选课系统)。当然,这个不安全的含义指的是你在该网页输入的信息可能会被外界攻击者以非正常手段窃取,而不是说会被这个网页的开发者获取,毕竟浏览器咋能判断这个网页开发者是否存有异心,这个需要用户自行判断(手动滑稽原创 2021-11-24 13:44:07 · 432 阅读 · 0 评论 -
858-学习HTTP 协议
HTTP 协议的前世今生你知道当我们在网页浏览器的地址栏中输入 URL 时,Web 页面是如何呈现的吗?Web 界面当然不会凭空出来,根据 Web 浏览器地址栏中指定的 URL,Web 使用一种名为 HTTP 的协议作为规范,完成从客户端到服务端的一些流程。「可以说,Web 是建立在 HTTP 协议上进行通信的」。1. HTTP 的诞生其实,在 1983 年 3 月之前,互联网还只属于少数人,全世界的网民之间的信息是无法共享的。在这一互联网的黎明时期,HTTP 应运而生。欧洲核子研究组织的 Ti原创 2021-11-24 13:28:50 · 764 阅读 · 0 评论 -
857-子网掩码与子网划分
子网掩码的概念及作用子网掩码是一个应用于TCP/IP网络的32位二进制值,它可以屏蔽掉ip地址中的一部分,从而分离出ip地址中的网络部分与主机部分,基于子网掩码,管理员可以将网络进一步划分为若干子网。为什么需要使用子网掩码虽然我们说子网掩码可以分离出ip地址中的网络部分与主机部分,可大家还是会有疑问,比如为什么要区分网络地址与主机地址?区分以后又怎样呢?那么好,让我们再详细的讲一下吧!在使用TCP/IP协议的两台计算机之间进行通信时,我们通过将本机的子网掩码与接受方主机的ip地址进行’与’运算,即原创 2021-11-23 23:19:40 · 407 阅读 · 0 评论 -
856-为什么 DNS 协议使用 UDP?只使用了 UDP 吗?
为什么 DNS 协议使用 UDP?只使用了 UDP 吗?那各位有没有想过,既然 UDP 更快,为什么 HTTP 不使用 UDP 呢?另外,为什么 DNS 协议使用 UDP 这个问题本身其实并不完全正确,DNS 并非只使用 UDP 协议,它同时占用了 UDP 和 TCP 的 53 端口,作为单个应用层的协议,DNS 同时使用两种传输协议也属实是个另类了。DNS 为什么同时使用 TCP 和 UDP我们从 TCP 与 UDP 的比较说起,老生常谈的话题,不过相信大部分同学都会忽略掉一个点,等下会指出来。原创 2021-11-23 22:01:21 · 1201 阅读 · 0 评论 -
855-在浏览器地址栏输入一个 URL 后回车,背后发生了什么?
在浏览器的地址栏输入一个 URL 后回车,背后到底发生了什么才能使得一个界面完美的展现在我们眼前?在浏览中输入 URL 并且获取响应的过程,其实就是浏览器和该 URL 对应的服务器的网络通信过程。比如我们输入 www.baidu.com,那么会返回一个百度搜索的界面,这其实就是浏览器和百度服务器之间的网络通信过程。浏览器就是客户端,用于发出请求,而百度的服务器就是服务端,用于接收并响应请求。下面我们就来详细讲解这个庞大的网络通信过程。1. 解析 URL不知道有没有同学会混淆域名和 URL 的概念,原创 2021-11-23 21:57:57 · 1106 阅读 · 1 评论 -
854-了解操作系统
1. 什么是操作系统了解什么是操作系统,操作系统是干什么用的,我们还需要从操作系统的需求起源开始说起。1946 年,「世界上第一台通用计算机埃尼阿克(ENIAC)「在美国宾夕法尼亚大学诞生,用了 18000 个电子管,占地 170 平方米,重达 30 吨。最恐怖的是,ENIAC 或者说」早期的计算机是没有操作系统的」,运转这个 170 平方米的庞然大物全靠工程师们的手动操作。大概是种什么感觉呢?请看下图:图中遍布整个房间的大机器就是 ENIAC,从照片中我们可以看到一名操作人员正在手动调整一个按钮,原创 2021-11-23 13:50:30 · 316 阅读 · 0 评论 -
853-两台计算机之间是如何通信的?
1. 五层协议参考模型所谓通信协议就是通信双方都必须要遵守的通信规则。如果没有网络通信协议,计算机的数据将无法发送到网络上,更无法到达对方计算机,即使能够到达,对方也未必能读懂。有了通信协议,网络通信才能够发生。一般我们用五层协议参考模型来进行计算机网络的学习:应用层运输层网络层数据链路层物理层上述各层的作用会在下文详细讲解,我们首先要明白为什么要分层:协议的实现是很复杂的。因为协议要把人读得懂的数据,如网页、电子邮件等加工转化成可以在网络上传输的信号,需要进行的处理工作非常多。两个系.原创 2021-11-23 13:31:26 · 3628 阅读 · 0 评论 -
852- 学习IP协议
1.从网络层说起众所周知,IP 协议属于网络层,网络层的作用:在计算机网络中进行通信的两个计算机之间可能会经过很多个数据链路,也可能还要经过很多通信子网。网络层的任务就是选择合适的网间路由和交换结点, 确保数据及时传送。通俗点来说吧,数据链路层的作用很简单,它是无脑的,只负责在两个相邻节点之间传送数据,它并不知道它所传送的数据最终目的地是哪。而网络层便是它的大脑,网络层负责指定源地址和目的地址,并告诉数据链路层该走哪条路线。下面这张图可以说是非常形象了 ????:运输层交付给网络层的数据格式是 T原创 2021-11-23 00:53:57 · 2476 阅读 · 1 评论