计算机操作系统

select,poll,epoll最简单的解释

删除回忆录丶 提交于 2019-11-28 05:29:44
从事服务端开发,少不了要接触网络编程。epoll 作为 Linux 下高性能网络服务器的必备技术至关重要,nginx、Redis、Skynet 和大部分游戏服务器都使用到这一多路复用技术。 epoll 很重要,但是 epoll 与 select 的区别是什么呢?epoll 高效的原因是什么? 网上虽然也有不少讲解 epoll 的文章,但要么是过于浅显,或者陷入源码解析,很少能有通俗易懂的。笔者于是决定编写此文,让缺乏专业背景知识的读者也能够明白 epoll 的原理。 文章核心思想是:要让读者清晰明白 epoll 为什么性能好。 本文会从网卡接收数据的流程讲起,串联起 CPU 中断、操作系统进程调度等知识;再一步步分析阻塞接收数据、select 到 epoll 的进化过程;最后探究 epoll 的实现细节。 一、从网卡接收数据说起 下边是一个典型的计算机结构图,计算机由 CPU、存储器(内存)与网络接口等部件组成,了解 epoll 本质的第一步,要从硬件的角度看计算机怎样接收网络数据。 计算机结构图(图片来源:Linux内核完全注释之微型计算机组成结构) 下图展示了网卡接收数据的过程。 在 ① 阶段,网卡收到网线传来的数据; 经过 ② 阶段的硬件电路的传输; 最终 ③ 阶段将数据写入到内存中的某个地址上。 这个过程涉及到 DMA 传输、IO 通路选择等硬件有关的知识,但我们只需知道

计算机的基础

倖福魔咒の 提交于 2019-11-28 05:20:15
目录 CPU: (大脑) 控制器: 运算器: 存储器: I/O设备(input/output): 课外收获: 固态硬盘 计算机: 机械硬盘:(留声机) 文件: 存储信息的介质(虚拟的概念) 应用程序: 使用: 操作系统的定义: 操作系统和应用程序的启动 QQ启动的详细流程(Windows) 拓展: ---- 冯诺依曼计算机 ------图灵机 CPU: (大脑) 控制器: 控制硬件 运算器: 算法/逻辑算法 存储器: 内存: 优点(较于外存): 存取速度快。 缺点(较于外存): 容量小。 由于内存基于电存储数据,因此断电数据马上会消失。 外存: 优点(较于内存): 容量大 可以永久存储数据。 缺点(较于内存): 存取速度慢。 I/O设备(input/output): 输入设备 输出设备 课外收获: 固态硬盘 电容存储,(压缩算法) 计算机: 只识别0和1. 0为低电频,1为高电频 机械硬盘:(留声机) 凹凸面-----识别 文件: 存储信息的介质(虚拟的概念) 接口:(操作系统提供接口:如文件接口,双击接口) 使其对硬件的操作简单化,快速打开应用程序 应用程序: 1.计算机只由硬件和软件组成, 2.程序一定不是硬件,那么软件中除了操作系统我们都可以称之为应用程序。 3.应用程序位于操作系统之上,它主要用来帮助人干各种各样的工作,它不直接与硬件交互 使用: 1.启动应用程序(如qq)

select,poll,epoll最简单的解释

寵の児 提交于 2019-11-28 05:17:09
从事服务端开发,少不了要接触网络编程。epoll 作为 Linux 下高性能网络服务器的必备技术至关重要,nginx、Redis、Skynet 和大部分游戏服务器都使用到这一多路复用技术。 epoll 很重要,但是 epoll 与 select 的区别是什么呢?epoll 高效的原因是什么? 网上虽然也有不少讲解 epoll 的文章,但要么是过于浅显,或者陷入源码解析,很少能有通俗易懂的。笔者于是决定编写此文,让缺乏专业背景知识的读者也能够明白 epoll 的原理。 文章核心思想是:要让读者清晰明白 epoll 为什么性能好。 本文会从网卡接收数据的流程讲起,串联起 CPU 中断、操作系统进程调度等知识;再一步步分析阻塞接收数据、select 到 epoll 的进化过程;最后探究 epoll 的实现细节。 一、从网卡接收数据说起 下边是一个典型的计算机结构图,计算机由 CPU、存储器(内存)与网络接口等部件组成,了解 epoll 本质的第一步,要从硬件的角度看计算机怎样接收网络数据。 计算机结构图(图片来源:Linux内核完全注释之微型计算机组成结构) 下图展示了网卡接收数据的过程。 在 ① 阶段,网卡收到网线传来的数据; 经过 ② 阶段的硬件电路的传输; 最终 ③ 阶段将数据写入到内存中的某个地址上。 这个过程涉及到 DMA 传输、IO 通路选择等硬件有关的知识,但我们只需知道

深入浅出计算机组成原理学习笔记:理解虚拟机-你在云上拿到的计算机是什么样的?(第34讲)

萝らか妹 提交于 2019-11-28 03:51:54
上世纪60年代,计算机还是异常昂贵的设备,实际的计算机使用需求要面临两个挑战。 第一,计算机特别昂贵,我们要尽可能地让计算机忙起来,一直不断地去处理一些计算任务。 第二,很多工程师想要用上计算机,但是没有能力自己花钱买一台,所以呢,我们要让很多人可以共用一台计算机。 一、缘起分时系统 为了应对这两个问题,分时系统的计算机就应运而生了。 无论是个人用户,还是一个小公司或者小机构,你都不需要花大价钱自己去买一台电脑。你只需要买一个输入输出的终端,就好像一套鼠标、键盘、显示器这样的设备, 然后通过电话线,连到放在大公司机房里面的计算机就好了。这台计算机,会自动给程序或任务分配计算时间。你只需要为你花费的“计算时间”和使用的电话线路付费就可以了 比方说,比尔·盖茨中学时候用的学校的计算机,就是GE的分时系统。 二、从“黑色星期五”到公有云 1、美国的感恩节的黑色星期五、网络星期一和国内的双十一一样 现代公有云上的系统级虚拟机能够快速发展,其实和分时系统的设计思路是一脉相承的,这其实就是来自于电商巨头亚马逊大量富余的计算能力。 和国内有“双十一”一样,美国会有感恩节的“黑色星期五(Black Friday)”和“网络星期一(CyberMonday)”,这样一年一度的大型电商促销活动。几天的活动期间, 会有大量的用户进入亚马逊这样的网站,看商品、下订单、买东西。这个时候

操作系统详解

时光毁灭记忆、已成空白 提交于 2019-11-28 03:28:29
目录 一 为什么要有操作系统 二 什么是操作系统 三 操作系统与普通软件的区别 四 操作系统发展史 五、操作系统原理 1. 操作系统的资源管理技术 2. 系统调用 3. 操作系统内核 4. 处理器状态: 内核态和用户态 5. 中断(Interupt) 6. 进程 7. 处理器调度 8. 进程的交互 9. 临界区管理 10. 信号量(samaphore)和PV操作 11. 管程 12. 死锁 13. 可变分区存储管理 14. 分页存储管理 15. 分段存储管理 16. 虚拟存储管理 17. 请求段页式虚拟内存管理 18. I/O硬件原理:I/O控制方式 19. I/O软件原理 20. 缓冲技术 21. 驱动调度技术 22. 设备独立性 23. 虚拟设备 24. 文件逻辑结构 25. 文件物理结构 二、Q&A 1. 什么是操作系统?操作系统在计算机系统中的主要作用是什么? 2. 什么是多道程序设计?多道程序设计有什么特点? 3. 计算机操作系统为什么引入进程? 4. 在分时系统中,什么是响应时间?它与哪些因素有关? 5. 解释并发性与并行性 6. 试述存储管理的基本功能。 7. 何谓地址转换(重定向)?哪些方法可以实现地址转换? 8. 什么是文件的共享?介绍文件共享的分类和实现思想。 一 为什么要有操作系统 ( 两本书:现代操作系统、操作系统原理,学好python以后再去研究吧~~)

计算机操作系统 - 进程管理

牧云@^-^@ 提交于 2019-11-27 23:54:11
进程与线程 1. 进程 2. 线程 3. 区别 进程状态的切换 进程调度算法 1. 批处理系统 2. 交互式系统 3. 实时系统 进程同步 1. 临界区 2. 同步与互斥 3. 信号量 4. 管程 经典同步问题 1. 读者-写者问题 2. 哲学家进餐问题 进程通信 1. 管道 2. FIFO 3. 消息队列 4. 信号量 5. 共享存储 6. 套接字 进程与线程 1. 进程 进程是资源分配的基本单位。 进程控制块 (Process Control Block, PCB) 描述进程的基本信息和运行状态,所谓的创建进程和撤销进程,都是指对 PCB 的操作。 下图显示了 4 个程序创建了 4 个进程,这 4 个进程可以并发地执行。 2. 线程 线程是独立调度的基本单位。 一个进程中可以有多个线程,它们共享进程资源。 QQ 和浏览器是两个进程,浏览器进程里面有很多线程,例如 HTTP 请求线程、事件响应线程、渲染线程等等,线程的并发执行使得在浏览器中点击一个新链接从而发起 HTTP 请求时,浏览器还可以响应用户的其它事件。 3. 区别 Ⅰ 拥有资源 进程是资源分配的基本单位,但是线程不拥有资源,线程可以访问隶属进程的资源。 Ⅱ 调度 线程是独立调度的基本单位,在同一进程中,线程的切换不会引起进程切换,从一个进程中的线程切换到另一个进程中的线程时,会引起进程切换。 Ⅲ 系统开销

计算机基础-计算机操作系统

ε祈祈猫儿з 提交于 2019-11-27 19:38:52
操作系统引入  这个场景,当我们花了8888大洋买了一台16G内存的专业吃鸡电脑时,打开电脑发现自己的电脑内存只有15G不到,然后就开始了吃鸡之旅。  但是如果你对你少掉的内存关心的话,你会发现并不是厂商为了节省造价成本,而这少掉的内存被某种东西给占用了,这种东西就是我们这篇文章的主角——操作系统。 什么是操作系统  操作系统就像个管家,这个管家既能和你交流,也能和奴隶交流,然后你有任何命令都将由这个管家传达给奴隶。 什么是文件 总结: 文件就是操作系统隐藏操作硬件的复杂枯燥的流程,给用户提供硬盘的简便借口 文件理解成一个虚拟的单位,有了这个虚拟的单位,我们不再需要考虑机械手臂的运转,你只需要文件可以双击打开、可以写入数据、可以CTRL+S保存。 现在让我们来思考文件这个虚拟的单位是谁提供的呢?如果有使用过linux系统的同学应该知道,linux系统中看不到任何一个文件的图标,只有一行一行的代码?(但是Linux一切皆文件) 只要你想打开一个文件,归根结底都是需要你去操作硬件的,只不过是操作系统不仅给我们提供了文件这个概念,并且把对文件打开的这个复杂操作封装成了一个双击文件的接口给我们。 来源: https://www.cnblogs.com/suren-apan/p/11374604.html

未来两年计划

安稳与你 提交于 2019-11-27 18:34:45
大三开学 补考过了 大三上学期 1.六级考试过了之后,开始考研英语的练习 2.计算机网络和操作系统两门课深度解析,把资料仔细做好 3.代码水平,leetcode做题,参加比赛要能得奖 大三下学期 1.开始数学等之类的复习,开始准备考研,代码和英语水平继续加强,C语言和数据结构 2.将大二下数据结构和计组挂的科目重修 初试过,准备复试,没有过,准备先工作几个月 初试没过,培训,准备工作,以后考非全日制研究生 来源: https://www.cnblogs.com/daiyonxin/p/11372430.html

计算机系统分层视图

ぃ、小莉子 提交于 2019-11-27 10:58:56
计算机系统的分层视图: 操作系统的抽象表示: 进程:对处理器、贮存、I/O设备的抽象表示 虚拟内存:对主存和I/O设备的抽象表示 文件:对I/O设备的抽象表示 进程是操作系统对一个正在运行的程序的一种抽象。进程运行所需的状态信息成为上下文。单处理器某时只能运行一个进程(程序),所以程序间进行的切换也称为上下文切换。 来源: https://www.cnblogs.com/bigbosscyb/p/11360746.html

1.5-操作系统的分类

北战南征 提交于 2019-11-27 10:07:12
  下面我们介绍一下操作系统的分类,各种各样的分类都是存在的,那么我们呢主要是介绍传统的分类。 那么我们要简单提一下,我们教材里提出的这个 Tanenbaum 的这种分类。操作系统是不断在发展的 那么它的发展是由不同的因素来驱动的,这些因素呢我们归纳总结出:   (1)首先是硬件技术的 发展,硬件发展了对操作系统就有新的要求;   (2)还有就是应用需求的发展;   (3) 然后是软件新技术的出现。 所以我们说操作系统的发展是随着计算机硬件技术、 应用需求以及软件新技术的出现而发展的。为什么要不断的进展?那么因为 操作系统要能够充分的利用硬件,能够为用户提供 更好的服务,所以操作系统必须以这个为目标来不断的发展。 从过去到现在, 操作系统实际上是总在不断的往前发展,那么 早期很早的时候是大型计算机,那么有大型计算机操作系统; 后来呢,又有了个人计算机啊,个人计算机呢又从简单到复杂,所以又有 不同的操作系统出现; 当有了网络的 供支持之后,那么我们的操作系统就要支持网络的功能; 后来移动计算出现了,那么操作系统要变得能够支持各种各样的移动 设备上的各种就管理啊,各种管理功能;云计算和我们现在的 泛在计算或者是说物联网时代;一直到今天 非常火的机器人,那么都需要操作系统 进行相应的改改变,然后去支持这些 不同的环境。   那么我们 看一下操作系统的这些分类